[RFA:] DejaGNU patch: Change -I to -isystem for testsuite.
Hans-Peter Nilsson
hp@bitrange.com
Sat Oct 26 20:33:00 GMT 2002
This patch fixes, for uninstalled newlib targets in a unified
tree, the listed spurious GCC testsuite excess-errors. They
occur because the supposedly-to-be-installed newlib limits.h
uses #include_next. That directive makes gcc emit a warning
when used in a non-system-header context. While that can be
"fixed" for non-installed headers by adding "#pragma GCC
system_header", it shouldn't be needed; it'd be better if gcc
treated it as a system header while running the test-suite.
Done by changing -I to -isystem for include directives for the
test-suite. The -isystem option has been there since at least
gcc-2.7.2 so it should be safe for all uses. This patch is
against the sources.redhat.com unified-tree repository but the
patch applied fine (with offset) to the savannah.gnu.org DejaGNU
repository.
FAIL: gcc.dg/c90-intconst-1.c (test for excess errors)
FAIL: gcc.dg/c99-intconst-1.c (test for excess errors)
FAIL: g++.dg/abi/bitfield4.C (test for excess errors)
FAIL: g++.benjamin/bool01.C (test for excess errors)
FAIL: g++.benjamin/p12475.C (test for excess errors)
FAIL: g++.jason/rfg10.C (test for excess errors)
BTW, does anybody have an idea why gcc/testsuite/site.exp is
completely ineffective? Changing s/-I/-isystem/g in the
site.exp in gcc/Makefile.in has no effect; in fact it doesn't
seem to be used at all.
Ok to commit to sources.redhat.com/dejagnu?
dejagnu:
* lib/libgloss.exp (newlib_include_flags): Use -isystem, not -I.
(libio_include_flags, g++_include_flags, libstdc++_include_flags,
winsup_include_flags): Ditto.
* doc/user.sgml (Local Config File): Use -isystem, not -I, in
example.
brgds, H-P
-------------- next part --------------
Index: doc/user.sgml
===================================================================
RCS file: /cvs/src/src/dejagnu/doc/user.sgml,v
retrieving revision 1.2
diff -p -c -u -p -r1.2 user.sgml
--- doc/user.sgml 21 Apr 2002 08:47:03 -0000 1.2
+++ doc/user.sgml 27 Oct 2002 02:35:40 -0000
@@ -879,7 +879,7 @@
set target_triplet i586-pc-linux-gnulibc1
set target_alias i586-pc-linux-gnulibc1
set CFLAGS ""
- set CXXFLAGS "-I/build/devo-builds/i586-pc-linux-gnulibc1/gcc/../libio -I$srcdir/../libg++/src -I$srcdir/../libio -I$srcdir/../libstdc++ -I$srcdir/../libstdc++/stl -L/build/devo-builds/i586-pc-linux-gnulibc1/gcc/../libg++ -L/build/devo-builds/i586-pc-linux-gnulibc1/gcc/../libstdc++"
+ set CXXFLAGS "-isystem /build/devo-builds/i586-pc-linux-gnulibc1/gcc/../libio -isystem $srcdir/../libg++/src -isystem $srcdir/../libio -isystem $srcdir/../libstdc++ -isystem $srcdir/../libstdc++/stl -L/build/devo-builds/i586-pc-linux-gnulibc1/gcc/../libg++ -L/build/devo-builds/i586-pc-linux-gnulibc1/gcc/../libstdc++"
append LDFLAGS " -L/build/devo-builds/i586-pc-linux-gnulibc1/gcc/../ld"
set tmpdir /build/devo-builds/i586-pc-linux-gnulibc1/gcc/testsuite
set srcdir "${srcdir}/testsuite"
Index: lib/libgloss.exp
===================================================================
RCS file: /cvs/src/src/dejagnu/lib/libgloss.exp,v
retrieving revision 1.9
diff -p -c -u -p -r1.9 libgloss.exp
--- lib/libgloss.exp 26 Sep 2002 09:50:03 -0000 1.9
+++ lib/libgloss.exp 27 Oct 2002 02:35:40 -0000
@@ -159,7 +159,7 @@ proc newlib_include_flags { args } {
if { ${newlib_dir} != "" } {
set newlib_dir [file dirname ${newlib_dir}]
}
- return " -I$gccpath/newlib/targ-include -I${newlib_dir}"
+ return " -isystem $gccpath/newlib/targ-include -isystem ${newlib_dir}"
} else {
verbose "No newlib support for this target"
}
@@ -191,7 +191,7 @@ proc libio_include_flags { args } {
if { $libio_bin_dir != "" && $libio_src_dir != "" } {
set libio_src_dir [file dirname ${libio_src_dir}]
set libio_bin_dir [file dirname ${libio_bin_dir}];
- return " -I${libio_src_dir} -I${libio_bin_dir}"
+ return " -isystem ${libio_src_dir} -isystem ${libio_bin_dir}"
} else {
return ""
}
@@ -226,22 +226,23 @@ proc g++_include_flags { args } {
set dir [lookfor_file ${srcdir} libg++]
if { ${dir} != "" } {
- append flags " -I${dir} -I${dir}/src"
+ append flags " -isystem ${dir} -isystem ${dir}/src"
}
set dir [lookfor_file ${srcdir} libstdc++-v3]
if { ${dir} != "" } {
- append flags " -I${dir}/include -I${dir}/include/std -I${dir}/include/c_std -I${dir}/libsupc++"
+ append flags " -isystem ${dir}/include -isystem ${dir}/include/std"
+ append flags " -isystem ${dir}/include/c_std -isystem ${dir}/libsupc++"
}
set dir [lookfor_file ${gccpath} libstdc++-v3]
if { ${dir} != "" } {
- append flags " -I${dir}/include -I${dir}/include/${target_alias}"
+ append flags " -isystem ${dir}/include -isystem ${dir}/include/${target_alias}"
}
set dir [lookfor_file ${srcdir} libstdc++]
if { ${dir} != "" } {
- append flags " -I${dir} -I${dir}/stl"
+ append flags " -isystem ${dir} -isystem ${dir}/stl"
}
return "$flags"
@@ -317,19 +318,20 @@ proc libstdc++_include_flags { args } {
set dir [lookfor_file ${srcdir} libstdc++-v3]
if { ${dir} != "" } {
- append flags " -I${dir}/include -I${dir}/include/std -I${dir}/include/c_std -I${dir}/libsupc++"
+ append flags " -isystem ${dir}/include -isystem ${dir}/include/std"
+ append flags " -isystem ${dir}/include/c_std -isystem ${dir}/libsupc++"
}
set gccpath [get_multilibs]
set dir [lookfor_file ${gccpath} libstdc++-v3]
if { ${dir} != "" } {
- append flags " -I${dir}/include -I${dir}/include/${target_alias}"
+ append flags " -isystem ${dir}/include -isystem ${dir}/include/${target_alias}"
}
set dir [lookfor_file ${srcdir} libstdc++]
if { ${dir} != "" } {
- append flags " -I${dir} -I${dir}/stl"
+ append flags " -isystem ${dir} -isystem ${dir}/stl"
}
return "$flags"
@@ -860,7 +862,7 @@ proc winsup_include_flags { args } {
set winsup_dir [lookfor_file ${srcdir} winsup/include/windows.h]
if { ${winsup_dir} != "" } {
set winsup_dir [file dirname ${winsup_dir}]
- return " -I${winsup_dir}"
+ return " -isystem ${winsup_dir}"
}
}
verbose "No winsup support for this target"
More information about the Gdb-patches
mailing list