net-dialup/ppp-2.4.4-r20 fails to compile. Error message as follows: i686-pc-linux-gnu-ar rv libradiusclient.a avpair.o buildreq.o config.o dict.o ip_util.o clientid.o sendserver.o lock.o util.o md5.o i686-pc-linux-gnu-ar: creating libradiusclient.a a - avpair.o a - buildreq.o a - config.o a - dict.o a - ip_util.o a - clientid.o a - sendserver.o a - lock.o a - util.o a - md5.o i686-pc-linux-gnu-gcc -march=pentium-m -O2 -pipe -D_GNU_SOURCE -I. -I../.. -I../../../include -fPIC -DRC_LOG_FACILITY=LOG_DAEMON -DCHAPMS=1 -DMPPE=1 -DMAXOCTETS=1 -o radius.so radius.o libradiusclient.a /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/../../../crt1.o: In function `_start': (.text+0x18): undefined reference to `main' radius.o: In function `radius_allowed_address': radius.c:(.text+0x6d): undefined reference to `ipcp_wantoptions' radius.o: In function `plugin_init': radius.c:(.text+0xd4): undefined reference to `pap_check_hook' radius.c:(.text+0xe8): undefined reference to `pap_auth_hook' radius.c:(.text+0xf0): undefined reference to `chap_check_hook' radius.c:(.text+0xfe): undefined reference to `chap_verify_hook' radius.c:(.text+0x106): undefined reference to `ip_choose_hook' radius.c:(.text+0x114): undefined reference to `allowed_address_hook' radius.c:(.text+0x132): undefined reference to `ip_up_notifier' radius.c:(.text+0x13a): undefined reference to `add_notifier' radius.c:(.text+0x150): undefined reference to `ip_down_notifier' radius.c:(.text+0x158): undefined reference to `add_notifier' radius.c:(.text+0x196): undefined reference to `strlcpy' radius.c:(.text+0x1a4): undefined reference to `add_options' radius.c:(.text+0x1b2): undefined reference to `info' radius.o: In function `radius_ip_down': radius.c:(.text+0x373): undefined reference to `link_stats_valid' radius.c:(.text+0x383): undefined reference to `remote_number' radius.c:(.text+0x38e): undefined reference to `ipparam' radius.c:(.text+0x3be): undefined reference to `using_pty' radius.c:(.text+0x3fd): undefined reference to `status' radius.o: In function `.L36': radius.c:(.text+0x43e): undefined reference to `ipcp_hisoptions' radius.c:(.text+0x4d7): undefined reference to `sync_serial' radius.c:(.text+0x4f5): undefined reference to `link_connect_time' radius.c:(.text+0x527): undefined reference to `link_stats' radius.o: In function `radius_ip_up': radius.c:(.text+0x805): undefined reference to `remote_number' radius.c:(.text+0x810): undefined reference to `ipparam' radius.c:(.text+0x86b): undefined reference to `using_pty' radius.c:(.text+0x87c): undefined reference to `sync_serial' radius.c:(.text+0x8b1): undefined reference to `ipcp_hisoptions' radius.c:(.text+0x970): undefined reference to `timeout' radius.o: In function `radius_acct_interim': radius.c:(.text+0xb21): undefined reference to `update_link_stats' radius.c:(.text+0xb27): undefined reference to `link_stats_valid' radius.c:(.text+0xb37): undefined reference to `remote_number' radius.c:(.text+0xb42): undefined reference to `ipparam' radius.c:(.text+0xb72): undefined reference to `using_pty' radius.c:(.text+0xbb1): undefined reference to `ipcp_hisoptions' radius.c:(.text+0xc62): undefined reference to `timeout' radius.c:(.text+0xc72): undefined reference to `sync_serial' radius.c:(.text+0xc8b): undefined reference to `link_connect_time' radius.c:(.text+0xcbd): undefined reference to `link_stats' radius.o: In function `radius_init': radius.c:(.text+0xebc): undefined reference to `strlcpy' radius.c:(.text+0xee0): undefined reference to `slprintf' radius.o: In function `make_username_realm': radius.c:(.text+0xf55): undefined reference to `strlcpy' radius.c:(.text+0xfc7): undefined reference to `strlcat' radius.c:(.text+0xfdc): undefined reference to `strlcat' radius.o: In function `.L189': radius.c:(.text+0x11cb): undefined reference to `MD5_Init' radius.c:(.text+0x11ef): undefined reference to `MD5_Update' radius.c:(.text+0x120d): undefined reference to `MD5_Update' radius.c:(.text+0x1219): undefined reference to `MD5_Final' radius.c:(.text+0x1249): undefined reference to `MD5_Init' radius.c:(.text+0x126d): undefined reference to `MD5_Update' radius.c:(.text+0x1288): undefined reference to `MD5_Update' radius.c:(.text+0x1294): undefined reference to `MD5_Final' radius.c:(.text+0x12c2): undefined reference to `mppe_set_keys' radius.o: In function `.L190': radius.c:(.text+0x1355): undefined reference to `MD5_Init' radius.c:(.text+0x1379): undefined reference to `MD5_Update' radius.c:(.text+0x1397): undefined reference to `MD5_Update' radius.c:(.text+0x13b2): undefined reference to `MD5_Update' radius.c:(.text+0x13be): undefined reference to `MD5_Final' radius.c:(.text+0x13f5): undefined reference to `MD5_Init' radius.c:(.text+0x1419): undefined reference to `MD5_Update' radius.c:(.text+0x1434): undefined reference to `MD5_Update' radius.c:(.text+0x1440): undefined reference to `MD5_Final' radius.c:(.text+0x145d): undefined reference to `mppe_recv_key' radius.o: In function `.L191': radius.c:(.text+0x14e5): undefined reference to `strlcpy' radius.c:(.text+0x1520): undefined reference to `maxconnect' radius.c:(.text+0x15c9): undefined reference to `maxoctets_dir' radius.c:(.text+0x1641): undefined reference to `slprintf' radius.c:(.text+0x1673): undefined reference to `bad_ip_adrs' radius.c:(.text+0x16a0): undefined reference to `maxoctets' radius.c:(.text+0x170b): undefined reference to `mppe_keys_set' radius.c:(.text+0x172d): undefined reference to `set_mppe_enc_types' radius.c:(.text+0x1740): undefined reference to `mppe_send_key' radius.c:(.text+0x178d): undefined reference to `slprintf' radius.c:(.text+0x17f0): undefined reference to `slprintf' radius.c:(.text+0x184e): undefined reference to `slprintf' radius.c:(.text+0x18a4): undefined reference to `slprintf' radius.o: In function `radius_chap_verify': radius.c:(.text+0x1a39): undefined reference to `remote_number' radius.c:(.text+0x1a48): undefined reference to `ipparam' radius.c:(.text+0x1b10): undefined reference to `strlcpy' radius.c:(.text+0x1bba): undefined reference to `devnam' radius.c:(.text+0x1da9): undefined reference to `ifname' radius.o: In function `radius_pap_auth': radius.c:(.text+0x1f2b): undefined reference to `devnam' radius.c:(.text+0x1ff7): undefined reference to `remote_number' radius.c:(.text+0x2002): undefined reference to `ipparam' radius.c:(.text+0x20b7): undefined reference to `ifname' libradiusclient.a(avpair.o): In function `rc_avpair_copy': avpair.c:(.text+0x3ee): undefined reference to `novm' libradiusclient.a(avpair.o): In function `rc_avpair_parse': avpair.c:(.text+0x754): undefined reference to `novm' libradiusclient.a(avpair.o): In function `rc_avpair_gen': avpair.c:(.text+0xd70): undefined reference to `novm' avpair.c:(.text+0xd83): undefined reference to `novm' libradiusclient.a(avpair.o): In function `rc_avpair_new': avpair.c:(.text+0xf5a): undefined reference to `novm' libradiusclient.a(buildreq.o): In function `rc_guess_seqnbr': buildreq.c:(.text+0x13): undefined reference to `magic' libradiusclient.a(config.o): In function `rc_conf_srv': config.c:(.text+0x15e): undefined reference to `fatal' libradiusclient.a(config.o): In function `rc_conf_int': config.c:(.text+0x1bf): undefined reference to `fatal' libradiusclient.a(config.o): In function `rc_conf_str': config.c:(.text+0x21e): undefined reference to `fatal' libradiusclient.a(config.o): In function `rc_read_config': config.c:(.text+0x6bb): undefined reference to `fatal' config.c:(.text+0xdec): undefined reference to `novm' libradiusclient.a(dict.o): In function `rc_read_dictionary': dict.c:(.text+0x915): undefined reference to `novm' libradiusclient.a(ip_util.o): In function `rc_own_ipaddress': ip_util.c:(.text+0x1c8): undefined reference to `hostname' libradiusclient.a(clientid.o): In function `rc_read_mapfile': clientid.c:(.text+0x2a5): undefined reference to `novm' libradiusclient.a(sendserver.o): In function `rc_send_server': sendserver.c:(.text+0xb4b): undefined reference to `magic' libradiusclient.a(md5.o): In function `rc_md5_calc': md5.c:(.text+0x21): undefined reference to `MD5_Init' md5.c:(.text+0x37): undefined reference to `MD5_Update' md5.c:(.text+0x46): undefined reference to `MD5_Final' collect2: ld gab 1 als Ende-Status zurück distcc[22459] ERROR: compile (null) on localhost failed make[2]: *** [radius.so] Fehler 1 make[2]: *** Warte auf noch nicht beendete Prozesse... make[2]: Leaving directory `/home/portage/tmp/portage/net-dialup/ppp-2.4.4-r20/work/ppp-2.4.4/pppd/plugins/radius' make[1]: *** [all] Fehler 2 make[1]: Leaving directory `/home/portage/tmp/portage/net-dialup/ppp-2.4.4-r20/work/ppp-2.4.4/pppd/plugins' make: *** [all] Fehler 2 Reproducible: Always Steps to Reproduce: 1. emerge ppp (with x86 keyword enabled) Actual Results: compilation failure emerge --info: Portage 2.1.4.4 (default-linux/x86/2007.0/desktop, gcc-4.1.2, glibc-2.6.1-r0, 2.6.25-tuxonice-r7 i686) ================================================================= System uname: 2.6.25-tuxonice-r7 i686 Intel(R) Pentium(R) M processor 2.00GHz Timestamp of tree: Sat, 16 Aug 2008 08:17:01 +0000 distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled] ccache version 2.4 [enabled] app-shells/bash: 3.2_p33 dev-java/java-config: 1.3.7, 2.1.6-r1 dev-lang/python: 2.4.4-r14, 2.5.2-r6 dev-util/ccache: 2.4-r7 sys-apps/baselayout: 1.12.11.1 sys-apps/sandbox: 1.2.18.1-r2 sys-devel/autoconf: 2.13, 2.61-r2 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1-r1 sys-devel/binutils: 2.18-r3 sys-devel/gcc-config: 1.4.0-r4 sys-devel/libtool: 1.5.26 virtual/os-headers: 2.6.23-r3 ACCEPT_KEYWORDS="x86" CBUILD="i686-pc-linux-gnu" CFLAGS="-march=pentium-m -O2 -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/kde/4.0/env /usr/kde/4.0/share/config /usr/kde/4.0/shutdown /usr/share/config" CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/splash /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d" CXXFLAGS="-march=pentium-m -O2 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="ccache distcc distlocks fixpackages metadata-transfer parallel-fetch sandbox sfperms strict unmerge-orphans userfetch" GENTOO_MIRRORS="http://mirrors.sec.informatik.tu-darmstadt.de/gentoo/ http://mirror.muntinternet.net/pub/gentoo/ http://ftp.uni-erlangen.de/pub/mirrors/gentoo http://gentoo.inode.at/" LANG="de_DE.UTF-8" LC_ALL="de_DE.UTF-8" LINGUAS="de" MAKEOPTS="-j3" PKGDIR="/usr/portage/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/home/portage/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" USE="16bit 7zip X a52 aac aalib accessibility acl acpi aim alsa amarok amd aoss apache2 arts asf automount autoreplace avahi avantgo bash-completion berkdb binary binfilter bl blender-game bluetooth bootsplash branding bzip2 cairo calendar ccache cddb cdparanoia cdr cgi cli connectionstatus contactnotes cpudetection cracklib crypt css cups cvs dbcp dbus dga dhcp divx dmi dom4j dri dts dv dvd dvdr dvdread dxr3 emboss encode esd esx evo excel exif fam fastcgi fat fbcon fbcondecor fbsplash firefox flac flash flv fontconfig fortran ftp gcj gd gdbm geldkarte gif gimp gimpprint glitz gmedia gnokii gnome gnutls gphoto2 gpm gs gstreamer gtk gvim gzip hal hash hbci hfs http ical iconv icq image imagemagick imap inifile innodb ipv6 irc irda isdnlog jabber java java5 javascript jboss jcs jfs john jpeg jpeg2k jpgraph kcal kde kdeenablefinal kdepim kdexdeltas kdgraphics kdm kerberos kipi kqemu lame laptop latex libcaca libnotify libsamplerate lirc log4j logitech-mouse logrotate logwatch lucene lzo mad mail maildir mcal mdnsresponder-compat midi mikmod mime mjpeg mmx mmxext mng modplug mozdevelop mozilla moznocompose moznoirc moznomail mozsvg mozxmlterm mp3 mp4 mp4live mpeg mpeg2 mplayer msn msnextras mudflap mysql mysqli ncurses networkmanager nfs nls nptl nptlonly nsplugin ntfs ntlm ocaml ofx ogg opengl openmp openssl oscar oss pam pcre pda pdf perl php png povray pppd print python qemu-fast qt3 qt3support qt4 quicktime rar rdesktop readline real reflection reiser4 reiserfs samba scanner sdl sensord session sharedmem sms spell spl sql sqlite sqlite3 sse sse2 ssl startup-notification subversion svg svga sysfs syslog tcpd texteffect tga theora threads threadsafe tidy tiff tokenizer truetype unicode usb utempter vcd vidix vim vim-pager vim-syntax visualization vnc vorbis wifi win32codecs wma wmp x264 x86 xanim xcomposite xfs xine xinerama xml xorg xscreensaver xulrunner xv yv12 zip zlib" ALSA_CARDS="intel8x0" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="mouse keyboard synaptics evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="de" USERLAND="GNU" VIDEO_CARDS="fglrx radeon vesa vga fbdev" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LDFLAGS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
This bug is related to Bug 210837.
Please give me the output of emerge -pv ppp and I will try to emerge it with your exact keywords. I cannot imagine why on your box it doesn't link with the much needed "-Wl,--allow-shlib-undefined".
# emerge -pv ppp [ebuild U ] net-dialup/ppp-2.4.4-r20 [2.4.4-r15] USE="dhcp gtk ipv6 pam -activefilter -atm -eap-tls -mppe-mppc -radius -wins-ack%" 0 kB
toolchain breakage maybe?
It worked on my box: x86_64-pc-linux-gnu-ar rv libradiusclient.a avpair.o buildreq.o config.o dict.o ip_util.o clientid.o sendserver.o lock.o util.o md5.o x86_64-pc-linux-gnu-ar: creating libradiusclient.a a - avpair.o a - buildreq.o a - config.o a - dict.o a - ip_util.o a - clientid.o a - sendserver.o a - lock.o a - util.o a - md5.o x86_64-pc-linux-gnu-gcc -Wl,-O1 -shared -Wl,--allow-shlib-undefined -march=nocona -O2 -pipe -fomit-frame-pointer -D_GNU_SOURCE -I. -I../.. -I../../../include -fPIC -DRC_LOG_FACILITY=LOG_DAEMON -DCHAPMS=1 -DMPPE=1 -DMAXOCTETS=1 -o radattr.so radattr.o x86_64-pc-linux-gnu-gcc -Wl,-O1 -shared -Wl,--allow-shlib-undefined -march=nocona -O2 -pipe -fomit-frame-pointer -D_GNU_SOURCE -I. -I../.. -I../../../include -fPIC -DRC_LOG_FACILITY=LOG_DAEMON -DCHAPMS=1 -DMPPE=1 -DMAXOCTETS=1 -o radius.so radius.o libradiusclient.a x86_64-pc-linux-gnu-gcc -Wl,-O1 -shared -Wl,--allow-shlib-undefined -march=nocona -O2 -pipe -fomit-frame-pointer -D_GNU_SOURCE -I. -I../.. -I../../../include -fPIC -DRC_LOG_FACILITY=LOG_DAEMON -DCHAPMS=1 -DMPPE=1 -DMAXOCTETS=1 -o radrealms.so radrealms.o As you can see, -Wl,--allow-shlib-undefined gets appended to LDFLAGS (see /var/tmp/portage/net-dialup/ppp-2.4.4-r20/work/ppp-2.4.4/pppd/plugins). Maybe your make is broken? Spanky, what do you think?
(In reply to comment #5) > As you can see, -Wl,--allow-shlib-undefined gets appended to LDFLAGS (see > /var/tmp/portage/net-dialup/ppp-2.4.4-r20/work/ppp-2.4.4/pppd/plugins). err.. I meant /var/tmp/portage/net-dialup/ppp-2.4.4-r20/work/ppp-2.4.4/pppd/plugins/Makefile line 7
I have the same problem. Shouldn't there be an "export LDFLAGS" statement someplace? I can't find it. Using winpdb, I stuck one in after the "LDFLAGS += -Wl,--allow-shlib-undefined" line in the "/var/tmp/portage/net-dialup/ppp-2.4.4-r20/work/ppp-2.4.4/pppd/plugins/Makefile." The compiler errors disappeared and "ppp-2.4.4-r20" now seems to be working on my computer. Ivar
hmm... I thought LDFLAGS is always set to something! Try to put something like "LDFLAGS=-Wl-O1" in your /etc/make.conf and see if it fixes the issue. If it does, then I will have to export LDFLAGS as well.
(In reply to comment #8) > Try to put something like "LDFLAGS=-Wl-O1" in your /etc/make.conf I made a mistake. The right options are LDFLAGS=-Wl,-O1
(In reply to comment #9) > (In reply to comment #8) > > Try to put something like "LDFLAGS=-Wl-O1" in your /etc/make.conf > I made a mistake. The right options are LDFLAGS=-Wl,-O1 "ppp-2.4.4-r20" does compile when I add "LDFLAGS=-Wl,-O1" to "make.conf." Ivar
latest portage should always set LDFLAGS to something (even just "") however, whether LDFLAGS is set shouldnt matter ... things like "LDFLAGS +=" in Makefiles will work fine even if LDFLAGS is not set, as will "append-ldflags" is there something here to indicate otherwise ?
Currently, "-Wl,--allow-shlib-undefined" is appended to LDFLAGS in the Makefile in the "/var/tmp/.../ppp-2.4.4/pppd/plugins" directory. But the resulting value is not exported in that Makefile. The errors occur when LDFLAGS is used in Makefiles in subdirectories, e.g., in the "/var/tmp/.../ppp-2.4.4/pppd/plugins/rp-pppoe" subdirectory. LDFLAGS is not separately defined in those Makefiles and, hence, is assigned the value "", which is not the value that works.
Fixed in ppp-2.4.4-r21.
that depends on how you descend into subdirs if foo/Makefile does LDFLAGS += -moo, and it then does $(MAKE) -C boo, then foo/boo/Makefile will have -moo appended to LDFLAGS ...
(In reply to comment #14) This may be what is supposed to happen but, in this instance, it doesn't. I ran "winpdb emerge ppp" twice where ppp is the new -r21 version. In one case, when the debugger reached "Source unpacked," I deleted LDFLAGS from the export command in the Makefile in the plugins directory and, then, continued running the emerge. It failed as described in this bug. In the second case, I did not delete LDFLAGS from the export command. This time the emerge succeeded. Here are some extracts from the build.logs (I've put astericks in front of my comments to make things easier to read): **** Both logs have the following lines: "cd pppd/plugins; make all make[1]: Entering directory `/var/tmp/portage/net-dialup/ppp-2.4.4-r21/work/ppp-2.4.4/pppd/plugins' i686-pc-linux-gnu-gcc -shared -Wl,--allow-shlib-undefined -O2 -march=pentium4 -fprefetch-loop-arrays -pipe -ggdb -D_GNU_SOURCE -I.. -I../../include -fPIC -o minconn.so minconn.c" **** Note that the LDFLAGS term, "-shared -Wl,--allow-shlib-undefined," is present as it should be. **** [snip] **** Then: "for d in rp-pppoe pppoatm radius; do make -w -C $d all; done" **** A few lines later, the successful emerge has this line: "i686-pc-linux-gnu-gcc -shared -Wl,--allow-shlib-undefined -O2 -march=pentium4 -fprefetch-loop-arrays -pipe -ggdb -D_GNU_SOURCE -I../../../include/linux -o rp-pppoe.so plugin.o libplugin.a" **** The corresponding line from the failed emerge is this: "i686-pc-linux-gnu-gcc -O2 -march=pentium4 -fprefetch-loop-arrays -pipe -ggdb -D_GNU_SOURCE -I../../../include/linux -o rp-pppoe.so plugin.o libplugin.a" **** The LDFLAGS term is missing. A long list of errors follows this line. **** The relevant lines from the Makefile itself are these: rp-pppoe.so: libplugin.a plugin.o $(CC) $(LDFLAGS) $(CFLAGS) -o rp-pppoe.so plugin.o libplugin.a **** This is the only use of LDFLAGS in this particular Makefile. **** Similar errors occurred in the pppoatm and radius directories. Ivar