[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

Re: PAM...

On Wed, Apr 19, 2000 at 06:39:34PM +0530, Nawab Ali wrote:
> Hi Arun!
> Since you were just about the only one who responded to my
> query,I thought I'd get in touch with you.I am mailing you 
> the exact linker command line (as I get it on screen).See,
> if you can figure out why I can't compile my PAM app.

It's still a better idea to mail it to the list, as it'll
benefit other guys too. So I'm cc'ing it there.

With exactly the same command line, I don't get any linker

$ cat test.cc
extern int pam_start;

        pam_start = 0;
$ c++ test.cc -lpam -lpam_misc -ldl

So I suspect that something is wrong with your libpam.so. On my redhat 6.1

$ md5sum /lib/libpam*
7192d822911dbf0019bff1805efb35fc  /lib/libpam.so
7192d822911dbf0019bff1805efb35fc  /lib/libpam.so.0
7192d822911dbf0019bff1805efb35fc  /lib/libpam.so.0.68
078ff9ae4f2d2fc53840275bcc1077cb  /lib/libpam_misc.a
48fbc3736652214e574e6bc2a3edf670  /lib/libpam_misc.so
48fbc3736652214e574e6bc2a3edf670  /lib/libpam_misc.so.0
48fbc3736652214e574e6bc2a3edf670  /lib/libpam_misc.so.0.68

You can verify that the checksums match.


> Thanx.....
> Nawab.
> P.S: In case you haven't figured out already,this is the first
> time I am using a .so library.I'd appreciate it if you could give
> me a crash-course on how to work with a .so library file. 

> //This is how I'm compiling the app.
> g++ -v authen.cpp -o authen -lpam -lpam_misc -ldl
> Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/specs
> gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)
>  /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=91 -D__ELF__ -Dunix -Di386 -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__i386__ -D__linux__ -D__unix -D__i386 -D__linux -Asystem(posix) -D__EXCEPTIONS -Asystem(unix) -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -D__tune_i386__ authen.cpp /tmp/ccpckDaY.ii
> GNU CPP version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release) (i386 Linux/ELF)
> #include "..." search starts here:
> #include <...> search starts here:
>  /usr/include/g++-2
>  /usr/i386-redhat-linux/include
>  /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include
>  /usr/include
> End of search list.
>  /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/cc1plus /tmp/ccpckDaY.ii -quiet -dumpbase authen.cc -version -o /tmp/ccsqnq7S.s
> GNU C++ version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release) (i386-redhat-linux) compiled by GNU C version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release).
>  as -V -Qy -o /tmp/cc3lKQA1.o /tmp/ccsqnq7S.s
> GNU assembler version 2.9.1 (i386-redhat-linux), using BFD version
>  /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/collect2 -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -o authen /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/crtbegin.o -L/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66 -L/usr/i386-redhat-linux/lib /tmp/cc3lKQA1.o -lpam -lpam_misc -ldl -lstdc++ -lm -lgcc -lc -lgcc /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/crtend.o /usr/lib/crtn.o
> /tmp/cc3lKQA1.o: In function `main':
> /tmp/cc3lKQA1.o(.text+0x57): undefined reference to `pam_start(char const *, char const *, pam_conv const *, pam_handle **)'
> /tmp/cc3lKQA1.o(.text+0x70): undefined reference to `pam_authenticate(pam_handle *, int)'
> /tmp/cc3lKQA1.o(.text+0x89): undefined reference to `pam_acct_mgmt(pam_handle *, int)'
> /tmp/cc3lKQA1.o(.text+0xeb): undefined reference to `pam_end(pam_handle *, int)'
> /tmp/cc3lKQA1.o(.data+0x0): undefined reference to `misc_conv(int, pam_message const **, pam_response **, void *)'
> collect2: ld returned 1 exit status