...and the fact that fink doesn't use a shared g77 caused the problems
with the shared library creation on OSX which I still don't think has been
officially resolved since we have a private hack to get it working and I
couldn't convince anyone on the libtool mailing list that this fix
actually worked!
Tim
On Tue, 11 Jan 2005, Norman Gray wrote:
> Brad (and probably Al and maybe Steve),
>
> On 2005 Jan 11 , at 12.02, Norman Gray wrote:
>
> > From the path you quote in one of your messages, I get the impression
> > you're using gcc-g77 3.4.1 from Fink, whereas I'm using gcc-g77 3.3.3
> > from OpenDarwin. However the relevant parts of libg77 are unchanged
> > between the two versions. It might be that they're built in slightly
> > different ways, so that the relevant getarg symbols don't end up
> > undefined in this context. Damn -- I thought I'd understood enough
> > about these libraries to be quite confident about this.
>
> I don't have a full story, but I think the difference is that you (and
> Al) are using Fink for your g77, and I'm using DarwinPorts. The
> up-front difference is that Fink's g77 is configured with
> --disable-shared, and DarwinPorts' isn't. The symbols that getarg uses
> are defined but not initialised within the library (that is, a C
> `tentative definition': `char **f__xargv;', with no extern, but no
> initialiser either). That turns into a Mach-O `common symbol'
> (indicated by `C' in nm output), and I think that one effect of the
> Fink --disable-shared will be to change the way that the final
> executable is linked, in such a way that this defined-but-uninitialised
> symbol in libg2c.a is OK when linked by Apple gcc and Fink g77, but not
> OK when linked by Apple gcc and DarwinPorts g77. But I can't work out
> exactly how, since the relevant libraries appear very much the same. A
> challenge for some other time....
>
--
Tim Jenness
JAC software
http://www.jach.hawaii.edu/~timj
|