Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 87657 - Emerging syslog-ng fails after emerging system with distcc
Summary: Emerging syslog-ng fails after emerging system with distcc
Status: RESOLVED DUPLICATE of bug 90456
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Lisa Seelye (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-04-02 04:57 UTC by Fredrik Smedberg
Modified: 2005-07-17 13:06 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Fredrik Smedberg 2005-04-02 04:57:57 UTC
First I emerged my system with distcc (emerge system). After doing this I tried to emerge syslog-ng, but it failed. Of course I thought it was a distcc thing and tried to emerge it without distcc, but it didn't work. It gave me the "unresolved symbol" error the whole time.

I don't remember exactly what it said, but after reemerging flex without using distcc and then emerge syslog-ng, all worked. Seems distcc creates non-working flex libraries. Some packages automaticly don't use distcc.

The solution to this is pretty simple. Make flex not use distcc (if it's installed).

Reproducible: Always
Steps to Reproduce:
1. emerge system (with distcc set up)
2. emerge syslog-ng (with or without distcc)

Actual Results:  
Emerging syslog-ng failed.

Expected Results:  
It should have worked to emerge syslog-ng without a problem.
Comment 1 Sean Kennedy 2005-04-02 10:38:58 UTC
I got this error as well (and didn't use distcc), but unfourtunatley I don't have the error to paste here.  I run a stable x86 system w/ these CFLAGS: "-march=pentium4 -O2 -pipe -fomit-frame-pointer"
Comment 2 Lisa Seelye (RETIRED) gentoo-dev 2005-04-02 16:43:20 UTC
Please include emerge info on all machines in your Distcc cluster.
Comment 3 strafi 2005-04-03 04:18:01 UTC
i have got the same error after emerge system, but i dit not use distcc

here are the last lines of the merge


i686-pc-linux-gnu-gcc  -march=athlon-xp -O3 -pipe -fomit-frame-pointer -Wall -I/usr/include/libol -D_GNU_SOURCE   -o syslog-ng  main.o sources.o center.o filters.o destinations.o log.o cfgfile.o cfg-grammar.o cfg-lex.o affile.o afsocket.o afunix.o afinet.o afinter.o afuser.o afstreams.o afprogram.o afremctrl.o nscache.o utils.o syslog-names.o macros.o  -lnsl -lresolv  -lwrap  /usr/lib/libol.a -lnsl
cfg-lex.o(.text+0x426): In function `yylex':
: undefined reference to `yywrap'
cfg-lex.o(.text+0xab2): In function `input':
: undefined reference to `yywrap'
collect2: ld returned 1 exit status
make[3]: *** [syslog-ng] Error 1
make[3]: Leaving directory `/var/tmp/portage/syslog-ng-1.6.5-r2/work/syslog-ng-1.6.5/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/var/tmp/portage/syslog-ng-1.6.5-r2/work/syslog-ng-1.6.5/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/var/tmp/portage/syslog-ng-1.6.5-r2/work/syslog-ng-1.6.5/src'
make: *** [all-recursive] Error 1

i hope this is helpfull
Comment 4 strafi 2005-04-03 04:22:21 UTC
hmm, something strange, at an allready running system i can remerge syslog-ng whitout any error massage
Comment 5 Sean Kennedy 2005-04-03 12:38:19 UTC
Yes, the error in #3 is the same one I got after my emerge system (I ended up emerging metalog instead).
Comment 6 strafi 2005-04-03 23:06:59 UTC
Yes, im was also thinking of emerge metalog, but this is not the solution...
Comment 7 Lisa Seelye (RETIRED) gentoo-dev 2005-04-19 06:01:45 UTC
Are there any machines in your distcc cluster that are not using the same GCC version?
Comment 8 Fredrik Smedberg 2005-04-19 08:24:08 UTC
No, all machines used exactly the same gcc: gcc version 3.4.3-20050110 (Gentoo Linux 3.4.3.20050110-r2, ssp-3.4.3.20050110-0, pie-8.7.7.
Comment 9 Aurelien Minet 2005-04-19 09:32:18 UTC
For those which does not use distcc (#1 Stean Kennedy #3 Strafi), they have to rebuild flex (emerge flex) as it is a problem around the linker ("undefined reference to `yywrap' collect2: ld ").

For Fredrik Smedberg, if the error you had got was about ld (the linker), it isn't a problem around distcc, the link operation is done localy (compiler and assembler remotely) as it need to examine libraries and object files.
So (as other pleople and I had it) I think it was just a local bug around flex and as you remmerge flex, you fix it (but I don't know why flex need reemerging, issues form bootstrapping or emerging the system or remerging glic ...).
In conclusion (for me) it is not a compilation bug of syslog-ng but a linker bug of flex in which symbols miss after emerging system.
Comment 10 Douglas R. Hoffman 2005-04-23 01:42:54 UTC
Hi Lisa,

I encountered the same linker error on yywarp when emerging syslog-ng.

I suspect the root cause is that we didn't follow (i.e. re-read) the handbook since the last time it was revised. The new guide clearly states the need to 'emerge --emptytree system' if CFLAG/CXXFLAGS was changed.  It definitely should say CHOST in there as well (can you pass that one along?).
 
I'll report back in a day or so when the build finishes system. --emptytree is going to take a while.
Comment 11 Douglas R. Hoffman 2005-04-24 22:40:44 UTC
FYI, building the handbook way avoids the problem all-together, but takes a long time...  

-d
Comment 12 Mr. Bones. (RETIRED) gentoo-dev 2005-04-25 20:31:01 UTC
not related to distcc...

*** This bug has been marked as a duplicate of 90456 ***