Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 27 Jun 2018 18:14:33 +0000 (UTC)
From:      John Baldwin <jhb@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r335717 - in head: contrib/gcc gnu/usr.bin/cc gnu/usr.bin/cc/cc_tools
Message-ID:  <201806271814.w5RIEX1Q014101@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201806271814.w5RIEX1Q014101>