Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 16 Dec 1999 15:20:27 -0500 (EST)
From:      "Andrew Atrens" <atrens@nortelnetworks.com>
To:        emulation@freebsd.org, Marcel Moolenaar <marcel@scc.nl>
Subject:   Re: framemaker for linux
Message-ID:  <Pine.BSF.4.21.9912161444180.9074-100000@hcarp00g.ca.nortel.com>
In-Reply-To: <38592C44.537140D8@scc.nl>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 16 Dec 1999, Marcel Moolenaar wrote:

> Date: Thu, 16 Dec 1999 19:15:32 +0100
> From: Marcel Moolenaar <marcel@scc.nl>
> To: "Atrens, Andrew (A.B.) [EXCHANGE:SKY:1U33]"
>     <atrens@americasm01.nt.com>
> Newsgroups: list.freebsd.emulation
> Subject: Re: framemaker for linux
> 
> [moved to -emulation]
> 
> Andrew Atrens wrote:
> 
> > 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 -
> 
> -emulation, definitely.
> 
> > I've got `framemaker for linux' and am getting -
> > 
> > # maker5X.exe
> > maker5X.exe: error in loading shared libraries
> > : undefined symbol: __register_frame_info
> [truss output snipped]
> > I'm probably missing something obvious. Any help y'all can provide would
> > be greatly appreciated!
> 
> make sure you've got the right set of libraries. Probably glibc2.1;
> maybe glibc2...

Okay so the problem is not glibc per se, it's the following -

From 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'.


So it looks like the linux port glibc stuff must have been compiled with
2.8 (or older) and the framemaker stuff uses glibc compiled by egcs.


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 majordomo@FreeBSD.org
with "unsubscribe freebsd-emulation" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.9912161444180.9074-100000>