svn commit: r497254 - in head/lang/gcc8: . files
Gerald Pfeifer
gerald at FreeBSD.org
Sat Mar 30 14:59:36 UTC 2019
Author: gerald
Date: Sat Mar 30 14:59:34 2019
New Revision: 497254
URL: https://svnweb.freebsd.org/changeset/ports/497254
Log:
Backport r496295 | andreast | 2019-03-19 22:03:17 from lang/gcc8-devel:
This commit brings multilib support for gcc on amd64. This means you can
compile and execute 32-bit binaries with gcc.
The gcc part will be upstreamed as soon as gcc trunk opens for new commits.
On the release front, gcc8, we will merge this commit after a week or so.
Added:
head/lang/gcc8/files/patch-amd64-gcc-multilib-support (contents, props changed)
Modified:
head/lang/gcc8/Makefile
Modified: head/lang/gcc8/Makefile
==============================================================================
--- head/lang/gcc8/Makefile Sat Mar 30 14:42:52 2019 (r497253)
+++ head/lang/gcc8/Makefile Sat Mar 30 14:59:34 2019 (r497254)
@@ -3,6 +3,7 @@
PORTNAME= gcc
PORTVERSION= 8.3.0
+PORTREVISION= 1
CATEGORIES= lang
MASTER_SITES= GCC
PKGNAMESUFFIX= ${SUFFIX}
@@ -44,6 +45,8 @@ BOOTSTRAP_DESC= Build using a full bootstrap
GRAPHITE_DESC= Support for Graphite loop optimizations
.if exists(/usr/lib32/libc.so)
+OPTIONS_DEFINE_amd64+= MULTILIB
+OPTIONS_DEFAULT_amd64+= MULTILIB
OPTIONS_DEFINE_powerpc64+= MULTILIB
OPTIONS_DEFAULT_powerpc64+= MULTILIB
MULTILIB_DESC= Build support for 32-bit and 64-bit targets
@@ -137,7 +140,7 @@ post-stage:
# Add target libraries and include files to packaging list.
${RM} ${WRKDIR}/PLIST.lib
-.if ${ARCH} == powerpc64 && ${PORT_OPTIONS:MMULTILIB}
+.if (${ARCH} == amd64 || ${ARCH} == powerpc64) && ${PORT_OPTIONS:MMULTILIB}
${MKDIR} ${STAGEDIR}${TARGLIB32}
${MV} ${STAGEDIR}${PREFIX}/lib/lib32 ${STAGEDIR}${TARGLIB32}/gcc${SUFFIX}
.endif
Added: head/lang/gcc8/files/patch-amd64-gcc-multilib-support
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/lang/gcc8/files/patch-amd64-gcc-multilib-support Sat Mar 30 14:59:34 2019 (r497254)
@@ -0,0 +1,73 @@
+--- UTC
+Index: gcc/config.gcc
+===================================================================
+--- gcc/config.gcc (revision 269726)
++++ gcc/config.gcc (working copy)
+@@ -4925,8 +4925,11 @@
+ ;;
+ i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
+ ;;
+- i[34567]86-*-freebsd* | x86_64-*-freebsd*)
++ i[34567]86-*-freebsd*)
+ ;;
++ x86_64-*-freebsd*)
++ tmake_file="${tmake_file} i386/t-freebsd64"
++ ;;
+ ia64*-*-linux*)
+ ;;
+
+Index: gcc/config/i386/freebsd64.h
+===================================================================
+--- gcc/config/i386/freebsd64.h (revision 269733)
++++ gcc/config/i386/freebsd64.h (working copy)
+@@ -31,7 +31,7 @@
+
+ #undef LINK_SPEC
+ #define LINK_SPEC "\
+- %{m32:-m elf_i386_fbsd} \
++ %{m32:-m elf_i386_fbsd}%{!m32:-m elf_x86_64_fbsd} \
+ %{p:%nconsider using '-pg' instead of '-p' with gprof(1)} \
+ %{v:-V} \
+ %{assert*} %{R*} %{rpath*} %{defsym*} \
+@@ -42,3 +42,6 @@
+ -dynamic-linker %(fbsd_dynamic_linker) } \
+ %{static:-Bstatic}} \
+ %{symbolic:-Bsymbolic}"
++
++#undef MULTILIB_DEFAULTS
++#define MULTILIB_DEFAULTS { "m64" }
+Index: gcc/config/i386/t-freebsd64
+===================================================================
+--- gcc/config/i386/t-freebsd64 (nonexistent)
++++ gcc/config/i386/t-freebsd64 (working copy)
+@@ -0,0 +1,30 @@
++# Copyright (C) 2019 Free Software Foundation, Inc.
++#
++# This file is part of GCC.
++#
++# GCC is free software; you can redistribute it and/or modify
++# it under the terms of the GNU General Public License as published by
++# the Free Software Foundation; either version 3, or (at your option)
++# any later version.
++#
++# GCC is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++# GNU General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with GCC; see the file COPYING3. If not see
++# <http://www.gnu.org/licenses/>.
++
++# The 32-bit libraries are found in /usr/lib32
++
++# To support i386 and x86-64, the directory structrue
++# should be:
++#
++# /lib has x86-64 libraries.
++# /lib32 has i386 libraries.
++#
++
++MULTILIB_OPTIONS = m32
++MULTILIB_DIRNAMES = 32
++MULTILIB_OSDIRNAMES = ../lib32
More information about the svn-ports-all
mailing list