Re: armv7 targeting (on aarch64, via poudriere-devel): system's clang 13 rejected building devel/lllvm13

Mark Millard via freebsd-toolchain <[email protected]>
Newsgroups gmane.os.freebsd.devel.arm
Message-ID <DA43AD8B-EBB7-45FE-BB26-39E8158A33BA__19847.518734035$1637005374$gmane$org@yahoo.com>

On 2021-Nov-15, at 11:35, Mark Millard <[email protected]> wrote:

> On 2021-Nov-15, at 10:40, Dimitry Andric <[email protected]> wrote:
> 
>> On 15 Nov 2021, at 19:14, Mark Millard via arm <[email protected]> wrote:
>>> 
>>> There error was:
>>> 
>>> error: non-constant-expression cannot be narrowed from type 'long long' to 'std::size_t' (aka 'unsi
>>> gned int') in initializer list [-Wc++11-narrowing]
>>> std::size_t resultBytes{size * elementBytes};
>>>                        ^~~~~~~~~~~~~~~~~~~
>>> /wrkdirs/usr/ports/devel/llvm13/work/llvm-project-13.0.0.src/flang/runtime/misc-intrinsic.cpp:50:27: note: insert an explicit cast to silence this issue
>>> std::size_t resultBytes{size * elementBytes};
>>>                        ^~~~~~~~~~~~~~~~~~~
>>>                        static_cast<size_t>( )
>> 
>> The flang subproject does quite a lot of mixing of size_t and uint64_t, assuming in various places that they are the same. You will also encounter similar errors when attempting to build it for e.g. i386, or other 32 bit architectures. I think it is quite a lot of work to get all of these right, and it should really be discussed upstream.
>> 
>> So for now, I would advise to only turn on the flang option for amd64 by default.
> 
> flang was not being built:
> 
> # more /usr/local/etc/poudriere.d/options/devel_llvm13/options 
> # This file is auto-generated by 'make config'.
> # Options for llvm13-13.0.0
> _OPTIONS_READ=llvm13-13.0.0
> _FILE_COMPLETE_OPTIONS_LIST=BE_AMDGPU CLANG DOCS EXTRAS FLANG LIT LLD LLDB MLIR OPENMP PYCLANG BE_FREEBSD BE_NATIVE BE_STANDARD
> OPTIONS_FILE_SET+=BE_AMDGPU
> OPTIONS_FILE_SET+=CLANG
> OPTIONS_FILE_SET+=DOCS
> OPTIONS_FILE_SET+=EXTRAS
> OPTIONS_FILE_UNSET+=FLANG
> OPTIONS_FILE_SET+=LIT
> OPTIONS_FILE_SET+=LLD
> OPTIONS_FILE_SET+=LLDB
> OPTIONS_FILE_SET+=MLIR
> OPTIONS_FILE_UNSET+=OPENMP
> OPTIONS_FILE_UNSET+=PYCLANG
> OPTIONS_FILE_UNSET+=BE_FREEBSD
> OPTIONS_FILE_SET+=BE_NATIVE
> OPTIONS_FILE_UNSET+=BE_STANDARD
> 

Hmm. I got that wrong, somehow the above was not used.
From the log file:

---Begin OPTIONS List---
===> The following configuration options are available for llvm13-13.0.0_2:
     BE_AMDGPU=on: AMD GPU backend (required by mesa)
     CLANG=on: Build clang
     DOCS=on: Build and/or install documentation
     EXTRAS=on: Extra clang tools
     FLANG=on: Flang FORTRAN compiler
     LIT=on: Install lit and FileCheck test tools
     LLD=on: Install lld, the LLVM linker
     LLDB=on: Install lldb, the LLVM debugger
     MLIR=on: Multi-Level Intermediate Representation
     PYCLANG=on: Install python bindings to libclang
====> Options available for the single BACKENDS: you have to select exactly one of them
     BE_FREEBSD=off: Backends for FreeBSD architectures
     BE_NATIVE=off: Backend(s) for this architecture (ARM)
     BE_STANDARD=on: All non-experimental backends
===> Use 'make config' to modify these settings




===
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.