Support MIPS architectures

lld doesn't work with readonly .eh_frame sections on MIPS, see
https://reviews.llvm.org/D13104.
This commit is contained in:
klzgrad 2019-11-28 23:47:32 +08:00
parent 35b3c12523
commit 1c6691986b
4 changed files with 37 additions and 1 deletions

View File

@ -19,6 +19,30 @@ matrix:
os: linux os: linux
dist: bionic dist: bionic
env: EXTRA_FLAGS='target_cpu="arm"' env: EXTRA_FLAGS='target_cpu="arm"'
- name: "linux-mips64el"
os: linux
dist: bionic
env: EXTRA_FLAGS='target_cpu="mips64el" use_lld=false'
addons:
apt:
packages:
- ninja-build
- pkg-config
- libnss3-dev
- qemu-user
- binutils-mips64el-linux-gnuabi64
- name: "linux-mipsel"
os: linux
dist: bionic
env: EXTRA_FLAGS='target_cpu="mipsel" mips_arch_variant="r2" use_lld=false'
addons:
apt:
packages:
- ninja-build
- pkg-config
- libnss3-dev
- qemu-user
- binutils-mipsel-linux-gnu
- name: "osx" - name: "osx"
os: osx os: osx
osx_image: xcode10.2 osx_image: xcode10.2

View File

@ -45,16 +45,20 @@ DEBIAN_PACKAGES_ARM64='
libitm1 libitm1
libubsan0 libubsan0
' '
DEBIAN_PACKAGES_MIPS64EL='
'
# Disables libdbus workarounds # Disables libdbus workarounds
ln -sf /bin/true strip ln -sf /bin/true strip
ln -sf /bin/true arm-linux-gnueabihf-strip ln -sf /bin/true arm-linux-gnueabihf-strip
ln -sf /bin/true mipsel-linux-gnu-strip
ln -sf /bin/true mips64el-linux-gnuabi64-strip
export PATH="$PWD:$PATH" export PATH="$PWD:$PATH"
cp() { cp() {
[ "${1##*/}" = libdbus-1-3-symbols ] && return [ "${1##*/}" = libdbus-1-3-symbols ] && return
/bin/cp "$@" /bin/cp "$@"
} }
trap "cd $PWD; rm strip arm-linux-gnueabihf-strip" EXIT trap "cd $PWD; rm strip *-strip" EXIT
. "${SCRIPT_DIR}/sysroot-creator.sh" . "${SCRIPT_DIR}/sysroot-creator.sh"

View File

@ -30,6 +30,12 @@ if [ "$ARCH" = Linux ]; then
x86) x86)
build_sysroot I386 build_sysroot I386
;; ;;
mips64el)
build_sysroot Mips64el
;;
mipsel)
build_sysroot I386
build_sysroot Mips
esac esac
fi fi

View File

@ -8,6 +8,8 @@ if [ "$(uname)" = Linux ]; then
arm64) naive="qemu-aarch64 -L src/build/linux/debian_sid_arm64-sysroot $naive";; arm64) naive="qemu-aarch64 -L src/build/linux/debian_sid_arm64-sysroot $naive";;
arm) naive="qemu-arm -L src/build/linux/debian_sid_arm-sysroot $naive";; arm) naive="qemu-arm -L src/build/linux/debian_sid_arm-sysroot $naive";;
x86) naive="qemu-i386 -L src/build/linux/debian_sid_i386-sysroot $naive";; x86) naive="qemu-i386 -L src/build/linux/debian_sid_i386-sysroot $naive";;
mipsel) naive="qemu-mipsel -L src/build/linux/debian_sid_mips-sysroot $naive";;
mips64el) naive="qemu-mips64el -L src/build/linux/debian_sid_mips64el-sysroot $naive";;
esac esac
fi fi