e5a83df8da
Commitbed21bb9b
added a patch to change configure.ac but failed to update configure which caused build failures due to the timestamp difference between configure and configure.ac and the makefile attempting to run aclocal. XZ_AUTORECONF = YES creates a circular dependency where the host autotools need host-xz which also gets patched. Because of this, we need to patch xz's configure script manually and NOT patch configure.ac so its timestamp stays older than Makefile.in. While we're doing this, correct the language in the commit body of the patch, remove a stray whitespace, and fix the offset for configure.ac Fixes:bed21bb9b
("package/xz: fix microblaze compiles") Fixes: http://autobuild.buildroot.net/results/958/9586f21e447ef9923606b1385ff333138406b685/ Signed-off-by: Vincent Fazio <vfazio@xes-inc.com> [Peter: Only patch configure] Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
71 lines
2.5 KiB
Diff
71 lines
2.5 KiB
Diff
From f0e0e8bd08b4d4e7c89a5a3b7d9a3c083f7e5432 Mon Sep 17 00:00:00 2001
|
|
From: Vincent Fazio <vfazio@gmail.com>
|
|
Date: Wed, 8 Feb 2023 12:58:37 +0000
|
|
Subject: [PATCH] Detect symver attribute support
|
|
|
|
On Microblaze, builds will fail when trying to add symver information
|
|
because __attribute__((symver ..)) is not supported even though
|
|
__has_attribute(__symver__) returns true.
|
|
|
|
Support for symver needs to be detected via a compile test since
|
|
__has_attribute can report false positives [0].
|
|
|
|
Add a configure compile check for __attribute__((symver ..)) to ensure
|
|
it is supported and define a variable to advertise support.
|
|
|
|
[0] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101766#c1
|
|
|
|
Upstream: https://github.com/tukaani-project/xz/pull/32
|
|
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
|
Signed-off-by: Vincent Fazio <vfazio@gmail.com>
|
|
[Peter: patch configure instead of configure.ac so autoreconf isn't
|
|
triggered at build time]
|
|
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
|
|
---
|
|
configure | 15 +++++++++++++++
|
|
src/liblzma/common/common.h | 2 +-
|
|
2 files changed, 16 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/src/liblzma/common/common.h b/src/liblzma/common/common.h
|
|
index 671d3bc..27b56ee 100644
|
|
--- a/src/liblzma/common/common.h
|
|
+++ b/src/liblzma/common/common.h
|
|
@@ -76,7 +76,7 @@
|
|
// too (which doesn't support __symver__) so use it to detect if __symver__
|
|
// is available. This should be far more reliable than looking at compiler
|
|
// version macros as nowadays especially __GNUC__ is defined by many compilers.
|
|
-# if lzma_has_attribute(__symver__)
|
|
+# if defined(HAVE_SYMVER_ATTRIBUTE)
|
|
# define LZMA_SYMVER_API(extnamever, type, intname) \
|
|
extern __attribute__((__symver__(extnamever))) \
|
|
LZMA_API(type) intname
|
|
diff --git a/configure b/configure
|
|
index ff0eed5..e685b30 100755
|
|
--- a/configure
|
|
+++ b/configure
|
|
@@ -16687,6 +16687,21 @@ printf "%s\n" "" >&6; }
|
|
|
|
printf "%s\n" "#define HAVE_SYMBOL_VERSIONS_LINUX $have_symbol_versions_linux" >>confdefs.h
|
|
|
|
+ OLD_CFLAGS="$CFLAGS"
|
|
+ CFLAGS="$CFLAGS -Werror" # we need -Werror to make sure the attribute is not ignored
|
|
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
|
+/* end confdefs.h. */
|
|
+__attribute__ ((symver ("test@TEST"))) void foo(void) { }
|
|
+
|
|
+_ACEOF
|
|
+if ac_fn_c_try_compile "$LINENO"
|
|
+then :
|
|
+
|
|
+printf "%s\n" "#define HAVE_SYMVER_ATTRIBUTE 1" >>confdefs.h
|
|
+
|
|
+fi
|
|
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
|
|
+ CFLAGS="$OLD_CFLAGS"
|
|
;;
|
|
*)
|
|
enable_symbol_versions=generic
|
|
--
|
|
2.34.1
|
|
|