* [Buildroot] [PATCH v2, 1/2] toolchain: add BR2_TOOLCHAIN_HAS_GCC_BUG_101766
@ 2024-01-16 6:58 Fabrice Fontaine
2024-01-16 6:58 ` [Buildroot] [PATCH v2, 2/2] package/attr: affected by gcc bug 101766 Fabrice Fontaine
0 siblings, 1 reply; 9+ messages in thread
From: Fabrice Fontaine @ 2024-01-16 6:58 UTC (permalink / raw)
To: buildroot
Cc: Giulio Benetti, Sen Hastings, Thomas Petazzoni, Romain Naour,
Fabrice Fontaine, Yann E . MORIN, Thomas De Schampheleire,
Norbert Lange
BR2_TOOLCHAIN_HAS_GCC_BUG_101766 will be used to fix a build a build
failure on attr and elfutils with microblaze
Reviewed-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
toolchain/Config.in | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/toolchain/Config.in b/toolchain/Config.in
index f1f9212f25..dc4e52bb3d 100644
--- a/toolchain/Config.in
+++ b/toolchain/Config.in
@@ -210,6 +210,14 @@ config BR2_TOOLCHAIN_HAS_GCC_BUG_101737
bool
default y if BR2_sh
+# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101766
+# Microblaze gcc can't use .symver attribute leading to:
+# error: symver is only supported on ELF platforms
+# however __has_attribute(symver) returns true
+config BR2_TOOLCHAIN_HAS_GCC_BUG_101766
+ bool
+ default y if BR2_microblaze || BR2_microblazeel
+
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101915
# ICE: in extract_insn, at recog.c:2294 on microblaze.
# This bug still exists in gcc = 12.1.0
--
2.43.0
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [Buildroot] [PATCH v2, 2/2] package/attr: affected by gcc bug 101766
2024-01-16 6:58 [Buildroot] [PATCH v2, 1/2] toolchain: add BR2_TOOLCHAIN_HAS_GCC_BUG_101766 Fabrice Fontaine
@ 2024-01-16 6:58 ` Fabrice Fontaine
2024-02-06 15:11 ` Thomas Petazzoni via buildroot
0 siblings, 1 reply; 9+ messages in thread
From: Fabrice Fontaine @ 2024-01-16 6:58 UTC (permalink / raw)
To: buildroot
Cc: Giulio Benetti, Sen Hastings, Thomas Petazzoni, Romain Naour,
Fabrice Fontaine, Yann E . MORIN, Thomas De Schampheleire,
Norbert Lange
attr is affected by gcc bug 101766 since version 1.5.2 and
https://git.savannah.nongnu.org/cgit/attr.git/commit/?id=11b9069098b4d4c23efb06c9457a085b784354d4
resulting in the following build failure on microblaze since commit
b31b91296e7f985b909f104f06a098adddef1fea:
libattr/syscalls.c:133:10: error: symver is only supported on ELF platforms
133 | # pragma GCC visibility pop
| ^~~
So let's disable package attr and packages depending on it.
Fixes:
- http://autobuild.buildroot.org/results/29c76e02becedf922bd7dc0533338c078bf77d2a
Reviewed-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
Changes v1 -> v2 (after review of Giulio Benetti):
- Update commit log
- Update casync and lua-flu
package/acl/Config.in | 4 ++++
package/attr/Config.in | 4 ++++
package/casync/Config.in | 4 ++++
package/lua-flu/Config.in | 4 ++++
package/systemd/Config.in | 4 ++++
5 files changed, 20 insertions(+)
diff --git a/package/acl/Config.in b/package/acl/Config.in
index 92f2251878..132c6e8ad3 100644
--- a/package/acl/Config.in
+++ b/package/acl/Config.in
@@ -1,5 +1,6 @@
config BR2_PACKAGE_ACL
bool "acl"
+ depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_101766 # attr
select BR2_PACKAGE_ATTR
help
POSIX Access Control Lists, which are used to define more
@@ -8,3 +9,6 @@ config BR2_PACKAGE_ACL
This package also provides libacl.
http://savannah.nongnu.org/projects/acl
+
+comment "acl needs a toolchain not affected by GCC bug 101766"
+ depends on BR2_TOOLCHAIN_HAS_GCC_BUG_101766
diff --git a/package/attr/Config.in b/package/attr/Config.in
index 554772b75d..b9d9f57d8f 100644
--- a/package/attr/Config.in
+++ b/package/attr/Config.in
@@ -1,7 +1,11 @@
config BR2_PACKAGE_ATTR
bool "attr"
+ depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_101766
help
Commands for Manipulating Filesystem Extended Attributes.
This package also provides libattr.
http://savannah.nongnu.org/projects/attr
+
+comment "attr needs a toolchain not affected by GCC bug 101766"
+ depends on BR2_TOOLCHAIN_HAS_GCC_BUG_101766
diff --git a/package/casync/Config.in b/package/casync/Config.in
index 89a9520e35..c5be9b521e 100644
--- a/package/casync/Config.in
+++ b/package/casync/Config.in
@@ -1,6 +1,7 @@
config BR2_PACKAGE_CASYNC
bool "casync"
depends on BR2_TOOLCHAIN_USES_GLIBC # scandirat() is not implemented by musl and uclibc-ng
+ depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_101766 # acl
select BR2_PACKAGE_ACL
select BR2_PACKAGE_LIBCURL
select BR2_PACKAGE_OPENSSL
@@ -11,3 +12,6 @@ config BR2_PACKAGE_CASYNC
comment "casync needs a glibc toolchain"
depends on !BR2_TOOLCHAIN_USES_GLIBC
+
+comment "casync needs a toolchain not affected by GCC bug 101766"
+ depends on BR2_TOOLCHAIN_HAS_GCC_BUG_101766
diff --git a/package/lua-flu/Config.in b/package/lua-flu/Config.in
index 9b55ce5ab0..ae343866c8 100644
--- a/package/lua-flu/Config.in
+++ b/package/lua-flu/Config.in
@@ -4,6 +4,7 @@ config BR2_PACKAGE_LUA_FLU
depends on BR2_TOOLCHAIN_HAS_THREADS # libfuse
depends on BR2_USE_MMU # libfuse
depends on !BR2_PACKAGE_LUA_5_4
+ depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_101766 # attr
select BR2_PACKAGE_ATTR
select BR2_PACKAGE_LIBFUSE
help
@@ -17,3 +18,6 @@ config BR2_PACKAGE_LUA_FLU
comment "lua-flu needs a toolchain w/ threads, dynamic library, Lua <= 5.3"
depends on BR2_USE_MMU
depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || BR2_PACKAGE_LUA_5_4
+
+comment "lua-flu needs a toolchain not affected by GCC bug 101766"
+ depends on BR2_TOOLCHAIN_HAS_GCC_BUG_101766
diff --git a/package/systemd/Config.in b/package/systemd/Config.in
index 859332d9e4..f0f92b78b0 100644
--- a/package/systemd/Config.in
+++ b/package/systemd/Config.in
@@ -451,6 +451,7 @@ config BR2_PACKAGE_SYSTEMD_RFKILL
config BR2_PACKAGE_SYSTEMD_SMACK_SUPPORT
bool "enable SMACK support"
+ depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_101766 # attr
select BR2_PACKAGE_ATTR
select BR2_PACKAGE_SMACK
help
@@ -463,6 +464,9 @@ config BR2_PACKAGE_SYSTEMD_SMACK_SUPPORT
When this feature is enabled, Systemd mounts smackfs and
manages security labels for sockets.
+comment "SMACK support needs a toolchain not affected by GCC bug 101766"
+ depends on BR2_TOOLCHAIN_HAS_GCC_BUG_101766
+
config BR2_PACKAGE_SYSTEMD_SYSEXT
bool "enable sysext support"
help
--
2.43.0
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [Buildroot] [PATCH v2, 2/2] package/attr: affected by gcc bug 101766
2024-01-16 6:58 ` [Buildroot] [PATCH v2, 2/2] package/attr: affected by gcc bug 101766 Fabrice Fontaine
@ 2024-02-06 15:11 ` Thomas Petazzoni via buildroot
2024-02-06 15:20 ` Giulio Benetti
2024-02-06 15:54 ` [Buildroot] [PATCH] package/attr: fix build failure on Microblaze architecture Giulio Benetti
0 siblings, 2 replies; 9+ messages in thread
From: Thomas Petazzoni via buildroot @ 2024-02-06 15:11 UTC (permalink / raw)
To: Fabrice Fontaine
Cc: Sen Hastings, Yann E . MORIN, buildroot, Romain Naour,
Giulio Benetti, Thomas De Schampheleire, Norbert Lange
[-- Attachment #1: Type: text/plain, Size: 1564 bytes --]
Hello Fabrice,
On Tue, 16 Jan 2024 07:58:31 +0100
Fabrice Fontaine <fontaine.fabrice@gmail.com> wrote:
> attr is affected by gcc bug 101766 since version 1.5.2 and
> https://git.savannah.nongnu.org/cgit/attr.git/commit/?id=11b9069098b4d4c23efb06c9457a085b784354d4
> resulting in the following build failure on microblaze since commit
> b31b91296e7f985b909f104f06a098adddef1fea:
>
> libattr/syscalls.c:133:10: error: symver is only supported on ELF platforms
> 133 | # pragma GCC visibility pop
> | ^~~
>
> So let's disable package attr and packages depending on it.
>
> Fixes:
> - http://autobuild.buildroot.org/results/29c76e02becedf922bd7dc0533338c078bf77d2a
>
> Reviewed-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
> Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
I don't like this very much. It's annoying to propagate this dependency
to all reverse dependencies of attr, and make it unavailable on
Microblaze for this silly reason. So I came up with the attached patch
for attr, which rather detects if __attribute__(__symver__) works or
not, and fall backs to another mechanism if not (this fallback already
exists in the attr code).
Could you have a look at my proposal, and if it suits you, submit it
upstream and as a patch to Buildroot ? :-)
(Yeah, I know I'm pushing some of the work for you, my goal is to be
able to continue review/merge other patches)
Thanks a lot!
Thomas
--
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
[-- Attachment #2: 0001-configure.ac-add-detection-of-symver-gcc-attribute.patch --]
[-- Type: text/x-patch, Size: 1668 bytes --]
From 1be7c2251040f1152de9ceb5263e6e96fa5c3d75 Mon Sep 17 00:00:00 2001
From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Date: Tue, 6 Feb 2024 15:33:15 +0100
Subject: [PATCH] configure.ac: add detection of symver gcc attribute
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.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@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
[-- Attachment #3: Type: text/plain, Size: 150 bytes --]
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [Buildroot] [PATCH v2, 2/2] package/attr: affected by gcc bug 101766
2024-02-06 15:11 ` Thomas Petazzoni via buildroot
@ 2024-02-06 15:20 ` Giulio Benetti
2024-02-06 15:54 ` [Buildroot] [PATCH] package/attr: fix build failure on Microblaze architecture Giulio Benetti
1 sibling, 0 replies; 9+ messages in thread
From: Giulio Benetti @ 2024-02-06 15:20 UTC (permalink / raw)
To: Thomas Petazzoni, Fabrice Fontaine
Cc: Sen Hastings, Yann E . MORIN, buildroot, Romain Naour,
Norbert Lange, Thomas De Schampheleire
Hi Thomas, Fabrice,
On 06/02/24 16:11, Thomas Petazzoni via buildroot wrote:
> Hello Fabrice,
>
> On Tue, 16 Jan 2024 07:58:31 +0100
> Fabrice Fontaine <fontaine.fabrice@gmail.com> wrote:
>
>> attr is affected by gcc bug 101766 since version 1.5.2 and
>> https://git.savannah.nongnu.org/cgit/attr.git/commit/?id=11b9069098b4d4c23efb06c9457a085b784354d4
>> resulting in the following build failure on microblaze since commit
>> b31b91296e7f985b909f104f06a098adddef1fea:
>>
>> libattr/syscalls.c:133:10: error: symver is only supported on ELF platforms
>> 133 | # pragma GCC visibility pop
>> | ^~~
>>
>> So let's disable package attr and packages depending on it.
>>
>> Fixes:
>> - http://autobuild.buildroot.org/results/29c76e02becedf922bd7dc0533338c078bf77d2a
>>
>> Reviewed-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
>> Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
>
> I don't like this very much. It's annoying to propagate this dependency
> to all reverse dependencies of attr, and make it unavailable on
> Microblaze for this silly reason. So I came up with the attached patch
> for attr, which rather detects if __attribute__(__symver__) works or
> not, and fall backs to another mechanism if not (this fallback already
> exists in the attr code).
>
> Could you have a look at my proposal, and if it suits you, submit it
> upstream and as a patch to Buildroot ? :-)
I deal with attached patch.
--
Giulio Benetti
CEO&CTO@Benetti Engineering sas
> (Yeah, I know I'm pushing some of the work for you, my goal is to be
> able to continue review/merge other patches)
>
> Thanks a lot!
>
> Thomas
>
>
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Buildroot] [PATCH] package/attr: fix build failure on Microblaze architecture
2024-02-06 15:11 ` Thomas Petazzoni via buildroot
2024-02-06 15:20 ` Giulio Benetti
@ 2024-02-06 15:54 ` Giulio Benetti
2024-02-06 16:05 ` [Buildroot] [External] - " Vincent Fazio
1 sibling, 1 reply; 9+ messages in thread
From: Giulio Benetti @ 2024-02-06 15:54 UTC (permalink / raw)
To: buildroot, Thomas Petazzoni; +Cc: Giulio Benetti, Fabrice Fontaine
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/29c76e02becedf922bd7dc0533338c078bf77d2a
Signed-off-by: Giulio Benetti <giulio.benetti@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-attribute.patch
@@ -0,0 +1,56 @@
+From 1be7c2251040f1152de9ceb5263e6e96fa5c3d75 Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@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/msg00009.html
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
+Signed-off-by: Giulio Benetti <giulio.benetti@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@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@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [Buildroot] [External] - [PATCH] package/attr: fix build failure on Microblaze architecture
2024-02-06 15:54 ` [Buildroot] [PATCH] package/attr: fix build failure on Microblaze architecture Giulio Benetti
@ 2024-02-06 16:05 ` Vincent Fazio
2024-02-06 16:15 ` Giulio Benetti
2024-02-06 16:25 ` Thomas Petazzoni via buildroot
0 siblings, 2 replies; 9+ messages in thread
From: Vincent Fazio @ 2024-02-06 16:05 UTC (permalink / raw)
To: Giulio Benetti, buildroot@buildroot.org, Thomas Petazzoni
Cc: Fabrice Fontaine
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@buildroot.org> On Behalf Of Giulio
> Benetti
> Sent: Tuesday, February 6, 2024 9:54 AM
> To: buildroot@buildroot.org; Thomas Petazzoni
> <thomas.petazzoni@bootlin.com>
> Cc: Giulio Benetti <giulio.benetti@benettiengineering.com>; Fabrice
> Fontaine <fontaine.fabrice@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@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@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@bootlin.com>
> +Signed-off-by: Giulio Benetti <giulio.benetti@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@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@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.
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Buildroot] [External] - [PATCH] package/attr: fix build failure on Microblaze architecture
2024-02-06 16:05 ` [Buildroot] [External] - " Vincent Fazio
@ 2024-02-06 16:15 ` Giulio Benetti
2024-02-06 16:25 ` Thomas Petazzoni via buildroot
1 sibling, 0 replies; 9+ messages in thread
From: Giulio Benetti @ 2024-02-06 16:15 UTC (permalink / raw)
To: Vincent Fazio, buildroot@buildroot.org, Thomas Petazzoni; +Cc: Fabrice Fontaine
Hi Vincent,
my thought is,
On 06/02/24 17:05, Vincent Fazio wrote:
> All,
>
> Would it make sense to patch GCC for Microblaze to address these at the compiler level instead of constantly patching the packages?
until gcc is not fixed yes, but,
> 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
this absolutely makes sense. It would great if you could backport those
patches for all gcc versions we deal with like I've done time ago fo
OpenRisc and when they merge them upstream we can drop them after
bumping gcc versions with that patch applied.
--
Giulio Benetti
CEO&CTO@Benetti Engineering sas
>
>> -----Original Message-----
>> From: buildroot <buildroot-bounces@buildroot.org> On Behalf Of Giulio
>> Benetti
>> Sent: Tuesday, February 6, 2024 9:54 AM
>> To: buildroot@buildroot.org; Thomas Petazzoni
>> <thomas.petazzoni@bootlin.com>
>> Cc: Giulio Benetti <giulio.benetti@benettiengineering.com>; Fabrice
>> Fontaine <fontaine.fabrice@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@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@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@bootlin.com>
>> +Signed-off-by: Giulio Benetti <giulio.benetti@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@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@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.
>
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Buildroot] [External] - [PATCH] package/attr: fix build failure on Microblaze architecture
2024-02-06 16:05 ` [Buildroot] [External] - " Vincent Fazio
2024-02-06 16:15 ` Giulio Benetti
@ 2024-02-06 16:25 ` Thomas Petazzoni via buildroot
2024-02-06 16:38 ` Vincent Fazio
1 sibling, 1 reply; 9+ messages in thread
From: Thomas Petazzoni via buildroot @ 2024-02-06 16:25 UTC (permalink / raw)
To: Vincent Fazio; +Cc: Giulio Benetti, Fabrice Fontaine, buildroot@buildroot.org
Hello Vincent,
On Tue, 6 Feb 2024 16:05:31 +0000
Vincent Fazio <vfazio@xes-inc.com> wrote:
> 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
It would definitely make sense of course. Have you been able to get the
necessary changes accepted in upstream GCC ?
Thanks!
Thomas
--
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Buildroot] [External] - [PATCH] package/attr: fix build failure on Microblaze architecture
2024-02-06 16:25 ` Thomas Petazzoni via buildroot
@ 2024-02-06 16:38 ` Vincent Fazio
0 siblings, 0 replies; 9+ messages in thread
From: Vincent Fazio @ 2024-02-06 16:38 UTC (permalink / raw)
To: Thomas Petazzoni
Cc: Giulio Benetti, Fabrice Fontaine, buildroot@buildroot.org
Thomas,
> -----Original Message-----
> From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> Sent: Tuesday, February 6, 2024 10:26 AM
> To: Vincent Fazio <vfazio@xes-inc.com>
> Cc: Giulio Benetti <giulio.benetti@benettiengineering.com>;
> buildroot@buildroot.org; Fabrice Fontaine <fontaine.fabrice@gmail.com>
> Subject: Re: [External] - [Buildroot] [PATCH] package/attr: fix build failure on
> Microblaze architecture
>
> Hello Vincent,
>
> On Tue, 6 Feb 2024 16:05:31 +0000
> Vincent Fazio <vfazio@xes-inc.com> wrote:
>
> > 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
>
> It would definitely make sense of course. Have you been able to get the
> necessary changes accepted in upstream GCC ?
>
The mailing list conversation died out very quickly, but I can try to submit the patch for this specific fixup.
I didn't feel comfortable with migrating all of Microblaze to elfos.h as that got very nasty, very quickly and the only change we (Buildroot) need is the `ASM_OUTPUT_SYMVER_DIRECTIVE` macro.
> Thanks!
>
> Thomas
> --
> Thomas Petazzoni, co-owner and CEO, Bootlin Embedded Linux and Kernel
> engineering and training https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2024-02-06 16:39 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-01-16 6:58 [Buildroot] [PATCH v2, 1/2] toolchain: add BR2_TOOLCHAIN_HAS_GCC_BUG_101766 Fabrice Fontaine
2024-01-16 6:58 ` [Buildroot] [PATCH v2, 2/2] package/attr: affected by gcc bug 101766 Fabrice Fontaine
2024-02-06 15:11 ` Thomas Petazzoni via buildroot
2024-02-06 15:20 ` Giulio Benetti
2024-02-06 15:54 ` [Buildroot] [PATCH] package/attr: fix build failure on Microblaze architecture Giulio Benetti
2024-02-06 16:05 ` [Buildroot] [External] - " Vincent Fazio
2024-02-06 16:15 ` Giulio Benetti
2024-02-06 16:25 ` Thomas Petazzoni via buildroot
2024-02-06 16:38 ` Vincent Fazio
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.