diff options
Diffstat (limited to 'meta-oe/recipes-support/zchunk/files/clang.patch')
| -rw-r--r-- | meta-oe/recipes-support/zchunk/files/clang.patch | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/meta-oe/recipes-support/zchunk/files/clang.patch b/meta-oe/recipes-support/zchunk/files/clang.patch new file mode 100644 index 0000000000..86faf4aac7 --- /dev/null +++ b/meta-oe/recipes-support/zchunk/files/clang.patch | |||
| @@ -0,0 +1,35 @@ | |||
| 1 | From e69d907c3fe8765ce50ce1258648ebc8283ef8a7 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Khem Raj <raj.khem@gmail.com> | ||
| 3 | Date: Wed, 22 Feb 2023 14:55:07 -0800 | ||
| 4 | Subject: [PATCH] meson: Use global function in argp check | ||
| 5 | |||
| 6 | clang is optimizing away parse_opt() since its marked static and not | ||
| 7 | used in main(), make life a bit harder for clang :) | ||
| 8 | removing static now emits the global symbols to be resolved during link | ||
| 9 | and when libargp is missing the error is thrown rightly | ||
| 10 | |||
| 11 | riscv64-yoe-linux-musl-ld: /tmp/a-5ba039.o: in function `.Lpcrel_hi0': | ||
| 12 | a.c:(.text+0x44): undefined reference to `argp_state_help' | ||
| 13 | clang-16: error: linker command failed with exit code 1 (use -v to see invocation) | ||
| 14 | |||
| 15 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
| 16 | |||
| 17 | Upstream-Status: Submitted [https://github.com/zchunk/zchunk/pull/92/] | ||
| 18 | Signed-off-by: Ross Burton <ross.burton@arm.com> | ||
| 19 | --- | ||
| 20 | meson.build | 2 +- | ||
| 21 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
| 22 | |||
| 23 | diff --git a/meson.build b/meson.build | ||
| 24 | index 3b92d58..ab54abd 100644 | ||
| 25 | --- a/meson.build | ||
| 26 | +++ b/meson.build | ||
| 27 | @@ -57,7 +57,7 @@ if host_machine.system() == 'windows' | ||
| 28 | endif | ||
| 29 | |||
| 30 | # argp-standalone dependency (if required) | ||
| 31 | -if build_machine.system() == 'windows' or build_machine.system() == 'darwin' or build_machine.system() == 'freebsd' or not cc.links('#include <argp.h>\nstatic error_t parse_opt (int key, char *arg, struct argp_state *state) { argp_usage(state); return 0; }; void main() {}') | ||
| 32 | +if build_machine.system() == 'windows' or build_machine.system() == 'darwin' or build_machine.system() == 'freebsd' or not cc.links('#include <argp.h>\nerror_t parse_opt (int key, char *arg, struct argp_state *state) { argp_usage(state); return 0; }; void main() {}') | ||
| 33 | argplib = cc.find_library('argp', has_headers : ['argp.h'], required: false) | ||
| 34 | if not argplib.found() | ||
| 35 | argplib = dependency('argp-standalone') | ||
