From: Daan De Meyer Date: Wed, 30 Apr 2025 19:48:39 +0000 (+0200) Subject: shared: Make sure ip-protocol-xxx.h headers include X-Git-Tag: v258-rc1~701^2~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=95f87834f59199790eeb76f3c20729d435d1ea69;p=thirdparty%2Fsystemd.git shared: Make sure ip-protocol-xxx.h headers include These headers use macros from so let's make sure they include the header. --- diff --git a/src/shared/meson.build b/src/shared/meson.build index 5fc9cdc9a56..782f4b26250 100644 --- a/src/shared/meson.build +++ b/src/shared/meson.build @@ -279,7 +279,7 @@ gperf_file = custom_target( fname, input : ip_protocol_list_txt, output : fname, - command : [generate_gperfs, 'ip_protocol', 'IPPROTO_', '@INPUT@'], + command : [generate_gperfs, 'ip_protocol', 'IPPROTO_', '@INPUT@', ''], capture : true) fname = 'ip-protocol-from-name.h' diff --git a/tools/generate-gperfs.py b/tools/generate-gperfs.py index 1e22a614061..fc349b43fae 100755 --- a/tools/generate-gperfs.py +++ b/tools/generate-gperfs.py @@ -9,18 +9,23 @@ Generate %-from-name.gperf from %-list.txt import sys if __name__ == '__main__': - if len(sys.argv) != 4: - sys.exit(f'Usage: {sys.argv[0]} name prefix file') + if len(sys.argv) < 4: + sys.exit(f'Usage: {sys.argv[0]} name prefix file [includes...]') - name, prefix, file = sys.argv[1:] + name, prefix, file, *includes = sys.argv[1:] + includes = [f"#include {i}" for i in includes] - print("""\ -%{ -_Pragma("GCC diagnostic ignored \\"-Wimplicit-fallthrough\\"") + # Older versions of python don't allow backslashes + # in f-strings so use chr(10) for newlines and chr(92) + # for backslashes instead as a workaround. + print(f"""\ +%{{ +_Pragma("GCC diagnostic ignored {chr(92)}"-Wimplicit-fallthrough{chr(92)}"") #if __GNUC__ >= 15 -_Pragma("GCC diagnostic ignored \\"-Wzero-as-null-pointer-constant\\"") +_Pragma("GCC diagnostic ignored {chr(92)}"-Wzero-as-null-pointer-constant{chr(92)}"") #endif -%}""") +{chr(10).join(includes)} +%}}""") print(f"""\ struct {name}_name {{ const char* name; int id; }}; %null-strings