diff --git a/libgomp/Makefile.in b/libgomp/Makefile.in index 3ef05e6a3cb..431bc87b629 100644 --- a/libgomp/Makefile.in +++ b/libgomp/Makefile.in @@ -368,7 +368,6 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPU_COUNT = @CPU_COUNT@ -CXX = @CXX@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ @@ -436,6 +435,7 @@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +SYSROOT_CFLAGS_FOR_TARGET = @SYSROOT_CFLAGS_FOR_TARGET@ VERSION = @VERSION@ XCFLAGS = @XCFLAGS@ XLDFLAGS = @XLDFLAGS@ diff --git a/libgomp/configure b/libgomp/configure index a12b30f1b0f..498bc084a86 100755 --- a/libgomp/configure +++ b/libgomp/configure @@ -656,6 +656,7 @@ tmake_file XLDFLAGS XCFLAGS config_path +SYSROOT_CFLAGS_FOR_TARGET FLOCK CPU_COUNT LIBGOMP_BUILD_VERSIONED_SHLIB_SUN_FALSE @@ -679,7 +680,6 @@ libtool_VERSION ac_ct_FC FCFLAGS FC -CXX MAINT MAINTAINER_MODE_FALSE MAINTAINER_MODE_TRUE @@ -11808,22 +11808,11 @@ fi -# We optionally test libgomp C++ support, and for that want to use the proper -# C++ driver, 'g++' (or 'xg++' for build-tree testing). Given that build of -# target libstdc++-v3 depends on target libgomp (see '../Makefile.def'), we -# cannot make build of target libgomp depend on target libstdc++-v3: circular -# dependency. We thus cannot instantiate 'AC_PROG_CXX' here: we'd get -# '-funconfigured-libstdc++-v3' (see '../configure.ac'). Therefore, just -# capture 'CXX', and we'll fix this up at 'make check' time (see -# 'testsuite/lib/libgomp.exp:libgomp_init'). - - # Create a spec file, so that compile/link tests don't fail test -f libgfortran.spec || touch libgfortran.spec FCFLAGS="$FCFLAGS -L." -# We need 'gfortran' to compile parts of the library, and test libgomp Fortran -# support. +# We need gfortran to compile parts of the library # We can't use AC_PROG_FC because it expects a fully working gfortran. #AC_PROG_FC(gfortran) case `echo $GFORTRAN` in @@ -16580,6 +16569,8 @@ fi fi + + # Get target configury. . ${srcdir}/configure.tgt CFLAGS="$save_CFLAGS $XCFLAGS" diff --git a/libgomp/configure.ac b/libgomp/configure.ac index 1aad83a79da..49f7fb0dc82 100644 --- a/libgomp/configure.ac +++ b/libgomp/configure.ac @@ -151,22 +151,11 @@ AC_SUBST(enable_static) AM_MAINTAINER_MODE -# We optionally test libgomp C++ support, and for that want to use the proper -# C++ driver, 'g++' (or 'xg++' for build-tree testing). Given that build of -# target libstdc++-v3 depends on target libgomp (see '../Makefile.def'), we -# cannot make build of target libgomp depend on target libstdc++-v3: circular -# dependency. We thus cannot instantiate 'AC_PROG_CXX' here: we'd get -# '-funconfigured-libstdc++-v3' (see '../configure.ac'). Therefore, just -# capture 'CXX', and we'll fix this up at 'make check' time (see -# 'testsuite/lib/libgomp.exp:libgomp_init'). -AC_SUBST(CXX) - # Create a spec file, so that compile/link tests don't fail test -f libgfortran.spec || touch libgfortran.spec FCFLAGS="$FCFLAGS -L." -# We need 'gfortran' to compile parts of the library, and test libgomp Fortran -# support. +# We need gfortran to compile parts of the library # We can't use AC_PROG_FC because it expects a fully working gfortran. #AC_PROG_FC(gfortran) case `echo $GFORTRAN` in @@ -356,6 +345,8 @@ if test -z "$FLOCK"; then AC_CHECK_PROG(FLOCK, perl, $srcdir/testsuite/flock) fi +AC_SUBST(SYSROOT_CFLAGS_FOR_TARGET) + # Get target configury. . ${srcdir}/configure.tgt CFLAGS="$save_CFLAGS $XCFLAGS" diff --git a/libgomp/testsuite/Makefile.in b/libgomp/testsuite/Makefile.in index d743e464cdc..4155350cf80 100644 --- a/libgomp/testsuite/Makefile.in +++ b/libgomp/testsuite/Makefile.in @@ -147,7 +147,6 @@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CPU_COUNT = @CPU_COUNT@ -CXX = @CXX@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ @@ -215,6 +214,7 @@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +SYSROOT_CFLAGS_FOR_TARGET = @SYSROOT_CFLAGS_FOR_TARGET@ VERSION = @VERSION@ XCFLAGS = @XCFLAGS@ XLDFLAGS = @XLDFLAGS@ diff --git a/libgomp/testsuite/lib/libgomp.exp b/libgomp/testsuite/lib/libgomp.exp index a143b5d0def..cab926a798b 100644 --- a/libgomp/testsuite/lib/libgomp.exp +++ b/libgomp/testsuite/lib/libgomp.exp @@ -91,19 +91,6 @@ proc libgomp_init { args } { setenv LANG C.ASCII } - if { $blddir != "" } { - # Fix up '-funconfigured-libstdc++-v3' in 'GXX_UNDER_TEST' (see - # '../../configure.ac'). - set flags_file "${blddir}/../libstdc++-v3/scripts/testsuite_flags" - if { [file exists $flags_file] } { - set flags [exec sh $flags_file --build-includes] - verbose -log "GXX_UNDER_TEST = $GXX_UNDER_TEST" - set GXX_UNDER_TEST [string map [list \ - " -funconfigured-libstdc++-v3 " " $flags " \ - ] $GXX_UNDER_TEST] - verbose -log "GXX_UNDER_TEST = $GXX_UNDER_TEST" - } - } if ![info exists GCC_UNDER_TEST] then { if [info exists TOOL_EXECUTABLE] { set GCC_UNDER_TEST $TOOL_EXECUTABLE @@ -185,6 +172,11 @@ proc libgomp_init { args } { set ALWAYS_CFLAGS "" if { $blddir != "" } { + # If '--with-build-sysroot=[...]' was specified, use it for build-tree + # testing. + global SYSROOT_CFLAGS_FOR_TARGET + lappend ALWAYS_CFLAGS "additional_flags=${SYSROOT_CFLAGS_FOR_TARGET}" + lappend ALWAYS_CFLAGS "additional_flags=-B${blddir}/" # targets that use libgomp.a%s in their specs need a -B option # for uninstalled testing. diff --git a/libgomp/testsuite/libgomp-site-extra.exp.in b/libgomp/testsuite/libgomp-site-extra.exp.in index c824d85f7ed..8de14f48976 100644 --- a/libgomp/testsuite/libgomp-site-extra.exp.in +++ b/libgomp/testsuite/libgomp-site-extra.exp.in @@ -1,4 +1,2 @@ set FLOCK {@FLOCK@} -set GCC_UNDER_TEST {@CC@} -set GXX_UNDER_TEST {@CXX@} -set GFORTRAN_UNDER_TEST {@FC@} +set SYSROOT_CFLAGS_FOR_TARGET {@SYSROOT_CFLAGS_FOR_TARGET@} diff --git a/libgomp/testsuite/libgomp.c++/c++.exp b/libgomp/testsuite/libgomp.c++/c++.exp index 8b4563b1d0d..ed096e17b9c 100644 --- a/libgomp/testsuite/libgomp.c++/c++.exp +++ b/libgomp/testsuite/libgomp.c++/c++.exp @@ -15,6 +15,10 @@ if { $blddir != "" } { verbose -log "GXX_UNDER_TEST not defined, will not execute c++ tests" return } +if { $blddir != "" } { + set lang_source_re {^.*\.[cC]$} + set lang_include_flags [exec sh ${blddir}/../libstdc++-v3/scripts/testsuite_flags --build-includes] +} lappend ALWAYS_CFLAGS "compiler=$GXX_UNDER_TEST" # If a testcase doesn't have special options, use these. @@ -44,6 +48,8 @@ set_ld_library_path_env_vars dg-runtest $tests "" $DEFAULT_CFLAGS if { $blddir != "" } { + unset lang_source_re + unset lang_include_flags unset libstdc++_library_path unset lang_library_paths } diff --git a/libgomp/testsuite/libgomp.oacc-c++/c++.exp b/libgomp/testsuite/libgomp.oacc-c++/c++.exp index 79df401c99a..7b2315e406f 100644 --- a/libgomp/testsuite/libgomp.oacc-c++/c++.exp +++ b/libgomp/testsuite/libgomp.oacc-c++/c++.exp @@ -25,6 +25,10 @@ if { $blddir != "" } { verbose -log "GXX_UNDER_TEST not defined, will not execute c++ tests" return } +if { $blddir != "" } { + set lang_source_re {^.*\.[cC]$} + set lang_include_flags [exec sh ${blddir}/../libstdc++-v3/scripts/testsuite_flags --build-includes] +} lappend ALWAYS_CFLAGS "compiler=$GXX_UNDER_TEST" # Initialize dg. @@ -121,6 +125,8 @@ foreach offload_target [concat [split $offload_targets ","] "disable"] { unset offload_target if { $blddir != "" } { + unset lang_source_re + unset lang_include_flags unset libstdc++_library_path unset lang_library_paths }