Re: Build updates [ ci.freebsd.org FreeBSD-head-{aarch64,armv7,armv6}-build failures as of, for example -r335711 and -r335713 ]

From: Bryan Drewery <bdrewery_at_FreeBSD.org>
Date: Wed, 27 Jun 2018 14:37:52 -0700
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


Received on Wed Jun 27 2018 - 19:38:00 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:16 UTC