Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 25 Jun 2004 22:55:23 -0400
From:      Joe Marcus Clarke <marcus@marcuscom.com>
To:        John Merryweather Cooper <johnmary@adelphia.net>
Cc:        freebsd-gnome@freebsd.org
Subject:   Re: Does -CURRENT's gcc generate ___tls_get_addr under any circumstances
Message-ID:  <1088218523.17696.2.camel@shumai.marcuscom.com>
In-Reply-To: <20040626010822.GB20786@borgdemon.losaca.adelphia.net>
References:  <20040625204444.GA50921@borgdemon.losaca.adelphia.net> <1088197748.842.1.camel@gyros> <20040626010822.GB20786@borgdemon.losaca.adelphia.net>

next in thread | previous in thread | raw e-mail | index | archive | help

--=-qouGyFPp5UVo5ZCc6LFc
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

On Fri, 2004-06-25 at 21:08, John Merryweather Cooper wrote:
> On Fri, Jun 25, 2004 at 05:09:08PM -0400, Joe Marcus Clarke wrote:
> > On Fri, 2004-06-25 at 16:44, John Merryweather Cooper wrote:
> > > I'm working on porting (and getting fully working) lang/mono
> > > version 0.96, and I'm having a problem.  In one of my object
> > > files--mini.lo--I'm getting an extern reference to
> > > ___tls_get_addr.  I've been over the source code in mini.c
> > > and all the included headers, and I can't find anything to
> > > get rid of this reference or find a way to resolve it.  As
> > > a result, the linking of the mono runtime binary fails with
> > > this symbol unresolved.
> > >=20
> > > Any and all clues are welcome!
> >=20
> > As I recall, this is from boehm.  You'll have to tell boehm not to do
> > thread-local storage.  Note: boehm is in the libgc subdirectory inside
> > mono.
> >=20
> > Joe
> >=20
> > >=20
> > > jmc
> > > _______________________________________________
> > > freebsd-gnome@freebsd.org mailing list
> > > http://lists.freebsd.org/mailman/listinfo/freebsd-gnome
> > > To unsubscribe, send any mail to "freebsd-gnome-unsubscribe@freebsd.o=
rg"
> > --=20
> > PGP Key : http://www.marcuscom.com/pgp.asc
> >=20
> >=20
>=20
> Hmmm . . .
>=20
> Well, looking at the libgc code, I note that if it detects GCC 3.x it use=
s
> pthreads for thread local storage.  The configure script doesn't provide
> a means to turn off tls.
>=20
> Just to be sure, I undefined USE_COMPILER_TLS on the command line with=20
> -UUSE_COMPILER_TLS.

I think you have to remove this from libgc's configure script.  You
should be able to do a case statement, and match on freebsd.

>=20
> No dice, ___tls_get_addr still shows up in the mini.lo object which gets =
linked
> into libmono.so which causes mono to fail to link with an undefined
> symbol (see attached build script).
>=20
> I've checked all the objects in libgc, and none of them are defining
> this symbol.  It seems prettly clear that it comes into existance
> during the compile of mini.c (it's in mini.lo), but I can't for the
> life of me find were it is in mini.c or in it's includes.

I saw this, too, when I was testing an earlier version of mono.  I had
actually enabled some additional options thinking they would help, but
it turned out to be a bad idea.

See if you can hunt down the TLS options in libgc's configure, and
remove them.

Joe

>=20
> jmc
--=20
PGP Key : http://www.marcuscom.com/pgp.asc

--=-qouGyFPp5UVo5ZCc6LFc
Content-Type: application/pgp-signature; name=signature.asc
Content-Description: This is a digitally signed message part

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (FreeBSD)

iD8DBQBA3OWbb2iPiv4Uz4cRAiZ5AKCK4et1o+/T2Nd04tioCd9bHVYJBgCeLulq
PzRZ4orAkxQYAIYwR4+5ncE=
=6Elp
-----END PGP SIGNATURE-----

--=-qouGyFPp5UVo5ZCc6LFc--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1088218523.17696.2.camel>