ecpg tests compile failure

Started by Dave Cramerover 22 years ago7 messageshackers
Jump to latest
#1Dave Cramer
pg@fastcrypt.com

test_thread.pgc:51: undefined reference to `pthread_create'
undefined reference to `pthread_join'

Dave

#2Shridhar Daithankar
shridhar_daithankar@myrealbox.com
In reply to: Dave Cramer (#1)
Re: ecpg tests compile failure

On Thursday 18 December 2003 17:37, Dave Cramer wrote:

test_thread.pgc:51: undefined reference to `pthread_create'
undefined reference to `pthread_join'

It is not linking against pthreads library. Do you have -lpthread cause in
your compilation/linking command?

Shridhar

#3Dave Cramer
pg@fastcrypt.com
In reply to: Shridhar Daithankar (#2)
Re: ecpg tests compile failure

Shridhar,

Obviously not, but I just did make inside the test directory, so I
assume the Makefile needs to be fixed.

Thanks,

Dave

Show quoted text

On Thu, 2003-12-18 at 07:21, Shridhar Daithankar wrote:

On Thursday 18 December 2003 17:37, Dave Cramer wrote:

test_thread.pgc:51: undefined reference to `pthread_create'
undefined reference to `pthread_join'

It is not linking against pthreads library. Do you have -lpthread cause in
your compilation/linking command?

Shridhar

#4Shridhar Daithankar
shridhar_daithankar@myrealbox.com
In reply to: Dave Cramer (#3)
Re: ecpg tests compile failure

On Thursday 18 December 2003 18:03, Dave Cramer wrote:

Shridhar,

Obviously not, but I just did make inside the test directory, so I
assume the Makefile needs to be fixed.

I don't think so.. Check this..

[shridhar@daithan pgsql]$ find . -name Makefile.global
./src/Makefile.global
[shridhar@daithan pgsql]$ grep THREAD_LIBS ./src/Makefile.global
THREAD_LIBS = -lpthread

If you don't have this flag defined, the tests won't be linked against the
thread library. Check what value this flag is set to.

You did a ./configure --enable-thread-safety, right? Which platform is this
BTW?

This is on a CVS head checkout from couple of days ago on linux.. All the
tests got successfully compiled.

Shridhar

#5Bruce Momjian
bruce@momjian.us
In reply to: Dave Cramer (#3)
Re: ecpg tests compile failure

Dave Cramer wrote:

Shridhar,

Obviously not, but I just did make inside the test directory, so I
assume the Makefile needs to be fixed.

Thanks,

Dave

On Thu, 2003-12-18 at 07:21, Shridhar Daithankar wrote:

On Thursday 18 December 2003 17:37, Dave Cramer wrote:

test_thread.pgc:51: undefined reference to `pthread_create'
undefined reference to `pthread_join'

It is not linking against pthreads library. Do you have -lpthread cause in
your compilation/linking command?

The ecpg/test/Makefile has:

override CPPFLAGS := -I$(srcdir)/../include -I$(libpq_srcdir) $(CPPFLAGS) $(THREAD_CPPFLAGS)

and
%: %.o
$(CC) $(CFLAGS) $(LDFLAGS) -L../ecpglib -L ../pgtypeslib -L../../libpq $^ $(LIBS) -lpgtypes
-lecpg -lpq $(THREAD_LIBS) -o $@

so I see the thread compile and link flags mentioned in the Makefile.
My guess is that you didn't compile the backend with
--enable-thread-safety. I wonder if I should disable the thread ecpg
test program when this compile option is not used. Is that correct?

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073
#6Dave Cramer
pg@fastcrypt.com
In reply to: Bruce Momjian (#5)
Re: ecpg tests compile failure

Bruce,

You are correct. I did not configure with --enable-thread-safety

Dave

Show quoted text

On Thu, 2003-12-18 at 08:40, Bruce Momjian wrote:

Dave Cramer wrote:

Shridhar,

Obviously not, but I just did make inside the test directory, so I
assume the Makefile needs to be fixed.

Thanks,

Dave

On Thu, 2003-12-18 at 07:21, Shridhar Daithankar wrote:

On Thursday 18 December 2003 17:37, Dave Cramer wrote:

test_thread.pgc:51: undefined reference to `pthread_create'
undefined reference to `pthread_join'

It is not linking against pthreads library. Do you have -lpthread cause in
your compilation/linking command?

The ecpg/test/Makefile has:

override CPPFLAGS := -I$(srcdir)/../include -I$(libpq_srcdir) $(CPPFLAGS) $(THREAD_CPPFLAGS)

and
%: %.o
$(CC) $(CFLAGS) $(LDFLAGS) -L../ecpglib -L ../pgtypeslib -L../../libpq $^ $(LIBS) -lpgtypes
-lecpg -lpq $(THREAD_LIBS) -o $@

so I see the thread compile and link flags mentioned in the Makefile.
My guess is that you didn't compile the backend with
--enable-thread-safety. I wonder if I should disable the thread ecpg
test program when this compile option is not used. Is that correct?

#7Bruce Momjian
bruce@momjian.us
In reply to: Dave Cramer (#6)
Re: ecpg tests compile failure

I have applied the following patches to CVS HEAD and 7.4.X to suppress
the ecpg thread test if they didn't enable threads via configure. I
also cleaned up the tools/thread test because this is to be used before
you have your OS running threads via configure.

---------------------------------------------------------------------------

Dave Cramer wrote:

Bruce,

You are correct. I did not configure with --enable-thread-safety

Dave
On Thu, 2003-12-18 at 08:40, Bruce Momjian wrote:

Dave Cramer wrote:

Shridhar,

Obviously not, but I just did make inside the test directory, so I
assume the Makefile needs to be fixed.

Thanks,

Dave

On Thu, 2003-12-18 at 07:21, Shridhar Daithankar wrote:

On Thursday 18 December 2003 17:37, Dave Cramer wrote:

test_thread.pgc:51: undefined reference to `pthread_create'
undefined reference to `pthread_join'

It is not linking against pthreads library. Do you have -lpthread cause in
your compilation/linking command?

The ecpg/test/Makefile has:

override CPPFLAGS := -I$(srcdir)/../include -I$(libpq_srcdir) $(CPPFLAGS) $(THREAD_CPPFLAGS)

and
%: %.o
$(CC) $(CFLAGS) $(LDFLAGS) -L../ecpglib -L ../pgtypeslib -L../../libpq $^ $(LIBS) -lpgtypes
-lecpg -lpq $(THREAD_LIBS) -o $@

so I see the thread compile and link flags mentioned in the Makefile.
My guess is that you didn't compile the backend with
--enable-thread-safety. I wonder if I should disable the thread ecpg
test program when this compile option is not used. Is that correct?

---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?

http://archives.postgresql.org

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

Attachments:

/bjm/difftext/plainDownload+6-9