`___tls_get_addr' error

10 views
Skip to first unread message

MikeWu

unread,
Feb 20, 2008, 7:20:06 PM2/20/08
to
I recently updated my copy of the trunk, and now I get a build error
referring to a macro `___tls_get_addr' (seen below). I can build an
run find for older checkouts of the trunk (from Feb 01 I believe).

Is this familiar to anyone?


jemalloc.o: In function `choose_arena_hard':
jemalloc.c:(.text+0x36b8): undefined reference to `___tls_get_addr'
jemalloc.o: In function `.L1224':
jemalloc.c:(.text+0x3c01): undefined reference to `___tls_get_addr'
jemalloc.o: In function `realloc':
jemalloc.c:(.text+0x45c4): undefined reference to `___tls_get_addr'
jemalloc.c:(.text+0x48d7): undefined reference to `___tls_get_addr'
jemalloc.o: In function `posix_memalign':
jemalloc.c:(.text+0x5292): undefined reference to `___tls_get_addr'
jemalloc.o:jemalloc.c:(.text+0x537d): more undefined references to
`___tls_get_addr' follow
collect2: ld returned 1 exit status
gmake[4]: *** [libjemalloc.so] Error 1
gmake[4]: Leaving directory `/data/g6wu/csc490/workspace/mozilla/obj-
i686-pc-linux-gnu/memory/jemalloc'
gmake[3]: *** [libs_tier_base] Error 2
gmake[3]: Leaving directory `/data/g6wu/csc490/workspace/mozilla/obj-
i686-pc-linux-gnu'
gmake[2]: *** [tier_base] Error 2
gmake[2]: Leaving directory `/data/g6wu/csc490/workspace/mozilla/obj-
i686-pc-linux-gnu'
make[1]: *** [default] Error 2
make[1]: Leaving directory `/data/g6wu/csc490/workspace/mozilla/obj-
i686-pc-linux-gnu'
make: *** [build] Error 2

Benjamin Smedberg

unread,
Feb 20, 2008, 9:20:05 PM2/20/08
to MikeWu
MikeWu wrote:
> I recently updated my copy of the trunk, and now I get a build error
> referring to a macro `___tls_get_addr' (seen below). I can build an
> run find for older checkouts of the trunk (from Feb 01 I believe).
>
> Is this familiar to anyone?

Mike,

* after you update do you reconfigure (or use client.mk which should
reconfigure for you automatically)?

* what version of GCC and glibc are you using? __thread requires a libc that
supports TLS, which typicall means a glibc that comes with gcc4.1 or newer.

* If you're using an old version or just can't figure it out, you can
configure with --disable-jemalloc

--BDS

MikeWu

unread,
Feb 20, 2008, 9:44:28 PM2/20/08
to
I do use the client.mk file for checkout and build commands

ggc -v gives me:
"gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)"

(I'm no admin so from google:) "ls -la /lib/tls/libc.so.6" gives me:
lrwxrwxrwx 1 root root 13 Feb 17 05:11 /lib/tls/libc.so.6 ->
libc-2.3.6.so
So I'm assuming that means glibc 2.3.6

So gcc 4.1.2 and glibc 2.3.6

Thanks Benjamin, I appreciate the help

Benjamin Smedberg

unread,
Feb 21, 2008, 8:08:17 AM2/21/08
to

I found a post on an another group that might be relevant:

http://www.mail-archive.com/g...@gcc.gnu.org/msg18094.html

--BDS

MikeWu

unread,
Feb 21, 2008, 9:22:32 PM2/21/08
to
Thanks, I decided to just use the --disable-jemalloc option on this
system!
Reply all
Reply to author
Forward
0 new messages