]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
meson: use 0|1 for SD_BOOT 26003/head
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 10 Jan 2023 13:25:57 +0000 (14:25 +0100)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 10 Jan 2023 13:25:57 +0000 (14:25 +0100)
We converted to not using #ifdef for most of our defines because the syntax is
nicer and we are protected against typos and can set -Werror=undef. Let's do
the same for SD_BOOT. The define is nicely hidden in build.h for normal builds,
and for EFI builds we were already setting SD_BOOT on the commandline.

meson.build
src/boot/efi/efi-string.c
src/boot/efi/efi-string.h
src/boot/efi/meson.build
src/fundamental/macro-fundamental.h
src/fundamental/memory-util-fundamental.h
src/fundamental/sha256.c
src/fundamental/string-util-fundamental.c
src/fundamental/string-util-fundamental.h

index e75a837d20b0917a304258602df4a9bd0a612a48..64f2e00be5f710f4af46bfda2f033a178d0504d9 100644 (file)
@@ -55,6 +55,9 @@ fuzzer_build = want_ossfuzz or want_libfuzzer
 # limits).
 conf.set10('FUZZ_USE_SIZE_LIMIT', fuzzer_build)
 
+# We'll set this to '1' for EFI builds in a different place.
+conf.set10('SD_BOOT', false)
+
 # Create a title-less summary section early, so it ends up first in the output.
 # More items are added later after they have been detected.
 summary({'build mode' : get_option('mode')})
index 2ba15673c9316c3227ba168238e5e704e6b95dae..79c296eda375f301f0778308c2adc73aa662a00d 100644 (file)
@@ -5,7 +5,7 @@
 
 #include "efi-string.h"
 
-#ifdef SD_BOOT
+#if SD_BOOT
 #  include "util.h"
 #else
 #  include <stdlib.h>
