Thread overview
"Section .tbss mismatches non-TLS reference" - what??
Oct 19, 2011
Dejan Lekic
Oct 19, 2011
Trass3r
Oct 20, 2011
Jude Young
October 19, 2011
Hello everybody - any idea why am I getting this error?
I successfully compiled this library few months ago, not it fails to build... :(

----------------------- 8< -------------------------------------- begin
dejan@mrak ~/prj/d/dcurses-backup
$ make
gcc obj/Debug/dcurses.o obj/Debug/dl_c_curses_curses.o obj/Debug/dl_c_curses_panel.o -o bin/Debug/dcurses -lncurses -lphobos2 -lpthread -lm
/usr/bin/ld: stdscr: TLS definition in obj/Debug/dl_c_curses_curses.o section .tbss mismatches non-TLS reference in /lib64/libncurses.so.5
/lib64/libncurses.so.5: could not read symbols: Bad value
collect2: ld returned 1 exit status
make: *** [bin/Debug/dcurses] Error 1
------------------------------------------ >8 ------------------- end

/lib64/libncurses.so.5 is absolutely fine (it is a symlink to libncurses.so.5.8) - many applications on my Fedora 15 box are linked against it - they all work nicely. :)

October 19, 2011
> /usr/bin/ld: stdscr: TLS definition in obj/Debug/dl_c_curses_curses.o section .tbss mismatches non-TLS reference in /lib64/libncurses.so.5

Looks like some definition is missing a shared/__gshared.
October 20, 2011
Oh yeah, D2 put everything (IIRC) into Thread Local Storage, unless you tell
it not to.
 C puts most everything into global storage.

This causes a mismatch. If you're working on translating the curses headers
into D, I'm attempting the same.
I'd love some help, as I have never really worked with C/C++


On Wed, Oct 19, 2011 at 12:54 PM, Trass3r <un@known.com> wrote:

> /usr/bin/ld: stdscr: TLS definition in obj/Debug/dl_c_curses_curses.o
>> section .tbss mismatches non-TLS reference in /lib64/libncurses.so.5
>>
>
> Looks like some definition is missing a shared/__gshared.
>