Can you please add -v to your command line and post the output?
The problem isn't reproducible for me with gcc 4.8.2 on Ubuntu 12.04
$ gcc t.c -fsanitize=thread -fPIE -pie -g -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/gcc-4.8.2/libexec/gcc/x86_64-unknown-linux-gnu/4.8.2/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ./configure --prefix=/usr/local/gcc-4.8.2
Thread model: posix
gcc version 4.8.2 (GCC)
COLLECT_GCC_OPTIONS='-fsanitize=thread' '-fPIE' '-pie' '-g' '-v'
'-mtune=generic' '-march=x86-64'
/usr/local/gcc-4.8.2/libexec/gcc/x86_64-unknown-linux-gnu/4.8.2/cc1
-quiet -v -imultilib . -imultiarch x86_64-linux-gnu t.c -quiet
-dumpbase t.c -mtune=generic -march=x86-64 -auxbase t -g -version
-fsanitize=thread -fPIE -o /tmp/cckWmfMz.s
GNU C (GCC) version 4.8.2 (x86_64-unknown-linux-gnu)
compiled by GNU C version 4.8.2, GMP version 5.0.2, MPFR version
3.1.0-p3, MPC version 0.9
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
ignoring nonexistent directory
"/usr/local/gcc-4.8.2/lib/gcc/x86_64-unknown-linux-gnu/4.8.2/../../../../x86_64-unknown-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/local/gcc-4.8.2/lib/gcc/x86_64-unknown-linux-gnu/4.8.2/include
/usr/local/include
/usr/local/gcc-4.8.2/include
/usr/local/gcc-4.8.2/lib/gcc/x86_64-unknown-linux-gnu/4.8.2/include-fixed
/usr/include/x86_64-linux-gnu
/usr/include
End of search list.
GNU C (GCC) version 4.8.2 (x86_64-unknown-linux-gnu)
compiled by GNU C version 4.8.2, GMP version 5.0.2, MPFR version
3.1.0-p3, MPC version 0.9
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 5d3969464a8f2d750501fb893088db76
COLLECT_GCC_OPTIONS='-fsanitize=thread' '-fPIE' '-pie' '-g' '-v'
'-mtune=generic' '-march=x86-64'
as -v --64 -o /tmp/ccy8FXma.o /tmp/cckWmfMz.s
GNU assembler version 2.22 (x86_64-linux-gnu) using BFD version (GNU
Binutils for Ubuntu) 2.22
COMPILER_PATH=/usr/local/gcc-4.8.2/libexec/gcc/x86_64-unknown-linux-gnu/4.8.2/:/usr/local/gcc-4.8.2/libexec/gcc/x86_64-unknown-linux-gnu/4.8.2/:/usr/local/gcc-4.8.2/libexec/gcc/x86_64-unknown-linux-gnu/:/usr/local/gcc-4.8.2/lib/gcc/x86_64-unknown-linux-gnu/4.8.2/:/usr/local/gcc-4.8.2/lib/gcc/x86_64-unknown-linux-gnu/
LIBRARY_PATH=/usr/local/gcc-4.8.2/lib/gcc/x86_64-unknown-linux-gnu/4.8.2/:/usr/local/gcc-4.8.2/lib/gcc/x86_64-unknown-linux-gnu/4.8.2/../../../../lib64/:/lib/x86_64-linux-gnu/:/lib/../lib64/:/usr/lib/x86_64-linux-gnu/:/usr/local/gcc-4.8.2/lib/gcc/x86_64-unknown-linux-gnu/4.8.2/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-fsanitize=thread' '-fPIE' '-pie' '-g' '-v'
'-mtune=generic' '-march=x86-64'
/usr/local/gcc-4.8.2/libexec/gcc/x86_64-unknown-linux-gnu/4.8.2/collect2
--eh-frame-hdr -m elf_x86_64 -dynamic-linker
/lib64/ld-linux-x86-64.so.2 -pie /usr/lib/x86_64-linux-gnu/Scrt1.o
/usr/lib/x86_64-linux-gnu/crti.o
/usr/local/gcc-4.8.2/lib/gcc/x86_64-unknown-linux-gnu/4.8.2/crtbeginS.o
-L/usr/local/gcc-4.8.2/lib/gcc/x86_64-unknown-linux-gnu/4.8.2
-L/usr/local/gcc-4.8.2/lib/gcc/x86_64-unknown-linux-gnu/4.8.2/../../../../lib64
-L/lib/x86_64-linux-gnu -L/lib/../lib64 -L/usr/lib/x86_64-linux-gnu
-L/usr/local/gcc-4.8.2/lib/gcc/x86_64-unknown-linux-gnu/4.8.2/../../..
-ltsan /tmp/ccy8FXma.o -lgcc --as-needed -lgcc_s --no-as-needed -lc
-lgcc --as-needed -lgcc_s --no-as-needed
/usr/local/gcc-4.8.2/lib/gcc/x86_64-unknown-linux-gnu/4.8.2/crtendS.o
/usr/lib/x86_64-linux-gnu/crtn.o
--
Alexander Potapenko
Software Engineer
Google Moscow