public inbox for glibc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug libc/31068] New: sysdeps: sparc: invalid data access in memset due to regression @ 2023-11-15 9:32 ludwig.rydberg at gaisler dot com 2023-11-15 9:34 ` [Bug libc/31068] " sam at gentoo dot org ` (4 more replies) 0 siblings, 5 replies; 6+ messages in thread From: ludwig.rydberg at gaisler dot com @ 2023-11-15 9:32 UTC (permalink / raw) To: glibc-bugs https://sourceware.org/bugzilla/show_bug.cgi?id=31068 Bug ID: 31068 Summary: sysdeps: sparc: invalid data access in memset due to regression Product: glibc Version: 2.36 Status: UNCONFIRMED Severity: normal Priority: P2 Component: libc Assignee: unassigned at sourceware dot org Reporter: ludwig.rydberg at gaisler dot com CC: drepper.fsp at gmail dot com Target Milestone: --- Description: When testing the glibc-master (2023-11-13) on sparc32 (leon) a memset regression was observed. The issue was introduced by commit a61933fe27df ("sparc: Remove bzero optimization"). How to reproduce: It can be reproduced running the "string/test-memset" test on sparc32. Fail rate: 100% Test output: string/test-memset.test-result: FAIL: string/test-memset original exit status 1 string/test-memset.out: Didn't expect signal from child: got `Segmentation fault' Root cause: The reason for the issue was that when moving the bzero routine to the end of the memset, the branch jump in the end made a jump back to wrong label causing the invalid data access. A fix has been implemented and will be submitted. -- glibc version: master d1dcb565a1fb (2023-11-13) - The issue was first observed in glibc-2.36. gcc version 10.2.0 (LEON Linux 5.10 Toolchain 1.4-87-gcd8128e) - sparc-gaisler-linux5.10 GNU ld (GNU Binutils) 2.34 glibc configure options: --prefix=/usr --enable-bind-now --host=sparc-gaisler-linux5.10 --with-headers=$USER/git/linux-toolchain/build-gcc-linux64//opt/sparc-gaisler-linux5.10/sysroot/usr/include --with-binutils=$USER/git/linux-toolchain/build-gcc-linux64/binutils/binutils --disable-default-pie libc_cv_forced_unwind=yes libc_cv_ssp=no Target: Linux buildroot 5.10.175-leon1.4 Host: Ubuntu 22.04 6.2.0-36-generic -- You are receiving this mail because: You are on the CC list for the bug. ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug libc/31068] sysdeps: sparc: invalid data access in memset due to regression 2023-11-15 9:32 [Bug libc/31068] New: sysdeps: sparc: invalid data access in memset due to regression ludwig.rydberg at gaisler dot com @ 2023-11-15 9:34 ` sam at gentoo dot org 2023-11-16 14:11 ` adhemerval.zanella at linaro dot org ` (3 subsequent siblings) 4 siblings, 0 replies; 6+ messages in thread From: sam at gentoo dot org @ 2023-11-15 9:34 UTC (permalink / raw) To: glibc-bugs https://sourceware.org/bugzilla/show_bug.cgi?id=31068 Sam James <sam at gentoo dot org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |sam at gentoo dot org -- You are receiving this mail because: You are on the CC list for the bug. ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug libc/31068] sysdeps: sparc: invalid data access in memset due to regression 2023-11-15 9:32 [Bug libc/31068] New: sysdeps: sparc: invalid data access in memset due to regression ludwig.rydberg at gaisler dot com 2023-11-15 9:34 ` [Bug libc/31068] " sam at gentoo dot org @ 2023-11-16 14:11 ` adhemerval.zanella at linaro dot org 2024-02-01 20:06 ` pinskia at gcc dot gnu.org ` (2 subsequent siblings) 4 siblings, 0 replies; 6+ messages in thread From: adhemerval.zanella at linaro dot org @ 2023-11-16 14:11 UTC (permalink / raw) To: glibc-bugs https://sourceware.org/bugzilla/show_bug.cgi?id=31068 Adhemerval Zanella <adhemerval.zanella at linaro dot org> changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |2.39 CC| |adhemerval.zanella at linaro dot o | |rg Resolution|--- |FIXED Status|UNCONFIRMED |RESOLVED Assignee|unassigned at sourceware dot org |adhemerval.zanella at linaro dot o | |rg --- Comment #1 from Adhemerval Zanella <adhemerval.zanella at linaro dot org> --- Fixed on 2.39. -- You are receiving this mail because: You are on the CC list for the bug. ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug libc/31068] sysdeps: sparc: invalid data access in memset due to regression 2023-11-15 9:32 [Bug libc/31068] New: sysdeps: sparc: invalid data access in memset due to regression ludwig.rydberg at gaisler dot com 2023-11-15 9:34 ` [Bug libc/31068] " sam at gentoo dot org 2023-11-16 14:11 ` adhemerval.zanella at linaro dot org @ 2024-02-01 20:06 ` pinskia at gcc dot gnu.org 2024-02-01 20:14 ` glaubitz at physik dot fu-berlin.de 2024-02-01 20:51 ` adhemerval.zanella at linaro dot org 4 siblings, 0 replies; 6+ messages in thread From: pinskia at gcc dot gnu.org @ 2024-02-01 20:06 UTC (permalink / raw) To: glibc-bugs https://sourceware.org/bugzilla/show_bug.cgi?id=31068 Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |pinskia at gcc dot gnu.org --- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Just FYI the commit that fixed this was: https://sourceware.org/git/?p=glibc.git;a=commit;h=578190b7e43305141512dee777e4a3b3e8159393 And it was broken for the following releases: glibc-2.36 glibc-2.37 glibc-2.38 -- You are receiving this mail because: You are on the CC list for the bug. ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug libc/31068] sysdeps: sparc: invalid data access in memset due to regression 2023-11-15 9:32 [Bug libc/31068] New: sysdeps: sparc: invalid data access in memset due to regression ludwig.rydberg at gaisler dot com ` (2 preceding siblings ...) 2024-02-01 20:06 ` pinskia at gcc dot gnu.org @ 2024-02-01 20:14 ` glaubitz at physik dot fu-berlin.de 2024-02-01 20:51 ` adhemerval.zanella at linaro dot org 4 siblings, 0 replies; 6+ messages in thread From: glaubitz at physik dot fu-berlin.de @ 2024-02-01 20:14 UTC (permalink / raw) To: glibc-bugs https://sourceware.org/bugzilla/show_bug.cgi?id=31068 John Paul Adrian Glaubitz <glaubitz at physik dot fu-berlin.de> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |glaubitz at physik dot fu-berlin.d | |e --- Comment #3 from John Paul Adrian Glaubitz <glaubitz at physik dot fu-berlin.de> --- (In reply to Adhemerval Zanella from comment #1) > Fixed on 2.39. Does this by any chance need to be fixed on sparc64 as well? This bug could be the reason for the posix_spawn() bug we're seeing on sparc64. -- You are receiving this mail because: You are on the CC list for the bug. ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug libc/31068] sysdeps: sparc: invalid data access in memset due to regression 2023-11-15 9:32 [Bug libc/31068] New: sysdeps: sparc: invalid data access in memset due to regression ludwig.rydberg at gaisler dot com ` (3 preceding siblings ...) 2024-02-01 20:14 ` glaubitz at physik dot fu-berlin.de @ 2024-02-01 20:51 ` adhemerval.zanella at linaro dot org 4 siblings, 0 replies; 6+ messages in thread From: adhemerval.zanella at linaro dot org @ 2024-02-01 20:51 UTC (permalink / raw) To: glibc-bugs https://sourceware.org/bugzilla/show_bug.cgi?id=31068 --- Comment #4 from Adhemerval Zanella <adhemerval.zanella at linaro dot org> --- (In reply to John Paul Adrian Glaubitz from comment #3) > (In reply to Adhemerval Zanella from comment #1) > > Fixed on 2.39. > > Does this by any chance need to be fixed on sparc64 as well? > > This bug could be the reason for the posix_spawn() bug we're seeing on > sparc64. The sparc64 changes were less intrusive and I could not see any change that might trigger it. The niagara4 changes slight the alignment of the 'clr' instruction: diff --git a/sysdeps/sparc/sparc64/multiarch/memset-niagara4.S b/sysdeps/sparc/sparc64/multiarch/memset-niagara4.S index 1ccf24e516..d6fbd83009 100644 --- a/sysdeps/sparc/sparc64/multiarch/memset-niagara4.S +++ b/sysdeps/sparc/sparc64/multiarch/memset-niagara4.S @@ -39,10 +39,6 @@ ENTRY(__memset_niagara4) sllx %o2, 32, %g1 ba,pt %icc, 1f or %g1, %o2, %o4 -END(__memset_niagara4) - - .align 32 -ENTRY(__bzero_niagara4) clr %o4 1: cmp %o1, 16 ble %icc, .Ltiny @@ -118,6 +114,6 @@ ENTRY(__bzero_niagara4) bne,pt %icc, 1b add %o0, 0x30, %o0 ba,a,pt %icc, .Lpostloop -END(__bzero_niagara4) +END(__memset_niagara4) #endif But afaiu this should not change the correctness of the code. Also, unless you are building with --disable-multi-arch; sparc64 string tests will check for every string implementation currently supported by the CPU. So I would expect that a failure in memset would trigger at least one regression as for sparc32. -- You are receiving this mail because: You are on the CC list for the bug. ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2024-02-01 20:51 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2023-11-15 9:32 [Bug libc/31068] New: sysdeps: sparc: invalid data access in memset due to regression ludwig.rydberg at gaisler dot com 2023-11-15 9:34 ` [Bug libc/31068] " sam at gentoo dot org 2023-11-16 14:11 ` adhemerval.zanella at linaro dot org 2024-02-01 20:06 ` pinskia at gcc dot gnu.org 2024-02-01 20:14 ` glaubitz at physik dot fu-berlin.de 2024-02-01 20:51 ` adhemerval.zanella at linaro dot org
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).