amaranth@vela.acs.oakland.edu (Paul Amaranth) (04/01/91)
I have a fairly large Fortran application that has a C front end, along with some misc. C interface functions. What I want to do is to bind in the Fortran runtime so that a user doesn't need to buy the runtime from IBM in order to run the software (everyone gets the C runtime, but the Fortran is a ~$500 option, last time I looked). Well, I have RTFM, but it doesn't seem to offer lots of assistance on this. I tried the -b nso option, but I get a lot of undefined references. Clearly I'm not doing something required. Has anyone had experience doing this? Any info, etc appreciated. -- Paul Amaranth office: (313) 370 4541 (also voicemail) (internet) amaranth@vela.acs.oakland.edu | WANTED: Clever saying (bitnet) amaranth@oakland | to fill this space. (uucp) ...!uunet!umich!vela!amaranth | Puns need not apply.
prener@watson.ibm.com (Dan Prener) (04/02/91)
If you want to bind in a private copy of shared libraries (e.g., with -b nso) then you must explicitly mention the list of system calls that are normally imported with the shared libraries: -bnso -bI:/lib/syscalls.exp This combination should do roughly what you want, except that you have now linked in a non-shared copy of the C library as well. If that is not what you want to do, then you'll have to do a two-step link, first doing a partial link with the -bnso flag, but leaving unresolved references to libc, and then a final link without the -bnso to pick up a shared libc. -- Dan Prener (prener @ watson.ibm.com)