public inbox for glibc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug libc/28857] New: FAIL: elf/tst-audit24a
@ 2022-02-03 14:25 danglin at gcc dot gnu.org
  2022-02-03 20:17 ` [Bug libc/28857] " adhemerval.zanella at linaro dot org
                   ` (9 more replies)
  0 siblings, 10 replies; 11+ messages in thread
From: danglin at gcc dot gnu.org @ 2022-02-03 14:25 UTC (permalink / raw)
  To: glibc-bugs

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

            Bug ID: 28857
           Summary: FAIL: elf/tst-audit24a
           Product: glibc
           Version: 2.35
            Status: NEW
          Severity: normal
          Priority: P2
         Component: libc
          Assignee: unassigned at sourceware dot org
          Reporter: danglin at gcc dot gnu.org
                CC: drepper.fsp at gmail dot com
  Target Milestone: ---
              Host: hppa*-*-linux*
            Target: hppa*-*-linux*
             Build: hppa*-*-linux*

As of commit 6c33b018438ee799c29486f21d43d8100bdbd597 plus Adhemerval Zanella's
patch for tst-spawn6, we have the following new test fails on hppa:

FAIL: elf/tst-audit24a
FAIL: elf/tst-audit24b
FAIL: elf/tst-audit24c
FAIL: elf/tst-audit24d
FAIL: elf/tst-audit25a
FAIL: elf/tst-audit25b

elf/tst-audit24a.out:
Didn't expect signal from child: got `Segmentation fault'

elf/tst-audit24b.out:
Didn't expect signal from child: got `Segmentation fault'

elf/tst-audit24c.out:
No output.

elf/tst-audit24d.out:
No output.

elf/tst-audit25a.out:
tst-audit25a.c:93: error: string comparison failed
  left string: 231 bytes
  right string: 216 bytes
  left (evaluated from result.err.buffer):
      "la_symbind:  1\nla_symbind: tst_audit25mod3_func1 1\nla_symbind:
tst_audit25mod1_func1 0\nla_symbind: tst_audit25mod1_func2 0\nla_symbind:
tst_audit25mod2_func1 0\nla_symbind: tst_audit25mod4_func1 0\nla_symbind:
tst_audit25mod2_func2 0\n"
      6C 61 5F 73 79 6D 62 69 6E 64 3A 20 20 31 0A 6C 61 5F 73 79 6D 62 69 6E
