If php is emerged with imap as a use var, then apache says it cannot load libphp4.so due to undefined symbol pam_start. Emerging php without an imap use causes no problems
Same problem here, until I reverted to gettext-0.11.1.ebuild. I've installed the c-client lib and headers in /usr/local as suggested on www.php.net, and don't have uw-imap installed. I need both gettext and imap to run horde/imp (www.horde.org), so have always had to edit the ebuild to ensure --with-imap and --with-gettext are used, and to REMOVE --with-gd. (gd and gettext don't seem to mix). It was the upgrade to gettext-0.11.1-r1.ebuild that was giving me the undefined symbol pam_start. It's okay again now (with the older gettext).
Please search your config.log for pam. There should be some info why the -lpam is not added to the LIBS. Break your emerge php ebuild after configuration fase and go to the /var/tmp/portage/php.... directoy to find the config.log
Bugfix for me: (It's a Java issue) Search for 'libhpi.so' and add the path to ld.so.conf. (Don't forget to run ldconfig afterwards)
I have the same problem. I did as Xavier asked and found that the problem is with libhpi.so, as mentioned by Roman Weber. Note: the java paths can be fixed more easily by using java-config, which updates /etc/env.d/ and /etc/ld.so.conf. However, that did not fix my problem! ldconfig -p shows libhpi.so, but ld still can't find libhpi.so. What am I missing? This fails the same way: gcc -o x.a x.c -lhpi where x.c is just an empty program. Here is part of the output from PHP's config.log: configure:24630: checking for pam_start in -lpam configure:24649: gcc -o conftest -march=i686 -O3 -pipe -HARD_SERVER_LIMIT=512 - D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DLINUX=22 -DTARGET="apache" - DDEV_RANDOM=/dev/random -DUSE_HSREGEX -DEAPI -DEAPI_MM -Wl,- rpath,/usr/X11R6/lib -L/usr/X11R6/lib conftest.c -lpam -lgmp -lgd -lttf -lhpi - lX11 -lXpm -lpng -lz -ljpeg -lz -lxml2 -ldb-3 -lgdbm -lz -lcrypt -lresolv -lm - ldl -lnsl -lresolv -lcrypt 1>&5 /usr/i686-pc-linux-gnu/bin/ld: cannot find -lhpi collect2: ld returned 1 exit status configure: failed program was: #line 24638 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char pam_start(); int main() { pam_start() ; return 0; }
I'm trying to resolve this issue with the php-4.2.0.ebuild update. Please give me some hours...;-) Roman
This should be fixed within the 4.2.0 ebuild... Needs to be verified.
Is fixed (for me at least) in php-4.2.0. There are other problems not related to this bug, but I think this one can now be set to fixed.
Fixed in 4.2.0 series