[PATCH v5 00/23] Handle ld.so with LOAD segment gaps in _dl_find_object (bug 31943)

Florian Weimer fweimer@redhat.com
Fri May 16 15:31:18 GMT 2025


This revision fixes the copyright years and addresses the issues that
Richard Henderson and Mark Harris raised.

Thanks,
Florian

Florian Weimer (23):
  elf: Add tests to verify that l_contiguous reflects reality
  Prepare for the addition of the <sys/pagesize.h> header
  aarch64: Add <bits/pagesize.h>
  alpha: Add <bits/pagesize.h>
  arc: Add <bits/pagesize.h>
  arm: Add <bits/pagesize.h>
  csky: Add <bits/pagesize.h>
  hppa: Add <bits/pagesize.h>
  loongarch: Add <bits/pagesize.h>
  m68k: Add <bits/pagesize.h>
  microblaze: Add <bits/pagesize.h>
  mips: Add <bits/pagesize.h>
  or1k: Add <bits/pagesize.h>
  powerpc: Add <bits/pagesize.h>
  riscv: Add <bits/pagesize.h>
  s390: Add <bits/pagesize.h>
  sh: Add <bits/pagesize.h>
  sparc: Add <bits/pagesize.h>
  x86: Add <bits/pagesize.h>
  misc: Add tst-getpagesize
  elf: Extract rtld_setup_phdr function from dl_main
  elf: tst-program-headers test to check for load segment gaps
  elf: Handle ld.so with LOAD segment gaps in _dl_find_object (bug
    31943)

 bits/pagesize.h                              |  10 ++
 elf/Makefile                                 |  31 +++++
 elf/dl-find_object.c                         |  77 +++++++----
 elf/rtld.c                                   |  85 ++++++++----
 elf/tst-link-map-contiguous-ldso.c           |  44 ++++++
 elf/tst-link-map-contiguous-libc.c           |  57 ++++++++
 elf/tst-link-map-contiguous-main.c           |  45 ++++++
 elf/tst-program-headers.py                   | 137 +++++++++++++++++++
 include/sys/pagesize.h                       |   1 +
 misc/Makefile                                |   1 +
 misc/sys/pagesize.h                          |  32 +++++
 misc/tst-getpagesize.c                       |  66 +++++++++
 sysdeps/aarch64/bits/pagesize.h              |   2 +
 sysdeps/alpha/bits/pagesize.h                |   6 +
 sysdeps/arc/bits/pagesize.h                  |   2 +
 sysdeps/arm/bits/pagesize.h                  |   2 +
 sysdeps/csky/bits/pagesize.h                 |   2 +
 sysdeps/hppa/bits/pagesize.h                 |   2 +
 sysdeps/loongarch/bits/pagesize.h            |   2 +
 sysdeps/m68k/bits/pagesize.h                 |   2 +
 sysdeps/m68k/coldfire/bits/pagesize.h        |   2 +
 sysdeps/microblaze/bits/pagesize.h           |   2 +
 sysdeps/or1k/bits/pagesize.h                 |   2 +
 sysdeps/powerpc/bits/pagesize.h              |   2 +
 sysdeps/riscv/bits/pagesize.h                |   2 +
 sysdeps/s390/bits/pagesize.h                 |   2 +
 sysdeps/sh/bits/pagesize.h                   |   2 +
 sysdeps/sparc/sparc32/bits/pagesize.h        |   2 +
 sysdeps/sparc/sparc64/bits/pagesize.h        |   4 +
 sysdeps/unix/sysv/linux/arc/Makefile         |   5 +
 sysdeps/unix/sysv/linux/mips/bits/pagesize.h |   2 +
 sysdeps/x86/bits/pagesize.h                  |   2 +
 32 files changed, 580 insertions(+), 55 deletions(-)
 create mode 100644 bits/pagesize.h
 create mode 100644 elf/tst-link-map-contiguous-ldso.c
 create mode 100644 elf/tst-link-map-contiguous-libc.c
 create mode 100644 elf/tst-link-map-contiguous-main.c
 create mode 100644 elf/tst-program-headers.py
 create mode 100644 include/sys/pagesize.h
 create mode 100644 misc/sys/pagesize.h
 create mode 100644 misc/tst-getpagesize.c
 create mode 100644 sysdeps/aarch64/bits/pagesize.h
 create mode 100644 sysdeps/alpha/bits/pagesize.h
 create mode 100644 sysdeps/arc/bits/pagesize.h
 create mode 100644 sysdeps/arm/bits/pagesize.h
 create mode 100644 sysdeps/csky/bits/pagesize.h
 create mode 100644 sysdeps/hppa/bits/pagesize.h
 create mode 100644 sysdeps/loongarch/bits/pagesize.h
 create mode 100644 sysdeps/m68k/bits/pagesize.h
 create mode 100644 sysdeps/m68k/coldfire/bits/pagesize.h
 create mode 100644 sysdeps/microblaze/bits/pagesize.h
 create mode 100644 sysdeps/or1k/bits/pagesize.h
 create mode 100644 sysdeps/powerpc/bits/pagesize.h
 create mode 100644 sysdeps/riscv/bits/pagesize.h
 create mode 100644 sysdeps/s390/bits/pagesize.h
 create mode 100644 sysdeps/sh/bits/pagesize.h
 create mode 100644 sysdeps/sparc/sparc32/bits/pagesize.h
 create mode 100644 sysdeps/sparc/sparc64/bits/pagesize.h
 create mode 100644 sysdeps/unix/sysv/linux/mips/bits/pagesize.h
 create mode 100644 sysdeps/x86/bits/pagesize.h


base-commit: 6c9bb270d6a624f82a38443545e3d99f5b1e07e1
-- 
2.49.0



More information about the Libc-alpha mailing list