Subject: CVS commit: pkgsrc/lang/clang
From: Adam Ciarcinski
Date: 2021-07-12 20:42:06
Message id: 20210712184206.5CC81FA95@cvs.NetBSD.org

Log Message:
clang: updated to 12.0.1

12.0.1:

Non-comprehensive list of changes in this release

The builtin intrinsics __builtin_bitreverse8, __builtin_bitreverse16, \ 
__builtin_bitreverse32 and __builtin_bitreverse64 may now be used within \ 
constant expressions.
The builtin intrinsics __builtin_rotateleft8, __builtin_rotateleft16, \ 
__builtin_rotateleft32 and __builtin_rotateleft64 may now be used within \ 
constant expressions.
The builtin intrinsics __builtin_rotateright8, __builtin_rotateright16, \ 
__builtin_rotateright32 and __builtin_rotateright64 may now be used within \ 
constant expressions.
New Compiler Flags

…
AArch64 options -moutline-atomics, -mno-outline-atomics to enable and disable \ 
calls to helper functions implementing atomic operations. These out-of-line \ 
helpers like ‘__aarch64_cas8_relax’ will detect at runtime AArch64 Large \ 
System Extensions (LSE) availability and either use their atomic instructions, \ 
or falls back to LL/SC loop. These options do not apply if the compilation \ 
target supports LSE. Atomic instructions are used directly in that case. The \ 
option’s behaviour mirrors GCC, the helpers are implemented both in \ 
compiler-rt and libgcc.
New option -fbinutils-version= specifies the targeted binutils version. For \ 
example, -fbinutils-version=2.35 means compatibility with GNU as/ld before 2.35 \ 
is not needed: new features can be used and there is no need to work around old \ 
GNU as/ld bugs.
Deprecated Compiler Flags

The following options are deprecated and ignored. They will be removed in future \ 
versions of Clang.

The clang-cl /fallback flag, which made clang-cl invoke Microsoft Visual C++ on \ 
files it couldn’t compile itself, has been deprecated. It will be removed in \ 
Clang 13.
…
Modified Compiler Flags

On ELF, -gz now defaults to -gz=zlib with the integrated assembler. It produces \ 
SHF_COMPRESSED style compression of debug information. GNU binutils 2.26 or \ 
newer, or lld is required to link produced object files. Use -gz=zlib-gnu to get \ 
the old behavior.

Now that this pointers are tagged with nonnull and dereferenceable(N), \ 
-fno-delete-null-pointer-checks has gained the power to remove the nonnull \ 
attribute on this for configurations that need it to be nullable.

-gsplit-dwarf no longer implies -g2.

-fasynchronous-unwind-tables is now the default on Linux AArch64/PowerPC. This \ 
behavior matches newer GCC. (D91760) (D92054)

Support has been added for the following processors (command-line identifiers in \ 
parentheses):

Arm Cortex-A78C (cortex-a78c).
Arm Cortex-R82 (cortex-r82).
Arm Neoverse V1 (neoverse-v1).
Arm Neoverse N2 (neoverse-n2).
Fujitsu A64FX (a64fx).
For example, to select architecture support and tuning for Neoverse-V1 based \ 
systems, use -mcpu=neoverse-v1.
Removed Compiler Flags

The following options no longer exist.

clang-cl’s /Zd flag no longer exist. But -gline-tables-only still exists and \ 
does the same thing.
New Pragmas in Clang

…
Modified Pragmas in Clang

The “#pragma clang loop vectorize_width” has been extended to support an \ 
optional ‘fixed|scalable’ argument, which can be used to indicate that the \ 
compiler should use fixed-width or scalable vectorization. Fixed-width is \ 
assumed by default.

Scalable or vector length agnostic vectorization is an experimental feature for \ 
targets that support scalable vectors. For more information please refer to the \ 
Clang Language Extensions documentation.
Attribute Changes in Clang

Added support for the C++20 likelihood attributes [[likely]] and [[unlikely]]. \ 
As an extension they can be used in C++11 and newer. This extension is enabled \ 
by default.

Files:
RevisionActionfile
1.64modifypkgsrc/lang/clang/Makefile
1.31modifypkgsrc/lang/clang/PLIST
1.15modifypkgsrc/lang/clang/buildlink3.mk
1.67modifypkgsrc/lang/clang/distinfo
1.2modifypkgsrc/lang/clang/patches/patch-lib_Driver_ToolChain.cpp
1.7modifypkgsrc/lang/clang/patches/patch-lib_Driver_ToolChains_Solaris.cpp
1.4modifypkgsrc/lang/clang/patches/patch-lib_Driver_ToolChains_Solaris.h
1.1removepkgsrc/lang/clang/patches/patch-tools_libclang_FatalErrorHandler.cpp