diff --git a/util/xcompile/xcompile b/util/xcompile/xcompile index 97dd7c4004..07bcde7a6d 100755 --- a/util/xcompile/xcompile +++ b/util/xcompile/xcompile @@ -128,6 +128,10 @@ detect_special_flags() { testcc "$GCC" "$CFLAGS_GCC -Wno-unused-but-set-variable " && CFLAGS_GCC="$CFLAGS_GCC -Wno-unused-but-set-variable " + # Check for an operational -m32/-m64 + testcc "$GCC" "$CFLAGS_GCC -m$TWIDTH " && + CFLAGS_GCC="$CFLAGS_GCC -m$TWIDTH " + # Use bfd linker instead of gold if available: testcc "$GCC" "$CFLAGS_GCC -fuse-ld=bfd" && CFLAGS_GCC="$CFLAGS_GCC -fuse-ld=bfd" && LINKER_SUFFIX='.bfd' @@ -201,7 +205,7 @@ EOF } # Architecture definitions -SUPPORTED_ARCHITECTURES="arm arm64 mipsel riscv x86" +SUPPORTED_ARCHITECTURES="arm arm64 mipsel riscv x64 x86" arch_config_arm() { TARCH="arm" @@ -229,6 +233,14 @@ arch_config_riscv() { TABI="elf" } +arch_config_x64() { + TARCH="x86_64" + TBFDARCHS="x86-64" + TCLIST="x86_64" + TWIDTH="64" + TABI="elf" +} + arch_config_x86() { TARCH="x86_32" TBFDARCHS="i386"