When emerging openldap with useflags perl and minimal set an error is produced during compiletime stating that EXTERN.h can not be found. Reproducible: Always Steps to Reproduce: 1. Build perl with minimal useflag set 2. Try to emerge openlddap 3. Actual Results: Emerge of openldap fails with error: ../../../build/mkversion -v "2.1.30" back_perl > version.c /bin/sh /var/tmp/portage/openldap-2.1.30-r5/work/openldap-2.1.30/libtool --mode=compile cc -march=athlon-xp -O2 -pipe -fomit-frame-pointer -I../../../include -I../../../include -I.. -I./.. -c init.c mkdir .libs cc -march=athlon-xp -O2 -pipe -fomit-frame-pointer -I../../../include -I../../../include -I.. -I./.. -c init.c -fPIC -DPIC -o .libs/init.lo init.c:22:20: EXTERN.h: No such file or directory init.c:23:18: perl.h: No such file or directory In file included from init.c:25: perl_back.h:5:18: perl.h: No such file or directory In file included from init.c:25: perl_back.h:39: error: syntax error before '*' token perl_back.h:39: warning: data definition has no type or storage class perl_back.h:44: error: syntax error before "SV" perl_back.h:44: warning: no semicolon at end of struct or union perl_back.h:46: error: syntax error before '}' token perl_back.h:46: warning: data definition has no type or storage class init.c:29: error: syntax error before "void" init.c:29: error: syntax error before '*' token init.c:31: error: syntax error before '*' token init.c:31: warning: data definition has no type or storage class init.c: In function `perl_back_initialize': init.c:72: warning: assignment makes pointer from integer without a cast init.c: In function `perl_back_db_init': init.c:124: error: syntax error before ')' token init.c:127: error: syntax error before ')' token init.c: In function `perl_back_db_open': init.c:142: error: `perl_back' undeclared (first use in this function) init.c:142: error: (Each undeclared identifier is reported only once init.c:142: error: for each function it appears in.) init.c:142: error: syntax error before ')' token init.c:147: error: `dSP' undeclared (first use in this function) init.c:147: error: `ENTER' undeclared (first use in this function) init.c:147: error: `SAVETMPS' undeclared (first use in this function) init.c:149: error: `sp' undeclared (first use in this function) init.c:152: error: `PUTBACK' undeclared (first use in this function) init.c:157: error: `G_SCALAR' undeclared (first use in this function) init.c:160: error: `SPAGAIN' undeclared (first use in this function) init.c:166: error: `POPi' undeclared (first use in this function) init.c:168: error: `FREETMPS' undeclared (first use in this function) init.c:168: error: `LEAVE' undeclared (first use in this function) init.c: In function `perl_back_xs_init': init.c:181: error: `dXSUB_SYS' undeclared (first use in this function) make[3]: *** [init.lo] Error 1 make[3]: Leaving directory `/var/tmp/portage/openldap-2.1.30-r5/work/openldap-2.1.30/servers/slapd/back-perl' make[2]: *** [.backend] Error 1 make[2]: Leaving directory `/var/tmp/portage/openldap-2.1.30-r5/work/openldap-2.1.30/servers/slapd' make[1]: *** [all-common] Error 1 make[1]: Leaving directory `/var/tmp/portage/openldap-2.1.30-r5/work/openldap-2.1.30/servers' make: *** [all-common] Error 1 !!! ERROR: net-nds/openldap-2.1.30-r5 failed. !!! Function src_compile, Line 147, Exitcode 2 !!! make failed !!! If you need support, post the topmost build error, NOT this status message. Expected Results: Tell me that perl was built with minimal useflag which apparently removes EXTERN.h (amongst other things). Unsetting the minimal useflag and reemerging perl fixed the problem. emerge info: Portage 2.0.51.22-r2 (default-linux/x86/2005.0, gcc-3.3.5-20050130, glibc-2.3.5-r0, 2.6.12-gentoo-r6 i686) ================================================================= System uname: 2.6.12-gentoo-r6 i686 AMD Athlon(tm) XP 2400+ Gentoo Base System version 1.6.13 dev-lang/python: 2.3.5 sys-apps/sandbox: 1.2.11 sys-devel/autoconf: 2.13, 2.59-r6 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.5 sys-devel/binutils: 2.15.92.0.2-r10 sys-devel/libtool: 1.5.18-r1 virtual/os-headers: 2.6.11-r2 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-march=athlon-xp -O2 -pipe -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/share/config /var/bind /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-march=athlon-xp -O2 -pipe -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig distlocks sandbox sfperms strict" GENTOO_MIRRORS="ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/ http://ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/ ftp://mir1.ovh.net/gentoo-distfiles/" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="3dnow acpi apache2 bash-completion berkdb bzlib crypt curl curlwrappers ftp gd gdbm gif imap jpeg kerberos libwww maildir mmx mysql pam pam-mysql pdflib perl php png posix postgres python readline sasl shaper sockets softquota spl ssl svg tcpd tidy tiff truetype unicode x86 xml xml2 xmlrpc zlib userland_GNU kernel_linux elibc_glibc" Unset: ASFLAGS, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS, PORTDIR_OVERLAY
perl with USE="minimal" is not meant for general use on systems that need full perl. Fixing all the ebuilds depending on perl to check for this flag would be IMHO just a *lot* of not really useful work.
Well I did a *lot* of not really usefull work to find out what was going on. The minimal flag has always been set on this server and for some reason openldap used to emerge and run. I don't know if it's because of a new perl or ldap-version, but it stopped working without warning. The least I would expect is a warning when emerging perl with the minimal flag set.
IMHO it is a bug. according to profiles/use.desc: "minimal - Install a very minimal build (disables, for example, plugins, fonts, most drivers, non-critical features)" there's nothing about that flag can couse any kind of problems during compilation other packages. openldap and each package with known problems like this, should check if it's dependencies are compiled in satisfy way
fixed in cvs.
Cool, Cheers!