After a fresh 'emerge --sync' set about to an 'emerge -u world' and stumbled across a ppp build failure. The tail end of the build failure for net-dialup/ppp-2.4.4-r1: x86_64-pc-linux-gnu-gcc -O2 -pipe -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP -I../include '-DDESTDIR="/usr"' -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW -DHAVE_CRYPT_H=1 -DUSE_CRYPT=1 -DUSE_PAM -DHAVE_MULTILINK -DUSE_TDB=1 -DPLUGIN -DPPP_FILTER -DINET6=1 -DCBCP_SUPPORT -DMAXOCTETS -c -o chap-md5.o chap-md5.c eap.c: In function `eap_request': eap.c:1552: error: `MD5_CTX' undeclared (first use in this function) eap.c:1552: error: (Each undeclared identifier is reported only once eap.c:1552: error: for each function it appears in.) eap.c:1552: error: syntax error before "mdContext" eap.c:1681: error: `mdContext' undeclared (first use in this function) eap.c: In function `eap_response': eap.c:2043: error: `MD5_CTX' undeclared (first use in this function) eap.c:2043: error: syntax error before "mdContext" eap.c:2248: error: `mdContext' undeclared (first use in this function) make[1]: *** [eap.o] Error 1 make[1]: *** Waiting for unfinished jobs.... make[1]: Leaving directory `/var/tmp/portage/ppp-2.4.4-r1/work/ppp-2.4.4/pppd' make: *** [all] Error 2 !!! ERROR: net-dialup/ppp-2.4.4-r1 failed. Call stack: ebuild.sh, line 1546: Called dyn_compile ebuild.sh, line 937: Called src_compile ppp-2.4.4-r1.ebuild, line 114: Called die !!! compile failed !!! If you need support, post the topmost build error, and the call stack if relevant. emerge --info here: byron ~ # emerge --info Portage 2.1.1_rc1-r7 (default-linux/amd64/2006.0, gcc-3.4.6/amd64-vanilla, glibc-2.4-r3, 2.6.16-gentoo-r8 x86_64) ================================================================= System uname: 2.6.16-gentoo-r8 x86_64 AMD Athlon(tm) 64 X2 Dual Core Processor 4200+ Gentoo Base System version 1.12.4 Last Sync: Thu, 07 Sep 2006 23:00:01 +0000 app-admin/eselect-compiler: 2.0.0_rc2-r1 dev-lang/python: 2.4.3-r3 dev-python/pycrypto: 2.0.1-r5 dev-util/ccache: [Not Present] dev-util/confcache: [Not Present] sys-apps/sandbox: 1.2.18.1 sys-devel/autoconf: 2.13, 2.60 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2 sys-devel/binutils: 2.17 sys-devel/gcc-config: 1.3.13-r3 sys-devel/libtool: 1.5.22 virtual/os-headers: 2.6.16 ACCEPT_KEYWORDS="amd64 ~amd64" AUTOCLEAN="yes" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O2 -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config" CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/eselect/compiler /etc/gconf /etc/java-config/vms/ /etc/revdep-rebuild /etc/terminfo" CXXFLAGS="-O2 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig distlocks fixpackages metadata-transfer sandbox sfperms strict" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo" LINGUAS="en" MAKEOPTS="-j3" PKGDIR="/usr/portage/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude='/distfiles' --exclude='/local' --exclude='/packages'" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="amd64 3ds X a52 aac aalib acpi activefilter ada aim alsa apache2 asf async avi berkdb bidi binary-drivers bitmap-fonts bl blender-game bonjour buttons bzip2 cairo cdr cjk cli cpudetection crypt css cups dhcp dlloader dpms dri dv dvd dvdr dvdread eap-tls edl eds effects elibc_glibc emboss encode esd exif fame fat ffmpeg flac font-server foomaticdb fortran gdbm gif gimp gimpprint gnome gphoto2 gpm gs gstreamer gtk gtk2 guile hal hbci imlib immqt-bc infopipe inkjar input_devices_evdev input_devices_keyboard input_devices_mouse input_devices_wacom ipv6 isdnlog java joystick jpeg kde kernel_linux krb4 ladspa ldap ldapsam linguas_en lm_sensors lzw lzw-tiff mbrola mng mozcalendar mozdevelop mp3 mpeg ncurses nls nptl nptlonly nsplugin nvidia offensive ofx ogg opengl pam pcntl pcre pdf pdflib perl png posix postgres ppds pppd python qt3 qt4 quicktime quotes radius readline reflection samba scanner sdk sdl session smp snmp spell spl ssl subversion svg symlink sysfs tcltk tcpd tga theora threads tidy tiff transcode truetype truetype-fonts type1-fonts unicode usb userland_GNU video_cards_nv video_cards_nvidia video_cards_vesa video_cards_vga vorbis wmf xml xmms xorg xpm xprint xrandr xscreensaver xv xvid yahoo yv12 zlib" Unset: CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, PORTAGE_RSYNC_EXTRA_OPTS
(In reply to comment #0) The same thing, temporary workaround by disabling eap-tls
Works for me. The MD5_CTX type is defined in md5.h . Maybe on your system __MD5_INCLUDE__ is defined through other included header file?
(In reply to comment #2) > Works for me. The MD5_CTX type is defined in md5.h . > Maybe on your system __MD5_INCLUDE__ is defined through other included header > file? > Well, there are many instances of md5.h on my system. Several in each /usr/src/<linux-kernel-version>/ Several in /usr/include for varying programs, athena widgets, php, would it help to get a list of these? If it is dependent on the kernel, I suppose it'd be because I have the eap-tls use flag enabled, and it might require that to be supported in my gentoo-sources massaged config, except that I don't see that declared anywhere in any of these headers. Running: for file in `locate /md5.h`; do grep '__MD5_INCLUDE__' $file; done came up with nothing after an updatedb.
Please look for the cause of your problem. I can't fix it if I don't know what caused it, can I? Hints: 1) make sure the local md5.h file is the one used by the compiler. Place an #error "Local file used" at the beggining of the /var/tmp/portage/ppp-2.4.4/work/ppp-2.4.4/pppd/md5.h file and run make 2) search for __MD5_INCLUDE__ in *all* include files grep -r __MD5_INCLUDE__ /usr/include
(In reply to comment #4) > Please look for the cause of your problem. I can't fix it if I don't know what > caused it, can I? Don't imagine you could, unless part of the gentoo dev/bugfix qualification is a psychic power test. Going with what you suggest for the hints. > > Hints: > 1) make sure the local md5.h file is the one used by the compiler. Place an > #error "Local file used" > at the beggining of the /var/tmp/portage/ppp-2.4.4/work/ppp-2.4.4/pppd/md5.h > file and run make Here's this: byron pppd # vi md5.h byron pppd # make cc -Wall -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP -I../include '-DDESTDIR="/usr"' -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW -DHAVE_CRYPT_H=1 -DUSE_CRYPT=1 -DUSE_PAM -DHAVE_MULTILINK -DUSE_TDB=1 -DPLUGIN -DPPP_FILTER -DINET6=1 -DCBCP_SUPPORT -DMAXOCTETS -c -o eap.o eap.c eap.c: In function `eap_request': eap.c:1552: error: `MD5_CTX' undeclared (first use in this function) eap.c:1552: error: (Each undeclared identifier is reported only once eap.c:1552: error: for each function it appears in.) eap.c:1552: error: syntax error before "mdContext" eap.c:1681: warning: implicit declaration of function `MD5_Init' eap.c:1681: error: `mdContext' undeclared (first use in this function) eap.c:1683: warning: implicit declaration of function `MD5_Update' eap.c:1687: warning: implicit declaration of function `MD5_Final' eap.c: In function `eap_response': eap.c:2043: error: `MD5_CTX' undeclared (first use in this function) eap.c:2043: error: syntax error before "mdContext" eap.c:2248: error: `mdContext' undeclared (first use in this function) make: *** [eap.o] Error 1 > 2) search for __MD5_INCLUDE__ in *all* include files > grep -r __MD5_INCLUDE__ /usr/include > byron ~ # grep -r __MD5_INCLUDE__ /usr/include grep: warning: /usr/include/gnome-xml/libxml: recursive directory loop No Result was returned by that. Except for the recursion warning by grep. Oddly enough I'm finding that one program now reports missing headers, alut.h from the openal project is called out by the flightgear flight sim, new and old profile. Not appropriate to go into here in depth, unless you think this is a sign of a broad misconfiguration on my part. Currently I'm just masking out any greater version of ppp than the current one, so as not to break my ability to tunnel if I need to. Appreciate the suggestions with this, hope the information helps narrow something down.
in eap.c, the line #include "md5.h" is commented!? why!? after uncommenting it, it compiles fine! (BTW: md5.h is included in pppd's sources)
(In reply to comment #6) > in eap.c, the line > #include "md5.h" > is commented!? why!? after uncommenting it, it compiles fine! > > (BTW: md5.h is included in pppd's sources) > I did this and had the same result. Freaky. Guessing upstream went nutto.
i guess it has been introduced with openssl 0.9.8 since the error first occured for me when recompiling ppp after upgrade to openssl 0.9.8b/c
the first comment was about chap-md5.c, not eap.c! Please test the following: 1) ebuild ppp-2.4.4-r1.ebuild unpack 2) uncomment #include "md5.h" from eap.c 3) ebuild ppp-2.4.4-r1.ebuild compile For me, it builds just fine if I don't uncomment the include and fails if I uncomment it: i686-pc-linux-gnu-gcc -march=athlon-xp -O3 -pipe -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP -I../include '-DDESTDIR="/usr"' -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW -DHAVE_CRYPT_H=1 -DUSE_CRYPT=1 -DUSE_PAM -DHAVE_MULTILINK -DUSE_TDB=1 -DPLUGIN -DPPP_FILTER -DINET6=1 -DCBCP_SUPPORT -DMAXOCTETS -c -o eap.o eap.c In file included from /usr/include/openssl/evp.h:84, from /usr/include/openssl/x509.h:67, from /usr/include/openssl/ssl.h:177, from eap-tls.h:37, from eap.c:72: /usr/include/openssl/md5.h:105: error: conflicting types for
the first comment was about chap-md5.c, not eap.c! Please test the following: 1) ebuild ppp-2.4.4-r1.ebuild unpack 2) uncomment #include "md5.h" from eap.c 3) ebuild ppp-2.4.4-r1.ebuild compile For me, it builds just fine if I don't uncomment the include and fails if I uncomment it: i686-pc-linux-gnu-gcc -march=athlon-xp -O3 -pipe -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP -I../include '-DDESTDIR="/usr"' -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW -DHAVE_CRYPT_H=1 -DUSE_CRYPT=1 -DUSE_PAM -DHAVE_MULTILINK -DUSE_TDB=1 -DPLUGIN -DPPP_FILTER -DINET6=1 -DCBCP_SUPPORT -DMAXOCTETS -c -o eap.o eap.c In file included from /usr/include/openssl/evp.h:84, from /usr/include/openssl/x509.h:67, from /usr/include/openssl/ssl.h:177, from eap-tls.h:37, from eap.c:72: /usr/include/openssl/md5.h:105: error: conflicting types for MD5_CTX md5.h:58: error: previous declaration of MD5_CTX was here /usr/include/openssl/md5.h:110: error: conflicting types for MD5_Init md5.h:60: error: previous declaration of MD5_Init was here /usr/include/openssl/md5.h:111: error: conflicting types for MD5_Update md5.h:61: error: previous declaration of MD5_Update was here /usr/include/openssl/md5.h:112: error: conflicting types for MD5_Final md5.h:62: error: previous declaration of MD5_Final was here I guess the latest openssl renamed the MD5_CTX type.
I've discovered what was the problem. The new openssl (0.9.8.c) no longer includes <openssl/md5.h> in openssl/ssl.h. Fixed (without revision bump) in ppp-2.4.3-r16 and ppp-2.4.4-r1, by including <openssl/md5.h> in eap.c. I've tested both ebuilds against dev-libs/openssl-0.9.7j and dev-libs/openssl-0.9.8c.