gcc.c (SANITIZER_SPEC): Don't error on -fsanitize=thread without -pie or -shared...

* gcc.c (SANITIZER_SPEC): Don't error on -fsanitize=thread
	without -pie or -shared, error on -fsanitize=thread -static instead.

	* lib/tsan-dg.exp (check_effective_target_fsanitize_thread,
	tsan_init): Don't use -fPIE or -pie.

From-SVN: r218097
This commit is contained in:
Jakub Jelinek 2014-11-26 20:54:49 +01:00 committed by Jakub Jelinek
parent 45c8969054
commit 4bb0ca2d1e
4 changed files with 17 additions and 7 deletions

View File

@ -1,3 +1,8 @@
2014-11-26 Jakub Jelinek <jakub@redhat.com>
* gcc.c (SANITIZER_SPEC): Don't error on -fsanitize=thread
without -pie or -shared, error on -fsanitize=thread -static instead.
2014-11-26 Bernd Edlinger <bernd.edlinger@hotmail.de>
PR ipa/61190

View File

@ -794,7 +794,7 @@ proper position among the other output files. */
%{!nostdlib:%{!nodefaultlibs:%{%:sanitize(address):" LIBASAN_SPEC "\
%{static:%ecannot specify -static with -fsanitize=address}}\
%{%:sanitize(thread):" LIBTSAN_SPEC "\
%{!pie:%{!shared:%e-fsanitize=thread linking must be done with -pie or -shared}}}\
%{static:%ecannot specify -static with -fsanitize=thread}}\
%{%:sanitize(undefined):" LIBUBSAN_SPEC "}\
%{%:sanitize(leak):" LIBLSAN_SPEC "}}}"
#endif

View File

@ -1,3 +1,8 @@
2014-11-26 Jakub Jelinek <jakub@redhat.com>
* lib/tsan-dg.exp (check_effective_target_fsanitize_thread,
tsan_init): Don't use -fPIE or -pie.
2014-11-26 Bernd Edlinger <bernd.edlinger@hotmail.de>
PR ipa/61190

View File

@ -18,9 +18,9 @@
# code, 0 otherwise.
proc check_effective_target_fsanitize_thread {} {
return [check_no_compiler_messages fanitize_thread executable {
return [check_no_compiler_messages fsanitize_thread executable {
int main (void) { return 0; }
} "-fPIE -pie -fsanitize=thread"]
} "-fsanitize=thread"]
}
#
@ -93,12 +93,12 @@ proc tsan_init { args } {
if [info exists ALWAYS_CXXFLAGS] {
set tsan_saved_ALWAYS_CXXFLAGS $ALWAYS_CXXFLAGS
set ALWAYS_CXXFLAGS [concat "{ldflags=$link_flags}" $ALWAYS_CXXFLAGS]
set ALWAYS_CXXFLAGS [concat "{additional_flags=-fPIE -pie -fsanitize=thread -g}" $ALWAYS_CXXFLAGS]
set ALWAYS_CXXFLAGS [concat "{additional_flags=-fsanitize=thread -g}" $ALWAYS_CXXFLAGS]
} else {
if [info exists TEST_ALWAYS_FLAGS] {
set TEST_ALWAYS_FLAGS "$link_flags -fPIE -pie -fsanitize=thread -g $TEST_ALWAYS_FLAGS"
set TEST_ALWAYS_FLAGS "$link_flags -fsanitize=thread -g $TEST_ALWAYS_FLAGS"
} else {
set TEST_ALWAYS_FLAGS "$link_flags -fPIE -pie -fsanitize=thread -g"
set TEST_ALWAYS_FLAGS "$link_flags -fsanitize=thread -g"
}
}
@ -110,7 +110,7 @@ proc tsan_init { args } {
set individual_timeout 20
if [check_runtime_nocache tsan_works {
int main () { return 0; }
} "-fPIE -pie -fsanitize=thread -g"] {
} "-fsanitize=thread -g"] {
set dg-do-what-default run
} else {
set dg-do-what-default compile