On 14.12.22 21:32, John Paul Adrian Glaubitz wrote:
Hi!
On 12/14/22 21:16, Frank Scheiner wrote:
I'll do that tomorrow. The thing is that this diff doesn't apply cleanly:
Which version of the workaround diff did you use? There are two.
There is one that applies cleanly on top of
6c57d320484988e87e446e2e60ce42816bf51d53
and a second one that applies cleanly on top of glibc-2.34, I posted
both. There were
some changes between 6c57d320484988e87e446e2e60ce42816bf51d53 and
glibc-2.34 in the
minstksize/stksize code which is why you need the second diff that was
also part of
my mail.
I used the one from the bottom of your mail, just below "Interestingly,
when I checkout the tag glibc-2.34 and disabled the _dl_minsigstacksize
symbol in "struct rtld_global_ro {}" again with the following hack, I'm
no longer getting a segfault but a floating point exception: "
I'm attaching the second diff as a patch.
I think there's some whitespace difference. I manually applied the
rejected stuff, made a `git diff` and comparing that to your attached
patch gives:
```
root@nfs:/srv/nfs/ds15/root/srv# diff -Nur glibc-fix-2.patch
bz20305-workaround2.patch
--- glibc-fix-2.patch 2022-12-14 21:24:01.259696291 +0100
+++ bz20305-workaround2.patch 2022-12-14 21:37:25.439904377 +0100
@@ -1,5 +1,5 @@
diff --git a/elf/dl-sysdep.c b/elf/dl-sysdep.c
-index d47bef1340..d3dc6e5c57 100644
+index d47bef1340..8462e5859a 100644
--- a/elf/dl-sysdep.c
+++ b/elf/dl-sysdep.c
@@ -116,10 +116,10 @@ _dl_sysdep_start (void **start_argptr,
@@ -12,7 +12,7 @@
- GLRO(dl_minsigstacksize) = CONSTANT_MINSIGSTKSZ;
+ /* /\* NB: Default to a constant CONSTANT_MINSIGSTKSZ. *\/ */
+ /* _Static_assert (__builtin_constant_p (CONSTANT_MINSIGSTKSZ), */
-+ /* "CONSTANT_MINSIGSTKSZ is constant"); */
++ /* "CONSTANT_MINSIGSTKSZ is constant"); */
+ /* GLRO(dl_minsigstacksize) = CONSTANT_MINSIGSTKSZ; */
for (av = GLRO(dl_auxv); av->a_type != AT_NULL; set_seen (av++))
@@ -25,8 +25,8 @@
- GLRO(dl_minsigstacksize) = av->a_un.a_val;
- break;
+ /* case AT_MINSIGSTKSZ: */
-+ /* GLRO(dl_minsigstacksize) = av->a_un.a_val; */
-+ /* break; */
++ /* GLRO(dl_minsigstacksize) = av->a_un.a_val; */
++ /* break; */
DL_PLATFORM_AUXV
}
```
...so I think we're covered, unless the difference in the index line is
important.
I'll compile that tomorrow and see what happens.
Cheers,
Frank