Re: git: 70d8d9125c9f - main - devel/llvm-devel: New snapshot

From: Mark Millard <marklmi_at_yahoo.com>
Date: Tue, 17 May 2022 22:36:54 UTC
On 2022-May-17, at 15:19, Brooks Davis <brooks@freebsd.org> wrote:

> On Tue, May 17, 2022 at 02:44:21PM -0700, Mark Millard wrote:
>> Brooks Davis <brooks_at_FreeBSD.org> wrote on
>> Date: Tue, 17 May 2022 20:24:35 GMT :
>> 
>>> The branch main has been updated by brooks:
>>> 
>>> URL: https://cgit.FreeBSD.org/ports/commit/?id=70d8d9125c9f5b1da36b134408b3d580a39f1aa8
>>> 
>>> commit 70d8d9125c9f5b1da36b134408b3d580a39f1aa8
>>> Author:     Brooks Davis <brooks_at_FreeBSD.org>
>>> AuthorDate: 2022-05-17 20:23:26 +0000
>>> Commit:     Brooks Davis <brooks_at_FreeBSD.org>
>>> CommitDate: 2022-05-17 20:23:26 +0000
>>> 
>>>    devel/llvm-devel: New snapshot
>>> 
>>>    Add support for COMPILER_RT on powerpc*. [0]
>>> 
>>>    Don't enable MLIR by default.  Instead, rely on FLANG's dependency
>>>    on it to turn it on for architectures that support FLANG.  This removes
>>>    MLIR from default packages on 32-bit system.
>>> . . .
>>> -OPTIONS_DEFAULT+=	EXTRAS FLANG LIT LLDB MLIR STATIC_LIBS
>>> +OPTIONS_DEFAULT+=	EXTRAS FLANG LIT LLDB STATIC_LIBS
>>> . . .
>>> OPTIONS_EXCLUDE_powerpc=	FLANG
>>> 
>> 
>> What of the armv7 and armv6 32-bit contexts?
> 
> *sigh* I didn't notice that llvm-devel doesn't exclude FLANG on arm[67].
> I'll sync that with the other ports when I update llvm-devel next.

For reference, as stands the attempted FLANG build on
the FreeBSD build server for armv7 (via qemu) leads
to devel/llvm-devel failing to build overall for armv7:

FAILED: tools/flang/runtime/CMakeFiles/obj.FortranRuntime.dir/transformational.cpp.o 
/nxb-bin/usr/bin/c++ -DFLANG_LITTLE_ENDIAN=1 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/wrkdirs/usr/ports/devel/llvm-devel/work-default/.build/tools/flang/runtime -I/wrkdirs/usr/ports/devel/llvm-devel/work-default/llvm-project-2c2568f39ec641aa8f1dcc011f2ce642c2d3423f/flang/runtime -I/wrkdirs/usr/ports/devel/llvm-devel/work-default/llvm-project-2c2568f39ec641aa8f1dcc011f2ce642c2d3423f/flang/include -I/wrkdirs/usr/ports/devel/llvm-devel/work-default/.build/tools/flang/include -I/wrkdirs/usr/ports/devel/llvm-devel/work-default/.build/include -I/wrkdirs/usr/ports/devel/llvm-devel/work-default/llvm-project-2c2568f39ec641aa8f1dcc011f2ce642c2d3423f/llvm/include -isystem /wrkdirs/usr/ports/devel/llvm-devel/work-default/llvm-project-2c2568f39ec641aa8f1dcc011f2ce642c2d3423f/llvm/../mlir/include -isystem /wrkdirs/usr/ports/devel/llvm-devel/work-default/.build/tools/mlir/include -isystem /wrkdirs/usr/ports/devel/llvm-devel/work-default/.build/tools/clang/include -isystem /wrkdirs/usr/ports/devel/llvm-devel/work-default/llvm-project-2c2568f39ec641aa8f1dcc011f2ce642c2d3423f/llvm/../clang/include -O2 -pipe -DNDEBUG -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing  -DNDEBUG -isystem /usr/local/include -fPIC -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -fdiagnostics-color -ffunction-sections -fdata-sections -Wno-deprecated-copy -Wno-string-conversion -Wno-unused-command-line-argument -Wstring-conversion           -Wcovered-switch-default -Wno-nested-anon-types -O2 -pipe -DNDEBUG -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing  -DNDEBUG -isystem /usr/local/include -std=c++17  -fno-exceptions -MD -MT tools/flang/runtime/CMakeFiles/obj.FortranRuntime.dir/transformational.cpp.o -MF tools/flang/runtime/CMakeFiles/obj.FortranRuntime.dir/transformational.cpp.o.d -o tools/flang/runtime/CMakeFiles/obj.FortranRuntime.dir/transformational.cpp.o -c /wrkdirs/usr/ports/devel/llvm-devel/work-default/llvm-project-2c2568f39ec641aa8f1dcc011f2ce642c2d3423f/flang/runtime/transformational.cpp
/wrkdirs/usr/ports/devel/llvm-devel/work-default/llvm-project-2c2568f39ec641aa8f1dcc011f2ce642c2d3423f/flang/runtime/transformational.cpp:194:29: error: non-constant-expression cannot be narrowed from type 'long long' to 'Fortran::runtime::SubscriptValue' (aka 'int') in initializer list [-Wc++11-narrowing]
    SubscriptValue sourceAt{lb + (j + shift) % extent};
                            ^~~~~~~~~~~~~~~~~~~~~~~~~
/wrkdirs/usr/ports/devel/llvm-devel/work-default/llvm-project-2c2568f39ec641aa8f1dcc011f2ce642c2d3423f/flang/runtime/transformational.cpp:194:29: note: insert an explicit cast to silence this issue
    SubscriptValue sourceAt{lb + (j + shift) % extent};
                            ^~~~~~~~~~~~~~~~~~~~~~~~~
                            static_cast<SubscriptValue>( )
/wrkdirs/usr/ports/devel/llvm-devel/work-default/llvm-project-2c2568f39ec641aa8f1dcc011f2ce642c2d3423f/flang/runtime/transformational.cpp:305:29: error: non-constant-expression cannot be narrowed from type 'long long' to 'Fortran::runtime::SubscriptValue' (aka 'int') in initializer list [-Wc++11-narrowing]
    SubscriptValue sourceAt{lb + j - 1 + shift};
                            ^~~~~~~~~~~~~~~~~~
/wrkdirs/usr/ports/devel/llvm-devel/work-default/llvm-project-2c2568f39ec641aa8f1dcc011f2ce642c2d3423f/flang/runtime/transformational.cpp:305:29: note: insert an explicit cast to silence this issue
    SubscriptValue sourceAt{lb + j - 1 + shift};
                            ^~~~~~~~~~~~~~~~~~
                            static_cast<SubscriptValue>( )
2 errors generated.
ninja: build stopped: subcommand failed.
*** Error code 1

>> Are other devel/llvm* examples to also eventually
>> drop MLIR from being explicitly in the OPTIONS_DEFAULT
>> lists in order to get a similar default behavior of
>> tracking FLANG 's status?
> 
> That's my current plan, but I'll let this change settle a bit.  I may
> eventually extract them from the llvm ports if upstream improves
> out of tree build support a bit more.  We're in the current situation
> because I want flang to be available as a package and building it by
> default seems to be the most practical way to do that.

Good to know. Thanks.

===
Mark Millard
marklmi at yahoo.com