- Community Home
- >
- Servers and Operating Systems
- >
- Operating Systems
- >
- Operating System - Linux
- >
- Can 32-bit executable do explicit load of 64-bit s...
Categories
Company
Local Language
Forums
Discussions
Forums
- Data Protection and Retention
- Entry Storage Systems
- Legacy
- Midrange and Enterprise Storage
- Storage Networking
- HPE Nimble Storage
Discussions
Discussions
Discussions
Forums
Forums
Discussions
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
Discussion Boards
Discussion Boards
Community
Resources
Forums
Blogs
- 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
тАО08-16-2006 01:59 AM
тАО08-16-2006 01:59 AM
Can 32-bit executable do explicit load of 64-bit shared library?
The various application groups refuse to convert to 64-bit code due to the amount of regression testing that would be required (8-12 months). Instead they have requested that the API be recompiled as 32-bit.
Which simply moves the linking issue from them to me. Being low man on the totem pole I can't push it back to them. So is it possible for a 32-bit executable to call a 64-bit shared library? If not, where is it documented so I can show upper management?
Thanks.
Michael P. Smith
- Tags:
- ABI mismatch
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО08-16-2006 02:07 AM
тАО08-16-2006 02:07 AM
Re: Can 32-bit executable do explicit load of 64-bit shared library?
I'm resonably sure you can tell the program to load a library that is 64 bit.
I'm also reasonably sure that if the library does anything, even the slightest thing that involves 64 bit address space that the 32 bit executable will explode very nicely.
You can run a pure 32 application on a 64 bit OS. No problem with that. Trying to create a hybrid will probably cause problems.
Convert the 32 bit application to 64 bit, then all the calls in the library will work.
If the programmers didn't sue any 64 features in this fabled libarary, why is it 64 bit?
I rate the chances of this working as between slim and none.
SEP
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
тАО08-16-2006 02:15 AM
тАО08-16-2006 02:15 AM
Re: Can 32-bit executable do explicit load of 64-bit shared library?
I've also found in the HP-UX 64-Bit Porting and Transition Guide, chapter 1, page 5:
"Linking 32-bit and 64-bit object files (.o, .sl, .a) together is not
supported. All modules in a program must be linked from either 32-bit
objects or 64-bit objects."
So it sounds like it isn't possible and I found my official documentation.
Of course, I find this AFTER posting my question ;) I'll leave the question open for a day or two incase someone proves this information to be false, or misinterpreted by me ;)
Thanks.
Michael P. Smith
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО08-16-2006 02:28 AM
тАО08-16-2006 02:28 AM
Re: Can 32-bit executable do explicit load of 64-bit shared library?
In any event, there is a workaround but you aren't going to like it because it involves a major code rewrite. I've had to do this where both 32-bit and 64-bit libraries were simply not available and yet the application had to access for example database data for which there were only 64-bit libraries and an application toolkit thatwas only available in 32-bit form. You have to fork() into two processes and one of these then exec's a 32-bit executable. You can then communicate between the two halves via pipes. You can also mix 32 and 64 bit communication via shared memory but you have to follow the rules for this very carefully.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО08-16-2006 05:28 AM
тАО08-16-2006 05:28 AM
Re: Can 32-bit executable do explicit load of 64-bit shared library?
Bill Hassell, sysadmin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО08-16-2006 09:26 AM
тАО08-16-2006 09:26 AM
Re: Can 32-bit executable do explicit load of 64-bit shared library?
>Bill: 32bit programs that call 64bit libraries will have trashed stack values,
You won't even get this far. The linker or dld will prevent this from even loading.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО08-16-2006 12:32 PM
тАО08-16-2006 12:32 PM
Re: Can 32-bit executable do explicit load of 64-bit shared library?
Either the chicken has to go 64-bit, or the egg has to go back to 32-bit.
Or... not to hold-out false hope, and besides, migrating the legacy to 64-bit is the "correct" answer, how often is this boundary expected to be crossed, and how much 'state' in the 32-bit legacy has to be visible to the newer 64-bit stuff? If it is sufficiently infrequent and there is sufficiently little state shared between them, you could put the 64-bit parts into another process and communicate between the two via some form of IPC.
Not that it will help your situation, and I'm not sure when (is it even?) possible to have 64-bit COBOL, but if you get frustrated speaking with upper management, and want to say something career limiting :) you could point-out that the "time to migrate to 64-bit" clock started ticking in November of 1997 with the release of HP-UX 11.0...
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО08-16-2006 12:52 PM
тАО08-16-2006 12:52 PM
Re: Can 32-bit executable do explicit load of 64-bit shared library?
Of course, closer to home for me (also from Dijkstra):"In the good old days physicists repeated each other's experiments, just to be sure. Today they stick to FORTRAN, so that they can share each other's programs, bugs included."
----------------------------------------
Sadly, like reading Dilbert, it's plumb scary how much truth there is in these two observations.