From c6b41d95417d6749dad42f7d162ff776d114ca29 Mon Sep 17 00:00:00 2001 From: Julio Merino Date: Sun, 8 Nov 2015 20:09:59 +0000 Subject: [PATCH] Add a MULTILIB option to gcc{,48,49,5} for powerpc64 This change is the same as r400632, which updated gcc[56]-devel, but now for gcc{,48,49,5}. Waited a week to ensure the change caused nothing to go horribly wrong but this change is very low risk because it only affects powerpc64. This fixes the build of gcc{,48,49,5} under powerpc64 when the system is built without the lib32 libraries. More in detail: If the system is built with lib32 support (WITH_LIB32, which is the default), building gcc from ports results in a compiler that can target both 64-bit and 32-bit binaries on powerpc64. However, when lib32 support is disabled (WITHOUT_LIB32), gcc should only be built with 64-bit support or otherwise the build fails. To fix this, explicitly disable 32-bit support when /usr/lib32 is not present and add a MULTILIB option (which is only defined for powerpc64 when 32-bit support is possible and defaults to yes to preserve the current behavior) to allow the user to explicitly control this feature. Approved by: gerald (maintainer), bdrewery (mentor), andreast Differential Revision: https://reviews.freebsd.org/D3952 --- lang/gcc/Makefile | 9 +++++++++ lang/gcc48/Makefile | 9 +++++++++ lang/gcc49/Makefile | 9 +++++++++ lang/gcc5/Makefile | 11 ++++++++++- 4 files changed, 37 insertions(+), 1 deletion(-) diff --git a/lang/gcc/Makefile b/lang/gcc/Makefile index 3af4bab4c988..f67439703172 100644 --- a/lang/gcc/Makefile +++ b/lang/gcc/Makefile @@ -3,6 +3,7 @@ PORTNAME= gcc PORTVERSION= 4.8.5 +PORTREVISION= 1 CATEGORIES= lang java MASTER_SITES= GCC/releases/gcc-${DISTVERSION} @@ -46,6 +47,14 @@ OPTIONS_DEFAULT_i386= JAVA OPTIONS_DEFAULT_amd64= JAVA OPTIONS_EXCLUDE_DragonFly= JAVA BOOTSTRAP_DESC= Build using a full bootstrap +.if exists(/usr/lib32/libc.so) +OPTIONS_DEFINE+= MULTILIB +OPTIONS_DEFAULT+= MULTILIB +MULTILIB_DESC= Build support for 32-bit and 64-bit target types +MULTILIB_CONFIGURE_ENABLE= multilib +.else +CONFIGURE_ARGS+= --disable-multilib +.endif .include diff --git a/lang/gcc48/Makefile b/lang/gcc48/Makefile index 2739fb9c12c8..f9c3aa94d8e7 100644 --- a/lang/gcc48/Makefile +++ b/lang/gcc48/Makefile @@ -3,6 +3,7 @@ PORTNAME= gcc PORTVERSION= 4.8.5 +PORTREVISION= 1 CATEGORIES= lang java MASTER_SITES= GCC/releases/gcc-${DISTVERSION} PKGNAMESUFFIX= ${SUFFIX} @@ -49,6 +50,14 @@ OPTIONS_DEFAULT_i386= JAVA OPTIONS_DEFAULT_amd64= JAVA OPTIONS_EXCLUDE_DragonFly= JAVA BOOTSTRAP_DESC= Build using a full bootstrap +.if exists(/usr/lib32/libc.so) +OPTIONS_DEFINE+= MULTILIB +OPTIONS_DEFAULT+= MULTILIB +MULTILIB_DESC= Build support for 32-bit and 64-bit target types +MULTILIB_CONFIGURE_ENABLE= multilib +.else +CONFIGURE_ARGS+= --disable-multilib +.endif .include diff --git a/lang/gcc49/Makefile b/lang/gcc49/Makefile index 30b82b46005d..269738f33122 100644 --- a/lang/gcc49/Makefile +++ b/lang/gcc49/Makefile @@ -3,6 +3,7 @@ PORTNAME= gcc PORTVERSION= 4.9.4.s20151028 +PORTREVISION= 1 CATEGORIES= lang java MASTER_SITES= GCC/snapshots/${DISTVERSION} PKGNAMESUFFIX= ${SUFFIX} @@ -50,6 +51,14 @@ OPTIONS_DEFAULT_i386= JAVA OPTIONS_DEFAULT_amd64= JAVA OPTIONS_EXCLUDE_DragonFly= JAVA BOOTSTRAP_DESC= Build using a full bootstrap +.if exists(/usr/lib32/libc.so) +OPTIONS_DEFINE+= MULTILIB +OPTIONS_DEFAULT+= MULTILIB +MULTILIB_DESC= Build support for 32-bit and 64-bit target types +MULTILIB_CONFIGURE_ENABLE= multilib +.else +CONFIGURE_ARGS+= --disable-multilib +.endif .include diff --git a/lang/gcc5/Makefile b/lang/gcc5/Makefile index a06dd7606f72..06567f2c9fea 100644 --- a/lang/gcc5/Makefile +++ b/lang/gcc5/Makefile @@ -3,7 +3,7 @@ PORTNAME= gcc PORTVERSION= 5.2.0 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= lang java MASTER_SITES= GCC/releases/gcc-${DISTVERSION} PKGNAMESUFFIX= ${SUFFIX} @@ -52,6 +52,15 @@ OPTIONS_DEFAULT_amd64= JAVA OPTIONS_EXCLUDE_DragonFly= JAVA BOOTSTRAP_DESC= Build using a full bootstrap +.if exists(/usr/lib32/libc.so) +OPTIONS_DEFINE_powerpc64= MULTILIB +OPTIONS_DEFAULT_powerpc64= MULTILIB +MULTILIB_DESC= Build support for 32-bit and 64-bit targets +MULTILIB_CONFIGURE_ENABLE= multilib +.else +CONFIGURE_ARGS+= --disable-multilib +.endif + .include .if ${ARCH} == "amd64"