!90 [backport]backport-libbpf-Disable-SEC-pragma-macro-on-GCC.patch
From: @zhang-mingyi66 Reviewed-by: @nlgwcy Signed-off-by: @nlgwcy
This commit is contained in:
commit
0cb688a185
61
backport-libbpf-Disable-SEC-pragma-macro-on-GCC.patch
Normal file
61
backport-libbpf-Disable-SEC-pragma-macro-on-GCC.patch
Normal file
@ -0,0 +1,61 @@
|
||||
From b31ca3fa0e62fde6aa66f855136e29e088ad9dde Mon Sep 17 00:00:00 2001
|
||||
From: James Hilliard <james.hilliard1@gmail.com>
|
||||
Date: Wed, 6 Jul 2022 05:18:38 -0600
|
||||
Subject: [PATCH] libbpf: Disable SEC pragma macro on GCC
|
||||
|
||||
It seems the gcc preprocessor breaks with pragmas when surrounding
|
||||
__attribute__.
|
||||
|
||||
Disable these pragmas on GCC due to upstream bugs see:
|
||||
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55578
|
||||
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90400
|
||||
|
||||
Fixes errors like:
|
||||
error: expected identifier or '(' before '#pragma'
|
||||
106 | SEC("cgroup/bind6")
|
||||
| ^~~
|
||||
|
||||
error: expected '=', ',', ';', 'asm' or '__attribute__' before '#pragma'
|
||||
114 | char _license[] SEC("license") = "GPL";
|
||||
| ^~~
|
||||
|
||||
Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
|
||||
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
|
||||
Link: https://lore.kernel.org/bpf/20220706111839.1247911-1-james.hilliard1@gmail.com
|
||||
---
|
||||
src/bpf_helpers.h | 13 +++++++++++++
|
||||
1 file changed, 13 insertions(+)
|
||||
|
||||
diff --git a/src/bpf_helpers.h b/src/bpf_helpers.h
|
||||
index fb04eaf..7349b16 100644
|
||||
--- a/src/bpf_helpers.h
|
||||
+++ b/src/bpf_helpers.h
|
||||
@@ -22,12 +22,25 @@
|
||||
* To allow use of SEC() with externs (e.g., for extern .maps declarations),
|
||||
* make sure __attribute__((unused)) doesn't trigger compilation warning.
|
||||
*/
|
||||
+#if __GNUC__ && !__clang__
|
||||
+
|
||||
+/*
|
||||
+ * Pragma macros are broken on GCC
|
||||
+ * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55578
|
||||
+ * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90400
|
||||
+ */
|
||||
+#define SEC(name) __attribute__((section(name), used))
|
||||
+
|
||||
+#else
|
||||
+
|
||||
#define SEC(name) \
|
||||
_Pragma("GCC diagnostic push") \
|
||||
_Pragma("GCC diagnostic ignored \"-Wignored-attributes\"") \
|
||||
__attribute__((section(name), used)) \
|
||||
_Pragma("GCC diagnostic pop") \
|
||||
|
||||
+#endif
|
||||
+
|
||||
/* Avoid 'linux/stddef.h' definition of '__always_inline'. */
|
||||
#undef __always_inline
|
||||
#define __always_inline inline __attribute__((always_inline))
|
||||
--
|
||||
2.33.0
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
|
||||
Name: %{githubname}
|
||||
Version: %{githubver}
|
||||
Release: 6
|
||||
Release: 7
|
||||
Summary: Libbpf library
|
||||
|
||||
License: LGPLv2 or BSD
|
||||
@ -12,7 +12,7 @@ URL: https://github.com/%{githubname}/%{githubname}
|
||||
Source: https://github.com/%{githubname}/%{githubname}/archive/refs/tags/v%{githubver}.tar.gz
|
||||
BuildRequires: gcc elfutils-libelf-devel elfutils-devel
|
||||
|
||||
Patch0000: backport-libbpf-Fix-determine_ptr_size-guessing.patch
|
||||
Patch0000: backport-libbpf-Fix-determine_ptr_size-guessing.patch
|
||||
Patch0001: backport-libbpf-preserve-errno-across-pr_warn-pr_info-pr_debug.patch
|
||||
Patch0002: backport-libbpf-Ensure-functions-with-always_inline-attribute-are-inline.patch
|
||||
Patch0003: backport-libbpf-Fix-the-name-of-a-reused-map.patch
|
||||
@ -26,6 +26,7 @@ Patch0010: backport-sync-start-syncing-include-uapi-linux-fcntl.h-UAPI-h.pa
|
||||
Patch0011: backport-libbpf-Handle-size-overflow-for-ringbuf-mmap.patch
|
||||
Patch0012: backport-libbpf-Use-page-size-as-max_entries-when-probing-rin.patch
|
||||
Patch0013: backport-libbpf-Fix-alen-calculation-in-libbpf_nla_dump_error.patch
|
||||
Patch0014: backport-libbpf-Disable-SEC-pragma-macro-on-GCC.patch
|
||||
|
||||
# This package supersedes libbpf from kernel-tools,
|
||||
# which has default Epoch: 0. By having Epoch: 1
|
||||
@ -78,6 +79,10 @@ developing applications that use %{name}
|
||||
%{_libdir}/libbpf.a
|
||||
|
||||
%changelog
|
||||
* Fri May 12 2023 zhangmingyi <zhangmingyi5@huawei.com> -2:0.8.1-7
|
||||
- backport patches from upstream:
|
||||
backport-libbpf-Disable-SEC-pragma-macro-on-GCC.patch
|
||||
|
||||
* Fri Apr 28 2023 SuperCharge <xiesongyang@huawei.com> -2:0.8.1-6
|
||||
- backport patches from upstream:
|
||||
backport-libbpf-Fix-alen-calculation-in-libbpf_nla_dump_error.patch
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user