Re: framemaker for linux

1999-12-17 Thread Andrew Atrens

On Fri, 17 Dec 1999, Doug White wrote:

> Date: Fri, 17 Dec 1999 20:45:40 -0800 (PST)
> From: Doug White <[EMAIL PROTECTED]>
> To: "Atrens, Andrew (A.B.) [EXCHANGE:SKY:1U33]"
> <[EMAIL PROTECTED]>
> Cc: [EMAIL PROTECTED]
> Subject: Re: framemaker for linux
> 
> On Thu, 16 Dec 1999, Andrew Atrens wrote:
> 
> > 
> > All,
> > 
> > This might be a linux ABI question, or it might be an `ld.so' question,
> > so arguably I could have sent this to emulation, questions or since I run
> > -current, current, or perhaps hackers, at any rate here goes -
> > 
> > 
> > I've got `framemaker for linux' and am getting -
> > 
> > # maker5X.exe 
> > maker5X.exe: error in loading shared libraries
> > : undefined symbol: __register_frame_info
> > 
> 
> I believe this is a libc issue.  I remember running into this before,
> although on the FreeBSD ABI (I _think_).


Quite possibly since at the root of it, it's a gcc/egcs incompatibility.  

The problem is described quite nicely in the glibc FAQ -


| 2.8.When I run an executable on one system which I compiled on
| another, I get dynamic linker errors.  Both systems have the same
| version of glibc installed.  What's wrong?
| 
| {ZW} Glibc on one of these systems was compiled with gcc 2.7 or 2.8, the   
| other with egcs (any version).  Egcs has functions in its internal
| `libgcc.a' to support exception handling with C++.  They are linked into
| any program or dynamic library compiled with egcs, whether it needs them
| or
| not.  Dynamic libraries then turn around and export those functions again
| unless special steps are taken to prevent them.
|   
| When you link your program, it resolves its references to the exception
| functions to the ones exported accidentally by libc.so.  That works fine
| as
| long as libc has those functions.  On the other system, libc doesn't have
| those functions because it was compiled by gcc 2.8, and you get undefined
| symbol errors.  The symbols in question are named things like
| `__register_frame_info'.

The best thing to do is get the glibc-2.1.2-11.i386.rpm from redhat and
install it with -

rpm --ignoreos --root=/usr/compat/linux --nodeps -i glibc-2.1.2-11.i386.rpm 

This version apparently has stubs for __register_frame_info and friends
and so will work irregardless of which gcc it was built with.

Andrew.

-- 
+--
| Andrew Atrens Nortel Networks, Ottawa, Canada. |
| All opinions expressed are my own,  not those of any employer. |
   --+
  Heller's Law: The first myth of management is that it exists.   
  Johnson's Corollary: Nobody really knows what is going on
   anywhere within the organization.   



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Re: framemaker for linux

1999-12-17 Thread Doug White

On Thu, 16 Dec 1999, Andrew Atrens wrote:

> 
> All,
> 
> This might be a linux ABI question, or it might be an `ld.so' question,
> so arguably I could have sent this to emulation, questions or since I run
> -current, current, or perhaps hackers, at any rate here goes -
> 
> 
> I've got `framemaker for linux' and am getting -
> 
> # maker5X.exe 
> maker5X.exe: error in loading shared libraries
> : undefined symbol: __register_frame_info
> 

I believe this is a libc issue.  I remember running into this before,
although on the FreeBSD ABI (I _think_).

Doug White|  FreeBSD: The Power to Serve
[EMAIL PROTECTED] |  www.FreeBSD.org



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



framemaker for linux

1999-12-16 Thread Andrew Atrens


All,

This might be a linux ABI question, or it might be an `ld.so' question,
so arguably I could have sent this to emulation, questions or since I run
-current, current, or perhaps hackers, at any rate here goes -


I've got `framemaker for linux' and am getting -

# maker5X.exe 
maker5X.exe: error in loading shared libraries
: undefined symbol: __register_frame_info

 # nm -A *.exe *.so | grep __register_frame_info
maker5X.exe: U __register_frame_info
libjpeg.so:0001fb50 T __register_frame_info
libjpeg.so:0001fbd0 T __register_frame_info_table
libpbm.so:4d40 T __register_frame_info
libpbm.so:4dc0 T __register_frame_info_table
libpgm.so:1b40 T __register_frame_info
libpgm.so:1bc0 T __register_frame_info_table
libpng.so:00018f40 T __register_frame_info
libpng.so:00018fc0 T __register_frame_info_table
libpnm.so:3b30 T __register_frame_info
libpnm.so:3bb0 T __register_frame_info_table
libppm.so:5290 T __register_frame_info
libppm.so:5310 T __register_frame_info_table
libz.so:c140 T __register_frame_info
libz.so:c1c0 T __register_frame_info_table


