Operating System - HP-UX
1748218 Members
4309 Online
108759 Solutions
New Discussion

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)