HPE GreenLake Administration
- Community Home
- >
- Servers and Operating Systems
- >
- Operating Systems
- >
- Operating System - HP-UX
- >
- Re: Mismatched ABI (not an ELF file)
Operating System - HP-UX
1834828
Members
2324
Online
110070
Solutions
Forums
Categories
Company
Local Language
back
Forums
Discussions
Forums
- Data Protection and Retention
- Entry Storage Systems
- Legacy
- Midrange and Enterprise Storage
- Storage Networking
- HPE Nimble Storage
Discussions
Forums
Discussions
Discussions
Discussions
Forums
Discussions
back
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
- BladeSystem Infrastructure and Application Solutions
- Appliance Servers
- Alpha Servers
- BackOffice Products
- Internet Products
- HPE 9000 and HPE e3000 Servers
- Networking
- Netservers
- Secure OS Software for Linux
- Server Management (Insight Manager 7)
- Windows Server 2003
- Operating System - Tru64 Unix
- ProLiant Deployment and Provisioning
- Linux-Based Community / Regional
- Microsoft System Center Integration
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Blogs
Information
Community
Resources
Community Language
Language
Forums
Blogs
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-04-2007 01:05 AM
04-04-2007 01:05 AM
Mismatched ABI (not an ELF file)
Hi,
Currently we are in the process of upgrading HP-UX version from HP-UX11.11(v1) to HP-UX11.23(v2). As a part of that, we need to move some external shared libraries to the new machine. Apart from the external shared libraries, our application will create some shared libraries by linking the existing external shared libraries. Please note that the extension of the shared libraries in the old m/c is .sl(eg: libXXX.sl).
In the old m/c
If we do file ofsapi.sl
It says ofsapi.sl: PA-RISC1.1 shared library -not stripped
If we do file sld51.sl
It says libsld51.sl: s800 shared library -not stripped
As a requirement in the new m/c, our application should create the shared library name with .so extension(eg:libXXX.so). So we have changed the ld(to create the shared library) command in such a way that the name of the library will be with .so extension and copies all the external libraries to the new m/c. Here we are facing the problem, It is throwing an error saying that
ld: Mismatched ABI (not an ELF file) for -lofsapi -lsld51
If we create a shared library in the new m/c the file type is
libHelloWorldImp.so: ELF-32 shared object file - IA64
Is there anyway to make the two external libraries to ELF-32 shared object file - IA64 so that our application can create shared library of type ELF - 32.
Please let me know in case of any questions.
Best Regards,
Prasad.
Currently we are in the process of upgrading HP-UX version from HP-UX11.11(v1) to HP-UX11.23(v2). As a part of that, we need to move some external shared libraries to the new machine. Apart from the external shared libraries, our application will create some shared libraries by linking the existing external shared libraries. Please note that the extension of the shared libraries in the old m/c is .sl(eg: libXXX.sl).
In the old m/c
If we do file ofsapi.sl
It says ofsapi.sl: PA-RISC1.1 shared library -not stripped
If we do file sld51.sl
It says libsld51.sl: s800 shared library -not stripped
As a requirement in the new m/c, our application should create the shared library name with .so extension(eg:libXXX.so). So we have changed the ld(to create the shared library) command in such a way that the name of the library will be with .so extension and copies all the external libraries to the new m/c. Here we are facing the problem, It is throwing an error saying that
ld: Mismatched ABI (not an ELF file) for -lofsapi -lsld51
If we create a shared library in the new m/c the file type is
libHelloWorldImp.so: ELF-32 shared object file - IA64
Is there anyway to make the two external libraries to ELF-32 shared object file - IA64 so that our application can create shared library of type ELF - 32.
Please let me know in case of any questions.
Best Regards,
Prasad.
3 REPLIES 3
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-04-2007 01:53 AM
04-04-2007 01:53 AM
Re: Mismatched ABI (not an ELF file)
Apparently your new machine has not only a new HP-UX version, but also a different CPU architecture. The old one is PA-RISC, the new one is Itanium. This is a big, fundamental change.
"PA-RISC1.1 shared library" means that the library contains 32-bit PA-RISC code. "PA-RISC2.0 shared library" would mean 64-bit PA-RISC code. "s800 shared library" is not quite familiar to me, maybe it's an even older PA-RISC library type?
As far as I know, the only way to convert the two libraries ELF-32 type is to recompile them from source to native Itanium code.
Currently you're trying to link both native Itanium code and legacy 32-bit PA-RISC code together into a single binary. This may not be supported or even possible, and definitely isn't recommended.
MK
"PA-RISC1.1 shared library" means that the library contains 32-bit PA-RISC code. "PA-RISC2.0 shared library" would mean 64-bit PA-RISC code. "s800 shared library" is not quite familiar to me, maybe it's an even older PA-RISC library type?
As far as I know, the only way to convert the two libraries ELF-32 type is to recompile them from source to native Itanium code.
Currently you're trying to link both native Itanium code and legacy 32-bit PA-RISC code together into a single binary. This may not be supported or even possible, and definitely isn't recommended.
MK
MK
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-04-2007 02:01 AM
04-04-2007 02:01 AM
Re: Mismatched ABI (not an ELF file)
Shalom,
If you were running HP-UX 11.11, the system was PA-RISC. The library in question is not a PA-RISC library never belonged on the system and almost surely did not work.
Cold install is more reliable and avoids such pitfalls.
SEP
If you were running HP-UX 11.11, the system was PA-RISC. The library in question is not a PA-RISC library never belonged on the system and almost surely did not work.
Cold install is more reliable and avoids such pitfalls.
SEP
Steven E Protter
Owner of ISN Corporation
http://isnamerica.com
http://hpuxconsulting.com
Sponsor: http://hpux.ws
Twitter: http://twitter.com/hpuxlinux
Founder http://newdatacloud.com
Owner of ISN Corporation
http://isnamerica.com
http://hpuxconsulting.com
Sponsor: http://hpux.ws
Twitter: http://twitter.com/hpuxlinux
Founder http://newdatacloud.com
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-04-2007 10:02 PM
04-04-2007 10:02 PM
Re: Mismatched ABI (not an ELF file)
>we need to move some external shared libraries to the new machine.
If you just copy your complete application over to IPF, you can run it under Aries.
If you need performance, you'll need to recompile everything.
>MK: "PA-RISC2.0 shared library" would mean 64-bit PA-RISC code.
No, 2.0 is still 32 bit. "ELF-64 shared object file - PA-RISC 2.0 (LP64)" is 64 bit.
>MK: "s800 shared library" is not quite familiar to me, maybe it's an even older PA-RISC library type?
Yes, this is the unsupported PA 1.0. The last release this was valid was 10.10.
>MK: As far as I know, the only way to convert the two libraries ELF-32 type is to recompile them from source to native Itanium code.
Right.
>SEP: Cold install is more reliable and avoids such pitfalls.
They had to do that to get to IPF.
If you just copy your complete application over to IPF, you can run it under Aries.
If you need performance, you'll need to recompile everything.
>MK: "PA-RISC2.0 shared library" would mean 64-bit PA-RISC code.
No, 2.0 is still 32 bit. "ELF-64 shared object file - PA-RISC 2.0 (LP64)" is 64 bit.
>MK: "s800 shared library" is not quite familiar to me, maybe it's an even older PA-RISC library type?
Yes, this is the unsupported PA 1.0. The last release this was valid was 10.10.
>MK: As far as I know, the only way to convert the two libraries ELF-32 type is to recompile them from source to native Itanium code.
Right.
>SEP: Cold install is more reliable and avoids such pitfalls.
They had to do that to get to IPF.
The opinions expressed above are the personal opinions of the authors, not of Hewlett Packard Enterprise. By using this site, you accept the Terms of Use and Rules of Participation.
Company
Events and news
Customer resources
© Copyright 2025 Hewlett Packard Enterprise Development LP