Path to this page:
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: