[Bug target/69153] --with-advance-toolchain configure option does not correctly set configure variable target_header_dir
bergner at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Jan 6 03:34:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69153
--- Comment #2 from Peter Bergner <bergner at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #1)
> You are leaking a target specific configure option to the configure script.
> This seems wrong. Can't you set target_header_dir in config.gcc instead?
As the code is now, no, since config.gcc is included before the code that sets
$target_header_dir and that code unconditionally sets it, but I suppose we
could modify things such that the setting of $target_header_dir first tests
whether it's set or not before setting it, giving us the ability to set it in
config.gcc. How about the following change that does that?
Index: gcc/configure.ac
===================================================================
--- gcc/configure.ac (revision 231201)
+++ gcc/configure.ac (working copy)
@@ -1401,6 +1401,7 @@
. ${srcdir}/config.host
target_gtfiles=
+target_header_dir=
# Collect target-machine-specific information.
. ${srcdir}/config.gcc
@@ -1997,20 +1998,22 @@
SYSTEM_HEADER_DIR=$build_system_header_dir
fi
-if test x$host != x$target || test "x$TARGET_SYSTEM_ROOT" != x; then
- if test "x$with_headers" != x; then
- target_header_dir=$with_headers
- elif test "x$with_sysroot" = x; then
- target_header_dir="${test_exec_prefix}/${target_noncanonical}/sys-include"
- elif test "x$with_build_sysroot" != "x"; then
- target_header_dir="${with_build_sysroot}${native_system_header_dir}"
- elif test "x$with_sysroot" = xyes; then
-
target_header_dir="${test_exec_prefix}/${target_noncanonical}/sys-root${native_system_header_dir}"
+if test "x$target_header_dir" == x; then
+ if test x$host != x$target || test "x$TARGET_SYSTEM_ROOT" != x; then
+ if test "x$with_headers" != x; then
+ target_header_dir=$with_headers
+ elif test "x$with_sysroot" = x; then
+
target_header_dir="${test_exec_prefix}/${target_noncanonical}/sys-include"
+ elif test "x$with_build_sysroot" != "x"; then
+ target_header_dir="${with_build_sysroot}${native_system_header_dir}"
+ elif test "x$with_sysroot" = xyes; then
+
target_header_dir="${test_exec_prefix}/${target_noncanonical}/sys-root${native_system_header_dir}"
+ else
+ target_header_dir="${with_sysroot}${native_system_header_dir}"
+ fi
else
- target_header_dir="${with_sysroot}${native_system_header_dir}"
+ target_header_dir=${native_system_header_dir}
fi
-else
- target_header_dir=${native_system_header_dir}
fi
# If this is a cross-compiler that does not
Index: gcc/config.gcc
===================================================================
--- gcc/config.gcc (revision 231201)
+++ gcc/config.gcc (working copy)
@@ -4162,6 +4162,7 @@
-d "/opt/$with_advance_toolchain/bin/." -a \
-d "/opt/$with_advance_toolchain/include/."; then
+ target_header_dir=`find /opt/$with_advance_toolchain/
-path '*/include/features.h' | sed -e 's#/features.h##'`
tm_file="$tm_file ./advance-toolchain.h"
(at="/opt/$with_advance_toolchain"
echo "/* Use Advance Toolchain $at */"
More information about the Gcc-bugs
mailing list