gnome 2.8.0 and external dependencies
Charles Wilson
cygwin@cwilson.fastmail.fm
Wed Sep 29 02:46:00 GMT 2004
Gerrit P. Haase wrote:
> The new updates are based on libtool-1.5.10
> now which seems to work fine here.
Yay!
> That is the reason why we must use libtool-1.5.10, there are data
> symbols in some Glib objects which are tagged with .rdata and when you
> try to dynamically load them -> bang. I got always this crash when
> GConf loaded gthread.dll. Now I don't find any 'R' tags in /usr/lib,
> run this: for i in `ls *.dll.a`; do echo $i && nm $i | grep ' R '; done
> in /usr/lib.
Well, that's not conclusive. All that means is that so far, one of the
following is true:
(1) the libs have not been recompiled with a new gcc (>= 3.3.3-3)
OR
(2) the libs do not have any const data items WHICH THEMSELVES
CONTAIN pointers to other exported DATA items in their public interface.
libtool-1.5.x (x<10) had the flaw where it deliberately violated #2.
Newer gcc's obligingly put the container item into .rdata -- where the
runtime-pseudo-reloc magic couldn't update the *contained* references to
the other DATA items. We're actually just sidestepping the issue
("Don't do that") by convincing libtool-1.5.10 to declare the container
non-const, so it goes into .data where pseudo-reloc can muck with it.
That doesn't mean some other package might currently be violating #2.
It just means that if so, this mythical other package hasn't yet been
recompiled using gcc-3.3.3-3 or newer.
Keep your fingers crossed.
> What changed is that there are these .rdata tags in symbols. That may
> well cause such problems. Charles explained exactly why the error
> happens and that it must be changed in the source, we should look into
> all the libraries if there are .rdata rtags and then try to patch the
> sources so that gcc puts these symbols in data sections instead.
Yep. See above. gmodule-related stuff might be affected by this issue,
since glib does its own symbol marshalling and lookup-table definitions.
> Now since Charles has found a workaround and we have the new libtool
> version we can run the apps and debug them. What to do if you even
> cannot start the application? The only thing I saw was that loading
> gthread gives my a crash.
maybe caused by attempts to use thread local storage? I'm not sure how
mature the combination of gcc/binutils/cygwin/libtool/tls is.
--
Chuck
More information about the Cygwin-apps
mailing list