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.
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"
Please include emerge info on all machines in your Distcc cluster.
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
hmm, something strange, at an allready running system i can remerge syslog-ng whitout any error massage
Yes, the error in #3 is the same one I got after my emerge system (I ended up emerging metalog instead).
Yes, im was also thinking of emerge metalog, but this is not the solution...
Are there any machines in your distcc cluster that are not using the same GCC version?
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.
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.
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.
FYI, building the handbook way avoids the problem all-together, but takes a long time... -d
not related to distcc... *** This bug has been marked as a duplicate of 90456 ***