[Bug libc/32414] [x86_64 regression] tst-strtod5i.c:124:(.text+0x47c): undefined reference to `__copysignf128'

skpgkp2 at gmail dot com sourceware-bugzilla@sourceware.org
Wed Dec 4 18:40:12 GMT 2024


https://sourceware.org/bugzilla/show_bug.cgi?id=32414

--- Comment #2 from Sunil Pandey <skpgkp2 at gmail dot com> ---
Full list of undefined reference

tst-strtod5.c:93:(.text+0x453): undefined reference to `copysignf32'
tst-strtod5.c:93:(.text+0x46c): undefined reference to `copysignf32'
tst-strtod5.c:93:(.text+0x5b5): undefined reference to `copysignf64'
tst-strtod5.c:93:(.text+0x5ce): undefined reference to `copysignf64'
tst-strtod5.c:93:(.text+0x71c): undefined reference to `copysignf128'
tst-strtod5.c:93:(.text+0x733): undefined reference to `copysignf128'
tst-strtod5.c:93:(.text+0x875): undefined reference to `copysignf32x'
tst-strtod5.c:93:(.text+0x88e): undefined reference to `copysignf32x'
tst-strtod5.c:93:(.text+0x9dd): undefined reference to `copysignf64x'
tst-strtod5.c:93:(.text+0x9fd): undefined reference to `copysignf64x'
tst-strtod5i.c:124:(.text+0x47c): undefined reference to `__copysignf128'
tst-strtod5i.c:124:(.text+0x493): undefined reference to `__copysignf128'

If I replace copysign in both the files with __builtin_copysign

$ git diff
diff --git a/stdlib/tst-strtod5.c b/stdlib/tst-strtod5.c
index 7eb9b3a2d7..204b0bdb43 100644
--- a/stdlib/tst-strtod5.c
+++ b/stdlib/tst-strtod5.c
@@ -73,8 +73,8 @@ test_strto ## FSUF (void)                                    
        \
        }                                                               \
                                                                        \
       if (r != tests_strto ## FSUF[i].expected                         \
-         || (copysign ## CSUF (10.0 ## LSUF, r)                        \
-             != copysign ## CSUF (10.0 ## LSUF,                        \
+         || (__builtin_copysign ## CSUF (10.0 ## LSUF, r)                     
\
+             != __builtin_copysign ## CSUF (10.0 ## LSUF,                     
\
                                   tests_strto ## FSUF[i].expected)))   \
        {                                                               \
          char buf1[FSTRLENMAX], buf2[FSTRLENMAX];                      \
diff --git a/stdlib/tst-strtod5i.c b/stdlib/tst-strtod5i.c
index 136aedea68..e934338a41 100644
--- a/stdlib/tst-strtod5i.c
+++ b/stdlib/tst-strtod5i.c
@@ -104,8 +104,8 @@ test_strto ## FSUF (void)                                  
        \
        }                                                               \
                                                                        \
       if (r != tests_strto ## FSUF[i].expected                         \
-         || (copysign ## CSUF (10.0 ## LSUF, r)                        \
-             != copysign ## CSUF (10.0 ## LSUF,                        \
+         || (__builtin_copysign ## CSUF (10.0 ## LSUF, r)                     
\
+             != __builtin_copysign ## CSUF (10.0 ## LSUF,                     
\
                                   tests_strto ## FSUF[i].expected)))   \
        {                                                               \
          char buf1[FSTRLENMAX], buf2[FSTRLENMAX];                      \


When compiling with gcc 6.4, I get compile time error.

tst-strtod5.c:76:8: error: implicit declaration of function
?__builtin_copysignf32? [-Werror=implicit-function-declaration]
tst-strtod5.c:76:8: error: implicit declaration of function
?__builtin_copysignf64? [-Werror=implicit-function-declaration]
tst-strtod5.c:76:8: error: implicit declaration of function
?__builtin_copysignf32x? [-Werror=implicit-function-declaration]
tst-strtod5.c:76:8: error: implicit declaration of function
?__builtin_copysignf64x? [-Werror=implicit-function-declaration]

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the Glibc-bugs mailing list