https://gcc.gnu.org/g:154b617860ab6ae8e44667782c7bb5dcdb29a7af

commit r17-4077-g154b617860ab6ae8e44667782c7bb5dcdb29a7af
Author: Georg-Johann Lay <[email protected]>
Date:   Thu Sep 10 13:29:46 2026 +0200

    AVR: ad target/127032 - Also tag libf7-asm.sx modules.
    
    This patch tags object files with the double / long double ABI
    .gnu_attribute 8 (Tag_GNU_AVR_BITS_DOUBLE) resp.
    .gnu_attribute 12 (Tag_GNU_AVR_BITS_LONG_DOUBLE).
    It follows the compiler in that it only tags units where the
    size of double / long double is actually used.
    
            PR target/127032
    libgcc/config/avr/libf7/
            * libf7-asm.sx (config.h): Include it.
            (DALIAS) [sizeof(double)==8 && HAVE_AS_AVR_GNU_ATTRIBUTE]:
            Add .gnu_attribute 8,64.
            (LALIAS) [sizeof(long double)==8 && HAVE_AS_AVR_GNU_ATTRIBUTE]:
            Add .gnu_attribute 12,64.

Diff:
---
 libgcc/config/avr/libf7/libf7-asm.sx | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/libgcc/config/avr/libf7/libf7-asm.sx 
b/libgcc/config/avr/libf7/libf7-asm.sx
index f96c2a73d58b..e8a62bc8a9a3 100644
--- a/libgcc/config/avr/libf7/libf7-asm.sx
+++ b/libgcc/config/avr/libf7/libf7-asm.sx
@@ -27,6 +27,7 @@
 
 #include "asm-defs.h"
 #include "libf7.h"
+#include "config.h"
 
 #define ZERO __zero_reg__
 #define TMP  __tmp_reg__
@@ -96,6 +97,9 @@
 ;; Make a weak alias if double is 64 bits wide.
 .macro  DALIAS  sym
 #if defined (WITH_LIBF7_MATH_SYMBOLS) && __SIZEOF_DOUBLE__ == 8
+#if defined (HAVE_AS_AVR_GNU_ATTRIBUTE)
+    .gnu_attribute 8,64
+#endif
 ALIAS \sym
 #endif
 .endm
@@ -103,6 +107,9 @@ ALIAS \sym
 ;; Make a weak alias if long double is 64 bits wide.
 .macro  LALIAS  sym
 #if defined (WITH_LIBF7_MATH_SYMBOLS) && __SIZEOF_LONG_DOUBLE__ == 8
+#if defined (HAVE_AS_AVR_GNU_ATTRIBUTE)
+    .gnu_attribute 12,64
+#endif
 ALIAS \sym
 #endif
 .endm

Reply via email to