Bug #12636 Updated: non-linked libpam function?
| From: | scarfboy at yahoo dot com | Date: | Tue, 07 Aug 2001 23:51:50 +0000 |
| Subject: | Bug #12636 Updated: non-linked libpam function? | ||
| References: | 1 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-62513@lists.php.net to get a copy of this message | ||
ID: 12636
User updated by: scarfboy@yahoo.com
Reported By: scarfboy@yahoo.com
Status: Open
Bug Type: IMAP related
Operating System: Linux (SuSE 7.1)
PHP Version: 4.0.6
New Comment:
ah... last time i tried to use cvs it was so annoying i
decided it's an unnecessary evil. I was under the
impression they were patches. well, whatever.
anyhow, in the latest cvs, this problem is caught by the
makefile. well, sort of. in config.log i see normal
`
undefined reference to whatever''' lines.. all starting
with pam_. It can't find the libpam library. Which is
weird, since it's in my LD_LIBRARY_PATH and all...
The message configure itself gives is:
``configure: error: This c-client library is build with
SSL support.'', and the message to ``Add
--with-imap-ssl<=DIR> to your configure line. Check
config.log for details.''
The relevant part of config.log:
configure:24000: checking for IMAP support
configure:24287: checking for pam_start in -lpam
configure:24306: gcc -o conftest -g -O2 -DEAPI_MM
-DSINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D_LARGEF/usr/i486-suse-linux/bin/ld: cannot find -lpam
collect2: ld returned 1 exit status
configure: failed program was:
#line 24295 "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; }
configure:24334: checking for crypt in -lcrypt
configure:24850: gcc -o conftest -g -O2 -DEAPI_MM
-DSINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D_LARGEF/usr/lib/libc-client.so: undefined reference to
`pam_end'
/usr/lib/libc-client.so: undefined reference to
`pam_authenticate'
/usr/lib/libc-client.so: undefined reference to
`pam_setcred'
/usr/lib/libc-client.so: undefined reference to
`pam_acct_mgmt'
/usr/lib/libc-client.so: undefined reference to `pam_start'
collect2: ld returned 1 exit status
configure: failed program was:
#line 24825 "configure"
#include "confdefs.h"
void mm_log(void){}
void mm_dlog(void){}
void mm_flags(void){}
void mm_fatal(void){}
void mm_critical(void){}
void mm_nocritical(void){}
void mm_notify(void){}
void mm_login(void){}
void mm_diskerror(void){}
void mm_status(void){}
void mm_lsub(void){}
void mm_list(void){}
void mm_exists(void){}
void mm_searched(void){}
void mm_expunged(void){}
char mail_open();
int main() {
mail_open(0,"",0);
return 0;
}
Previous Comments:
------------------------------------------------------------------------
[2001-08-07 19:21:35] jeroen@php.net
Goto snaps.php.net, and get the latest .gz. It works exactly the same as the official release, and
is lagging no more than 3 hours to CVS - no problem in this case
------------------------------------------------------------------------
[2001-08-07 19:19:08] scarfboy@yahoo.com
Sure. I basically copied it from the phpinfo page that was
running on the php module that came with SuSE 7.1, and
tweaked it a bit. Like i removed the things that kept me
from compiling it, and removed stuff i knew i wouldn't
need.
There's a handful of other functions it's complaining
about. Bloody hell, why can't stuff like this ever just
WORK? *grumble*
Ermm anyhow. I never used CVS.. I never programmed
something big enough to make it useful enough. gimme a
bunch of commands to type and i'll do it.
./configure --prefix=/usr --bindir=/usr/bin
--libdir=/usr/lib --with-exec-dir=/usr/lib/php/bin
--with-pgsql=/usr --with-gd=/usr/local
--with-tiff-dir=/usr --with-jpeg-dir=/usr
--with-png-dir=/usr --with-xpm-dir=/usr/X11R6
--with-pdflib=/usr --with-zlib=yes --with-xml --with-ttf
--with-readline --with-ftp --with-java --with-curl
--enable-versioning --with-ming=/usr --enable-bcmath
--enable-trans-sid --with-imap
--enable-inline-optimization --enable-track-vars
--enable-magic-quotes --enable-safe-mode --enable-sockets
--enable-sysvsem --enable-sysvshm --enable-shmop
--enable-calendar --enable-exif --enable-ftp
--enable-memory-limit --enable-wddx
--with-config-file-path=/etc/httpd/
--with-apxs=/usr/sbin/apxs
--with-exec-dir=/usr/lib/apache/bin --without-mysql
------------------------------------------------------------------------
[2001-08-07 19:08:21] sniper@php.net
What was the configure line used to configure PHP?
Could you please try the latest CVS snapshot from http://snaps.php.net/ since there have been few fixes
in it.
--Jani
------------------------------------------------------------------------
[2001-08-07 19:05:04] scarfboy@yahoo.com
I just compiled PHP 4.0.6 from the sources, (well, after
fighting with it a bit, but never mind that) and apache
won't load the module. When i try to start apache:
Syntax error on line 147 of /etc/httpd/httpd.conf:
Cannot load /usr/lib/apache/libphp4.so into server:
undefined symbol: pam_end
(line 147 is the one that loads the module)
From both someone else's report and my trial and error, i
figured it is the imap module that is the problem.
I do have the libpam library and the function is in that
library:
# objdump -T /lib/libpam.so.0.72 | grep pam_end
00001b40 g DF .text 0000025f Base pam_end
The thing is that the php module isn't linked with this.
Now i don't know enough about all this funky dynamic stuff
to fix this.. (or even know for sure that's the problem)
but it strikes me that if the imap module depends on this
library it should put that in its makefile or whereever.
I can live without imap, but i do want it sometime..
------------------------------------------------------------------------
Edit this bug report at http://bugs.php.net/?id=12636&edit=1