[Buildroot] [External] - [PATCH] package/attr: fix build failure on Microblaze architecture

Vincent Fazio vfazio at xes-inc.com
Tue Feb 6 16:05:31 UTC 2024


All,

Would it make sense to patch GCC for Microblaze to address these at the compiler level instead of constantly patching the packages?

I tested https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101766#c6 back when we were solving this problem for xz and had no issues https://gcc.gnu.org/pipermail/gcc/2023-March/240834.html


> -----Original Message-----
> From: buildroot <buildroot-bounces at buildroot.org> On Behalf Of Giulio
> Benetti
> Sent: Tuesday, February 6, 2024 9:54 AM
> To: buildroot at buildroot.org; Thomas Petazzoni
> <thomas.petazzoni at bootlin.com>
> Cc: Giulio Benetti <giulio.benetti at benettiengineering.com>; Fabrice
> Fontaine <fontaine.fabrice at gmail.com>
> Subject: [External] - [Buildroot] [PATCH] package/attr: fix build failure on
> Microblaze architecture
> 
> On Microblaze architecture __has_attribute(__symver__) support is broken
> and always return true even if symver is not supported so let's add a local
> patch pending upstream to detect if symver is supported during autoreconf.
> 
> Fixes:
> http://autobuild.buildroot.org/results/29c76e02becedf922bd7dc0533338c078
> bf77d2a
> 
> Signed-off-by: Giulio Benetti <giulio.benetti at benettiengineering.com>
> ---
>  ...dd-detection-of-symver-gcc-attribute.patch | 56 +++++++++++++++++++
>  package/attr/attr.mk                          |  3 +
>  2 files changed, 59 insertions(+)
>  create mode 100644 package/attr/0002-configure.ac-add-detection-of-
> symver-gcc-attribute.patch
> 
> diff --git a/package/attr/0002-configure.ac-add-detection-of-symver-gcc-
> attribute.patch b/package/attr/0002-configure.ac-add-detection-of-symver-
> gcc-attribute.patch
> new file mode 100644
> index 0000000000..15bd266d7b
> --- /dev/null
> +++ b/package/attr/0002-configure.ac-add-detection-of-symver-gcc-attribu
> +++ te.patch
> @@ -0,0 +1,56 @@
> +From 1be7c2251040f1152de9ceb5263e6e96fa5c3d75 Mon Sep 17 00:00:00
> 2001
> +From: Thomas Petazzoni <thomas.petazzoni at bootlin.com>
> +Date: Tue, 6 Feb 2024 15:33:15 +0100
> +Subject: [PATCH] configure.ac: add detection of symver gcc attribute
> +
> +Upstream:
> +https://lists.gnu.org/archive/html/savannah-hackers-public/2024-02/msg0
> +0009.html
> +
> +Signed-off-by: Thomas Petazzoni <thomas.petazzoni at bootlin.com>
> +Signed-off-by: Giulio Benetti <giulio.benetti at benettiengineering.com>
> +---
> + configure.ac       | 15 +++++++++++++++
> + libattr/syscalls.c |  2 +-
> + 2 files changed, 16 insertions(+), 1 deletion(-)
> +
> +diff --git a/configure.ac b/configure.ac index 7e362e9..98477b5 100644
> +--- a/configure.ac
> ++++ b/configure.ac
> +@@ -57,6 +57,21 @@ AS_CASE([$host_os],
> +       [linux*], [os_linux=yes])
> + AM_CONDITIONAL([OS_LINUX], [test "x$os_linux" = "xyes"])
> +
> ++AC_CACHE_CHECK(whether __attribute__((__symver__())) is supported,
> ++      gcc_cv_symver_attribute,
> ++      [cat > conftest.c <<EOF
> ++void foo (void) {}
> ++__typeof(foo) foo __attribute__ ((__symver__("foo at foo"))); EOF
> ++      gcc_cv_symver_attribute=no
> ++      if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then \
> ++          gcc_cv_symver_attribute=yes
> ++      fi
> ++      rm -f conftest.[cs]
> ++])
> ++AS_IF([test $gcc_cv_symver_attribute = yes],
> ++      [AC_DEFINE(HAVE_SYMVER_ATTRIBUTE, [], [GCC supports symver
> ++attribute])])
> ++
> + AC_CONFIG_COMMANDS([include/attr],
> +       [dnl
> +       rm -rf include/attr
> +diff --git a/libattr/syscalls.c b/libattr/syscalls.c index
> +907560a..caa70bc 100644
> +--- a/libattr/syscalls.c
> ++++ b/libattr/syscalls.c
> +@@ -32,7 +32,7 @@
> +  * fall back to traditional .symver asm directive otherwise.
> +  */
> + #ifdef __has_attribute
> +-# if __has_attribute(__symver__)
> ++# if defined(HAVE_SYMVER_ATTRIBUTE)
> + #  define SYMVER(cn, vn) __typeof(cn) cn
> +__attribute__((__symver__(vn)))  # elif __has_attribute(__no_reorder__)
> +    /*
> +--
> +2.43.0
> +
> diff --git a/package/attr/attr.mk b/package/attr/attr.mk index
> 6ecf5c53f4..f4f911333a 100644
> --- a/package/attr/attr.mk
> +++ b/package/attr/attr.mk
> @@ -11,6 +11,9 @@ ATTR_LICENSE = GPL-2.0+ (programs), LGPL-2.1+
> (libraries)  ATTR_LICENSE_FILES = doc/COPYING doc/COPYING.LGPL
> ATTR_CPE_ID_VENDOR = attr_project
> 
> +# Flag added for patch dealing with symver in configure.ac
> +ATTR_AUTORECONF = YES
> +
>  ATTR_INSTALL_STAGING = YES
> 
>  ATTR_CONF_OPTS = --disable-nls
> --
> 2.34.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot at buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
> CAUTION: This email originated from outside of the organization. Do not click
> links or open attachments unless you recognize the sender and know the
> content is safe.




More information about the buildroot mailing list