[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: glibc regression on alpha with 2.34+



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


Reply to: