l i n u x - u s e r s - g r o u p - o f - d a v i s
Next Meeting:
July 7: Social gathering
Next Installfest:
Latest News:
Jun. 14: June LUGOD meeting cancelled
Page last updated:
2005 Jul 06 15:08

The following is an archive of a post made to our 'vox-tech mailing list' by one of its subscribers.

Report this post as spam:

(Enter your email address)
Re: [vox-tech] Wierd linker thing
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [vox-tech] Wierd linker thing

On Wed, Jul 06, 2005 at 10:22:35AM -0700, Kenneth Bloom wrote:
> So earlier this week, I was trying to compile and run a network daemon
> which we are writing at work that used the pthread_create() system call.
> The problem I found was that whenever the program would try to call
> pthread_create(), the program would segfault. The backtrace would contain
> all of the calls leading up to pthread_create(), but not pthread_create()
> itself, and valgrind would report an error that the system had tried to
> jump to address 0x0.
> The primary developer of this daemon, however, had no problem running
> copies of the daemon that he had compiled. 
> I spent all morning trying to figure out the cause of this problem, when I
> decided to run ldd on each of our binaries. I found that his was linked
> against libpthread, but mine was not. I added -lpthread to Makefile.am and
> recompiled, and mine worked.
> The question is this: if I wasn't linking with libpthread, then shouldn't
> the linker have complained at me that it couldn't resolve the symbol for
> pthread_create() when I was compiling? Why did this problem persist long
> enough to be an unidentifiable runtime error?

libc contains stubs for the pthread functions.  IIRC, this is so one
copy of libc can work with both single and multi-threaded libraries.

-troy (whose C programming is at best a D+)

vox-tech mailing list

LUGOD Group on LinkedIn
Sign up for LUGOD event announcements
Your email address:
LUGOD Group on Facebook
'Like' LUGOD on Facebook:

Hosting provided by:
Sunset Systems
Sunset Systems offers preconfigured Linux systems, remote system administration and custom software development.

LUGOD: Linux Users' Group of Davis
PO Box 2082, Davis, CA 95617
Contact Us

LUGOD is a 501(c)7 non-profit organization
based in Davis, California
and serving the Sacramento area.
"Linux" is a trademark of Linus Torvalds.

Sponsored in part by:
Sunset Systems
Who graciously hosts our website & mailing lists!