This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [Patch, libgomp] libgomp.fortran/fortran.exp - add -fintrinsic-modules-path ${blddir}


On Wed, 2 Jul 2014 21:14:11 +0200, Tobias Burnus <> wrote:
> Thomas Schwinge wrote:
> > Reopening this oldie:
> >
> >> index 5fa42f4..68440d18 100644
> >> --- a/libgomp/testsuite/libgomp.fortran/fortran.exp
> >> +++ b/libgomp/testsuite/libgomp.fortran/fortran.exp
> >> @@ -14,6 +14,7 @@ set quadmath_library_path "../libquadmath/.libs"
> >>   dg-init
> >>   
> >>   if { $blddir != "" } {
> >> +    lappend ALWAYS_CFLAGS "additional_flags=-fintrinsic-modules-path ${blddir}"
> How about the following (only lightly tested). I wonder why I didn't use 
> it before â but it looks obvious.

> --- a/libgomp/testsuite/libgomp.fortran/fortran.exp
> +++ b/libgomp/testsuite/libgomp.fortran/fortran.exp
> @@ -48,5 +48,5 @@ if { $lang_test_file_found } {
>               || [file exists "${blddir}/${quadmath_library_path}/libquadmath.${shlib_ext}"] } {
> -           lappend ALWAYS_CFLAGS "ldflags=-L${blddir}/${quadmath_library_path}/"
> +           lappend ALWAYS_FFLAGS "ldflags=-L${blddir}/${quadmath_library_path}/"
>              # Allow for spec subsitution.
> -           lappend ALWAYS_CFLAGS "additional_flags=-B${blddir}/${quadmath_library_path}/"
> +           lappend ALWAYS_FFLAGS "additional_flags=-B${blddir}/${quadmath_library_path}/"
>              set ld_library_path "$always_ld_library_path:${blddir}/${lang_library_path}:${blddir}/${quadmath_library_path}"

I don't understand -- there is no ALWAYS_FFLAGS, and, it's not -L and -B
options that are the problem here, but rather -fintrinsic-modules-path
passed to xgcc running in non-Fortran mode when doing
check_effective-target_* checks and the like.  My understanding is that
these checks will always be using ${tool}_target_compile, so the
"problem" is ALWAYS_CFLAGS usage in
libgomp/testsuite/lib/libgomp.exp:libgomp_target_compile: this will be
set up for Fortran testing in
libgomp/testsuite/libgomp.fortran/fortran.exp (including the
-fintrinsic-modules-path option), but then used by
check_effective-target_* with C language test cases, hence the compiler

I found the following to work (but so far only did libgomp testing), but
that is a little bit more intrusive, but may actually be the right thing
to do.  (Possibly also in additional places where ${tool}_target_compile
is used?  CCing testsuite maintainers.)  Comments?

Patch to relax checking for compiler warnings when determining features
supported by the target:

--- gcc/testsuite/lib/target-supports.exp
+++ gcc/testsuite/lib/target-supports.exp
@@ -78,6 +78,9 @@ proc check_compile {basename type contents args} {
     set lines [${tool}_target_compile $src $output $compile_type "$options"]
     file delete $src
+    # Mask out messages from gcc that aren't useful for our purposes here.
+    set lines [string trim [prune_gcc_output $lines]]
     set scan_output $output
     # Don't try folding this into the switch above; calling "glob" before the
     # file is created won't work.

Patch to mask out Âvalid for Fortran but not for CÂ warnings.

--- gcc/testsuite/lib/prune.exp
+++ gcc/testsuite/lib/prune.exp
@@ -46,6 +46,10 @@ proc prune_gcc_output { text } {
     regsub -all "(^|\n)\[^\n\]*: Additional NOP may be necessary to workaround Itanium processor A/B step errata" $text "" text
     regsub -all "(^|\n)\[^\n*\]*: Assembler messages:\[^\n\]*" $text "" text
+    # Ignore warning for gfortran options passed to xgcc not running in Fortran
+    # mode.
+    regsub -all "(^|\n)\[^\n\]*: warning: command line option .-f\[^\n\]*. is valid for Fortran but not for C\[^\n\]*" $text "" text
     # Ignore harmless VTA note.
     regsub -all "(^|\n)\[^\n\]*: note: variable tracking size limit exceeded with -fvar-tracking-assignments, retrying without\[^\n\]*" $text "" text


Attachment: pgpsjm699lM4U.pgp
Description: PGP signature

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]