@@ -378,7 +378,7 @@ bool efi_fnmatch(const char16_t *pattern, const char16_t *haystack) {
 DEFINE_PARSE_NUMBER(char, parse_number8);
 DEFINE_PARSE_NUMBER(char16_t, parse_number16);
 
-#ifdef SD_BOOT
+#if SD_BOOT
 /* To provide the actual implementation for these we need to remove the redirection to the builtins. */
 #  undef memcmp
 #  undef memcpy
@@ -414,7 +414,7 @@ _used_ _weak_ void *memcpy(void * restrict dest, const void * restrict src, size
         if (!dest || !src || n == 0)
                 return dest;
 
-#ifdef SD_BOOT
+#if SD_BOOT
         /* The firmware-provided memcpy is likely optimized, so use that. The function is guaranteed to be
          * available by the UEFI spec. We still make it depend on the boot services pointer being set just in
          * case the compiler emits a call before it is available. */
@@ -441,7 +441,7 @@ _used_ _weak_ void *memset(void *p, int c, size_t n) {
         if (!p || n == 0)
                 return p;
 
-#ifdef SD_BOOT
+#if SD_BOOT
         /* See comment in efi_memcpy. Note that the signature has c and n swapped! */
         if (_likely_(BS)) {
                 BS->SetMem(p, n, c);
index 25931a7d6e52566e57674ead7f6425336a7aa1be..aaa9b399c887d04d16d8cec0a723aece3883e16d 100644 (file)
@@ -109,7 +109,7 @@ bool efi_fnmatch(const char16_t *pattern, const char16_t *haystack);
 bool parse_number8(const char *s, uint64_t *ret_u, const char **ret_tail);
 bool parse_number16(const char16_t *s, uint64_t *ret_u, const char16_t **ret_tail);
 
-#ifdef SD_BOOT
+#if SD_BOOT
 /* The compiler normally has knowledge about standard functions such as memcmp, but this is not the case when
  * compiling with -ffreestanding. By referring to builtins, the compiler can check arguments and do
  * optimizations again. Note that we still need to provide implementations as the compiler is free to not
index 334e98c075fd034164c9c091a9ca4acf49a78866..fb8ec26564fafcf9fa4a9a1ba133ca75d3077deb 100644 (file)
@@ -175,7 +175,7 @@ efi_config_h = configure_file(
 
 efi_cflags = [
         '-DGNU_EFI_USE_MS_ABI',
-        '-DSD_BOOT',
+        '-DSD_BOOT=1',
         '-ffreestanding',
         '-fshort-wchar',
         '-fvisibility=hidden',
index 10ee46b9c1c2869196b57e2d3834bb2e671f239c..71c6283e10d68a3afbc4f53b187d9a3453354ed6 100644 (file)
@@ -1,7 +1,7 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-#ifndef SD_BOOT
+#if !SD_BOOT
 #  include <assert.h>
 #endif
 
@@ -67,7 +67,7 @@
 #define XCONCATENATE(x, y) x ## y
 #define CONCATENATE(x, y) XCONCATENATE(x, y)
 
-#ifdef SD_BOOT
+#if SD_BOOT
         _noreturn_ void efi_assert(const char *expr, const char *file, unsigned line, const char *function);
 
         #ifdef NDEBUG
@@ -334,7 +334,7 @@ static inline size_t ALIGN_TO(size_t l, size_t ali) {
 #define ALIGN2_PTR(p) ((void*) ALIGN2((uintptr_t) p))
 #define ALIGN4_PTR(p) ((void*) ALIGN4((uintptr_t) p))
 #define ALIGN8_PTR(p) ((void*) ALIGN8((uintptr_t) p))
-#ifndef SD_BOOT
+#if !SD_BOOT
 /* libefi also provides ALIGN, and we do not use them in sd-boot explicitly. */
 #define ALIGN(l)  ALIGN_TO(l, sizeof(void*))
 #define ALIGN_PTR(p) ((void*) ALIGN((uintptr_t) (p)))
index 76f37e523b0115bae5e616f5dba1879c794f5276..67621fdb4243f51dcf74c4fa3cc9527ee61d8998 100644 (file)
@@ -3,7 +3,7 @@
 
 #include <stddef.h>
 
-#ifdef SD_BOOT
+#if SD_BOOT
 #  include "efi-string.h"
 #else
 #  include <string.h>
@@ -11,7 +11,7 @@
 
 #include "macro-fundamental.h"
 
-#if !defined(SD_BOOT) && HAVE_EXPLICIT_BZERO
+#if !SD_BOOT && HAVE_EXPLICIT_BZERO
 static inline void *explicit_bzero_safe(void *p, size_t l) {
         if (p && l > 0)
                 explicit_bzero(p, l);
index 307f672507c1faf1d44f6a0f03dd467a0413470e..4389e9e37c5a54b50ff9cdb812e4ced80ae64c33 100644 (file)
@@ -22,7 +22,7 @@
    <https://www.gnu.org/licenses/>.  */
 
 #include <stdbool.h>
-#ifdef SD_BOOT
+#if SD_BOOT
 #  include "efi-string.h"
 #else
 #  include <string.h>
index 11701ebe52f0da028cd9935856051a0064949d97..484131d72a809b007d9a36c18d916b66afc73d01 100644 (file)
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 
-#ifndef SD_BOOT
+#if !SD_BOOT
 #  include <ctype.h>
 #endif
 
@@ -20,7 +20,7 @@ sd_char *startswith(const sd_char *s, const sd_char *prefix) {
         return (sd_char*) s + l;
 }
 
-#ifndef SD_BOOT
+#if !SD_BOOT
 sd_char *startswith_no_case(const sd_char *s, const sd_char *prefix) {
         size_t l;
 
index d8231478811b6be8b6a8cd99d5ef6dce577b3791..c35ce5b88f4ef39ca010dc8f50ff249252b5290c 100644 (file)
@@ -1,7 +1,7 @@
 /* SPDX-License-Identifier: LGPL-2.1-or-later */
 #pragma once
 
-#ifdef SD_BOOT
+#if SD_BOOT
 #  include <efi.h>
 #  include <efilib.h>
 #  include "efi-string.h"
@@ -11,7 +11,7 @@
 
 #include "macro-fundamental.h"
 
-#ifdef SD_BOOT
+#if SD_BOOT
 #  define strlen strlen16
 #  define strcmp strcmp16
 #  define strncmp strncmp16
@@ -59,7 +59,7 @@ static inline size_t strlen_ptr(const sd_char *s) {
 }
 
 sd_char *startswith(const sd_char *s, const sd_char *prefix) _pure_;
-#ifndef SD_BOOT
+#if !SD_BOOT
 sd_char *startswith_no_case(const sd_char *s, const sd_char *prefix) _pure_;
 #endif
 sd_char *endswith(const sd_char *s, const sd_char *postfix) _pure_;