I've done the brandelf thing, and the LD_LIBRARY_PATH thing, and even
tried LD_IGNORE_MISSING_OBJECTS to no avail.

Here's what truss says -


# truss ./maker5X.exe 
syscall linux_brk(0x0)
returns 141787136 (0x8738000)
syscall linux_open("/etc/ld.so.preload",0,05033211710)
returns 3 (0x3)
syscall linux_newfstat(3,0xbfbff2e4)
returns 0 (0x0)
syscall linux_mmap(0xbfbff320)
returns 678195200 (0x286c7000)
syscall close(3)
returns 0 (0x0)
syscall munmap(0x286c7000,0x0)
returns 0 (0x0)
syscall linux_open("./libm.so.6",0,015133027456)
errno -2 'No such file or directory'
syscall linux_open("/etc/ld.so.cache",0,05033211710)
returns 3 (0x3)
syscall linux_newfstat(3,0xbfbff1e4)
returns 0 (0x0)
syscall linux_mmap(0xbfbff220)
returns 678240256 (0x286d2000)
syscall close(3)
returns 0 (0x0)
syscall linux_open("/lib/libm.so.6",0,05033211710)
returns 3 (0x3)
syscall linux_mmap(0xbfbff22c)
returns 678252544 (0x286d5000)
syscall munmap(0x286d5000,0x1000)
returns 0 (0x0)
syscall linux_mmap(0xbfbff1d8)
returns 678252544 (0x286d5000)
syscall mprotect(0x286ed000,0x6e0,0x0)
returns 0 (0x0)
syscall linux_mmap(0xbfbff1d8)
returns 678350848 (0x286ed000)
syscall close(3)
returns 0 (0x0)
syscall linux_open("./libc.so.6",0,015133027456)
errno -2 'No such file or directory'
syscall linux_open("/lib/libc.so.6",0,05033211710)
returns 3 (0x3)
syscall linux_mmap(0xbfbff21c)
returns 678354944 (0x286ee000)
syscall munmap(0x286ee000,0x1000)
returns 0 (0x0)
syscall linux_mmap(0xbfbff1c8)
returns 678354944 (0x286ee000)
syscall mprotect(0x2877f000,0x133c8,0x0)
returns 0 (0x0)
syscall linux_mmap(0xbfbff1c8)
returns 678948864 (0x2877f000)
syscall linux_mmap(0xbfbff1c8)
returns 678981632 (0x28787000)
syscall close(3)
returns 0 (0x0)
syscall linux_open("./libdl.so.2",0,015133027456)
errno -2 'No such file or directory'
syscall linux_open("/lib/libdl.so.2",0,05033211710)
returns 3 (0x3)
syscall linux_mmap(0xbfbff20c)
returns 679030784 (0x28793000)
syscall munmap(0x28793000,0x1000)
returns 0 (0x0)
syscall linux_mmap(0xbfbff1b8)
returns 679030784 (0x28793000)
syscall mprotect(0x28795000,0x428,0x0)
returns 0 (0x0)
syscall linux_mmap(0xbfbff1b8)
returns 679038976 (0x28795000)
syscall close(3)
returns 0 (0x0)
syscall munmap(0x286d2000,0x235b)
returns 0 (0x0)
syscall linux_personality(0x0)
returns 0 (0x0)
syscall getpid()
returns 8490 (0x212a)
./maker5X.exesyscall write(2,0xbfbff71c,13)
returns 13 (0xd)
: error in loading shared libraries
syscall write(2,0x286cf1c8,36)
returns 36 (0x24)
syscall write(2,0x286ce9d4,0)
returns 0 (0x0)
: syscall write(2,0x286cf1c2,2)
returns 2 (0x2)
undefined symbol: __register_frame_infosyscall write(2,0xbfbff518,39)
returns 39 (0x27)
syscall write(2,0x286cf1c7,0)
returns 0 (0x0)
syscall write(2,0x286cf1c7,0)
returns 0 (0x0)

syscall write(2,0x286cf1c5,1)
returns 1 (0x1)
syscall exit(0x7f)
process exit, rval = 32512


I'm probably missing something obvious. Any help y'all can provide would
be greatly appreciated!


Cheers,

Andrew.

-- 
+--
| Andrew Atrens Nortel Networks, Ottawa, Canada. |
| All opinions expressed are my own,  not those of any employer. |
   --+
  Heller's Law: The first myth of management is that it exists.   
  Johnson's Corollary: Nobody really knows what is going on
   anywhere within the organization.   



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message