On 6/27/2018 11:58 AM, Bryan Drewery wrote: > On 6/27/2018 11:44 AM, Bryan Drewery wrote: >> On 6/27/2018 10:53 AM, Mark Millard wrote: >>> >>>> On 2018-Jun-27, at 10:01 AM, Bryan Drewery <bdrewery at FreeBSD.org> wrote: >>>> >>>> As of r335704: >>>> >>>> - make tinderbox/universe will now build the bootstrap clang *once*. >>>> Each target clang is still build of course. This support does not work >>>> with gcc. >>>> - make buildworld (kernel-toolchain and toolchain) will build the >>>> bootstrap clang (if needed per SYSTEM_COMPILER logic) with only the >>>> TARGET.TARGET_ARCH backend support. The installed clang has all still so >>>> SYSTEM_COMPILER logic works for cross-compling. >>>> >>>> This uses the feature dim_at_ added in r335558 to selectively disable LLVM >>>> targets. I've added a new option named WITH[OUT]_LLVM_TARGET_ALL which I >>>> suggest using rather than the per-arch options. It is default on (WITH). >>>> Set WITHOUT to only build the needed native arch on your system for both >>>> bootstrap and compiled clang. Setting WITHOUT disables SYSTEM_COMPILER >>>> support for cross-builds. >>>> >>>> Please CC me directly for any weird tinderbox/universe or clang failures >>>> for the next few weeks. >> >> Thanks! >> >>> >>> https://ci.freebsd.org/job/FreeBSD-head-aarch64-build/8324/consoleText >>> >>> --- all_subdir_cloudabi32 --- >>> clang (LLVM option parsing): Unknown command line argument '-arm-add-build-attributes'. Try: 'clang (LLVM option parsing) -help' >>> clang (LLVM option parsing): Did you mean '-force-attribute'? >>> *** [cloudabi32_vdso.o] Error code 1 >>> >> >> This was an aarch64 build. It looks like -arm-add-build-attributes is >> from Target/ARM/AsmParser/ARMAsmParser.cpp which is only built for >> LLVM_TARGET_ARM but not LLVM_TARGET_AARCH64. >> >> Looking in contrib/llvm/tools/clang/lib/Driver/ToolChains/Clang.cpp I >> see the option is only added for: >> >> case llvm::Triple::arm: >> case llvm::Triple::armeb: >> case llvm::Triple::thumb: >> case llvm::Triple::thumbeb: >> >> But not llvm::Triple::aarch64. So where is it coming from? >> > > cc -target aarch64-unknown-freebsd12.0 > --sysroot=/usr/obj/usr/src/arm64.aarch64/tmp > -B/usr/obj/usr/src/arm64.aarch64/tmp/usr/bin -x assembler-with-cpp -m32 > -shared -nostdinc -nostdlib > -Wl,-T/usr/src/sys/compat/cloudabi/cloudabi_vdso.lds > /usr/src/sys/contrib/cloudabi/cloudabi_vdso_armv6_on_64bit.S -o > cloudabi32_vdso.o > > It must be the -m32 here making it build with llvm::Triple::arm. > So we may need to include more of LLVM_TARGET_ARM in LLVM_TARGET_AARCH64. > I'm testing locally to see how much is needed. > r335747 should fix aarch64 but it's not necessarily the best fix. It may be possible to reduce how much of MK_LLVM_TARGET_ARM is needed for -m32 support for arm64. I didn't look into that too much. -- Regards, Bryan Drewery
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:16 UTC