* Using sysroot in testsuite. Trunk version. (issue4248059)
@ 2011-03-08 1:31 Diego Novillo
2011-03-08 1:47 ` Mike Stump
0 siblings, 1 reply; 3+ messages in thread
From: Diego Novillo @ 2011-03-08 1:31 UTC (permalink / raw)
To: gcc-patches, reply, mikestump, ro, simonb
This is the patch I had in mind for trunk. I made it a little more
generic by changing the name of the variable to TEST_ALWAYS_FLAGS and
setting it by default to use the value from SYSROOT_CFLAGS_FOR_TARGET.
I also added the setting of SYSROOT_CFLAGS_FOR_TARGET to use the value
from --with-build-sysroot. I think this would also be useful for any
other settings that one would want to use with all compiles, but I'm
not completely sure if the approach is OK.
If this is not the proper way, I need something like this so I can
execute every test in the testsuite with a specific set of flags
(--sysroot=... in this case)
Bootstrapped and tested on x86_64 with and without build-sysroot.
OK for 4.7?
Thanks. Diego.
ChangeLog
* Makefile.in (SYSROOT_CFLAGS_FOR_TARGET): Define from
@SYSROOT_CFLAGS_FOR_TARGET@.
* configure.ac (SYSROOT_CFLAGS_FOR_TARGET): Set from
build-sysroot.
* configure: Regenerate.
(site.exp): Add definition of TEST_ALWAYS_FLAGS.
Remove setting of GCC_UNDER_TEST.
testsuite/ChangeLog
* lib/g++.exp (g++_init): Add $TEST_ALWAYS_FLAGS to
ALWAYS_CXXFLAGS, if defined.
* lib/gfortran.exp (gfortran_init): Add $TEST_ALWAYS_FLAGS to
ALWAYS_GFORTRANFLAGS, if defined.
* lib/go.exp (go_target_compile): Add $TEST_ALWAYS_FLAGS to
ALWAYS_GOCFLAGS, if defined.
* lib/obj-c++.exp (obj-c++_init): Add $TEST_ALWAYS_FLAGS to
ALWAYS_OBJCXXFLAGS, if defined.
* lib/gcc.exp (gcc_target_compile): Add $TEST_ALWAYS_FLAGS to
additional_flags, if defined.
* lib/gnat.exp (gnat_target_compile): Likewise.
* lib/objc.exp (objc_target_compile): Likewise.
* lib/target-supports-dg.exp (dg-add-options): Handle
TEST_ALWAYS_FLAGS.
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index 9a8262a..158f47d 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -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
diff --git a/gcc/configure b/gcc/configure
index a454946..df8b166 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -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
diff --git a/gcc/configure.ac b/gcc/configure.ac
index 03a8cef..82aef96 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -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.],
diff --git a/gcc/testsuite/lib/g++.exp b/gcc/testsuite/lib/g++.exp
index 9de817b..c421298 100644
--- a/gcc/testsuite/lib/g++.exp
+++ b/gcc/testsuite/lib/g++.exp
@@ -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}] ]"
diff --git a/gcc/testsuite/lib/gcc.exp b/gcc/testsuite/lib/gcc.exp
index ddbf9ef..bb1763a 100644
--- a/gcc/testsuite/lib/gcc.exp
+++ b/gcc/testsuite/lib/gcc.exp
@@ -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]
diff --git a/gcc/testsuite/lib/gfortran.exp b/gcc/testsuite/lib/gfortran.exp
index 4a1a636..d9934fc 100644
--- a/gcc/testsuite/lib/gfortran.exp
+++ b/gcc/testsuite/lib/gfortran.exp
@@ -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}] ]"
diff --git a/gcc/testsuite/lib/gnat.exp b/gcc/testsuite/lib/gnat.exp
index ad33069..21cfce4 100644
--- a/gcc/testsuite/lib/gnat.exp
+++ b/gcc/testsuite/lib/gnat.exp
@@ -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] {
diff --git a/gcc/testsuite/lib/go.exp b/gcc/testsuite/lib/go.exp
index ee5eb76..e189ea1 100644
--- a/gcc/testsuite/lib/go.exp
+++ b/gcc/testsuite/lib/go.exp
@@ -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}] ]"
diff --git a/gcc/testsuite/lib/obj-c++.exp b/gcc/testsuite/lib/obj-c++.exp
index 57bab52..9e31d9d 100644
--- a/gcc/testsuite/lib/obj-c++.exp
+++ b/gcc/testsuite/lib/obj-c++.exp
@@ -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}] ]";
diff --git a/gcc/testsuite/lib/objc.exp b/gcc/testsuite/lib/objc.exp
index ae0671f..30d24e1 100644
--- a/gcc/testsuite/lib/objc.exp
+++ b/gcc/testsuite/lib/objc.exp
@@ -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] {
diff --git a/gcc/testsuite/lib/target-supports-dg.exp b/gcc/testsuite/lib/target-supports-dg.exp
index 3a2c0dc..6adb7db 100644
--- a/gcc/testsuite/lib/target-supports-dg.exp
+++ b/gcc/testsuite/lib/target-supports-dg.exp
@@ -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] "
--
This patch is available for review at http://codereview.appspot.com/4248059
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Using sysroot in testsuite. Trunk version. (issue4248059)
2011-03-08 1:31 Using sysroot in testsuite. Trunk version. (issue4248059) Diego Novillo
@ 2011-03-08 1:47 ` Mike Stump
2011-09-15 21:09 ` Diego Novillo
0 siblings, 1 reply; 3+ messages in thread
From: Mike Stump @ 2011-03-08 1:47 UTC (permalink / raw)
To: Diego Novillo; +Cc: gcc-patches, reply, ro, simonb
On Mar 7, 2011, at 5:30 PM, Diego Novillo wrote:
> This is the patch I had in mind for trunk.
> OK for 4.7?
Ok. I'll just note here, that this is necessary for canadian, but not always sufficient. It is monotonically better however. I looked at the Make/configure issues, and they look fine to me, though, there are others that specialize in that. Thanks.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Using sysroot in testsuite. Trunk version. (issue4248059)
2011-03-08 1:47 ` Mike Stump
@ 2011-09-15 21:09 ` Diego Novillo
0 siblings, 0 replies; 3+ messages in thread
From: Diego Novillo @ 2011-09-15 21:09 UTC (permalink / raw)
To: Mike Stump; +Cc: gcc-patches, reply, ro, simonb
On Mon, Mar 7, 2011 at 20:47, Mike Stump <mikestump@comcast.net> wrote:
> On Mar 7, 2011, at 5:30 PM, Diego Novillo wrote:
>> This is the patch I had in mind for trunk.
>
>> OK for 4.7?
>
> Ok. I'll just note here, that this is necessary for canadian, but not always sufficient. It is monotonically better however. I looked at the Make/configure issues, and they look fine to me, though, there are others that specialize in that. Thanks.
Took me a while, but I've applied this patch as rev 178897.
Diego.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2011-09-15 21:01 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-03-08 1:31 Using sysroot in testsuite. Trunk version. (issue4248059) Diego Novillo
2011-03-08 1:47 ` Mike Stump
2011-09-15 21:09 ` Diego Novillo
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).