diff mbox

Fix GCC tests fail for installed toolchain due to ASan, UBSan and TSan testsuites drop GCC_EXEC_PREFIX.

Message ID 54378707.3020407@partner.samsung.com
State New
Headers show

Commit Message

max Oct. 10, 2014, 7:13 a.m. UTC
Adding Jakub.

-Maxim
On 10/09/2014 04:34 PM, Maxim Ostapenko wrote:
> Hi,
>
> After enabling ASan, TSan and UBSan testsuites for installed 
> toolchain, many tests started to fail. This is caused by wrong logic 
> in {asan, ubsan, tsan}_finish
> functions. Here, restore_ld_library_path is called, that is wrong, 
> because it drops some env variables ( GCC_EXEC_PREFIX, 
> LD_LIBRARY_PATH, etc) to state that was before gcc-dg.exp initialized 
> testing environment, so installed GCC will be confused to find some 
> needed stuff later.
>
> Removing restore_ld_library_path from {asan, ubsan, tsan}_finish seems 
> to fix the issue.
>
> Tested on x86_64-pc-linux-gnu, ok to commit?
>
> -Maxim

Comments

Jakub Jelinek Oct. 10, 2014, 7:30 a.m. UTC | #1
On Fri, Oct 10, 2014 at 11:13:11AM +0400, Maxim Ostapenko wrote:
> Adding Jakub.
> 
> -Maxim
> On 10/09/2014 04:34 PM, Maxim Ostapenko wrote:
> >Hi,
> >
> >After enabling ASan, TSan and UBSan testsuites for installed toolchain,
> >many tests started to fail. This is caused by wrong logic in {asan, ubsan,
> >tsan}_finish
> >functions. Here, restore_ld_library_path is called, that is wrong, because
> >it drops some env variables ( GCC_EXEC_PREFIX, LD_LIBRARY_PATH, etc) to
> >state that was before gcc-dg.exp initialized testing environment, so
> >installed GCC will be confused to find some needed stuff later.
> >
> >Removing restore_ld_library_path from {asan, ubsan, tsan}_finish seems to
> >fix the issue.
> >
> >Tested on x86_64-pc-linux-gnu, ok to commit?
> >
> >-Maxim
> 

> gcc/testsuite/ChangeLog:
> 
> 2014-10-09  Max Ostapenko  <m.ostapenko@partner.samsung.com>
> 
> 	* lib/asan-dg.exp (asan_finish): Remove restore_ld_library_path_env_vars.
> 	* lib/tsan-dg.exp (tsan_finish): Likewise.
> 	* lib/ubsan-dg.exp (ubsan_finish): Likewise.

That looks wrong to me, we don't want to keep the libsanitizer paths in
LD_LIBRARY_PATH* after we leave asan.exp etc.

So, perhaps instead save ld_library_path into some global variable
(like {a,t,ub}san_saved_ld_library_path) during {a,t,ub}san_link_flags
before appending there anything, and replace
restore_ld_library_path_env_vars
with
set ld_library_path ${a,t,ub}san_saved_ld_library_path
set_ld_library_path_env_vars
?

	Jakub
diff mbox

Patch

gcc/testsuite/ChangeLog:

2014-10-09  Max Ostapenko  <m.ostapenko@partner.samsung.com>

	* lib/asan-dg.exp (asan_finish): Remove restore_ld_library_path_env_vars.
	* lib/tsan-dg.exp (tsan_finish): Likewise.
	* lib/ubsan-dg.exp (ubsan_finish): Likewise.

diff --git a/gcc/testsuite/lib/asan-dg.exp b/gcc/testsuite/lib/asan-dg.exp
index 9769138..c98fd3c 100644
--- a/gcc/testsuite/lib/asan-dg.exp
+++ b/gcc/testsuite/lib/asan-dg.exp
@@ -132,7 +132,6 @@  proc asan_finish { args } {
 	    unset TEST_ALWAYS_FLAGS
 	}
     }
-    restore_ld_library_path_env_vars
 }
 
 # Symbolize lines like
diff --git a/gcc/testsuite/lib/tsan-dg.exp b/gcc/testsuite/lib/tsan-dg.exp
index 54ec404..6f7a4d9 100644
--- a/gcc/testsuite/lib/tsan-dg.exp
+++ b/gcc/testsuite/lib/tsan-dg.exp
@@ -143,5 +143,4 @@  proc tsan_finish { args } {
     } else {
 	unset dg-do-what-default
     }
-    restore_ld_library_path_env_vars
 }
diff --git a/gcc/testsuite/lib/ubsan-dg.exp b/gcc/testsuite/lib/ubsan-dg.exp
index 5a7a653..87c460f 100644
--- a/gcc/testsuite/lib/ubsan-dg.exp
+++ b/gcc/testsuite/lib/ubsan-dg.exp
@@ -114,5 +114,4 @@  proc ubsan_finish { args } {
 	    unset TEST_ALWAYS_FLAGS
 	}
     }
-    restore_ld_library_path_env_vars
 }