64 3A 20 74 73 74 5F 61 75 64 69 74 32 35 6D 6F 64 33 5F 66 75 6E 63 31 20 31
0A 6C 61 5F 73 79 6D 62 69 6E 64 3A 20 74 73 74 5F 61 75 64 69 74 32 35 6D 6F
64 31 5F 66 75 6E 63 31 20 30 0A 6C 61 5F 73 79 6D 62 69 6E 64 3A 20 74 73 74
5F 61 75 64 69 74 32 35 6D 6F 64 31 5F 66 75 6E 63 32 20 30 0A 6C 61 5F 73 79
6D 62 69 6E 64 3A 20 74 73 74 5F 61 75 64 69 74 32 35 6D 6F 64 32 5F 66 75 6E
63 31 20 30 0A 6C 61 5F 73 79 6D 62 69 6E 64 3A 20 74 73 74 5F 61 75 64 69 74
32 35 6D 6F 64 34 5F 66 75 6E 63 31 20 30 0A 6C 61 5F 73 79 6D 62 69 6E 64 3A
20 74 73 74 5F 61 75 64 69 74 32 35 6D 6F 64 32 5F 66 75 6E 63 32 20 30 0A
  right (evaluated from "la_symbind: tst_audit25mod3_func1 1\n" "la_symbind:
tst_audit25mod1_func1 0\n" "la_symbind: tst_audit25mod1_func2 0\n" "la_symbind:
tst_audit25mod2_func1 0\n" "la_symbind: tst_audit25mod4_func1 0\n" "la_symbind:
tst_audit25mod2_func2 0\n"):
      "la_symbind: tst_audit25mod3_func1 1\nla_symbind: tst_audit25mod1_func1
0\nla_symbind: tst_audit25mod1_func2 0\nla_symbind: tst_audit25mod2_func1
0\nla_symbind: tst_audit25mod4_func1 0\nla_symbind: tst_audit25mod2_func2 0\n"
      6C 61 5F 73 79 6D 62 69 6E 64 3A 20 74 73 74 5F 61 75 64 69 74 32 35 6D
6F 64 33 5F 66 75 6E 63 31 20 31 0A 6C 61 5F 73 79 6D 62 69 6E 64 3A 20 74 73
74 5F 61 75 64 69 74 32 35 6D 6F 64 31 5F 66 75 6E 63 31 20 30 0A 6C 61 5F 73
79 6D 62 69 6E 64 3A 20 74 73 74 5F 61 75 64 69 74 32 35 6D 6F 64 31 5F 66 75
6E 63 32 20 30 0A 6C 61 5F 73 79 6D 62 69 6E 64 3A 20 74 73 74 5F 61 75 64 69
74 32 35 6D 6F 64 32 5F 66 75 6E 63 31 20 30 0A 6C 61 5F 73 79 6D 62 69 6E 64
3A 20 74 73 74 5F 61 75 64 69 74 32 35 6D 6F 64 34 5F 66 75 6E 63 31 20 30 0A
6C 61 5F 73 79 6D 62 69 6E 64 3A 20 74 73 74 5F 61 75 64 69 74 32 35 6D 6F 64
32 5F 66 75 6E 63 32 20 30 0A
tst-audit25a.c:114: error: string comparison failed
  left string: 276 bytes
  right string: 216 bytes
  left (evaluated from result.err.buffer):
      "la_symbind:  1\nla_symbind:  1\nla_symbind:  1\nla_symbind:
tst_audit25mod4_func1 1\nla_symbind:  1\nla_symbind: tst_audit25mod3_func1
1\nla_symbind: tst_audit25mod1_func1 1\nla_symbind: tst_audit25mod2_func1
1\nla_symbind: tst_audit25mod1_func2 1\nla_symbind: tst_audit25mod2_func2 1\n"
      6C 61 5F 73 79 6D 62 69 6E 64 3A 20 20 31 0A 6C 61 5F 73 79 6D 62 69 6E
64 3A 20 20 31 0A 6C 61 5F 73 79 6D 62 69 6E 64 3A 20 20 31 0A 6C 61 5F 73 79
6D 62 69 6E 64 3A 20 74 73 74 5F 61 75 64 69 74 32 35 6D 6F 64 34 5F 66 75 6E
63 31 20 31 0A 6C 61 5F 73 79 6D 62 69 6E 64 3A 20 20 31 0A 6C 61 5F 73 79 6D
62 69 6E 64 3A 20 74 73 74 5F 61 75 64 69 74 32 35 6D 6F 64 33 5F 66 75 6E 63
31 20 31 0A 6C 61 5F 73 79 6D 62 69 6E 64 3A 20 74 73 74 5F 61 75 64 69 74 32
35 6D 6F 64 31 5F 66 75 6E 63 31 20 31 0A 6C 61 5F 73 79 6D 62 69 6E 64 3A 20
74 73 74 5F 61 75 64 69 74 32 35 6D 6F 64 32 5F 66 75 6E 63 31 20 31 0A 6C 61
5F 73 79 6D 62 69 6E 64 3A 20 74 73 74 5F 61 75 64 69 74 32 35 6D 6F 64 31 5F
66 75 6E 63 32 20 31 0A 6C 61 5F 73 79 6D 62 69 6E 64 3A 20 74 73 74 5F 61 75
64 69 74 32 35 6D 6F 64 32 5F 66 75 6E 63 32 20 31 0A
  right (evaluated from "la_symbind: tst_audit25mod4_func1 1\n" "la_symbind:
tst_audit25mod3_func1 1\n" "la_symbind: tst_audit25mod1_func1 1\n" "la_symbind:
tst_audit25mod2_func1 1\n" "la_symbind: tst_audit25mod1_func2 1\n" "la_symbind:
tst_audit25mod2_func2 1\n"):
      "la_symbind: tst_audit25mod4_func1 1\nla_symbind: tst_audit25mod3_func1
1\nla_symbind: tst_audit25mod1_func1 1\nla_symbind: tst_audit25mod2_func1
1\nla_symbind: tst_audit25mod1_func2 1\nla_symbind: tst_audit25mod2_func2 1\n"
      6C 61 5F 73 79 6D 62 69 6E 64 3A 20 74 73 74 5F 61 75 64 69 74 32 35 6D
6F 64 34 5F 66 75 6E 63 31 20 31 0A 6C 61 5F 73 79 6D 62 69 6E 64 3A 20 74 73
74 5F 61 75 64 69 74 32 35 6D 6F 64 33 5F 66 75 6E 63 31 20 31 0A 6C 61 5F 73
79 6D 62 69 6E 64 3A 20 74 73 74 5F 61 75 64 69 74 32 35 6D 6F 64 31 5F 66 75
6E 63 31 20 31 0A 6C 61 5F 73 79 6D 62 69 6E 64 3A 20 74 73 74 5F 61 75 64 69
74 32 35 6D 6F 64 32 5F 66 75 6E 63 31 20 31 0A 6C 61 5F 73 79 6D 62 69 6E 64
3A 20 74 73 74 5F 61 75 64 69 74 32 35 6D 6F 64 31 5F 66 75 6E 63 32 20 31 0A
6C 61 5F 73 79 6D 62 69 6E 64 3A 20 74 73 74 5F 61 75 64 69 74 32 35 6D 6F 64
32 5F 66 75 6E 63 32 20 31 0A
error: 2 test failures

elf/tst-audit25b.out:
tst-audit25b.c:92: error: string comparison failed
  left string: 231 bytes
  right string: 216 bytes
  left (evaluated from result.err.buffer):
      "la_symbind:  1\nla_symbind: tst_audit25mod3_func1 1\nla_symbind:
tst_audit25mod1_func1 1\nla_symbind: tst_audit25mod2_func1 1\nla_symbind:
tst_audit25mod1_func2 1\nla_symbind: tst_audit25mod2_func2 1\nla_symbind:
tst_audit25mod4_func1 0\n"
      6C 61 5F 73 79 6D 62 69 6E 64 3A 20 20 31 0A 6C 61 5F 73 79 6D 62 69 6E
64 3A 20 74 73 74 5F 61 75 64 69 74 32 35 6D 6F 64 33 5F 66 75 6E 63 31 20 31
0A 6C 61 5F 73 79 6D 62 69 6E 64 3A 20 74 73 74 5F 61 75 64 69 74 32 35 6D 6F
64 31 5F 66 75 6E 63 31 20 31 0A 6C 61 5F 73 79 6D 62 69 6E 64 3A 20 74 73 74
5F 61 75 64 69 74 32 35 6D 6F 64 32 5F 66 75 6E 63 31 20 31 0A 6C 61 5F 73 79
6D 62 69 6E 64 3A 20 74 73 74 5F 61 75 64 69 74 32 35 6D 6F 64 31 5F 66 75 6E
63 32 20 31 0A 6C 61 5F 73 79 6D 62 69 6E 64 3A 20 74 73 74 5F 61 75 64 69 74
32 35 6D 6F 64 32 5F 66 75 6E 63 32 20 31 0A 6C 61 5F 73 79 6D 62 69 6E 64 3A
20 74 73 74 5F 61 75 64 69 74 32 35 6D 6F 64 34 5F 66 75 6E 63 31 20 30 0A
  right (evaluated from "la_symbind: tst_audit25mod3_func1 1\n" "la_symbind:
tst_audit25mod1_func1 1\n" "la_symbind: tst_audit25mod2_func1 1\n" "la_symbind:
tst_audit25mod1_func2 1\n" "la_symbind: tst_audit25mod2_func2 1\n" "la_symbind:
tst_audit25mod4_func1 0\n"):
      "la_symbind: tst_audit25mod3_func1 1\nla_symbind: tst_audit25mod1_func1
1\nla_symbind: tst_audit25mod2_func1 1\nla_symbind: tst_audit25mod1_func2
1\nla_symbind: tst_audit25mod2_func2 1\nla_symbind: tst_audit25mod4_func1 0\n"
      6C 61 5F 73 79 6D 62 69 6E 64 3A 20 74 73 74 5F 61 75 64 69 74 32 35 6D
6F 64 33 5F 66 75 6E 63 31 20 31 0A 6C 61 5F 73 79 6D 62 69 6E 64 3A 20 74 73
74 5F 61 75 64 69 74 32 35 6D 6F 64 31 5F 66 75 6E 63 31 20 31 0A 6C 61 5F 73
79 6D 62 69 6E 64 3A 20 74 73 74 5F 61 75 64 69 74 32 35 6D 6F 64 32 5F 66 75
6E 63 31 20 31 0A 6C 61 5F 73 79 6D 62 69 6E 64 3A 20 74 73 74 5F 61 75 64 69
74 32 35 6D 6F 64 31 5F 66 75 6E 63 32 20 31 0A 6C 61 5F 73 79 6D 62 69 6E 64
3A 20 74 73 74 5F 61 75 64 69 74 32 35 6D 6F 64 32 5F 66 75 6E 63 32 20 31 0A
6C 61 5F 73 79 6D 62 69 6E 64 3A 20 74 73 74 5F 61 75 64 69 74 32 35 6D 6F 64
34 5F 66 75 6E 63 31 20 30 0A
tst-audit25b.c:113: error: string comparison failed
  left string: 276 bytes
  right string: 216 bytes
  left (evaluated from result.err.buffer):
      "la_symbind:  1\nla_symbind:  1\nla_symbind:  1\nla_symbind:
tst_audit25mod4_func1 1\nla_symbind:  1\nla_symbind: tst_audit25mod3_func1
1\nla_symbind: tst_audit25mod1_func1 1\nla_symbind: tst_audit25mod2_func1
1\nla_symbind: tst_audit25mod1_func2 1\nla_symbind: tst_audit25mod2_func2 1\n"
      6C 61 5F 73 79 6D 62 69 6E 64 3A 20 20 31 0A 6C 61 5F 73 79 6D 62 69 6E
64 3A 20 20 31 0A 6C 61 5F 73 79 6D 62 69 6E 64 3A 20 20 31 0A 6C 61 5F 73 79
6D 62 69 6E 64 3A 20 74 73 74 5F 61 75 64 69 74 32 35 6D 6F 64 34 5F 66 75 6E
63 31 20 31 0A 6C 61 5F 73 79 6D 62 69 6E 64 3A 20 20 31 0A 6C 61 5F 73 79 6D
62 69 6E 64 3A 20 74 73 74 5F 61 75 64 69 74 32 35 6D 6F 64 33 5F 66 75 6E 63
31 20 31 0A 6C 61 5F 73 79 6D 62 69 6E 64 3A 20 74 73 74 5F 61 75 64 69 74 32
35 6D 6F 64 31 5F 66 75 6E 63 31 20 31 0A 6C 61 5F 73 79 6D 62 69 6E 64 3A 20
74 73 74 5F 61 75 64 69 74 32 35 6D 6F 64 32 5F 66 75 6E 63 31 20 31 0A 6C 61
5F 73 79 6D 62 69 6E 64 3A 20 74 73 74 5F 61 75 64 69 74 32 35 6D 6F 64 31 5F
66 75 6E 63 32 20 31 0A 6C 61 5F 73 79 6D 62 69 6E 64 3A 20 74 73 74 5F 61 75
64 69 74 32 35 6D 6F 64 32 5F 66 75 6E 63 32 20 31 0A
  right (evaluated from "la_symbind: tst_audit25mod4_func1 1\n" "la_symbind:
tst_audit25mod3_func1 1\n" "la_symbind: tst_audit25mod1_func1 1\n" "la_symbind:
tst_audit25mod2_func1 1\n" "la_symbind: tst_audit25mod1_func2 1\n" "la_symbind:
tst_audit25mod2_func2 1\n"):
      "la_symbind: tst_audit25mod4_func1 1\nla_symbind: tst_audit25mod3_func1
1\nla_symbind: tst_audit25mod1_func1 1\nla_symbind: tst_audit25mod2_func1
1\nla_symbind: tst_audit25mod1_func2 1\nla_symbind: tst_audit25mod2_func2 1\n"
      6C 61 5F 73 79 6D 62 69 6E 64 3A 20 74 73 74 5F 61 75 64 69 74 32 35 6D
6F 64 34 5F 66 75 6E 63 31 20 31 0A 6C 61 5F 73 79 6D 62 69 6E 64 3A 20 74 73
74 5F 61 75 64 69 74 32 35 6D 6F 64 33 5F 66 75 6E 63 31 20 31 0A 6C 61 5F 73
79 6D 62 69 6E 64 3A 20 74 73 74 5F 61 75 64 69 74 32 35 6D 6F 64 31 5F 66 75
6E 63 31 20 31 0A 6C 61 5F 73 79 6D 62 69 6E 64 3A 20 74 73 74 5F 61 75 64 69
74 32 35 6D 6F 64 32 5F 66 75 6E 63 31 20 31 0A 6C 61 5F 73 79 6D 62 69 6E 64
3A 20 74 73 74 5F 61 75 64 69 74 32 35 6D 6F 64 31 5F 66 75 6E 63 32 20 31 0A
6C 61 5F 73 79 6D 62 69 6E 64 3A 20 74 73 74 5F 61 75 64 69 74 32 35 6D 6F 64
32 5F 66 75 6E 63 32 20 31 0A
error: 2 test failures

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

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug libc/28857] FAIL: elf/tst-audit24a
  2022-02-03 14:25 [Bug libc/28857] New: FAIL: elf/tst-audit24a danglin at gcc dot gnu.org
@ 2022-02-03 20:17 ` adhemerval.zanella at linaro dot org
  2022-02-03 20:49 ` dave.anglin at bell dot net
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: adhemerval.zanella at linaro dot org @ 2022-02-03 20:17 UTC (permalink / raw)
  To: glibc-bugs

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

Adhemerval Zanella <adhemerval.zanella at linaro dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |adhemerval.zanella at linaro dot o
                   |                            |rg

--- Comment #1 from Adhemerval Zanella <adhemerval.zanella at linaro dot org> ---
I will need some help on this one, I think the HPPA function descriptor
requires some more setup on either sysdeps/hppa/dl-lookupcfg.h or
elf/dl-audit.c that I am not really getting.

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

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug libc/28857] FAIL: elf/tst-audit24a
  2022-02-03 14:25 [Bug libc/28857] New: FAIL: elf/tst-audit24a danglin at gcc dot gnu.org
  2022-02-03 20:17 ` [Bug libc/28857] " adhemerval.zanella at linaro dot org
@ 2022-02-03 20:49 ` dave.anglin at bell dot net
  2022-02-04 18:53 ` adhemerval.zanella at linaro dot org
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: dave.anglin at bell dot net @ 2022-02-03 20:49 UTC (permalink / raw)
  To: glibc-bugs

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

--- Comment #2 from dave.anglin at bell dot net ---
Is it DL_FIXUP_ADDR_VALUE that's problematic?  Maybe it should be defined to
_dl_lookup_address()?

On 32-bit hppa, a pointer to a function descriptor has the plabel bit set (bit
30).  This must be cleared to
get the actual address of the descriptor ((unsigned int)addr & ~2).  If the
descriptor has been bound,
the first word of the descriptor is the physical address of the function.  If
it hasn't been bound, the first
word of the descriptor points to a trampoline in the PLT.  It will fixup the
descriptor on the first call to
the function.

_dl_lookup_address() in dl-fptr.c resolves the descriptor and returns the
actual function address.

If that's not required, maybe DL_FIXUP_ADDR_VALUE(addr) should be:
#define DL_FIXUP_ADDR_VALUE(addr) (*(struct fdesc *) ((unsigned int)addr & ~2))
DL_FIXUP_BINDNOW_RELOC looks questionable as well.

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

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug libc/28857] FAIL: elf/tst-audit24a
  2022-02-03 14:25 [Bug libc/28857] New: FAIL: elf/tst-audit24a danglin at gcc dot gnu.org
  2022-02-03 20:17 ` [Bug libc/28857] " adhemerval.zanella at linaro dot org
  2022-02-03 20:49 ` dave.anglin at bell dot net
@ 2022-02-04 18:53 ` adhemerval.zanella at linaro dot org
  2022-02-05  0:33 ` dave.anglin at bell dot net
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: adhemerval.zanella at linaro dot org @ 2022-02-04 18:53 UTC (permalink / raw)
  To: glibc-bugs

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

--- Comment #3 from Adhemerval Zanella <adhemerval.zanella at linaro dot org> ---
(In reply to dave.anglin from comment #2)
> Is it DL_FIXUP_ADDR_VALUE that's problematic?  Maybe it should be defined to
> _dl_lookup_address()?

I think you mean DL_FIXUP_BINDNOW_ADDR_VALUE, but I don't this is the issue
since it is just used for pointer equality to see the symbind does change the
binding.

> 
> On 32-bit hppa, a pointer to a function descriptor has the plabel bit set
> (bit 30).  This must be cleared to
> get the actual address of the descriptor ((unsigned int)addr & ~2).  If the
> descriptor has been bound,
> the first word of the descriptor is the physical address of the function. 
> If it hasn't been bound, the first
> word of the descriptor points to a trampoline in the PLT.  It will fixup the
> descriptor on the first call to
> the function.
> 
> _dl_lookup_address() in dl-fptr.c resolves the descriptor and returns the
> actual function address.
> 
> If that's not required, maybe DL_FIXUP_ADDR_VALUE(addr) should be:
> #define DL_FIXUP_ADDR_VALUE(addr) (*(struct fdesc *) ((unsigned int)addr &
> ~2))
> DL_FIXUP_BINDNOW_RELOC looks questionable as well.

The _dl_lookup_address seems to be indeed required and I also think we should
only updated the binding if la_symbind actually acts uppon it.  The following
patch fixes the tests on hppa:

diff --git a/elf/Makefile b/elf/Makefile
index 5bdf0a383d..7372cb191c 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -2210,7 +2210,7 @@ $(objpfx)tst-audit24c.out: $(objpfx)tst-auditmod24c.so
 $(objpfx)tst-audit24c: $(objpfx)tst-audit24amod1.so \
                       $(objpfx)tst-audit24amod2.so
 tst-audit24c-ENV = LD_BIND_NOW=1 LD_AUDIT=$(objpfx)tst-auditmod24c.so
-LDFLAGS-tst-audit24b = -Wl,-z,lazy
+LDFLAGS-tst-audit24c = -Wl,-z,lazy

 $(objpfx)tst-audit24d.out: $(objpfx)tst-auditmod24d.so
 $(objpfx)tst-audit24d: $(objpfx)tst-audit24dmod1.so \
diff --git a/elf/dl-audit.c b/elf/dl-audit.c
index 794bfd45cd..efc0492474 100644
--- a/elf/dl-audit.c
+++ b/elf/dl-audit.c
@@ -257,7 +257,8 @@ _dl_audit_symbind (struct link_map *l, struct reloc_result
*reloc_result,
       reloc_result->flags = flags;
     }

-  DL_FIXUP_BINDNOW_RELOC (value, new_value, sym.st_value);
+  if (flags & LA_SYMB_ALTVALUE)
+    DL_FIXUP_BINDNOW_RELOC (value, new_value, sym.st_value);
 }

 void
diff --git a/elf/tst-auditmod24a.c b/elf/tst-auditmod24a.c
index d8e88f3984..3075dfae2f 100644
--- a/elf/tst-auditmod24a.c
+++ b/elf/tst-auditmod24a.c
@@ -110,5 +110,7 @@ la_symbind32 (Elf32_Sym *sym, unsigned int ndx,
       return sym->st_value;
     }

-  abort ();
+  if (symname[0] != '\0')
+    abort ();
+  return sym->st_value;
 }
diff --git a/elf/tst-auditmod24d.c b/elf/tst-auditmod24d.c
index 8c803ecc0a..badc6be451 100644
--- a/elf/tst-auditmod24d.c
+++ b/elf/tst-auditmod24d.c
@@ -116,5 +116,7 @@ la_symbind32 (Elf32_Sym *sym, unsigned int ndx,
        }
     }

-  abort ();
+  if (symname[0] != '\0')
+    abort ();
+  return sym->st_value;
 }
diff --git a/elf/tst-auditmod25.c b/elf/tst-auditmod25.c
index 526f5c54bc..20640a8daf 100644
--- a/elf/tst-auditmod25.c
+++ b/elf/tst-auditmod25.c
@@ -72,7 +72,7 @@ la_symbind32 (Elf32_Sym *sym, unsigned int ndx,
              unsigned int *flags, const char *symname)
 #endif
 {
-  if (*refcook != -1 && *defcook != -1)
+  if (*refcook != -1 && *defcook != -1 && symname[0] != '\0')
     fprintf (stderr, "la_symbind: %s %u\n", symname,
             *flags & (LA_SYMB_NOPLTENTER | LA_SYMB_NOPLTEXIT) ? 1 : 0);
   return sym->st_value;
diff --git a/sysdeps/hppa/dl-fptr.c b/sysdeps/hppa/dl-fptr.c
index 2584557c4f..4cc2cb21b1 100644
--- a/sysdeps/hppa/dl-fptr.c
+++ b/sysdeps/hppa/dl-fptr.c
@@ -407,3 +407,4 @@ _dl_lookup_address (const void *address)

   return (ElfW(Addr)) desc[0];
 }
+rtld_hidden_def (_dl_lookup_address)
diff --git a/sysdeps/hppa/dl-lookupcfg.h b/sysdeps/hppa/dl-lookupcfg.h
index 8da2412fea..3929fc84ae 100644
--- a/sysdeps/hppa/dl-lookupcfg.h
+++ b/sysdeps/hppa/dl-lookupcfg.h
@@ -30,6 +30,7 @@ rtld_hidden_proto (_dl_symbol_address)
 #define DL_SYMBOL_ADDRESS(map, ref) _dl_symbol_address(map, ref)

 Elf32_Addr _dl_lookup_address (const void *address);
+rtld_hidden_proto (_dl_lookup_address)

 #define DL_LOOKUP_ADDRESS(addr) _dl_lookup_address ((const void *) addr)

@@ -81,5 +82,8 @@ void attribute_hidden _dl_unmap (struct link_map *map);
 #define DL_FIXUP_VALUE_ADDR(value) ((uintptr_t) &(value))
 #define DL_FIXUP_ADDR_VALUE(addr) (*(struct fdesc *) (addr))
 #define DL_FIXUP_BINDNOW_ADDR_VALUE(addr) (addr)
-#define DL_FIXUP_BINDNOW_RELOC(value, new_value, st_value) \
-  (*value) = *(struct fdesc *) (st_value)
+#define DL_FIXUP_BINDNOW_RELOC(value, new_value, st_value)     \
+  ({                                                           \
+     value->ip = _dl_lookup_address ((void *) new_value);      \
+     value->gp = ((struct fdesc *) (new_value))->gp;           \
+  })

I had to add a workaround on tests because on hppa (and it seems to be the only
ABI I have see it), some shared library adds a dynamic PLT relocation that I am
not sure why it is required:

$ readelf -r elf/tst-audit25mod1.so
[...]
Relocation section '.rela.plt' at offset 0x464 contains 6 entries:
 Offset     Info    Type            Sym.Value  Sym. Name + Addend
00002008  00000081 R_PARISC_IPLT                508

It breaks some assumptions on the test, where a symbol with an empty name ("")
is passed on la_symbind.

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

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug libc/28857] FAIL: elf/tst-audit24a
  2022-02-03 14:25 [Bug libc/28857] New: FAIL: elf/tst-audit24a danglin at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2022-02-04 18:53 ` adhemerval.zanella at linaro dot org
@ 2022-02-05  0:33 ` dave.anglin at bell dot net
  2022-02-05 23:29 ` dave.anglin at bell dot net
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: dave.anglin at bell dot net @ 2022-02-05  0:33 UTC (permalink / raw)
  To: glibc-bugs

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

--- Comment #4 from dave.anglin at bell dot net ---
On 2022-02-04 1:53 p.m., adhemerval.zanella at linaro dot org wrote:
> I had to add a workaround on tests because on hppa (and it seems to be the only
> ABI I have see it), some shared library adds a dynamic PLT relocation that I am
> not sure why it is required:
>
> $ readelf -r elf/tst-audit25mod1.so
> [...]
> Relocation section '.rela.plt' at offset 0x464 contains 6 entries:
>   Offset     Info    Type            Sym.Value  Sym. Name + Addend
> 00002008  00000081 R_PARISC_IPLT                508
>
> It breaks some assumptions on the test, where a symbol with an empty name ("")
> is passed on la_symbind.
I think we need to look at the assembler  output causing this.  It would seem
we have
a P' relocation without a symbol name.

Thanks for the patch.

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

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug libc/28857] FAIL: elf/tst-audit24a
  2022-02-03 14:25 [Bug libc/28857] New: FAIL: elf/tst-audit24a danglin at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2022-02-05  0:33 ` dave.anglin at bell dot net
@ 2022-02-05 23:29 ` dave.anglin at bell dot net
  2022-02-07 12:11 ` adhemerval.zanella at linaro dot org
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: dave.anglin at bell dot net @ 2022-02-05 23:29 UTC (permalink / raw)
  To: glibc-bugs

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

--- Comment #5 from dave.anglin at bell dot net ---
On 2022-02-04 1:53 p.m., adhemerval.zanella at linaro dot org wrote:
> The _dl_lookup_address seems to be indeed required and I also think we should
> only updated the binding if la_symbind actually acts uppon it.  The following
> patch fixes the tests on hppa:
Attached is an updated patch.  The change to DL_FIXUP_BINDNOW_RELOC was not
correct.
As far as I can tell, it is not necessary to call _dl_lookup_address.  But we
do need to clear the
plabel bit from new_value or st_value.  I think the same issue could also
potentially occur with
DL_FIXUP_ADDR_VALUE.

I also hacked things a bit to fix warning from dl-fptr.c.

I'm still not sure where the nameless R_PARISC_IPLT relocation comes from.

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

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug libc/28857] FAIL: elf/tst-audit24a
  2022-02-03 14:25 [Bug libc/28857] New: FAIL: elf/tst-audit24a danglin at gcc dot gnu.org
                   ` (4 preceding siblings ...)
  2022-02-05 23:29 ` dave.anglin at bell dot net
@ 2022-02-07 12:11 ` adhemerval.zanella at linaro dot org
  2022-02-07 12:50 ` adhemerval.zanella at linaro dot org
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: adhemerval.zanella at linaro dot org @ 2022-02-07 12:11 UTC (permalink / raw)
  To: glibc-bugs

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

--- Comment #6 from Adhemerval Zanella <adhemerval.zanella at linaro dot org> ---
(In reply to dave.anglin from comment #5)
> Created attachment 13960 [details]
> libc_28857-v2.d
> 
> On 2022-02-04 1:53 p.m., adhemerval.zanella at linaro dot org wrote:
> > The _dl_lookup_address seems to be indeed required and I also think we should
> > only updated the binding if la_symbind actually acts uppon it.  The following
> > patch fixes the tests on hppa:
> Attached is an updated patch.  The change to DL_FIXUP_BINDNOW_RELOC was not
> correct.
> As far as I can tell, it is not necessary to call _dl_lookup_address.  But
> we do need to clear the
> plabel bit from new_value or st_value.  I think the same issue could also
> potentially occur with
> DL_FIXUP_ADDR_VALUE.
> 
> I also hacked things a bit to fix warning from dl-fptr.c.
> 
> I'm still not sure where the nameless R_PARISC_IPLT relocation comes from.

I will update the patch by just masking off the plabel bit as you suggested. I
am not sure about DL_FIXUP_ADDR_VALUE change since it is unrelated to this
issue, but it does seem reasonable.

The dl-fptr.c warning fixes I would prefer to send in a different path.

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

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug libc/28857] FAIL: elf/tst-audit24a
  2022-02-03 14:25 [Bug libc/28857] New: FAIL: elf/tst-audit24a danglin at gcc dot gnu.org
                   ` (5 preceding siblings ...)
  2022-02-07 12:11 ` adhemerval.zanella at linaro dot org
@ 2022-02-07 12:50 ` adhemerval.zanella at linaro dot org
  2022-02-07 15:16 ` dave.anglin at bell dot net
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: adhemerval.zanella at linaro dot org @ 2022-02-07 12:50 UTC (permalink / raw)
  To: glibc-bugs

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

--- Comment #7 from Adhemerval Zanella <adhemerval.zanella at linaro dot org> ---
I have sent an updated version
https://sourceware.org/pipermail/libc-alpha/2022-February/136230.html

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

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug libc/28857] FAIL: elf/tst-audit24a
  2022-02-03 14:25 [Bug libc/28857] New: FAIL: elf/tst-audit24a danglin at gcc dot gnu.org
                   ` (6 preceding siblings ...)
  2022-02-07 12:50 ` adhemerval.zanella at linaro dot org
@ 2022-02-07 15:16 ` dave.anglin at bell dot net
  2022-02-09 12:13 ` adhemerval.zanella at linaro dot org
  2023-01-17 18:57 ` sam at gentoo dot org
  9 siblings, 0 replies; 11+ messages in thread
From: dave.anglin at bell dot net @ 2022-02-07 15:16 UTC (permalink / raw)
  To: glibc-bugs

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

--- Comment #8 from dave.anglin at bell dot net ---
On 2022-02-07 7:11 a.m., adhemerval.zanella at linaro dot org wrote:
> The dl-fptr.c warning fixes I would prefer to send in a different path.
That's okay.

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

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug libc/28857] FAIL: elf/tst-audit24a
  2022-02-03 14:25 [Bug libc/28857] New: FAIL: elf/tst-audit24a danglin at gcc dot gnu.org
                   ` (7 preceding siblings ...)
  2022-02-07 15:16 ` dave.anglin at bell dot net
