l i n u x - u s e r s - g r o u p - o f - d a v i s
L U G O D
 
Next Meeting:
September 2: Social Gathering
Next Installfest:
Sat. Sept. 27, 10am-6pm
Latest News:
Aug. 30: September Installfest scheduled
Page last updated:
2005 Jul 06 15:08
Events
 Meetings
 Installfests
 Demos
 Photos
Services
 Library
 LERT
 Jobs
 Documents
Interact
 Mailing Lists
 - Search
 - Archives
 Chat
About Us
 Members
 Projects
 Testimonials
 Call for Speakers
 Why Not MS?
 Finances
 Sponsors

^Home
?Search
?News & RSS
?Calendar
@Contact Us
$Buy Stuff
=Printable


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
vox-tech@lists.lugod.org
http://lists.lugod.org/mailman/listinfo/vox-tech



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

CD Burns Wanted!

LUGOD: Linux Users' Group of Davis
1105 Kennedy Place, Suite 1, Davis, CA 95616
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:
California Computer News
Who donated books and ad space.