From f1a7dfbfef8541d7b47a1d30d6c791e9279cdf4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Buchm=C3=BCller?= Date: Sat, 3 Aug 2019 23:07:23 +0200 Subject: [PATCH] common: fix XBPS_{,TARGET_}{ENDIAN,LIBC,WORDSIZE} MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit My first attempt was not working at all. Signed-off-by: Jürgen Buchmüller --- common/build-profiles/aarch64-musl.sh | 1 - common/build-profiles/aarch64.sh | 1 - common/build-profiles/armv6l-musl.sh | 1 - common/build-profiles/armv6l.sh | 1 - common/build-profiles/armv7l-musl.sh | 1 - common/build-profiles/armv7l.sh | 1 - common/build-profiles/i686-musl.sh | 1 - common/build-profiles/i686.sh | 1 - common/build-profiles/ppc-musl.sh | 1 - common/build-profiles/ppc.sh | 1 - common/build-profiles/ppc64-musl.sh | 1 - common/build-profiles/ppc64.sh | 1 - common/build-profiles/ppc64le-musl.sh | 1 - common/build-profiles/ppc64le.sh | 1 - common/build-profiles/x86_64-musl.sh | 1 - common/build-profiles/x86_64.sh | 1 - common/cross-profiles/aarch64-musl.sh | 2 +- common/cross-profiles/aarch64.sh | 2 +- common/cross-profiles/armv5tel-musl.sh | 2 +- common/cross-profiles/armv5tel.sh | 2 +- common/cross-profiles/armv6l-musl.sh | 2 +- common/cross-profiles/armv6l.sh | 2 +- common/cross-profiles/armv7l-musl.sh | 2 +- common/cross-profiles/armv7l.sh | 2 +- common/cross-profiles/i686-musl.sh | 2 +- common/cross-profiles/i686.sh | 2 +- common/cross-profiles/mips-musl.sh | 2 +- common/cross-profiles/mipsel-musl.sh | 2 +- common/cross-profiles/mipselhf-musl.sh | 2 +- common/cross-profiles/mipshf-musl.sh | 2 +- common/cross-profiles/ppc-musl.sh | 2 +- common/cross-profiles/ppc.sh | 2 +- common/cross-profiles/ppc64-musl.sh | 2 +- common/cross-profiles/ppc64.sh | 2 +- common/cross-profiles/ppc64le-musl.sh | 2 +- common/cross-profiles/ppc64le.sh | 2 +- common/cross-profiles/x86_64-musl.sh | 2 +- common/xbps-src/shutils/common.sh | 57 ++++++++++++++++++++++++-- 38 files changed, 75 insertions(+), 40 deletions(-) diff --git a/common/build-profiles/aarch64-musl.sh b/common/build-profiles/aarch64-musl.sh index aaac64d677..8e52f1eaee 100644 --- a/common/build-profiles/aarch64-musl.sh +++ b/common/build-profiles/aarch64-musl.sh @@ -1,4 +1,3 @@ -XBPS_WORDSIZE=64 XBPS_TARGET_CFLAGS="-march=armv8-a" XBPS_TARGET_CXXFLAGS="$XBPS_TARGET_CFLAGS" XBPS_TARGET_FFLAGS="" diff --git a/common/build-profiles/aarch64.sh b/common/build-profiles/aarch64.sh index 5a04755d2c..233445d8f2 100644 --- a/common/build-profiles/aarch64.sh +++ b/common/build-profiles/aarch64.sh @@ -1,4 +1,3 @@ -XBPS_WORDSIZE=64 XBPS_TARGET_CFLAGS="-march=armv8-a" XBPS_TARGET_CXXFLAGS="$XBPS_TARGET_CFLAGS" XBPS_TARGET_FFLAGS="" diff --git a/common/build-profiles/armv6l-musl.sh b/common/build-profiles/armv6l-musl.sh index 03bdec4f27..1c94bf70d1 100644 --- a/common/build-profiles/armv6l-musl.sh +++ b/common/build-profiles/armv6l-musl.sh @@ -1,4 +1,3 @@ -XBPS_WORDSIZE=32 XBPS_TARGET_CFLAGS="-march=armv6 -mfpu=vfp -mfloat-abi=hard" XBPS_TARGET_CXXFLAGS="$XBPS_TARGET_CFLAGS" XBPS_TARGET_FFLAGS="" diff --git a/common/build-profiles/armv6l.sh b/common/build-profiles/armv6l.sh index 0bf1e3b171..384e328a6e 100644 --- a/common/build-profiles/armv6l.sh +++ b/common/build-profiles/armv6l.sh @@ -1,4 +1,3 @@ -XBPS_WORDSIZE=32 XBPS_TARGET_CFLAGS="-march=armv6 -mfpu=vfp -mfloat-abi=hard" XBPS_TARGET_CXXFLAGS="$XBPS_TARGET_CFLAGS" XBPS_TARGET_FFLAGS="" diff --git a/common/build-profiles/armv7l-musl.sh b/common/build-profiles/armv7l-musl.sh index 8c35c92fd5..caadaee541 100644 --- a/common/build-profiles/armv7l-musl.sh +++ b/common/build-profiles/armv7l-musl.sh @@ -1,4 +1,3 @@ -XBPS_WORDSIZE=32 XBPS_TARGET_CFLAGS="-march=armv7-a -mfpu=vfpv3 -mfloat-abi=hard" XBPS_TARGET_CXXFLAGS="$XBPS_CXXFLAGS" XBPS_TARGET_FFLAGS="" diff --git a/common/build-profiles/armv7l.sh b/common/build-profiles/armv7l.sh index 70445d5075..89c8badd2a 100644 --- a/common/build-profiles/armv7l.sh +++ b/common/build-profiles/armv7l.sh @@ -1,4 +1,3 @@ -XBPS_WORDSIZE=32 XBPS_TARGET_CFLAGS="-march=armv7-a -mfpu=vfpv3 -mfloat-abi=hard" XBPS_TARGET_CXXFLAGS="$XBPS_TARGET_CFLAGS" XBPS_TARGET_FFLAGS="" diff --git a/common/build-profiles/i686-musl.sh b/common/build-profiles/i686-musl.sh index 558871c228..c690a2e211 100644 --- a/common/build-profiles/i686-musl.sh +++ b/common/build-profiles/i686-musl.sh @@ -1,4 +1,3 @@ -XBPS_WORDSIZE=32 XBPS_TARGET_CFLAGS="-mtune=i686" XBPS_TARGET_CXXFLAGS="$XBPS_TARGET_CFLAGS" XBPS_TARGET_FFLAGS="" diff --git a/common/build-profiles/i686.sh b/common/build-profiles/i686.sh index 3558c8e81a..550bbf5b9f 100644 --- a/common/build-profiles/i686.sh +++ b/common/build-profiles/i686.sh @@ -1,4 +1,3 @@ -XBPS_WORDSIZE=32 XBPS_TARGET_CFLAGS="-mtune=i686" XBPS_TARGET_CXXFLAGS="$XBPS_TARGET_CFLAGS" XBPS_TARGET_FFLAGS="" diff --git a/common/build-profiles/ppc-musl.sh b/common/build-profiles/ppc-musl.sh index dea288a9eb..f9c290f9a5 100644 --- a/common/build-profiles/ppc-musl.sh +++ b/common/build-profiles/ppc-musl.sh @@ -1,4 +1,3 @@ -XBPS_WORDSIZE=32 XBPS_TARGET_CFLAGS="-mcpu=powerpc -mno-altivec -mtune=G4 -mlong-double-64" XBPS_TARGET_CXXFLAGS="$XBPS_TARGET_CFLAGS" XBPS_TARGET_FFLAGS="" diff --git a/common/build-profiles/ppc.sh b/common/build-profiles/ppc.sh index 3c729f2bf8..cfd37f10f8 100644 --- a/common/build-profiles/ppc.sh +++ b/common/build-profiles/ppc.sh @@ -1,4 +1,3 @@ -XBPS_WORDSIZE=32 XBPS_TARGET_CFLAGS="-mcpu=powerpc -mno-altivec -mtune=G4" XBPS_TARGET_CXXFLAGS="$XBPS_TARGET_CFLAGS" XBPS_TARGET_FFLAGS="" diff --git a/common/build-profiles/ppc64-musl.sh b/common/build-profiles/ppc64-musl.sh index b4cbafa1fa..e3978fe936 100644 --- a/common/build-profiles/ppc64-musl.sh +++ b/common/build-profiles/ppc64-musl.sh @@ -1,4 +1,3 @@ -XBPS_WORDSIZE=64 XBPS_TARGET_CFLAGS="-mcpu=970 -mtune=power9 -maltivec -mlong-double-64 -mabi=elfv2" XBPS_TARGET_CXXFLAGS="$XBPS_TARGET_CFLAGS" XBPS_TARGET_FFLAGS="" diff --git a/common/build-profiles/ppc64.sh b/common/build-profiles/ppc64.sh index 5805d7d7d7..4db1d5f726 100644 --- a/common/build-profiles/ppc64.sh +++ b/common/build-profiles/ppc64.sh @@ -1,4 +1,3 @@ -XBPS_WORDSIZE=64 XBPS_TARGET_CFLAGS="-mcpu=970 -mtune=power9 -maltivec -mabi=elfv2" XBPS_TARGET_CXXFLAGS="$XBPS_TARGET_CFLAGS" XBPS_TARGET_FFLAGS="" diff --git a/common/build-profiles/ppc64le-musl.sh b/common/build-profiles/ppc64le-musl.sh index 64c460de79..146527d84f 100644 --- a/common/build-profiles/ppc64le-musl.sh +++ b/common/build-profiles/ppc64le-musl.sh @@ -1,4 +1,3 @@ -XBPS_WORDSIZE=64 XBPS_TARGET_CFLAGS="-mcpu=powerpc64le -mtune=power9 -maltivec -mlong-double-64 -mabi=elfv2" XBPS_TARGET_CXXFLAGS="$XBPS_TARGET_CFLAGS" XBPS_TARGET_FFLAGS="" diff --git a/common/build-profiles/ppc64le.sh b/common/build-profiles/ppc64le.sh index d24874bfcc..5d17214ecc 100644 --- a/common/build-profiles/ppc64le.sh +++ b/common/build-profiles/ppc64le.sh @@ -1,4 +1,3 @@ -XBPS_WORDSIZE=64 XBPS_TARGET_CFLAGS="-mcpu=powerpc64le -mtune=power9 -maltivec -mabi=elfv2" XBPS_TARGET_CXXFLAGS="$XBPS_TARGET_CFLAGS" XBPS_TARGET_FFLAGS="" diff --git a/common/build-profiles/x86_64-musl.sh b/common/build-profiles/x86_64-musl.sh index 524ef1f70d..303f747bd3 100644 --- a/common/build-profiles/x86_64-musl.sh +++ b/common/build-profiles/x86_64-musl.sh @@ -1,4 +1,3 @@ -XBPS_WORDSIZE=64 XBPS_TARGET_CFLAGS="-mtune=generic" XBPS_TARGET_CXXFLAGS="$XBPS_TARGET_CFLAGS" XBPS_TARGET_FFLAGS="" diff --git a/common/build-profiles/x86_64.sh b/common/build-profiles/x86_64.sh index 26310197a4..4f0647f197 100644 --- a/common/build-profiles/x86_64.sh +++ b/common/build-profiles/x86_64.sh @@ -1,4 +1,3 @@ -XBPS_WORDSIZE=64 XBPS_TARGET_CFLAGS="-mtune=generic" XBPS_TARGET_CXXFLAGS="$XBPS_TARGET_CFLAGS" XBPS_TARGET_FFLAGS="" diff --git a/common/cross-profiles/aarch64-musl.sh b/common/cross-profiles/aarch64-musl.sh index 1f97265538..143cfa5262 100644 --- a/common/cross-profiles/aarch64-musl.sh +++ b/common/cross-profiles/aarch64-musl.sh @@ -1,5 +1,5 @@ # Cross build profile for ARMv8. -XBPS_TARGET_WORDSIZE=64 + XBPS_TARGET_MACHINE="aarch64-musl" XBPS_TARGET_QEMU_MACHINE="aarch64" XBPS_CROSS_TRIPLET="aarch64-linux-musl" diff --git a/common/cross-profiles/aarch64.sh b/common/cross-profiles/aarch64.sh index 87d6181672..4e9f72f78f 100644 --- a/common/cross-profiles/aarch64.sh +++ b/common/cross-profiles/aarch64.sh @@ -1,5 +1,5 @@ # Cross build profile for ARMv8. -XBPS_TARGET_WORDSIZE=64 + XBPS_TARGET_MACHINE="aarch64" XBPS_TARGET_QEMU_MACHINE="aarch64" XBPS_CROSS_TRIPLET="aarch64-linux-gnu" diff --git a/common/cross-profiles/armv5tel-musl.sh b/common/cross-profiles/armv5tel-musl.sh index b5a2755f4b..6087990e17 100644 --- a/common/cross-profiles/armv5tel-musl.sh +++ b/common/cross-profiles/armv5tel-musl.sh @@ -1,5 +1,5 @@ # Cross build profile for ARM GNU EABI5 Soft Float and Musl libc. -XBPS_TARGET_WORDSIZE=32 + XBPS_TARGET_MACHINE="armv5tel-musl" XBPS_TARGET_QEMU_MACHINE="arm" XBPS_CROSS_TRIPLET="arm-linux-musleabi" diff --git a/common/cross-profiles/armv5tel.sh b/common/cross-profiles/armv5tel.sh index 34d612407c..c9b73b4f4c 100644 --- a/common/cross-profiles/armv5tel.sh +++ b/common/cross-profiles/armv5tel.sh @@ -1,5 +1,5 @@ # Cross build profile for ARM GNU EABI5 Soft Float. -XBPS_TARGET_WORDSIZE=32 + XBPS_TARGET_MACHINE="armv5tel" XBPS_TARGET_QEMU_MACHINE="arm" XBPS_CROSS_TRIPLET="arm-linux-gnueabi" diff --git a/common/cross-profiles/armv6l-musl.sh b/common/cross-profiles/armv6l-musl.sh index 63c6c6ef96..7d1e6df477 100644 --- a/common/cross-profiles/armv6l-musl.sh +++ b/common/cross-profiles/armv6l-musl.sh @@ -1,5 +1,5 @@ # Cross build profile for ARM EABI5 Hard Float and Musl libc. -XBPS_TARGET_WORDSIZE=32 + XBPS_TARGET_MACHINE="armv6l-musl" XBPS_TARGET_QEMU_MACHINE="arm" XBPS_CROSS_TRIPLET="arm-linux-musleabihf" diff --git a/common/cross-profiles/armv6l.sh b/common/cross-profiles/armv6l.sh index 5760650b99..dcac7da43b 100644 --- a/common/cross-profiles/armv6l.sh +++ b/common/cross-profiles/armv6l.sh @@ -1,5 +1,5 @@ # Cross build profile for ARM GNU EABI5 Hard Float. -XBPS_TARGET_WORDSIZE=32 + XBPS_TARGET_MACHINE="armv6l" XBPS_TARGET_QEMU_MACHINE="arm" XBPS_CROSS_TRIPLET="arm-linux-gnueabihf" diff --git a/common/cross-profiles/armv7l-musl.sh b/common/cross-profiles/armv7l-musl.sh index 30132c4ed7..b083f68697 100644 --- a/common/cross-profiles/armv7l-musl.sh +++ b/common/cross-profiles/armv7l-musl.sh @@ -1,5 +1,5 @@ # Cross build profile for ARMv7 EABI Hard Float and Musl libc. -XBPS_TARGET_WORDSIZE=32 + XBPS_TARGET_MACHINE="armv7l-musl" XBPS_TARGET_QEMU_MACHINE="arm" XBPS_CROSS_TRIPLET="armv7l-linux-musleabihf" diff --git a/common/cross-profiles/armv7l.sh b/common/cross-profiles/armv7l.sh index 0e1ae529a3..e2d9d98cd5 100644 --- a/common/cross-profiles/armv7l.sh +++ b/common/cross-profiles/armv7l.sh @@ -1,5 +1,5 @@ # Cross build profile for ARMv7 GNU EABI Hard Float. -XBPS_TARGET_WORDSIZE=32 + XBPS_TARGET_MACHINE="armv7l" XBPS_TARGET_QEMU_MACHINE="arm" XBPS_CROSS_TRIPLET="armv7l-linux-gnueabihf" diff --git a/common/cross-profiles/i686-musl.sh b/common/cross-profiles/i686-musl.sh index 17613344a5..1dac5efd75 100644 --- a/common/cross-profiles/i686-musl.sh +++ b/common/cross-profiles/i686-musl.sh @@ -1,5 +1,5 @@ # Cross build profile for i686 and Musl libc. -XBPS_TARGET_WORDSIZE=32 + XBPS_TARGET_MACHINE="i686-musl" XBPS_TARGET_QEMU_MACHINE="i386" XBPS_CROSS_TRIPLET="i686-linux-musl" diff --git a/common/cross-profiles/i686.sh b/common/cross-profiles/i686.sh index 0243928284..b5a55298de 100644 --- a/common/cross-profiles/i686.sh +++ b/common/cross-profiles/i686.sh @@ -1,5 +1,5 @@ # Cross build profile for i686 GNU. -XBPS_TARGET_WORDSIZE=32 + XBPS_TARGET_MACHINE="i686" XBPS_TARGET_QEMU_MACHINE="i386" XBPS_CROSS_TRIPLET="i686-pc-linux-gnu" diff --git a/common/cross-profiles/mips-musl.sh b/common/cross-profiles/mips-musl.sh index 7ce212d7da..94feb50673 100644 --- a/common/cross-profiles/mips-musl.sh +++ b/common/cross-profiles/mips-musl.sh @@ -1,5 +1,5 @@ # Cross build profile for MIPS32 BE soft float. -XBPS_TARGET_WORDSIZE=32 + XBPS_TARGET_MACHINE="mips-musl" XBPS_TARGET_QEMU_MACHINE="mips" XBPS_CROSS_TRIPLET="mips-linux-musl" diff --git a/common/cross-profiles/mipsel-musl.sh b/common/cross-profiles/mipsel-musl.sh index 4d7bbe2d45..d0e736262b 100644 --- a/common/cross-profiles/mipsel-musl.sh +++ b/common/cross-profiles/mipsel-musl.sh @@ -1,5 +1,5 @@ # Cross build profile for MIPS32 LE soft float. -XBPS_TARGET_WORDSIZE=32 + XBPS_TARGET_MACHINE="mipsel-musl" XBPS_TARGET_QEMU_MACHINE="mipsel" XBPS_CROSS_TRIPLET="mipsel-linux-musl" diff --git a/common/cross-profiles/mipselhf-musl.sh b/common/cross-profiles/mipselhf-musl.sh index a2ea998b5d..f0012ee8b1 100644 --- a/common/cross-profiles/mipselhf-musl.sh +++ b/common/cross-profiles/mipselhf-musl.sh @@ -1,5 +1,5 @@ # Cross build profile for MIPS32 LE hardfloat. -XBPS_TARGET_WORDSIZE=32 + XBPS_TARGET_MACHINE="mipselhf-musl" XBPS_TARGET_QEMU_MACHINE="mipsel" XBPS_CROSS_TRIPLET="mipsel-linux-muslhf" diff --git a/common/cross-profiles/mipshf-musl.sh b/common/cross-profiles/mipshf-musl.sh index e96cff66db..57bfeea9db 100644 --- a/common/cross-profiles/mipshf-musl.sh +++ b/common/cross-profiles/mipshf-musl.sh @@ -1,5 +1,5 @@ # Cross build profile for MIPS32 BE hard float. -XBPS_TARGET_WORDSIZE=32 + XBPS_TARGET_MACHINE="mipshf-musl" XBPS_TARGET_QEMU_MACHINE="mips" XBPS_CROSS_TRIPLET="mips-linux-muslhf" diff --git a/common/cross-profiles/ppc-musl.sh b/common/cross-profiles/ppc-musl.sh index ca941220c5..74938483b7 100644 --- a/common/cross-profiles/ppc-musl.sh +++ b/common/cross-profiles/ppc-musl.sh @@ -1,5 +1,5 @@ # Cross build profile for PowerPC. -XBPS_TARGET_WORDSIZE=32 + XBPS_TARGET_MACHINE="ppc-musl" XBPS_TARGET_QEMU_MACHINE="ppc" XBPS_CROSS_TRIPLET="powerpc-linux-musl" diff --git a/common/cross-profiles/ppc.sh b/common/cross-profiles/ppc.sh index 7bce7afd33..6a5ce956d3 100644 --- a/common/cross-profiles/ppc.sh +++ b/common/cross-profiles/ppc.sh @@ -1,5 +1,5 @@ # Cross build profile for PowerPC. -XBPS_TARGET_WORDSIZE=32 + XBPS_TARGET_MACHINE="ppc" XBPS_TARGET_QEMU_MACHINE="ppc" XBPS_CROSS_TRIPLET="powerpc-linux-gnu" diff --git a/common/cross-profiles/ppc64-musl.sh b/common/cross-profiles/ppc64-musl.sh index 2bf5b2c8ca..1d3b59b01f 100644 --- a/common/cross-profiles/ppc64-musl.sh +++ b/common/cross-profiles/ppc64-musl.sh @@ -1,5 +1,5 @@ # Cross build profile for ppc64 big-endian musl. -XBPS_TARGET_WORDSIZE=64 + XBPS_TARGET_MACHINE="ppc64-musl" XBPS_TARGET_QEMU_MACHINE="ppc64" XBPS_CROSS_TRIPLET="powerpc64-linux-musl" diff --git a/common/cross-profiles/ppc64.sh b/common/cross-profiles/ppc64.sh index b014fbe392..88c5e93e65 100644 --- a/common/cross-profiles/ppc64.sh +++ b/common/cross-profiles/ppc64.sh @@ -1,5 +1,5 @@ # Cross build profile for ppc64 big-endian GNU. -XBPS_TARGET_WORDSIZE=64 + XBPS_TARGET_MACHINE="ppc64" XBPS_TARGET_QEMU_MACHINE="ppc64" XBPS_CROSS_TRIPLET="powerpc64-linux-gnu" diff --git a/common/cross-profiles/ppc64le-musl.sh b/common/cross-profiles/ppc64le-musl.sh index d7258b99ae..fd2d4d9430 100644 --- a/common/cross-profiles/ppc64le-musl.sh +++ b/common/cross-profiles/ppc64le-musl.sh @@ -1,5 +1,5 @@ # Cross build profile for ppc64 little-endian musl. -XBPS_TARGET_WORDSIZE=64 + XBPS_TARGET_MACHINE="ppc64le-musl" XBPS_TARGET_QEMU_MACHINE="ppc64le" XBPS_CROSS_TRIPLET="powerpc64le-linux-musl" diff --git a/common/cross-profiles/ppc64le.sh b/common/cross-profiles/ppc64le.sh index c14b1e5ecd..5f55a1eef4 100644 --- a/common/cross-profiles/ppc64le.sh +++ b/common/cross-profiles/ppc64le.sh @@ -1,5 +1,5 @@ # Cross build profile for ppc64 little-endian GNU. -XBPS_TARGET_WORDSIZE=64 + XBPS_TARGET_MACHINE="ppc64le" XBPS_TARGET_QEMU_MACHINE="ppc64le" XBPS_CROSS_TRIPLET="powerpc64le-linux-gnu" diff --git a/common/cross-profiles/x86_64-musl.sh b/common/cross-profiles/x86_64-musl.sh index cde91f808b..83834b8274 100644 --- a/common/cross-profiles/x86_64-musl.sh +++ b/common/cross-profiles/x86_64-musl.sh @@ -1,5 +1,5 @@ # Cross build profile for x86_64 and Musl libc. -XBPS_TARGET_WORDSIZE=64 + XBPS_TARGET_MACHINE="x86_64-musl" XBPS_TARGET_QEMU_MACHINE="x86_64" XBPS_CROSS_TRIPLET="x86_64-linux-musl" diff --git a/common/xbps-src/shutils/common.sh b/common/xbps-src/shutils/common.sh index 146d4e0604..d258509d87 100644 --- a/common/xbps-src/shutils/common.sh +++ b/common/xbps-src/shutils/common.sh @@ -246,6 +246,52 @@ unset_package_funcs() { done } +get_endian() { + local arch="${1%-*}" + + case "$arch" in + aarch64) echo "le";; + armv5tel) echo "le";; + armv6l) echo "le";; + armv7l) echo "le";; + i686) echo "le";; + mipsel*) echo "le";; + mips*) echo "be";; + ppc64le) echo "le";; + ppc64) echo "be";; + ppc) echo "be";; + x86_64) echo "le";; + esac +} + +get_libc() { + local arch="${1%-*}" + + if [ "${arch}" = "$1" ]; then + echo "glibc" + else + echo "${1#${arch}-}" + fi +} + +get_wordsize() { + local arch="${1%-*}" + + case "$arch" in + aarch64) echo "64";; + armv5tel) echo "32";; + armv6l) echo "32";; + armv7l) echo "32";; + i686) echo "32";; + mipsel*) echo "32";; + mips*) echo "32";; + ppc64le) echo "64";; + ppc64) echo "64";; + ppc) echo "32";; + x86_64) echo "64";; + esac +} + get_subpkgs() { local f @@ -276,7 +322,7 @@ setup_pkg() { if [ -n "$cross" ]; then source_file $XBPS_CROSSPFDIR/${cross}.sh - _vars="TARGET_WORDSIZE TARGET_MACHINE CROSS_TRIPLET CROSS_CFLAGS CROSS_CXXFLAGS TARGET_QEMU_MACHINE" + _vars="TARGET_MACHINE CROSS_TRIPLET CROSS_CFLAGS CROSS_CXXFLAGS TARGET_QEMU_MACHINE" for f in ${_vars}; do eval val="\$XBPS_$f" if [ -z "$val" ]; then @@ -286,7 +332,6 @@ setup_pkg() { done export XBPS_CROSS_BASE=/usr/$XBPS_CROSS_TRIPLET - export XBPS_TARGET_WORDSIZE export XBPS_TARGET_QEMU_MACHINE XBPS_INSTALL_XCMD="env XBPS_TARGET_ARCH=$XBPS_TARGET_MACHINE $XBPS_INSTALL_CMD -c /host/repocache -r $XBPS_CROSS_BASE" @@ -297,7 +342,6 @@ setup_pkg() { XBPS_UHELPER_XCMD="env XBPS_TARGET_ARCH=$XBPS_TARGET_MACHINE xbps-uhelper -r $XBPS_CROSS_BASE" XBPS_CHECKVERS_XCMD="env XBPS_TARGET_ARCH=$XBPS_TARGET_MACHINE xbps-checkvers -r $XBPS_CROSS_BASE --repository=$XBPS_REPOSITORY" else - export XBPS_TARGET_WORDSIZE=${XBPS_TARGET_WORDSIZE:-$XBPS_WORDSIZE} export XBPS_TARGET_MACHINE=${XBPS_ARCH:-$XBPS_MACHINE} unset XBPS_CROSS_BASE XBPS_CROSS_LDFLAGS XBPS_CROSS_FFLAGS unset XBPS_CROSS_CFLAGS XBPS_CROSS_CXXFLAGS XBPS_CROSS_CPPFLAGS @@ -312,6 +356,13 @@ setup_pkg() { XBPS_CHECKVERS_XCMD="$XBPS_CHECKVERS_CMD" fi + export XBPS_ENDIAN=$(get_endian ${XBPS_MACHINE}) + export XBPS_TARGET_ENDIAN=$(get_endian ${XBPS_TARGET_MACHINE}) + export XBPS_LIBC=$(get_libc ${XBPS_MACHINE}) + export XBPS_TARGET_LIBC=$(get_libc ${XBPS_TARGET_MACHINE}) + export XBPS_WORDSIZE=$(get_wordsize ${XBPS_MACHINE}) + export XBPS_TARGET_WORDSIZE=$(get_wordsize ${XBPS_TARGET_MACHINE}) + export XBPS_INSTALL_XCMD XBPS_QUERY_XCMD XBPS_RECONFIGURE_XCMD \ XBPS_REMOVE_XCMD XBPS_RINDEX_XCMD XBPS_UHELPER_XCMD