Merge pull request #23621 from evverx/clang-release
ci: build systemd with clang with -Dmode=release --optimization=2
This commit is contained in:
@@ -53,12 +53,16 @@ for phase in "${PHASES[@]}"; do
|
||||
apt-get -y install "${ADDITIONAL_DEPS[@]}"
|
||||
pip3 install -r .github/workflows/requirements.txt --require-hashes
|
||||
;;
|
||||
RUN|RUN_GCC|RUN_CLANG)
|
||||
if [[ "$phase" = "RUN_CLANG" ]]; then
|
||||
RUN|RUN_GCC|RUN_CLANG|RUN_CLANG_RELEASE)
|
||||
if [[ "$phase" =~ ^RUN_CLANG ]]; then
|
||||
export CC=clang
|
||||
export CXX=clang++
|
||||
# The docs build is slow and is not affected by compiler/flags, so do it just once
|
||||
MESON_ARGS+=(-Dman=true)
|
||||
if [[ "$phase" == RUN_CLANG ]]; then
|
||||
# The docs build is slow and is not affected by compiler/flags, so do it just once
|
||||
MESON_ARGS+=(-Dman=true)
|
||||
else
|
||||
MESON_ARGS+=(-Dmode=release --optimization=2)
|
||||
fi
|
||||
fi
|
||||
# The install_tag feature introduced in 0.60 causes meson to fail with fatal-meson-warnings
|
||||
# "Project targeting '>= 0.53.2' but tried to use feature introduced in '0.60.0': install_tag arg in custom_target"
|
||||
|
||||
@@ -21,7 +21,7 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
run_phase: [GCC, GCC_ASAN_UBSAN, CLANG, CLANG_ASAN_UBSAN, CLANG_ASAN_UBSAN_NO_DEPS]
|
||||
run_phase: [GCC, GCC_ASAN_UBSAN, CLANG, CLANG_RELEASE, CLANG_ASAN_UBSAN, CLANG_ASAN_UBSAN_NO_DEPS]
|
||||
cryptolib: [auto]
|
||||
include:
|
||||
- run_phase: GCC
|
||||
|
||||
+3
-13
@@ -174,23 +174,13 @@ void* greedy_realloc0(void **p, size_t need, size_t size);
|
||||
* is compatible with _FORTIFY_SOURCES. If _FORTIFY_SOURCES is used many memory operations will take the
|
||||
* object size as returned by __builtin_object_size() into account. Hence, let's return the smaller size of
|
||||
* malloc_usable_size() and __builtin_object_size() here, so that we definitely operate in safe territory by
|
||||
* both the compiler's and libc's standards. Note that _FORTIFY_SOURCES=3 handles also dynamically allocated
|
||||
* objects and thus it's safer using __builtin_dynamic_object_size if _FORTIFY_SOURCES=3 is used (#22801).
|
||||
* Moreover, when NULL is passed malloc_usable_size() is documented to return zero, and
|
||||
* both the compiler's and libc's standards. Note that __builtin_object_size() evaluates to SIZE_MAX if the
|
||||
* size cannot be determined, hence the MIN() expression should be safe with dynamically sized memory,
|
||||
* too. Moreover, when NULL is passed malloc_usable_size() is documented to return zero, and
|
||||
* __builtin_object_size() returns SIZE_MAX too, hence we also return a sensible value of 0 in this corner
|
||||
* case. */
|
||||
|
||||
#if defined __has_builtin
|
||||
# if __has_builtin(__builtin_dynamic_object_size)
|
||||
# define MALLOC_SIZEOF_SAFE(x) \
|
||||
MIN(malloc_usable_size(x), __builtin_dynamic_object_size(x, 0))
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef MALLOC_SIZEOF_SAFE
|
||||
#define MALLOC_SIZEOF_SAFE(x) \
|
||||
MIN(malloc_usable_size(x), __builtin_object_size(x, 0))
|
||||
#endif
|
||||
|
||||
/* Inspired by ELEMENTSOF() but operates on malloc()'ed memory areas: typesafely returns the number of items
|
||||
* that fit into the specified memory block */
|
||||
|
||||
Reference in New Issue
Block a user