authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2024-09-05 05:50:26+02:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2024-09-06 10:39:30-07:00
logb230e4f598bd18b47f3f1c981869c597a06c7452
treeb94b60e29d6ec275bc7a3fccd1c589dff6946372
parent204107c499f78a3deca1b446e3e093384214b821

glibc: Patch to work around missing features in LLVM's s390x assembler.

Revert this with LLVM 20.

5 files changed, 16 insertions(+), 8 deletions(-)

lib/libc/glibc/sysdeps/s390/s390-32/start-2.33.S+2-1
......@@ -61,7 +61,8 @@
6161_start:
6262 cfi_startproc
6363 /* Mark r14 as undefined in order to stop unwinding here! */
64 cfi_undefined (r14)
64 /* zig patch: r14 -> %r14. revert with llvm 20. */
65 cfi_undefined (%r14)
6566
6667 /* Check if the kernel provides highgprs facility if needed by
6768 the binary. */
lib/libc/glibc/sysdeps/s390/s390-32/start.S+2-1
......@@ -60,7 +60,8 @@
6060_start:
6161 cfi_startproc
6262 /* Mark r14 as undefined in order to stop unwinding here! */
63 cfi_undefined (r14)
63 /* zig patch: r14 -> %r14. revert with llvm 20. */
64 cfi_undefined (%r14)
6465
6566 /* Check if the kernel provides highgprs facility if needed by
6667 the binary. */
lib/libc/glibc/sysdeps/s390/s390-64/crti.S+2-1
......@@ -67,7 +67,8 @@ _init:
6767 stg %r1,0(%r15)
6868 larl %r12,_GLOBAL_OFFSET_TABLE_
6969#if PREINIT_FUNCTION_WEAK
70 larl %r1,PREINIT_FUNCTION@GOTENT
70 /* zig patch: GOTENT -> GOT. revert with llvm 20. */
71 larl %r1,PREINIT_FUNCTION@GOT
7172 lg %r1,0(%r1)
7273 ltgr %r1,%r1
7374 je 1f
lib/libc/glibc/sysdeps/s390/s390-64/start-2.33.S+4-2
......@@ -61,7 +61,8 @@
6161_start:
6262 cfi_startproc
6363 /* Mark r14 as undefined in order to stop unwinding here! */
64 cfi_undefined (r14)
64 /* zig patch: r14 -> %r14. revert with llvm 20. */
65 cfi_undefined (%r14)
6566 /* Load argc and argv from stack. */
6667 la %r4,8(%r15) # get argv
6768 lg %r3,0(%r15) # get argc
......@@ -85,7 +86,8 @@ _start:
8586
8687 /* Ok, now branch to the libc main routine. */
8788#ifdef PIC
88 larl %r2,main@GOTENT # load pointer to main
89 /* zig patch: GOTENT -> GOT. revert with llvm 20. */
90 larl %r2,main@GOT # load pointer to main
8991 lg %r2,0(%r2)
9092 brasl %r14,__libc_start_main@plt
9193#else
lib/libc/glibc/sysdeps/s390/s390-64/start.S+6-3
......@@ -60,7 +60,8 @@
6060_start:
6161 cfi_startproc
6262 /* Mark r14 as undefined in order to stop unwinding here! */
63 cfi_undefined (r14)
63 /* zig patch: r14 -> %r14. revert with llvm 20. */
64 cfi_undefined (%r14)
6465 /* Load argc and argv from stack. */
6566 la %r4,8(%r15) # get argv
6667 lg %r3,0(%r15) # get argc
......@@ -87,7 +88,8 @@ _start:
8788# ifdef SHARED
8889 /* Used for dynamic linked position independent executable.
8990 => Scrt1.o */
90 larl %r2,main@GOTENT # load pointer to main
91 /* zig patch: GOTENT -> GOT. revert with llvm 20. */
92 larl %r2,main@GOT # load pointer to main
9193 lg %r2,0(%r2)
9294# else
9395 /* Used for dynamic linked position dependent executable.
......@@ -119,7 +121,8 @@ _start:
119121 use of GOT relocations before __libc_start_main is called. */
120122__wrap_main:
121123 cfi_startproc
122 larl %r1,main@GOTENT # load pointer to main
124 /* zig patch: GOTENT -> GOT. revert with llvm 20. */
125 larl %r1,main@GOT # load pointer to main
123126 lg %r1,0(%r1)
124127 br %r1
125128 cfi_endproc