Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 29 May 2021 14:08:52 GMT
From:      Dimitry Andric <dim@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 0d25df4a1889 - main - devel/aws-c-common: detect -moutline-atomics correctly
Message-ID:  <202105291408.14TE8q0r091233@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by dim (src committer):

URL: https://cgit.FreeBSD.org/ports/commit/?id=0d25df4a18898c9434f2c7c7f06c833f602ae3fc

commit 0d25df4a18898c9434f2c7c7f06c833f602ae3fc
Author:     Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2021-05-15 19:41:55 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2021-05-29 14:08:19 +0000

    devel/aws-c-common: detect -moutline-atomics correctly
    
    During an exp-run for llvm 12 (see bug 255570), it turned out that
    security/aws-c-cal does not build with clang 12.0.0, at least not on
    amd64:
    
    -- The C compiler identification is Clang 12.0.0
    [...]
    -- Performing Test HAS_MOUTLINE_ATOMICS
    -- Performing Test HAS_MOUTLINE_ATOMICS - Success
    [...]
    FAILED: CMakeFiles/aws-c-cal.dir/source/der.c.o
    /usr/bin/cc -DAWS_CAL_EXPORTS -DAWS_CAL_USE_IMPORT_EXPORT -DAWS_COMMON_USE_IMPORT_EXPORT -DHAVE_SYSCONF -Daws_c_cal_EXPORTS -I/wrkdirs/usr/ports/security/aws-c-cal/work/aws-c-cal-0.4.5/include -isystem /usr/local/include -O2 -pipe  -fstack-protector-strong -fno-strict-aliasing -O2 -pipe  -fstack-protector-strong -fno-strict-aliasing -fPIC -Wall -Werror -Wstrict-prototypes -fno-omit-frame-pointer -pedantic -Wno-long-long -fPIC -moutline-atomics -Wgnu -Wno-gnu-zero-variadic-macro-arguments -fvisibility=hidden -std=gnu99 -MD -MT CMakeFiles/aws-c-cal.dir/source/der.c.o -MF CMakeFiles/aws-c-cal.dir/source/der.c.o.d -o CMakeFiles/aws-c-cal.dir/source/der.c.o -c /wrkdirs/usr/ports/security/aws-c-cal/work/aws-c-cal-0.4.5/source/der.c
    cc: error: The 'x86_64' architecture does not support -moutline-atomics; flag ignored [-Werror,-Woption-ignored]
    
    This port uses /usr/local/lib/cmake/AwsCFlags.cmake to detect the
    -moutline-atomics flag, but it does so by checking if the compiler
    prints an *error* when using the flag. It could be debated that CMake's
    check_c_compiler_flag() functionality is rather broken in that sense, as
    it does not exhaustively scan for warnings from the compiler.
    
    On the other hand, security/aws-c-cal compiles with -Werror, so then you
    get an error for such warnings. Instead of hacking around it in
    security/aws-c-cal, fix it in devel/aws-c-common instead, simply by
    adding -Werror to the HAS_MOUTLINE_ATOMICS check.
    
    This will ensure that it does *not* get enabled on x86, where it is not
    functional, and will still get enabled on e.g. aarch64, for which this
    flag is meant.
    
    Approved by:    maintainer timeout (2 weeks)
    PR:             255913
    MFH:            2021Q2
---
 devel/aws-c-common/files/patch-cmake_AwsCFlags.cmake | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/devel/aws-c-common/files/patch-cmake_AwsCFlags.cmake b/devel/aws-c-common/files/patch-cmake_AwsCFlags.cmake
new file mode 100644
index 000000000000..1c72b98b3fdf
--- /dev/null
+++ b/devel/aws-c-common/files/patch-cmake_AwsCFlags.cmake
@@ -0,0 +1,11 @@
+--- cmake/AwsCFlags.cmake.orig	2020-12-30 21:06:26 UTC
++++ cmake/AwsCFlags.cmake
+@@ -73,7 +73,7 @@ function(aws_set_common_properties target)
+ 
+        # -moutline-atomics generates code for both older load/store exclusive atomics and also
+        # Arm's Large System Extensions (LSE) which scale substantially better on large core count systems
+-        check_c_compiler_flag(-moutline-atomics HAS_MOUTLINE_ATOMICS)
++        check_c_compiler_flag("-moutline-atomics -Werror" HAS_MOUTLINE_ATOMICS)
+         if (HAS_MOUTLINE_ATOMICS)
+             list(APPEND AWS_C_FLAGS -moutline-atomics)
+         endif()



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202105291408.14TE8q0r091233>