Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 25 Jan 2019 19:04:49 +0000 (UTC)
From:      John Baldwin <jhb@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r491173 - in head: base/gcc devel/powerpc64-gcc devel/powerpc64-gcc/files
Message-ID:  <201901251904.x0PJ4noc057595@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jhb (src,doc committer)
Date: Fri Jan 25 19:04:49 2019
New Revision: 491173
URL: https://svnweb.freebsd.org/changeset/ports/491173

Log:
  Override the library search directories for external GCC toolchains.
  
  The default library search directories when building a native GCC end
  up falling back to /usr/local/lib (for devel/*-gcc) and /usr/lib (for
  base/gcc) even when --sysroot is used.  For devel/*-gcc, I previously
  forced CROSS_DIRECTORY_STRUCTURE on in r466699 to workaround this.
  However, this solution could not be used for base/gcc.  Instead, patch
  the sources to remove several of the library search directories and
  override STARTFILE_PREFIX_SPEC to only look in /usr/lib.  GCC still
  adds tuple-specific subdirs to /usr/lib, but this is ok.
  
  Bump PORTREVISION for both the external GCC toolchains and base/gcc.
  
  Reviewed by:	kan
  Differential Revision:	https://reviews.freebsd.org/D18677

Added:
  head/devel/powerpc64-gcc/files/freebsd-libdir   (contents, props changed)
Modified:
  head/base/gcc/Makefile
  head/devel/powerpc64-gcc/Makefile

Modified: head/base/gcc/Makefile
==============================================================================
--- head/base/gcc/Makefile	Fri Jan 25 18:39:59 2019	(r491172)
+++ head/base/gcc/Makefile	Fri Jan 25 19:04:49 2019	(r491173)
@@ -2,7 +2,7 @@
 
 PORTNAME=	gcc
 PORTVERSION=	6.4.0
-PORTREVISION=	1
+PORTREVISION=	2
 CATEGORIES=	base
 MASTER_SITES=	GCC/releases/gcc-${DISTVERSION} \
 		http://www.mpfr.org/mpfr-3.1.6/:mpfr \
@@ -44,6 +44,7 @@ PLIST_SUB=	TARGETARCH=${TARGETARCH} \
 		GCC_VERSION=${PORTVERSION}
 
 EXTRA_PATCHES+= ${.CURDIR}/../../devel/powerpc64-gcc/files/freebsd-format-extensions
+EXTRA_PATCHES+= ${.CURDIR}/../../devel/powerpc64-gcc/files/freebsd-libdir
 EXTRA_PATCHES+= ${.CURDIR}/../../devel/powerpc64-gcc/files/patch-gcc-freebsd-mips
 
 GNU_CONFIGURE=	yes

Modified: head/devel/powerpc64-gcc/Makefile
==============================================================================
--- head/devel/powerpc64-gcc/Makefile	Fri Jan 25 18:39:59 2019	(r491172)
+++ head/devel/powerpc64-gcc/Makefile	Fri Jan 25 19:04:49 2019	(r491173)
@@ -2,7 +2,7 @@
 
 PORTNAME=	gcc
 PORTVERSION=	6.4.0
-PORTREVISION=	3
+PORTREVISION=	4
 CATEGORIES=	devel
 MASTER_SITES=	GCC/releases/gcc-${DISTVERSION}
 PKGNAMEPREFIX?=	powerpc64-
@@ -30,7 +30,8 @@ TARGETARCH=	${PKGNAMEPREFIX:C/-//g:S/amd64/x86_64/}
 .if empty(GCC_TARGET)
 # We are building for a FreeBSD target
 GCC_TARGET=	${PKGNAMEPREFIX:S/amd64/x86_64/}unknown-${OPSYS:tl}${OSREL}
-EXTRA_PATCHES+= ${FILESDIR}/freebsd-format-extensions
+EXTRA_PATCHES+= ${FILESDIR}/freebsd-format-extensions \
+		${FILESDIR}/freebsd-libdir
 .endif
 BU_PREFIX?=	${GCC_TARGET}
 
@@ -49,9 +50,6 @@ CONFIGURE_ARGS+=--target=${GCC_TARGET} --disable-nls -
 
 ALL_TARGET?=	all-gcc
 INSTALL_TARGET?=	install-gcc
-
-# Force build of a cross compiler even if the target matches the host.
-CFLAGS+=	-DCROSS_DIRECTORY_STRUCTURE
 
 .include <bsd.port.options.mk>
 .include <bsd.port.pre.mk>

Added: head/devel/powerpc64-gcc/files/freebsd-libdir
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/powerpc64-gcc/files/freebsd-libdir	Fri Jan 25 19:04:49 2019	(r491173)
@@ -0,0 +1,43 @@
+diff --git gcc/config/freebsd.h gcc/config/freebsd.h
+index e7ea42370c5..191e7da2071 100644
+--- gcc/config/freebsd.h
++++ gcc/config/freebsd.h
+@@ -44,6 +44,9 @@ along with GCC; see the file COPYING3.  If not see
+ #undef  LIB_SPEC
+ #define LIB_SPEC FBSD_LIB_SPEC
+ 
++#undef  STARTFILE_PREFIX_SPEC
++#define STARTFILE_PREFIX_SPEC "/usr/lib/ "
++
+ #if defined(HAVE_LD_EH_FRAME_HDR)
+ #define LINK_EH_SPEC "%{!static|static-pie:--eh-frame-hdr} "
+ #endif
+diff --git gcc/gcc.c gcc/gcc.c
+index f70755679f4..890ef20fd43 100644
+--- gcc/gcc.c
++++ gcc/gcc.c
+@@ -4298,10 +4298,12 @@ process_command (unsigned int decoded_options_count,
+ 	}
+ 
+       set_std_prefix (gcc_exec_prefix, len);
++#if 0
+       add_prefix (&exec_prefixes, gcc_libexec_prefix, "GCC",
+ 		  PREFIX_PRIORITY_LAST, 0, 0);
+       add_prefix (&startfile_prefixes, gcc_exec_prefix, "GCC",
+ 		  PREFIX_PRIORITY_LAST, 0, 0);
++#endif
+     }
+ 
+   /* COMPILER_PATH and LIBRARY_PATH have values
+@@ -4585,9 +4587,11 @@ process_command (unsigned int decoded_options_count,
+   add_prefix (&exec_prefixes,
+ 	      concat (tooldir_prefix, "bin", dir_separator_str, NULL),
+ 	      "BINUTILS", PREFIX_PRIORITY_LAST, 0, 0);
++#if 0
+   add_prefix (&startfile_prefixes,
+ 	      concat (tooldir_prefix, "lib", dir_separator_str, NULL),
+ 	      "BINUTILS", PREFIX_PRIORITY_LAST, 0, 1);
++#endif
+   free (tooldir_prefix);
+ 
+ #if defined(TARGET_SYSTEM_ROOT_RELOCATABLE) && !defined(VMS)



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