gfortran: Get asan library from TEST_ALWAYS_FLAGS
authorH.J. Lu <hjl.tools@gmail.com>
Sat, 2 May 2020 19:46:44 +0000 (12:46 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Sat, 2 May 2020 19:46:55 +0000 (12:46 -0700)
Update gfortran_target_compile to get the newly built asan library from
TEST_ALWAYS_FLAGS to avoid:

/usr/bin/ld: cannot find libasan_preinit.o: No such file or directory
/usr/bin/ld: cannot find -lasan
collect2: error: ld returned 1 exit status
compiler exited with status 1
FAIL: gfortran.dg/asan/pointer_assign_16.f90 -fsanitize=address  -O0  (test for excess errors)

PR fortran/94788
* lib/gfortran.exp (gfortran_target_compile): Get asan library
from TEST_ALWAYS_FLAGS.

gcc/testsuite/ChangeLog
gcc/testsuite/lib/gfortran.exp

index a9c72f982feade7201cbdc778e282072b0f422db..b0c6f9a8cefdd2063253487d39e7d5b90a37d4ea 100644 (file)
@@ -1,3 +1,9 @@
+2020-05-02  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR fortran/94788
+       * lib/gfortran.exp (gfortran_target_compile): Get asan library
+       from TEST_ALWAYS_FLAGS.
+
 2020-05-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
 
        PR fortran/94788
index 016d77ca4f8ddd1785d97cc13fdf29f580ffccdc..fe99111788f8715656c6918464ce790667096f88 100644 (file)
@@ -234,6 +234,7 @@ proc gfortran_target_compile { source dest type options } {
     global gluefile wrap_flags
     global ALWAYS_GFORTRANFLAGS
     global GFORTRAN_UNDER_TEST
+    global TEST_ALWAYS_FLAGS
     global flags_to_postpone
     global board_info
 
@@ -242,6 +243,13 @@ proc gfortran_target_compile { source dest type options } {
        lappend options "ldflags=${wrap_flags}"
     }
 
+    # TEST_ALWAYS_FLAGS are flags that should be passed to every
+    # compilation.  They are passed first to allow individual
+    # tests to override them.
+    if [info exists TEST_ALWAYS_FLAGS] {
+       set options [concat "{additional_flags=$TEST_ALWAYS_FLAGS}" $options]
+    }
+
     # bind_pic_locally adds -fpie/-fPIE flags to flags_to_postpone and it is
     # appended here to multilib_flags as it can be overridden by the latter
     # if it was added earlier. After the target_compile, multilib_flags is