@@ -373,6 +373,9 @@ UNWIND_H = $(srcdir)/unwind-generic.h
# Don't use this as a dependency--use $(GCC_PASSES).
GCC_FOR_TARGET = $(STAGE_CC_WRAPPER) ./xgcc -B./ -B$(build_tooldir)/bin/ -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include -L$(objdir)/../ld
+# Set if the compiler was configured with --with-build-sysroot.
+SYSROOT_CFLAGS_FOR_TARGET = @SYSROOT_CFLAGS_FOR_TARGET@
+
# This is used instead of ALL_CFLAGS when compiling with GCC_FOR_TARGET.
# It specifies -B./.
# It also specifies -isystem ./include to find, e.g., stddef.h.
@@ -4831,6 +4834,9 @@ site.exp: ./config.status Makefile
@echo "set CXXFLAGS \"\"" >> ./tmp0
@echo "set HOSTCC \"$(CC)\"" >> ./tmp0
@echo "set HOSTCFLAGS \"$(CFLAGS)\"" >> ./tmp0
+# TEST_ALWAYS_FLAGS are flags that should be passed to every compilation.
+# They are passed first to allow individual tests to override them.
+ @echo "set TEST_ALWAYS_FLAGS \"$(SYSROOT_CFLAGS_FOR_TARGET)\"" >> ./tmp0
# When running the tests we set GCC_EXEC_PREFIX to the install tree so that
# files that have already been installed there will be found. The -B option
# overrides it, so use of GCC_EXEC_PREFIX will not result in using GCC files
@@ -759,6 +759,7 @@ CONFIGURE_SPECS
CROSS_SYSTEM_HEADER_DIR
TARGET_SYSTEM_ROOT_DEFINE
TARGET_SYSTEM_ROOT
+SYSROOT_CFLAGS_FOR_TARGET
enable_shared
enable_fixed_point
enable_decimal_float
@@ -7060,11 +7061,16 @@ fi
# Check whether --with-build-sysroot was given.
if test "${with_build_sysroot+set}" = set; then :
- withval=$with_build_sysroot;
+ withval=$with_build_sysroot; if test x"$withval" != x ; then
+ SYSROOT_CFLAGS_FOR_TARGET="--sysroot=$withval"
+ fi
+else
+ SYSROOT_CFLAGS_FOR_TARGET=
fi
+
# Check whether --with-sysroot was given.
if test "${with_sysroot+set}" = set; then :
withval=$with_sysroot;
@@ -17505,7 +17511,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 17508 "configure"
+#line 17514 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -17611,7 +17617,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 17614 "configure"
+#line 17620 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -711,7 +711,12 @@ AC_SUBST(enable_shared)
AC_ARG_WITH(build-sysroot,
[ --with-build-sysroot=sysroot
- use sysroot as the system root during the build])
+ use sysroot as the system root during the build],
+ [if test x"$withval" != x ; then
+ SYSROOT_CFLAGS_FOR_TARGET="--sysroot=$withval"
+ fi],
+ [SYSROOT_CFLAGS_FOR_TARGET=])
+AC_SUBST(SYSROOT_CFLAGS_FOR_TARGET)
AC_ARG_WITH(sysroot,
[ --with-sysroot[=DIR] Search for usr/lib, usr/include, et al, within DIR.],
@@ -191,6 +191,7 @@ proc g++_init { args } {
global target_triplet
global gcc_warning_prefix
global gcc_error_prefix
+ global TEST_ALWAYS_FLAGS
# We set LC_ALL and LANG to C so that we get the same error messages as expected.
setenv LC_ALL C
@@ -242,6 +243,13 @@ proc g++_init { args } {
set ALWAYS_CXXFLAGS ""
+ # TEST_ALWAYS_FLAGS are flags that should be passed to every
+ # compilation command. They are passed first to allow individual
+ # tests to override them.
+ if [info exists TEST_ALWAYS_FLAGS] {
+ lappend ALWAYS_CXXFLAGS "additional_flags=$TEST_ALWAYS_FLAGS"
+ }
+
if ![is_remote host] {
if [info exists TOOL_OPTIONS] {
lappend ALWAYS_CXXFLAGS "additional_flags=[g++_include_flags [get_multilibs ${TOOL_OPTIONS}] ]"
@@ -126,6 +126,7 @@ proc gcc_target_compile { source dest type options } {
global gluefile wrap_flags
global GCC_UNDER_TEST
global TOOL_OPTIONS
+ global TEST_ALWAYS_FLAGS
if {[target_info needs_status_wrapper] != "" && \
[target_info needs_status_wrapper] != "0" && \
@@ -143,11 +144,20 @@ proc gcc_target_compile { source dest type options } {
if [target_info exists gcc,no_label_values] {
lappend options "additional_flags=-DNO_LABEL_VALUES"
}
+
+ # 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]
+ }
+
# TOOL_OPTIONS must come first, so that it doesn't override testcase
# specific options.
if [info exists TOOL_OPTIONS] {
set options [concat "{additional_flags=$TOOL_OPTIONS}" $options]
}
+
lappend options "timeout=[timeout_value]"
lappend options "compiler=$GCC_UNDER_TEST"
set options [dg-additional-files-options $options $source]
@@ -144,6 +144,7 @@ proc gfortran_init { args } {
global TESTING_IN_BUILD_TREE
global gcc_warning_prefix
global gcc_error_prefix
+ global TEST_ALWAYS_FLAGS
# We set LC_ALL and LANG to C so that we get the same error messages as expected.
setenv LC_ALL C
@@ -194,6 +195,13 @@ proc gfortran_init { args } {
set ALWAYS_GFORTRANFLAGS ""
+ # 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] {
+ lappend ALWAYS_GFORTRANFLAGS "additional_flags=$TEST_ALWAYS_FLAGS"
+ }
+
if ![is_remote host] {
if [info exists TOOL_OPTIONS] {
lappend ALWAYS_GFORTRANFLAGS "ldflags=[gfortran_link_flags [get_multilibs ${TOOL_OPTIONS}] ]"
@@ -115,6 +115,7 @@ proc gnat_target_compile { source dest type options } {
global GNAT_UNDER_TEST
global TOOL_OPTIONS
global gnat_target_current
+ global TEST_ALWAYS_FLAGS
# dg-require-effective-target tests must be compiled as C.
if [ string match "*.c" $source ] then {
@@ -154,6 +155,13 @@ proc gnat_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]
+ }
+
# TOOL_OPTIONS must come first, so that it doesn't override testcase
# specific options.
if [info exists TOOL_OPTIONS] {
@@ -139,6 +139,7 @@ proc go_init { args } {
global TOOL_EXECUTABLE TOOL_OPTIONS
global GOC_UNDER_TEST
global TESTING_IN_BUILD_TREE
+ global TEST_ALWAYS_FLAGS
# We set LC_ALL and LANG to C so that we get the same error messages as expected.
setenv LC_ALL C
@@ -174,6 +175,13 @@ proc go_init { args } {
set ALWAYS_GOCFLAGS ""
+ # 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] {
+ lappend ALWAYS_GOCFLAGS "additional_flags=$TEST_ALWAYS_FLAGS"
+ }
+
if ![is_remote host] {
if [info exists TOOL_OPTIONS] {
lappend ALWAYS_GOCFLAGS "additional_flags=[go_include_flags [get_multilibs ${TOOL_OPTIONS}] ]"
@@ -213,6 +213,7 @@ proc obj-c++_init { args } {
global target_triplet
global gcc_warning_prefix
global gcc_error_prefix
+ global TEST_ALWAYS_FLAGS
if ![info exists OBJCXX_UNDER_TEST] then {
if [info exists TOOL_EXECUTABLE] {
@@ -249,6 +250,13 @@ proc obj-c++_init { args } {
set ALWAYS_OBJCXXFLAGS ""
+ # 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] {
+ lappend ALWAYS_OBJCXXFLAGS "additional_flags=$TEST_ALWAYS_FLAGS"
+ }
+
if ![is_remote host] {
if [info exists TOOL_OPTIONS] {
lappend ALWAYS_OBJCXXFLAGS "additional_flags=[obj-c++_include_flags [get_multilibs ${TOOL_OPTIONS}] ]";
@@ -142,6 +142,7 @@ proc objc_target_compile { source dest type options } {
global ld_library_path
global objc_libgcc_s_path
global shlib_ext
+ global TEST_ALWAYS_FLAGS
set shlib_ext [get_shlib_extension]
set ld_library_path ".:${objc_libgcc_s_path}"
@@ -199,6 +200,14 @@ proc objc_target_compile { source dest type options } {
if [target_info exists objc,no_label_values] {
lappend options "additional_flags=-DNO_LABEL_VALUES"
}
+
+ # 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]
+ }
+
# TOOL_OPTIONS must come first, so that it doesn't override testcase
# specific options.
if [info exists TOOL_OPTIONS] {
@@ -258,6 +258,7 @@ proc dg-add-options { args } {
proc check-flags { args } {
global compiler_flags
global TOOL_OPTIONS
+ global TEST_ALWAYS_FLAGS
# The args are within another list; pull them out.
set args [lindex $args 0]
@@ -268,6 +269,8 @@ proc check-flags { args } {
append compiler_flags [current_compiler_flags]
# If running a subset of the test suite, $TOOL_OPTIONS may not exist.
catch {append compiler_flags " $TOOL_OPTIONS "}
+ # If running a subset of the test suite, $TEST_ALWAYS_FLAGS may not exist.
+ catch {append compiler_flags " $TEST_ALWAYS_FLAGS "}
set dest [target_info name]
if [board_info $dest exists multilib_flags] {
append compiler_flags "[board_info $dest multilib_flags] "