@ 2022-02-09 12:13 ` adhemerval.zanella at linaro dot org
  2023-01-17 18:57 ` sam at gentoo dot org
  9 siblings, 0 replies; 11+ messages in thread
From: adhemerval.zanella at linaro dot org @ 2022-02-09 12:13 UTC (permalink / raw)
  To: glibc-bugs

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

Adhemerval Zanella <adhemerval.zanella at linaro dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
   Target Milestone|---                         |2.36
             Status|NEW                         |RESOLVED

--- Comment #9 from Adhemerval Zanella <adhemerval.zanella at linaro dot org> ---
Fixed on 2.36.

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

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug libc/28857] FAIL: elf/tst-audit24a
  2022-02-03 14:25 [Bug libc/28857] New: FAIL: elf/tst-audit24a danglin at gcc dot gnu.org
                   ` (8 preceding siblings ...)
  2022-02-09 12:13 ` adhemerval.zanella at linaro dot org
@ 2023-01-17 18:57 ` sam at gentoo dot org
  9 siblings, 0 replies; 11+ messages in thread
From: sam at gentoo dot org @ 2023-01-17 18:57 UTC (permalink / raw)
  To: glibc-bugs

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

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] 11+ messages in thread

end of thread, other threads:[~2023-01-17 18:57 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-03 14:25 [Bug libc/28857] New: FAIL: elf/tst-audit24a danglin at gcc dot gnu.org
2022-02-03 20:17 ` [Bug libc/28857] " adhemerval.zanella at linaro dot org
2022-02-03 20:49 ` dave.anglin at bell dot net
2022-02-04 18:53 ` adhemerval.zanella at linaro dot org
2022-02-05  0:33 ` dave.anglin at bell dot net
2022-02-05 23:29 ` dave.anglin at bell dot net
2022-02-07 12:11 ` adhemerval.zanella at linaro dot org
2022-02-07 12:50 ` adhemerval.zanella at linaro dot org
2022-02-07 15:16 ` dave.anglin at bell dot net
2022-02-09 12:13 ` adhemerval.zanella at linaro dot org
2023-01-17 18:57 ` sam at gentoo 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).