svn commit: r335717 - in head: contrib/gcc gnu/usr.bin/cc gnu/usr.bin/cc/cc_tools
John Baldwin
jhb at FreeBSD.org
Wed Jun 27 18:14:34 UTC 2018
Author: jhb
Date: Wed Jun 27 18:14:33 2018
New Revision: 335717
URL: https://svnweb.freebsd.org/changeset/base/335717
Log:
Fix GCC 4.2.1 to honor --sysroot for includes.
- Change the C++ directory entries to honor --sysroot if it is set.
- Don't define CROSS_INCLUDE_DIR for the cross compiler. Instead, set
TARGET_SYSTEM_ROOT to point to WORLDTMP and always define
STANDARD_INCLUDE_DIR.
- Change STANDARD_INCLUDE_DIR and the C++ include directories to just
start with "/usr" always. The compiler will prepend the sysroot when
doing cross-builds. GCC_INCLUDE_DIR (which contains headers that ship
with the compiler such as intrinsincs rather than OS-supplied headers)
remains hardcoded to look in TOOLS_PREFIX.
Reviewed by: bdrewery (older version)
Sponsored by: DARPA / AFRL
Differential Revision: https://reviews.freebsd.org/D15127
Modified:
head/contrib/gcc/cppdefault.c
head/gnu/usr.bin/cc/Makefile.inc
head/gnu/usr.bin/cc/cc_tools/freebsd-native.h
Modified: head/contrib/gcc/cppdefault.c
==============================================================================
--- head/contrib/gcc/cppdefault.c Wed Jun 27 18:11:47 2018 (r335716)
+++ head/contrib/gcc/cppdefault.c Wed Jun 27 18:14:33 2018 (r335717)
@@ -48,7 +48,7 @@ const struct default_include cpp_include_defaults[]
= {
#ifdef GPLUSPLUS_INCLUDE_DIR
/* Pick up GNU C++ generic include files. */
- { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, 0, 0 },
+ { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, 1, 0 },
#endif
#ifdef GPLUSPLUS_TOOL_INCLUDE_DIR
/* Pick up GNU C++ target-dependent include files. */
@@ -56,7 +56,7 @@ const struct default_include cpp_include_defaults[]
#endif
#ifdef GPLUSPLUS_BACKWARD_INCLUDE_DIR
/* Pick up GNU C++ backward and deprecated include files. */
- { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, 0, 0 },
+ { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, 1, 0 },
#endif
#ifdef LOCAL_INCLUDE_DIR
/* /usr/local/include comes before the fixincluded header files. */
Modified: head/gnu/usr.bin/cc/Makefile.inc
==============================================================================
--- head/gnu/usr.bin/cc/Makefile.inc Wed Jun 27 18:11:47 2018 (r335716)
+++ head/gnu/usr.bin/cc/Makefile.inc Wed Jun 27 18:14:33 2018 (r335717)
@@ -25,6 +25,7 @@ CSTD?= gnu89
.if ${TARGET_ARCH} != ${MACHINE_ARCH}
CFLAGS+= -DCROSS_DIRECTORY_STRUCTURE
+CFLAGS+= -DTARGET_SYSTEM_ROOT=\"${TOOLS_PREFIX}\"
.endif
.if ${TARGET_CPUARCH} == "arm"
Modified: head/gnu/usr.bin/cc/cc_tools/freebsd-native.h
==============================================================================
--- head/gnu/usr.bin/cc/cc_tools/freebsd-native.h Wed Jun 27 18:11:47 2018 (r335716)
+++ head/gnu/usr.bin/cc/cc_tools/freebsd-native.h Wed Jun 27 18:14:33 2018 (r335717)
@@ -15,14 +15,10 @@
#undef LOCAL_INCLUDE_DIR /* We don't wish to support one. */
/* Look for the include files in the system-defined places. */
-#define GPLUSPLUS_INCLUDE_DIR PREFIX"/include/c++/"GCCVER
-#define GPLUSPLUS_BACKWARD_INCLUDE_DIR PREFIX"/include/c++/"GCCVER"/backward"
+#define GPLUSPLUS_INCLUDE_DIR "/usr/include/c++/"GCCVER
+#define GPLUSPLUS_BACKWARD_INCLUDE_DIR "/usr/include/c++/"GCCVER"/backward"
#define GCC_INCLUDE_DIR PREFIX"/include/gcc/"GCCVER
-#ifdef CROSS_DIRECTORY_STRUCTURE
-#define CROSS_INCLUDE_DIR PREFIX"/include"
-#else
-#define STANDARD_INCLUDE_DIR PREFIX"/include"
-#endif
+#define STANDARD_INCLUDE_DIR "/usr/include"
/* Under FreeBSD, the normal location of the compiler back ends is the
/usr/libexec directory.
More information about the svn-src-all
mailing list