Operating System - HP-UX
1832617 Members
2415 Online
110043 Solutions
New Discussion

Re: ABI mismatch of sudo object files vs. HP libpam

 
Ralph Grothe
Honored Contributor

ABI mismatch of sudo object files vs. HP libpam

I'm stuck in the linking phase of a sudo build.

I get the dreaded ABI mismatch from the linker during make

# make
/opt/ansic/bin/cc -o sudo check.o env.o getspwuid.o gettime.o goodpath.o fileops.o find_
path.o interfaces.o logging.o parse.o set_perms.o sudo.o sudo_edit.o tgetpass.o zero_bytes.o
sudo_auth.o pam.o sudo.tab.o lex.yy.o alloc.o defaults.o err.o utimes.o fnmatch.o strlcpy.o strl
cat.o closefrom.o snprintf.o getprogname.o +DD64 -L/usr/lib -L/usr/local/lib -L/lib/pa20_64 -ls
ec -lpam -ldl
ld: Mismatched ABI (not an ELF file) for -lpam
Fatal error.
*** Error exit code 1

Stop.


I can see this mismatch alone from the magic

e.g.

# find . -name pam.o -exec file {} \;
./pam.o: ELF-64 relocatable object file - PA-RISC 2.0 (LP64)

against the HP-UX shipped libpam

# find /usr/lib -name libpam\*|xargs file
/usr/lib/nls/msg/C/libpam.cat: NLS message catalog, 40 messages
/usr/lib/libpam.1: s800 shared library -not stripped
/usr/lib/libpam.sl: s800 shared library -not stripped
/usr/lib/security/libpam_unix.1: PA-RISC1.1 shared library -not stripped
/usr/lib/security/libpam_updbe.1: PA-RISC1.1 shared library -not stripped


Where can I get a compatible libpam,
or what compiler switches and linker flags should I use to avoid this mismatch?

Do I need to build sudo with PAM support at all on HP-UX 11.00 (sounds sensible to me)?

If all fails, where would I get a prebuild sudo?
The HP-UX porters seem to have abandoned of all pre-11i stuff from their FTP mirrors. :-(

Madness, thy name is system administration
1 REPLY 1
Stephen Keane
Honored Contributor

Re: ABI mismatch of sudo object files vs. HP libpam

You could try swapping the order of your library sources around

from

-L/usr/lib -L/usr/local/lib -L/lib/pa20_64

to

-L/lib/pa20_64 -L/usr/lib -L/usr/local/lib

I don't think that would work though, as you don't appear to have a 64-bit version of libpam.sl, which would be in /usr/lib/pa20_64 if you had one (I don't either). The alternative would be to try and build sudo for 1.1 architecture (+DD32)