Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 15 Nov 2021 11:40:49 -0800
From:      Mark Millard via freebsd-toolchain <freebsd-toolchain@freebsd.org>
To:        Dimitry Andric <dim@FreeBSD.org>
Cc:        "brooks@freebsd.org" <brooks@FreeBSD.org>, FreeBSD Toolchain <freebsd-toolchain@freebsd.org>, freebsd-current <freebsd-current@freebsd.org>, freebsd-ports@freebsd.org, "freebsd-arm@freebsd.org" <arm@freebsd.org>
Subject:   Re: armv7 targeting (on aarch64, via poudriere-devel): system's clang 13 rejected building devel/lllvm13
Message-ID:  <DA43AD8B-EBB7-45FE-BB26-39E8158A33BA@yahoo.com>
In-Reply-To: <3F3F1A2B-87E2-47CA-A9C6-BC65B71F1DE7@yahoo.com>
References:  <15A74B79-47CF-4743-A831-D7C0E9B1DD0E@yahoo.com> <91AD337B-6D40-4639-A43C-688699981167@FreeBSD.org> <3F3F1A2B-87E2-47CA-A9C6-BC65B71F1DE7@yahoo.com>

index | next in thread | previous in thread | raw e-mail



On 2021-Nov-15, at 11:35, Mark Millard <marklmi@yahoo.com> wrote:

> On 2021-Nov-15, at 10:40, Dimitry Andric <dim@FreeBSD.org> wrote:
> 
>> On 15 Nov 2021, at 19:14, Mark Millard via arm <arm@freebsd.org> 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)



help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?DA43AD8B-EBB7-45FE-BB26-39E8158A33BA>