* RE: undefined reference to `__errno_location(void)' [not found] <616BE6A276E3714788D2AC35C40CD18D7D2511@whale.softwire.co.uk> @ 2002-09-01 23:38 ` Rupert Wood 2002-09-02 10:06 ` GRE Spam Mail 2002-09-02 10:07 ` GRE Spam Mail 0 siblings, 2 replies; 11+ messages in thread From: Rupert Wood @ 2002-09-01 23:38 UTC (permalink / raw) To: 'GRE Spam Mail'; +Cc: gcc-help Gordon Ellsworth wrote: > /home/muvie/muvie/src/socket_class.c:211: undefined reference to > `__errno_location(void)' : > And when you link make sure to add -lpthread, > since the symbol for errno_location is defined > in the libpthread library on Linux. : > I tried this, but it did not get rid of the problem. Can I confirm that you tried the '-lpthread' in addition to the #include in the PR comment? If so, can you confirm that you've got a libpthread.a or libpthread.so in /lib or /usr/lib and that it contains the symbol __errno_location? As you said you haven't upgraded, the system *ought* to work as shipped. But it's possible (albeit unlikely) that your C library was not build with threading support or that you're missing the ptherad library - maybe you need to install it as a separate package? Good luck, Rup. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: undefined reference to `__errno_location(void)' 2002-09-01 23:38 ` undefined reference to `__errno_location(void)' Rupert Wood @ 2002-09-02 10:06 ` GRE Spam Mail 2002-09-02 10:14 ` undefined reference to `__errno_location(void)'x Der Herr Hofrat 2002-09-02 10:07 ` GRE Spam Mail 1 sibling, 1 reply; 11+ messages in thread From: GRE Spam Mail @ 2002-09-02 10:06 UTC (permalink / raw) To: Rupert Wood; +Cc: gcc-help On Mon, 2 Sep 2002 07:38:48 +0100 "Rupert Wood" <me@rupey.net> wrote: > Gordon Ellsworth wrote: > > > /home/muvie/muvie/src/socket_class.c:211: undefined reference to > > `__errno_location(void)' > : > > And when you link make sure to add -lpthread, > > since the symbol for errno_location is defined > > in the libpthread library on Linux. > : > > I tried this, but it did not get rid of the problem. > > Can I confirm that you tried the '-lpthread' in addition to the #include > in the PR comment? Which #include would that be? I think I missed it. > If so, can you confirm that you've got a libpthread.a > or libpthread.so in /lib or /usr/lib Here's what I have: ./usr/lib/libpthread.a ./usr/lib/libpthread_p.a ./lib/libpthread-0.9.so ./usr/lib/libpthread.so > and that it contains the symbol > __errno_location? > How do I check for the symbol? I tried this to see if the symbol was there, I don't know if this is the right way to check: [root@vaghn (/)] 01:02:53 $ grep "__errno_location" /usr/lib/libpthread.a Binary file /usr/lib/libpthread.a matches [root@vaghn (/)] 01:02:56 $ grep "__errno_location" /usr/lib/libpthread.so Binary file /usr/lib/libpthread.so matches > As you said you haven't upgraded, the system *ought* to work as shipped. > But it's possible (albeit unlikely) that your C library was not build > with threading support or that you're missing the ptherad library - > maybe you need to install it as a separate package? I installed every package that comes with Slackware 8.1 (I did a full install from the Slackware CD) so there should be nothing missing. > > Good luck, > Rup. Thank you for your help. Sincerely, Gordon R. Ellsworth, Jr. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: undefined reference to `__errno_location(void)'x 2002-09-02 10:06 ` GRE Spam Mail @ 2002-09-02 10:14 ` Der Herr Hofrat 2002-09-02 10:53 ` GRE Spam Mail 0 siblings, 1 reply; 11+ messages in thread From: Der Herr Hofrat @ 2002-09-02 10:14 UTC (permalink / raw) To: GRE Spam Mail; +Cc: Rupert Wood, gcc-help > > How do I check for the symbol? > > I tried this to see if the symbol was there, I don't know if this is the right > way to check: > [root@vaghn (/)] 01:02:53 $ grep "__errno_location" /usr/lib/libpthread.a > Binary file /usr/lib/libpthread.a matches > [root@vaghn (/)] 01:02:56 $ grep "__errno_location" /usr/lib/libpthread.so > Binary file /usr/lib/libpthread.so matches > nm /usr/lib/libpthread.a | grep errno should be safe. hofrat ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: undefined reference to `__errno_location(void)'x 2002-09-02 10:14 ` undefined reference to `__errno_location(void)'x Der Herr Hofrat @ 2002-09-02 10:53 ` GRE Spam Mail 2002-09-03 13:09 ` GRE Spam Mail 0 siblings, 1 reply; 11+ messages in thread From: GRE Spam Mail @ 2002-09-02 10:53 UTC (permalink / raw) To: Der Herr Hofrat; +Cc: me, gcc-help On Mon, 2 Sep 2002 18:18:04 +0200 (CEST) Der Herr Hofrat <der.herr@mail.hofr.at> wrote: > > > > How do I check for the symbol? > > > > I tried this to see if the symbol was there, I don't know if this is the right > > way to check: > > [root@vaghn (/)] 01:02:53 $ grep "__errno_location" /usr/lib/libpthread.a > > Binary file /usr/lib/libpthread.a matches > > [root@vaghn (/)] 01:02:56 $ grep "__errno_location" /usr/lib/libpthread.so > > Binary file /usr/lib/libpthread.so matches > > > nm /usr/lib/libpthread.a | grep errno should be safe. > > hofrat > OK, I did that for libpthread.a and libpthread.so and this is the output: root@vaghn (~)] 01:51:32 $ nm /usr/lib/libpthread.a | grep errno U __errno_location U __errno_location U __errno_location U __errno_location U _errno U _h_errno U __errno_location U __errno_location errno.o: 00000000 T __errno_location 00000054 T __h_errno_location U __errno_location [root@vaghn (~)] 01:51:49 $ nm /usr/lib/libpthread.so | grep errno 00009c24 T __errno_location 00009ca0 T __h_errno_location U _errno@@GLIBC_2.0 U _h_errno@@GLIBC_2.0 U errno@@GLIBC_2.0 U h_errno@@GLIBC_2.0 ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: undefined reference to `__errno_location(void)'x 2002-09-02 10:53 ` GRE Spam Mail @ 2002-09-03 13:09 ` GRE Spam Mail 2002-09-04 0:28 ` bjorn rohde jensen 0 siblings, 1 reply; 11+ messages in thread From: GRE Spam Mail @ 2002-09-03 13:09 UTC (permalink / raw) To: gcc-help; +Cc: der.herr, me On Mon, 2 Sep 2002 13:54:02 -0400 GRE Spam Mail <gre_spam@anora.org> wrote: > > OK, I did that for libpthread.a and libpthread.so and this is the output: > > root@vaghn (~)] 01:51:32 $ nm /usr/lib/libpthread.a | grep errno > U __errno_location > U __errno_location > U __errno_location > U __errno_location > U _errno > U _h_errno > U __errno_location > U __errno_location > errno.o: > 00000000 T __errno_location > 00000054 T __h_errno_location > U __errno_location > > [root@vaghn (~)] 01:51:49 $ nm /usr/lib/libpthread.so | grep errno > 00009c24 T __errno_location > 00009ca0 T __h_errno_location > U _errno@@GLIBC_2.0 > U _h_errno@@GLIBC_2.0 > U errno@@GLIBC_2.0 > U h_errno@@GLIBC_2.0 > Did you guys forget about me? Sincerely, GRE ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: undefined reference to `__errno_location(void)'x 2002-09-03 13:09 ` GRE Spam Mail @ 2002-09-04 0:28 ` bjorn rohde jensen 2002-09-04 7:51 ` undefined reference to `__errno_location(void)' GRE Spam Mail 0 siblings, 1 reply; 11+ messages in thread From: bjorn rohde jensen @ 2002-09-04 0:28 UTC (permalink / raw) To: GRE Spam Mail; +Cc: gcc-help Hi Gordon, Could you post some (small) code demonstrating the problem? I think, you might be confusing ld's in its handling of weak/strong symbols during linking. It would be nice with some code to experiment with:) Yours sincerely, Bjorn ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: undefined reference to `__errno_location(void)' 2002-09-04 0:28 ` bjorn rohde jensen @ 2002-09-04 7:51 ` GRE Spam Mail 2002-09-04 9:03 ` Claudio Bley 0 siblings, 1 reply; 11+ messages in thread From: GRE Spam Mail @ 2002-09-04 7:51 UTC (permalink / raw) To: bjensen; +Cc: gcc-help On Wed, 04 Sep 2002 09:27:52 +0200 bjorn rohde jensen <bjensen@fastmail.fm> wrote: > Hi Gordon, > > Could you post some (small) code demonstrating the problem? > I think, you might be confusing ld's in its handling of weak/strong > symbols during linking. It would be nice with some code to experiment > with:) > > Yours sincerely, > > Bjorn > > Sure enough! Here's the smallest code that I've written that has this problem. === #include <cstdio> #include <cerrno> #include <cstring> int main(int argc, char **argv) { extern int errno; FILE *fp; errno = 0; if(!(fp=fopen("Somestupidfile.txt","r"))) { printf("File error: %s\n",strerror(errno)); } else { fclose(fp); } return 0; } === This is just a stupid little code, but it demonstrates the problem. If I try to compile it with g++ I get the following errors: [root@vaghn (~/prog)] 10:42:17 $ g++ -Wall test.c -o test /tmp/ccka9V3Q.o: In function `main': /tmp/ccka9V3Q.o(.text+0x8): undefined reference to `__errno_location(void)' /tmp/ccka9V3Q.o(.text+0x3d): undefined reference to `__errno_location(void)' collect2: ld returned 1 exit status Thank you for all your help. Sincerely, Gordon R. Ellsworth, Jr. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: undefined reference to `__errno_location(void)' 2002-09-04 7:51 ` undefined reference to `__errno_location(void)' GRE Spam Mail @ 2002-09-04 9:03 ` Claudio Bley 2002-09-04 9:20 ` Rupert Wood 0 siblings, 1 reply; 11+ messages in thread From: Claudio Bley @ 2002-09-04 9:03 UTC (permalink / raw) To: GRE Spam Mail; +Cc: bjensen, gcc-help >>>>> "GRE" == GRE Spam Mail <gre_spam@anora.org> writes: GRE> On Wed, 04 Sep 2002 09:27:52 +0200 bjorn rohde jensen GRE> <bjensen@fastmail.fm> wrote: >> Hi Gordon, >> >> Could you post some (small) code demonstrating the problem? I >> think, you might be confusing ld's in its handling of >> weak/strong symbols during linking. It would be nice with some >> code to experiment with:) >> >> Yours sincerely, >> >> Bjorn >> >> GRE> Sure enough! Here's the smallest code that I've written that GRE> has this problem. GRE> extern int errno; ^^^^^^^^^^^^^^^^^ Remove this line from your source. You get the error because errno is defined as a macro and the line is expanded to extern int (*__errno_location ()); Claudio ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: undefined reference to `__errno_location(void)' 2002-09-04 9:03 ` Claudio Bley @ 2002-09-04 9:20 ` Rupert Wood 2002-09-04 17:27 ` GRE Spam Mail 0 siblings, 1 reply; 11+ messages in thread From: Rupert Wood @ 2002-09-04 9:20 UTC (permalink / raw) To: Claudio Bley; +Cc: GRE Spam Mail, bjensen, gcc-help Claudio Bley wrote: > GRE> extern int errno; > ^^^^^^^^^^^^^^^^^ > > Remove this line from your source. You get the error because errno is > defined as a macro and the line is expanded to > > extern int (*__errno_location ()); Which, in that scope, is defined as a C++ symbol. Which is why it didn't match the C __errno_location in libpthread. The "d'oh" here is that the clue was in the title: it wouldn't have said "(void)" if it was trying to match a C symbol because it wouldn't have that information. Oh well, we learn. (And good spot, Claudio!) Rup. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: undefined reference to `__errno_location(void)' 2002-09-04 9:20 ` Rupert Wood @ 2002-09-04 17:27 ` GRE Spam Mail 0 siblings, 0 replies; 11+ messages in thread From: GRE Spam Mail @ 2002-09-04 17:27 UTC (permalink / raw) To: Rupert Wood; +Cc: bley, bjensen, gcc-help On Wed, 4 Sep 2002 12:20:11 -0400 (EDT) Rupert Wood <rup@kanat.pair.com> wrote: > Claudio Bley wrote: > > > GRE> extern int errno; > > ^^^^^^^^^^^^^^^^^ > > > > Remove this line from your source. You get the error because errno is > > defined as a macro and the line is expanded to > > > > extern int (*__errno_location ()); > > Which, in that scope, is defined as a C++ symbol. Which is why it > didn't match the C __errno_location in libpthread. > > The "d'oh" here is that the clue was in the title: it wouldn't have said > "(void)" if it was trying to match a C symbol because it wouldn't have > that information. > > Oh well, we learn. (And good spot, Claudio!) > > Rup. > > I just wanted to thank you all for your help. The problem seems resolved. I also want to thank the others that helped me that I didn't reply to in this message, Such as Der Herr Hofrat. Sincerely, Gordon R. Ellsworth, Jr. P.S. Now I feel stupid. "d'oh!" ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: undefined reference to `__errno_location(void)' 2002-09-01 23:38 ` undefined reference to `__errno_location(void)' Rupert Wood 2002-09-02 10:06 ` GRE Spam Mail @ 2002-09-02 10:07 ` GRE Spam Mail 1 sibling, 0 replies; 11+ messages in thread From: GRE Spam Mail @ 2002-09-02 10:07 UTC (permalink / raw) To: Rupert Wood; +Cc: gcc-help On Mon, 2 Sep 2002 07:38:48 +0100 "Rupert Wood" <me@rupey.net> wrote: > Gordon Ellsworth wrote: > > > /home/muvie/muvie/src/socket_class.c:211: undefined reference to > > `__errno_location(void)' > : > > And when you link make sure to add -lpthread, > > since the symbol for errno_location is defined > > in the libpthread library on Linux. > : > > I tried this, but it did not get rid of the problem. > > Can I confirm that you tried the '-lpthread' in addition to the #include > in the PR comment? Which #include would that be? I think I missed it. > If so, can you confirm that you've got a libpthread.a > or libpthread.so in /lib or /usr/lib Here's what I have: ./usr/lib/libpthread.a ./usr/lib/libpthread_p.a ./lib/libpthread-0.9.so ./usr/lib/libpthread.so > and that it contains the symbol > __errno_location? > How do I check for the symbol? I tried this to see if the symbol was there, I don't know if this is the right way to check: [root@vaghn (/)] 01:02:53 $ grep "__errno_location" /usr/lib/libpthread.a Binary file /usr/lib/libpthread.a matches [root@vaghn (/)] 01:02:56 $ grep "__errno_location" /usr/lib/libpthread.so Binary file /usr/lib/libpthread.so matches > As you said you haven't upgraded, the system *ought* to work as shipped. > But it's possible (albeit unlikely) that your C library was not build > with threading support or that you're missing the ptherad library - > maybe you need to install it as a separate package? I installed every package that comes with Slackware 8.1 (I did a full install from the Slackware CD) so there should be nothing missing. > > Good luck, > Rup. Thank you for your help. Sincerely, Gordon R. Ellsworth, Jr. ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2002-09-05 0:27 UTC | newest] Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <616BE6A276E3714788D2AC35C40CD18D7D2511@whale.softwire.co.uk> 2002-09-01 23:38 ` undefined reference to `__errno_location(void)' Rupert Wood 2002-09-02 10:06 ` GRE Spam Mail 2002-09-02 10:14 ` undefined reference to `__errno_location(void)'x Der Herr Hofrat 2002-09-02 10:53 ` GRE Spam Mail 2002-09-03 13:09 ` GRE Spam Mail 2002-09-04 0:28 ` bjorn rohde jensen 2002-09-04 7:51 ` undefined reference to `__errno_location(void)' GRE Spam Mail 2002-09-04 9:03 ` Claudio Bley 2002-09-04 9:20 ` Rupert Wood 2002-09-04 17:27 ` GRE Spam Mail 2002-09-02 10:07 ` GRE Spam Mail
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).