mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-09-30 22:11:59 -09:00
package/libkcapi: Fix symver build error on non-ELF platforms
The following error is observed on Microblaze [1] build:
```
error: symver is only supported on ELF platforms
```
due to using __attribute__((symver)) on non-ELF platform.
So, revert to using .symver in such case.
Fixes:
http://autobuild.buildroot.net/results/4470efb5a078c0e368f6bd4f5ec455eea5eeebb5/
Upstream status: commit f630ed1f807e26de04b3a5dfd7f1b39d1c5cb642
https://github.com/smuellerDD/libkcapi/pull/147
Signed-off-by: Tan En De <ende.tan@starfivetech.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
(cherry picked from commit 216e201cd0)
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
committed by
Peter Korsgaard
parent
d475cb6056
commit
1427f9c63f
@@ -0,0 +1,84 @@
|
|||||||
|
From f630ed1f807e26de04b3a5dfd7f1b39d1c5cb642 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tan En De <ende.tan@starfivetech.com>
|
||||||
|
Date: Sat, 26 Nov 2022 07:47:39 +0800
|
||||||
|
Subject: [PATCH] Fix symver build error on non-ELF platforms
|
||||||
|
|
||||||
|
The following error is observed on Microblaze [1] build:
|
||||||
|
```
|
||||||
|
error: symver is only supported on ELF platforms
|
||||||
|
```
|
||||||
|
due to using __attribute__((symver)) on non-ELF platform.
|
||||||
|
So, revert to using .symver in such case.
|
||||||
|
|
||||||
|
[1]: http://autobuild.buildroot.net/results/447/4470efb5a078c0e368f6bd4f5ec455eea5eeebb5/build-end.log
|
||||||
|
|
||||||
|
Signed-off-by: Tan En De <ende.tan@starfivetech.com>
|
||||||
|
Signed-off-by: Stephan Mueller <smueller@chronox.de>
|
||||||
|
---
|
||||||
|
Upstream status: commit f630ed1f807e26de04b3a5dfd7f1b39d1c5cb642
|
||||||
|
|
||||||
|
configure.ac | 2 ++
|
||||||
|
lib/internal.h | 2 +-
|
||||||
|
m4/ac_check_attribute_symver.m4 | 24 ++++++++++++++++++++++++
|
||||||
|
3 files changed, 27 insertions(+), 1 deletion(-)
|
||||||
|
create mode 100644 m4/ac_check_attribute_symver.m4
|
||||||
|
|
||||||
|
diff --git a/configure.ac b/configure.ac
|
||||||
|
index e230577..ba17404 100644
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -76,6 +76,8 @@ AX_ADD_FORTIFY_SOURCE
|
||||||
|
|
||||||
|
AC_CHECK_API_VERSION
|
||||||
|
|
||||||
|
+AC_CHECK_ATTRIBUTE_SYMVER
|
||||||
|
+
|
||||||
|
AC_ARG_ENABLE([werror], [AS_HELP_STRING([--disable-werror], [Disable -Werror])], [with_werror=$enableval], [with_werror=yes])
|
||||||
|
AM_CONDITIONAL([ENABLE_WERROR], [test "x$with_werror" = "xyes"])
|
||||||
|
|
||||||
|
diff --git a/lib/internal.h b/lib/internal.h
|
||||||
|
index 14844a9..7977b04 100644
|
||||||
|
--- a/lib/internal.h
|
||||||
|
+++ b/lib/internal.h
|
||||||
|
@@ -352,7 +352,7 @@ static inline int io_getevents(__attribute__((unused)) aio_context_t ctx,
|
||||||
|
* Auxiliary macros
|
||||||
|
************************************************************/
|
||||||
|
|
||||||
|
-#if __GNUC__ >= 10
|
||||||
|
+#if HAVE_ATTRIBUTE_SYMVER && __GNUC__ >= 10
|
||||||
|
# define IMPL_SYMVER(name, version) \
|
||||||
|
__attribute__((__symver__("kcapi_" #name "@@LIBKCAPI_" version)))
|
||||||
|
|
||||||
|
diff --git a/m4/ac_check_attribute_symver.m4 b/m4/ac_check_attribute_symver.m4
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..b484c5e
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/m4/ac_check_attribute_symver.m4
|
||||||
|
@@ -0,0 +1,24 @@
|
||||||
|
+dnl Check compiler support for symver function attribute
|
||||||
|
+AC_DEFUN([AC_CHECK_ATTRIBUTE_SYMVER], [
|
||||||
|
+ saved_CFLAGS=$CFLAGS
|
||||||
|
+ CFLAGS="-O0 -Werror"
|
||||||
|
+ AC_COMPILE_IFELSE(
|
||||||
|
+ [AC_LANG_PROGRAM(
|
||||||
|
+ [[
|
||||||
|
+ void _test_attribute_symver(void);
|
||||||
|
+ __attribute__((__symver__("sym@VER_1.2.3"))) void _test_attribute_symver(void) {}
|
||||||
|
+ ]],
|
||||||
|
+ [[
|
||||||
|
+ _test_attribute_symver()
|
||||||
|
+ ]]
|
||||||
|
+ )],
|
||||||
|
+ [
|
||||||
|
+ AC_DEFINE([HAVE_ATTRIBUTE_SYMVER], 1, [Define to 1 if __attribute__((symver)) is supported])
|
||||||
|
+ ],
|
||||||
|
+ [
|
||||||
|
+ AC_DEFINE([HAVE_ATTRIBUTE_SYMVER], 0, [Define to 0 if __attribute__((symver)) is not supported])
|
||||||
|
+ ]
|
||||||
|
+ )
|
||||||
|
+ CFLAGS=$saved_CFLAGS
|
||||||
|
+])
|
||||||
|
+
|
||||||
|
--
|
||||||
|
2.34.1
|
||||||
|
|
||||||
Reference in New Issue
Block a user