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:
October 20: code_swarm
Next Installfest:
Sat. Nov. 8th [TENTATIVE]
Latest News:
Sep. 25: Installfest this Saturday
Page last updated:
2005 Jul 06 14:11
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)
[vox-tech] Wierd linker thing
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[vox-tech] Wierd linker thing



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?

--Ken Bloom
_______________________________________________
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.

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:
nerdbooks.com
For numerous book donations.