Age | Commit message (Collapse) | Author | Files | Lines |
|
Missed cleanup from https://reviews.llvm.org/D134716.
Fixes: #79220
|
|
|
|
|
|
Reverts llvm/llvm-project#79151, necessary to revert #79128, which broke
all production builds and landed without review.
|
|
Apply previously discussed fix for `sysconf`
|
|
Summary:
This adds some more concrete information on the RPC interface. Hopefully
this is intelligable and provides some useful examples.
|
|
The semantics for casting can range from "bitcast" (same representation)
to "different representation", to "type promotion". Here we remove the
cast operator and force usage of `get_val` as the only function to get
the floating point value, making the intent clearer and more consistent.
|
|
ErrnoSetterMatcher::returns can be misleading as it does not initialize
the errno. This is made worse as later on there is a switch statement on
the errno comparator using __builtin_unreachable(). This patch make
ErrnoSetterMatcher::returns give back a builder that is nomially
different from ErrnoSetterMatcher.
|
|
|
|
Fix forward #79128
|
|
- reland #79113
- Fix aarch64 RISC-V build
|
|
Reverts llvm/llvm-project#79113
It broke aarch64 build bot machines.
|
|
This patch reduces the surface of `FPBits`.
|
|
`getauxval` depends on `libc.include.sys_auxv`
|
|
`getauxval` depends on `open/read/close` which are not built on arm32.
Remove `getauxval` for now.
|
|
This PR implements `sys/getauxval`
that can be used in both overlay builds and full builds.
|
|
This matches the entrypoints for baremetal ARM.
|
|
operator to HermeticTestUtils.cpp. (#78906)
`-nostdlib++` is a clang-only flag. Replacing it with `-nostdlib` when
building with gcc.
|
|
Usage of uninitialized memory is a top memory safety issue in C++ codebases.
Help mitigate this somewhat by default initialize stack allocations to a
pattern (0xAA repeating).
Clang has received optimizations to sink these into control flow paths that
access such values to minimize the overhead of these added initializations.
If there's a measurable slowdown, we can add
-ftrivial-auto-var-init-max-size=<N> for some value N bytes if we have any
large stack allocations, or add attribute uninitialized to any variable
declarations.
Unsupported until GCC 12.1 / Clang 8.
Increases file size of libc.a from a full build by +8.79Ki (+0.2%).
|
|
We shouldn't be using instructions that require F or D extensions
unconditionally before checking if those instructions are available.
|
|
This is to ensure this macro is compatible with both C and C++.
|
|
For some reasons, we are using `-fpie`
(libc/cmake/modules/LLVMLibCObjectRules.cmake:31) without supporting it.
According to @lntue, some of the hermetic tests are broken without
proper PIE support. This patch implements basic relocations support for
PIE.
|
|
(#78978)
Reland #78588
|
|
(#78974)
Reverts llvm/llvm-project#78588
|
|
|
|
Use correct CMake variable.
|
|
fixes https://github.com/llvm/llvm-project/issues/78743
- For normal objects, the patch removes `RTTI` and exceptions in `fullbuild`
- For FP tests, the patch adds links to `stdc++` and `gcc_s` if `MPFR` is used.
|
|
This patch fixes full build problems in
https://github.com/llvm/llvm-project/issues/78721 (the header problem).
The `libc.a` target can be built now.
As a separate issue, `check-libc` is failing because undefined symbols
from `libunwind`, which I do not actually know the reason yet. I will be
looking into it.
|
|
|
|
|
|
definitions. (#78857)
|
|
Prior to this change, we wouldn't build headers that aren't referenced
by other parts of the libc which would result in a build error during
installation. To address this, we make the header target a dependency of
the libc archive. Additionally, we also redo the install targets, moving
the install targets closer to build targets and simplifying the
hierarchy and generally matching what we do for other runtimes.
|
|
-Werror is now a global default as of
commit c52b467875e2 ("Reapply "[libc] build with -Werror (#73966)"
(#74506)")
|
|
|
|
Summary:
We use `add_libc_test' now because it works for both hermetic and unit
tests. If the test needs to be unit test only you use `UNIT_TEST_ONLY`
as an argument.
|
|
|
|
Also turn a set of `get_biased_exponent() == 0` into `is_subnormal()`
which is clearer.
|
|
|
|
(#78509)
GCC complains about "type qualifiers ignored on cast result type".
Upon investigation the correct fix was to remove all `volatile` and use the `-frounding-math` option.
|
|
This header first appeared in 4.4BSD and is provided by a number of C
libraries including Newlib. Several of our embedded projects use this
header and so to make LLVM libc a drop-in replacement, we need to
provide it as well.
For the initial commit, we only implement singly linked variants (SLIST
and STAILQ). The doubly linked variants (LIST, TAILQ and CIRCLEQ) can be
implemented in the future as needed.
|
|
Summary:
A recent patch in https://github.com/llvm/llvm-project/pull/72280
provided `clang` the ability to easily use scoped atomics. These are a
special modifier on atomics that some backends support. They are
intended for providing more fine-grained control over the affected
memory of an atomic action. The default is a "system" scope, e.g.
coherence with the GPU and CPU memory on a heterogeneous system. If we
use "device" scope, that implies that the memory is only ordered with
respect to the current GPU.
These builtins are direct replacements for the GCC atomic builitins in
cases where the backend doesn't do anything with the information, so
these should be a drop-in. This introduces some noise, but hopefully it
isn't too contentious.
|
|
In particular, we have internal customers that would like to use nanf
and
scalbnf.
The differences between various entrypoint files can be checked via:
$ comm -3 <(grep libc\.src path/to/entrypoints.txt | sort) \
<(grep libc\.src path/to/other/entrypoints.txt | sort)
|
|
These were fixed properly by f1f1875c18b8.
- Revert "[libc] temporarily set -Wno-shorten-64-to-32 (#77396)"
- Revert "[libc] make off_t 32b for 32b arm (#77350)"
|
|
|
|
Another patch is needed to cover `DyadicFloat` and `NormalFloat`
constructors.
|
|
|
|
It's not working on the buildbot, so I've disabled it until we fix it.
|
|
(#78465)
- [reland] #78192
- [reland] #78447
- Turn `as` static function into a `to_storage_type` member function.
|
|
specialization" (#78457)
Reverts llvm/llvm-project#78447
This broke the gcc buildbot.
|
|
(#78447)
- [reland] #78192
- Make the implementation work when `__uint128_t` is not available on
the plaftorm.
|