backport backport-libbpf-Disable-SEC-pragma-macro-on-GCC.patch
This commit is contained in:
parent
1f3ffd0269
commit
eab96bfae5
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}
|
Name: %{githubname}
|
||||||
Version: %{githubver}
|
Version: %{githubver}
|
||||||
Release: 6
|
Release: 7
|
||||||
Summary: Libbpf library
|
Summary: Libbpf library
|
||||||
|
|
||||||
License: LGPLv2 or BSD
|
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
|
Source: https://github.com/%{githubname}/%{githubname}/archive/refs/tags/v%{githubver}.tar.gz
|
||||||
BuildRequires: gcc elfutils-libelf-devel elfutils-devel
|
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
|
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
|
Patch0002: backport-libbpf-Ensure-functions-with-always_inline-attribute-are-inline.patch
|
||||||
Patch0003: backport-libbpf-Fix-the-name-of-a-reused-map.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
|
Patch0011: backport-libbpf-Handle-size-overflow-for-ringbuf-mmap.patch
|
||||||
Patch0012: backport-libbpf-Use-page-size-as-max_entries-when-probing-rin.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
|
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,
|
# This package supersedes libbpf from kernel-tools,
|
||||||
# which has default Epoch: 0. By having Epoch: 1
|
# which has default Epoch: 0. By having Epoch: 1
|
||||||
@ -78,6 +79,10 @@ developing applications that use %{name}
|
|||||||
%{_libdir}/libbpf.a
|
%{_libdir}/libbpf.a
|
||||||
|
|
||||||
%changelog
|
%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
|
* Fri Apr 28 2023 SuperCharge <xiesongyang@huawei.com> -2:0.8.1-6
|
||||||
- backport patches from upstream:
|
- backport patches from upstream:
|
||||||
backport-libbpf-Fix-alen-calculation-in-libbpf_nla_dump_error.patch
|
backport-libbpf-Fix-alen-calculation-in-libbpf_nla_dump_error.patch
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user