mirror of
https://github.com/void-linux/void-packages.git
synced 2025-06-05 06:33:50 +02:00
gcc: enable 32-bit powerpc targets on ppc64
This is not multilib per se, but it will allow gcc to emit 32-bit code, therefore enabling things like native GRUB to be built. Also, while at it, enable secureplt for all ppc64 targets. [ci skip]
This commit is contained in:
parent
12b882ea3a
commit
0941a412fc
2 changed files with 60 additions and 7 deletions
57
srcpkgs/gcc/patches/ppc64-pure64.patch
Normal file
57
srcpkgs/gcc/patches/ppc64-pure64.patch
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
--- gcc/config/rs6000/t-linux
|
||||||
|
+++ gcc/config/rs6000/t-linux
|
||||||
|
@@ -2,7 +2,8 @@
|
||||||
|
# or soft-float.
|
||||||
|
ifeq (,$(filter $(with_cpu),$(SOFT_FLOAT_CPUS))$(findstring soft,$(with_float)))
|
||||||
|
ifneq (,$(findstring powerpc64,$(target)))
|
||||||
|
-MULTILIB_OSDIRNAMES := .=../lib64$(call if_multiarch,:powerpc64-linux-gnu)
|
||||||
|
+MULTILIB_OSDIRNAMES := m64=../lib
|
||||||
|
+MULTILIB_OSDIRNAMES += m32=../lib32
|
||||||
|
else
|
||||||
|
ifneq (,$(findstring spe,$(target)))
|
||||||
|
MULTIARCH_DIRNAME := powerpc-linux-gnuspe$(if $(findstring 8548,$(with_cpu)),,v1)
|
||||||
|
@@ -14,7 +15,8 @@
|
||||||
|
MULTIARCH_DIRNAME := $(subst -linux,le-linux,$(MULTIARCH_DIRNAME))
|
||||||
|
endif
|
||||||
|
ifneq (,$(findstring powerpc64le,$(target)))
|
||||||
|
-MULTILIB_OSDIRNAMES := $(subst -linux,le-linux,$(MULTILIB_OSDIRNAMES))
|
||||||
|
+MULTILIB_OSDIRNAMES := m64=../lib
|
||||||
|
+MULTILIB_OSDIRNAMES += m32=../lib32
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
--- gcc/config/rs6000/t-linux64
|
||||||
|
+++ gcc/config/rs6000/t-linux64
|
||||||
|
@@ -28,8 +28,8 @@
|
||||||
|
MULTILIB_OPTIONS := m64/m32
|
||||||
|
MULTILIB_DIRNAMES := 64 32
|
||||||
|
MULTILIB_EXTRA_OPTS :=
|
||||||
|
-MULTILIB_OSDIRNAMES := m64=../lib64$(call if_multiarch,:powerpc64-linux-gnu)
|
||||||
|
-MULTILIB_OSDIRNAMES += m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:powerpc-linux-gnu)
|
||||||
|
+MULTILIB_OSDIRNAMES := m64=../lib
|
||||||
|
+MULTILIB_OSDIRNAMES += m32=../lib32
|
||||||
|
|
||||||
|
rs6000-linux.o: $(srcdir)/config/rs6000/rs6000-linux.c
|
||||||
|
$(COMPILE) $<
|
||||||
|
--- gcc/config/rs6000/t-linux64bele
|
||||||
|
+++ gcc/config/rs6000/t-linux64bele
|
||||||
|
@@ -2,6 +2,6 @@
|
||||||
|
|
||||||
|
MULTILIB_OPTIONS += mlittle
|
||||||
|
MULTILIB_DIRNAMES += le
|
||||||
|
-MULTILIB_OSDIRNAMES += $(subst =,.mlittle=,$(subst lible32,lib32le,$(subst lible64,lib64le,$(subst lib,lible,$(subst -linux,le-linux,$(MULTILIB_OSDIRNAMES))))))
|
||||||
|
-MULTILIB_OSDIRNAMES += $(subst $(if $(findstring 64,$(target)),m64,m32).,,$(filter $(if $(findstring 64,$(target)),m64,m32).mlittle%,$(MULTILIB_OSDIRNAMES)))
|
||||||
|
+MULTILIB_OSDIRNAMES = m64=../lib
|
||||||
|
+MULTILIB_OSDIRNAMES+= m32=../lib32
|
||||||
|
MULTILIB_MATCHES := ${MULTILIB_MATCHES_ENDIAN}
|
||||||
|
--- gcc/config/rs6000/t-linux64lebe
|
||||||
|
+++ gcc/config/rs6000/t-linux64lebe
|
||||||
|
@@ -2,6 +2,6 @@
|
||||||
|
|
||||||
|
MULTILIB_OPTIONS += mbig
|
||||||
|
MULTILIB_DIRNAMES += be
|
||||||
|
-MULTILIB_OSDIRNAMES += $(subst =,.mbig=,$(subst libbe32,lib32be,$(subst libbe64,lib64be,$(subst lib,libbe,$(subst le-linux,-linux,$(MULTILIB_OSDIRNAMES))))))
|
||||||
|
-MULTILIB_OSDIRNAMES += $(subst $(if $(findstring 64,$(target)),m64,m32).,,$(filter $(if $(findstring 64,$(target)),m64,m32).mbig%,$(MULTILIB_OSDIRNAMES)))
|
||||||
|
+MULTILIB_OSDIRNAMES := m64=../lib
|
||||||
|
+MULTILIB_OSDIRNAMES += m32=../lib32
|
||||||
|
MULTILIB_MATCHES := ${MULTILIB_MATCHES_ENDIAN}
|
|
@ -183,15 +183,11 @@ do_configure() {
|
||||||
ppc) _args+=" --with-cpu=powerpc --target=powerpc-linux-gnu";;
|
ppc) _args+=" --with-cpu=powerpc --target=powerpc-linux-gnu";;
|
||||||
ppc-musl) _args+=" --with-cpu=powerpc --target=powerpc-linux-musl --disable-decimal-float --with-long-double=64";;
|
ppc-musl) _args+=" --with-cpu=powerpc --target=powerpc-linux-musl --disable-decimal-float --with-long-double=64";;
|
||||||
ppc64le*) # use lib not lib64 by default
|
ppc64le*) # use lib not lib64 by default
|
||||||
_args+=" --with-cpu=powerpc64le --with-abi=elfv2"
|
_args+=" --target=${_triplet} --with-abi=elfv2 --enable-secureplt --enable-targets=powerpcle-linux"
|
||||||
sed -i '/OSDIRNAMES/s/lib64/lib/' gcc/config/rs6000/t-linux
|
|
||||||
sed -i '/m64=/s/lib64/lib/' gcc/config/rs6000/t-linux64
|
|
||||||
sed -i 's/lib64/lib/' gcc/config/rs6000/linux64.h
|
sed -i 's/lib64/lib/' gcc/config/rs6000/linux64.h
|
||||||
;;
|
;;
|
||||||
ppc64*) # use lib not lib64 by default
|
ppc64*) # use lib not lib64 by default
|
||||||
_args+=" --with-cpu=powerpc64 --with-abi=elfv2"
|
_args+=" --target=${_triplet} --with-abi=elfv2 --enable-secureplt --enable-targets=powerpc-linux"
|
||||||
sed -i '/OSDIRNAMES/s/lib64/lib/' gcc/config/rs6000/t-linux
|
|
||||||
sed -i '/m64=/s/lib64/lib/' gcc/config/rs6000/t-linux64
|
|
||||||
sed -i 's/lib64/lib/' gcc/config/rs6000/linux64.h
|
sed -i 's/lib64/lib/' gcc/config/rs6000/linux64.h
|
||||||
;;
|
;;
|
||||||
x86_64*) # use lib not lib64 by default
|
x86_64*) # use lib not lib64 by default
|
||||||
|
@ -203,7 +199,7 @@ do_configure() {
|
||||||
# fix: unknown long double size, cannot define BFP_FMT
|
# fix: unknown long double size, cannot define BFP_FMT
|
||||||
case "$XBPS_TARGET_MACHINE" in
|
case "$XBPS_TARGET_MACHINE" in
|
||||||
ppc64le-musl|ppc64-musl)
|
ppc64le-musl|ppc64-musl)
|
||||||
_args+=" --enable-decimal-float=no --disable-libquadmath --enable-secureplt"
|
_args+=" --enable-decimal-float=no --disable-libquadmath"
|
||||||
;;
|
;;
|
||||||
*) ;;
|
*) ;;
|
||||||
esac
|
esac
|
||||||
|
|
Loading…
Add table
Reference in a new issue