CDB Compilation Error: "mismatches non-TLS reference in cdb.a"

I tried to compile cdb-0.75 on CentOS, and got the following error:

cdb-0.75$ make
./load cdbget cdb.a buffer.a unix.a byte.a
/usr/bin/ld: errno: TLS definition in /lib/libc.so.6 section .tbss mismatches non-TLS reference in cdb.a(cdb.o)
/lib/libc.so.6: could not read symbols: Bad value
collect2: ld returned 1 exit status
make: *** [cdbget] Error 1

This is be cause I have a newer glibc than what cdb was written for. To fix this, simple open the file error.h, comment out the line "extern int errno;", and add a line "#include <errno.h>". See below:

/*extern int errno;*/
#include <errno.h>

Then run "make clean; make" and it should work fine.

 

 

Comments

Thank you

I ran across the same problem, you and google just saved me a bunch of time.