[v2,1/6] elf/Makefile: Reflow and sort most variable assignments

Message ID ce7b38f2c34d651ecbc84da09aa91f711f79394d.1642179009.git.fweimer@redhat.com
State New
Headers show
Series
  • Reliable CPU compatibility diagnostics in ld.so
Related show

Commit Message

H.J. Lu via Libc-alpha Jan. 14, 2022, 4:52 p.m.
---
v2: new patch
 elf/Makefile | 420 ++++++++++++++++++++++++++++++++++++++-------------
 1 file changed, 318 insertions(+), 102 deletions(-)

-- 
2.34.1

Comments

H.J. Lu via Libc-alpha Jan. 14, 2022, 6:39 p.m. | #1
On Fri, Jan 14, 2022 at 8:53 AM Florian Weimer via Libc-alpha
<libc-alpha@sourceware.org> wrote:
>

> ---

> v2: new patch

>  elf/Makefile | 420 ++++++++++++++++++++++++++++++++++++++-------------

>  1 file changed, 318 insertions(+), 102 deletions(-)

>

> diff --git a/elf/Makefile b/elf/Makefile

> index b86d116be9..3065efc485 100644

> --- a/elf/Makefile

> +++ b/elf/Makefile

> @@ -21,24 +21,67 @@ subdir              := elf

>

>  include ../Makeconfig

>

> -headers                = elf.h bits/elfclass.h link.h bits/link.h bits/link_lavcurrent.h

> -routines       = $(all-dl-routines) dl-support dl-iteratephdr \

> -                 dl-addr dl-addr-obj enbl-secure dl-profstub \

> -                 dl-origin dl-libc dl-sym dl-sysdep dl-error \

> -                 dl-reloc-static-pie libc_early_init rtld_static_init \

> -                 libc-dl_find_object

> +headers = \

> +  bits/elfclass.h \

> +  bits/link.h \

> +  bits/link_lavcurrent.h \

> +  elf.h \

> +  link.h \

> +  # headers

> +

> +routines = \

> +  $(all-dl-routines) \

> +  dl-addr \

> +  dl-addr-obj \

> +  dl-error \

> +  dl-iteratephdr \

> +  dl-libc \

> +  dl-origin \

> +  dl-profstub \

> +  dl-reloc-static-pie \

> +  dl-support \

> +  dl-sym \

> +  dl-sysdep \

> +  enbl-secure \

> +  libc-dl_find_object \

> +  libc_early_init \

> +  rtld_static_init \

> +  # routines

>

>  # The core dynamic linking functions are in libc for the static and

>  # profiled libraries.

> -dl-routines    = $(addprefix dl-,load lookup object reloc deps \

> -                                 runtime init fini debug misc \

> -                                 version profile tls origin scope \

> -                                 execstack open close trampoline \

> -                                 exception sort-maps lookup-direct \

> -                                 call-libc-early-init write \

> -                                 thread_gscope_wait tls_init_tp \

> -                                 debug-symbols minimal-malloc \

> -                                 find_object)

> +dl-routines = \

> +  dl-call-libc-early-init \

> +  dl-close \

> +  dl-debug \

> +  dl-debug-symbols \

> +  dl-deps \

> +  dl-exception \

> +  dl-execstack \

> +  dl-find_object \

> +  dl-fini \

> +  dl-init \

> +  dl-load \

> +  dl-lookup \

> +  dl-lookup-direct \

> +  dl-minimal-malloc \

> +  dl-misc \

> +  dl-object \

> +  dl-open \

> +  dl-origin \

> +  dl-profile \

> +  dl-reloc \

> +  dl-runtime \

> +  dl-scope \

> +  dl-sort-maps \

> +  dl-thread_gscope_wait \

> +  dl-tls \

> +  dl-tls_init_tp \

> +  dl-trampoline \

> +  dl-version \

> +  dl-write \

> +  # dl-routines

> +

>  ifeq (yes,$(use-ldconfig))

>  dl-routines += dl-cache

>  endif

> @@ -61,19 +104,43 @@ endif

>

>  all-dl-routines = $(dl-routines) $(sysdep-dl-routines)

>  # But they are absent from the shared libc, because that code is in ld.so.

> -elide-routines.os = $(all-dl-routines) dl-support enbl-secure dl-origin \

> -                   dl-sysdep dl-exception dl-reloc-static-pie \

> -                   thread_gscope_wait rtld_static_init

> +elide-routines.os = \

> +  $(all-dl-routines) \

> +  dl-exception \

> +  dl-origin \

> +  dl-reloc-static-pie \

> +  dl-support \

> +  dl-sysdep \

> +  enbl-secure \

> +  rtld_static_init \

> +  thread_gscope_wait \

> +  # elide-routines.os

>

>  # These object files are only included in the dynamically-linked libc.

>  shared-only-routines = libc-dl_find_object

>

>  # ld.so uses those routines, plus some special stuff for being the program

>  # interpreter and operating independent of libc.

> -rtld-routines  = rtld $(all-dl-routines) dl-sysdep dl-environ dl-minimal \

> -  dl-error-minimal dl-conflict dl-hwcaps dl-hwcaps_split dl-hwcaps-subdirs \

> -  dl-usage dl-diagnostics dl-diagnostics-kernel dl-diagnostics-cpu \

> -  dl-mutex dl-libc_freeres dl-audit

> +rtld-routines = \

> +  $(all-dl-routines) \

> +  dl-audit \

> +  dl-conflict \

> +  dl-diagnostics \

> +  dl-diagnostics-cpu \

> +  dl-diagnostics-kernel \

> +  dl-environ \

> +  dl-error-minimal \

> +  dl-hwcaps \

> +  dl-hwcaps-subdirs \

> +  dl-hwcaps_split \

> +  dl-libc_freeres \

> +  dl-minimal \

> +  dl-mutex \

> +  dl-sysdep \

> +  dl-usage \

> +  rtld \

> +  # rtld-routines

> +

>  all-rtld-routines = $(rtld-routines) $(sysdep-rtld-routines)

>

>  CFLAGS-dl-runtime.c += -fexceptions -fasynchronous-unwind-tables

> @@ -113,8 +180,16 @@ ld-map             = $(common-objpfx)ld.map

>  endif

>

>  ifeq (yes,$(build-shared))

> -extra-objs     = $(all-rtld-routines:%=%.os) sofini.os interp.os

> -generated      += librtld.os dl-allobjs.os ld.so ldd

> +extra-objs = \

> +  $(all-rtld-routines:%=%.os) \

> +  sofini.os \

> +  interp.os \

> +  # extra-objs

> +generated += \

> +  dl-allobjs.os \

> +  ld.so ldd \

> +  librtld.os \

> +  # generated

>  install-others = $(inst_rtlddir)/$(rtld-installed-name) $(inst_bindir)/ld.so

>  install-bin-script = ldd

>  endif

> @@ -132,8 +207,15 @@ others-static      += ldconfig

>  others         += ldconfig

>  install-rootsbin += ldconfig

>

> -ldconfig-modules := cache readlib xmalloc xstrdup chroot_canon static-stubs \

> -  stringtable

> +ldconfig-modules := \

> +  cache \

> +  chroot_canon \

> +  readlib \

> +  static-stubs \

> +  stringtable \

> +  xmalloc \

> +  xstrdup \

> +  # ldconfig-modules

>  extra-objs     += $(ldconfig-modules:=.o)

>  others-extras   = $(ldconfig-modules)

>  endif

> @@ -167,24 +249,36 @@ $(inst_auditdir)/sotruss-lib.so: $(objpfx)sotruss-lib.so $(+force)

>         $(do-install-program)

>  endif

>

> -tests-static-normal := tst-array1-static tst-array5-static \

> -              tst-dl-iter-static \

> -              tst-tlsalign-static tst-tlsalign-extern-static \

> -              tst-linkall-static tst-env-setuid tst-env-setuid-tunables \

> -              tst-single_threaded-static tst-single_threaded-pthread-static \

> -              tst-dst-static tst-getauxval-static

> -

> -tests-static-internal := tst-tls1-static \

> -              tst-ptrguard1-static tst-stackguard1-static \

> -              tst-tls1-static-non-pie \

> -              tst-dl_find_object-static

> +tests-static-normal := \

> +  tst-array1-static \

> +  tst-array5-static \

> +  tst-dl-iter-static \

> +  tst-dst-static \

> +  tst-env-setuid \

> +  tst-env-setuid-tunables \

> +  tst-getauxval-static \

> +  tst-linkall-static \

> +  tst-single_threaded-pthread-static \

> +  tst-single_threaded-static \

> +  tst-tlsalign-extern-static \

> +  tst-tlsalign-static \

> +  # tests-static-normal

> +

> +tests-static-internal := \

> +  tst-dl_find_object-static \

> +  tst-ptrguard1-static \

> +  tst-stackguard1-static \

> +  tst-tls1-static \

> +  tst-tls1-static-non-pie \

> +  # tests-static-internal

>

>  CRT-tst-tls1-static-non-pie := $(csu-objpfx)crt1.o

>  tst-tls1-static-non-pie-no-pie = yes

>

>  tests-container := \

> -                         tst-ldconfig-bad-aux-cache \

> -                         tst-ldconfig-ld_so_conf-update

> +  tst-ldconfig-bad-aux-cache \

> +  tst-ldconfig-ld_so_conf-update \

> +  # tests-container

>

>  ifeq (no,$(build-hardcoded-path-in-tests))

>  # This is an ld.so.cache test, and RPATH/RUNPATH in the executable

> @@ -192,14 +286,31 @@ ifeq (no,$(build-hardcoded-path-in-tests))

>  tests-container += tst-glibc-hwcaps-prepend-cache

>  endif

>

> -tests := tst-tls9 tst-leaks1 \

> -       tst-array1 tst-array2 tst-array3 tst-array4 tst-array5 \

> -       tst-auxv tst-stringtable

> -tests-internal := tst-tls1 $(tests-static-internal)

> +tests := \

> +  tst-array1 \

> +  tst-array2 \

> +  tst-array3 \

> +  tst-array4 \

> +  tst-array5 \

> +  tst-auxv \

> +  tst-leaks1 \

> +  tst-stringtable \

> +  tst-tls9 \

> +  # tests

> +

> +tests-internal := \

> +  $(tests-static-internal) \

> +  tst-tls1 \

> +  # tests-internal

> +

>  tests-static := $(tests-static-normal) $(tests-static-internal)

>

>  ifeq (yes,$(build-shared))

> -tests-static += tst-tls9-static tst-single_threaded-static-dlopen

> +tests-static += \

> +  tst-single_threaded-static-dlopen \

> +  tst-tls9-static \

> +  # tests-static

> +

>  static-dlopen-environment = \

>    LD_LIBRARY_PATH=$(ld-library-path):$(common-objpfx)dlfcn

>  tst-tls9-static-ENV = $(static-dlopen-environment)

> @@ -327,45 +438,88 @@ tests += \

>    unload6 \

>    unload7 \

>    unload8 \

> -#       reldep9

> +  # tests

>  tests-cxx = \

>    tst-dlopen-nodelete-reloc \

>    tst-nodelete \

>    tst-unique3 \

>    tst-unique4 \

> -# tests-cxx

> +  # tests-cxx

>

>  tests += $(if $(CXX),$(tests-cxx))

> -tests-internal += loadtest unload unload2 circleload1 \

> -        neededtest neededtest2 neededtest3 neededtest4 \

> -        tst-tls3 tst-tls6 tst-tls7 tst-tls8 tst-dlmopen2 \

> -        tst-ptrguard1 tst-stackguard1 \

> -        tst-create_format1 tst-tls-surplus tst-dl-hwcaps_split \

> -        tst-audit19a \

> -        tst-dl_find_object tst-dl_find_object-threads

> -tests-container += tst-pldd tst-dlopen-tlsmodid-container \

> -  tst-dlopen-self-container tst-preload-pthread-libc

> -test-srcs = tst-pathopt

> +

> +tests-internal += \

> +  circleload1 \

> +  loadtest \

> +  neededtest \

> +  neededtest2 \

> +  neededtest3 \

> +  neededtest4 \

> +  tst-audit19a \

> +  tst-create_format1 \

> +  tst-dl-hwcaps_split \

> +  tst-dl_find_object \

> +  tst-dl_find_object-threads \

> +  tst-dlmopen2 \

> +  tst-ptrguard1 \

> +  tst-stackguard1 \

> +  tst-tls-surplus \

> +  tst-tls3 \

> +  tst-tls6 \

> +  tst-tls7 \

> +  tst-tls8 \

> +  unload \

> +  unload2 \

> +  # tests-internal

> +

> +tests-container += \

> +  tst-dlopen-self-container \

> +  tst-dlopen-tlsmodid-container \

> +  tst-pldd \

> +  tst-preload-pthread-libc \

> +  # tests-container

> +

> +test-srcs = \

> +  tst-pathopt \

> +  # tests-srcs

> +

>  ifeq (yes,$(have-fpie))

>  tests-pie += tst-align3

>  endif

>  selinux-enabled := $(shell cat /selinux/enforce 2> /dev/null)

> +

>  ifneq ($(selinux-enabled),1)

> -tests-execstack-yes = tst-execstack tst-execstack-needed tst-execstack-prog

> +tests-execstack-yes = \

> +  tst-execstack \

> +  tst-execstack-needed \

> +  tst-execstack-prog \

> +  # tests-execstack-yes

>  endif

>  ifeq ($(have-depaudit),yes)

> -tests += tst-audit14 tst-audit15 tst-audit16 tst-audit14a

> +tests += \

> +  tst-audit14 \

> +  tst-audit14a \

> +  tst-audit15 \

> +  tst-audit16 \

> +  # tests

>  ifeq ($(run-built-tests),yes)

> -tests-special += $(objpfx)tst-audit14-cmp.out $(objpfx)tst-audit15-cmp.out \

> -                $(objpfx)tst-audit16-cmp.out $(objpfx)tst-audit14a-cmp.out

> +tests-special += \

> +  $(objpfx)tst-audit14-cmp.out \

> +  $(objpfx)tst-audit14a-cmp.out \

> +  $(objpfx)tst-audit15-cmp.out \

> +  $(objpfx)tst-audit16-cmp.out \

> +  # tests-special

>  endif

>  endif

>  endif

>  tests += $(tests-execstack-$(have-z-execstack))

>  ifeq ($(run-built-tests),yes)

> -tests-special += $(objpfx)tst-leaks1-mem.out \

> -                $(objpfx)noload-mem.out \

> -                $(objpfx)tst-ldconfig-X.out $(objpfx)tst-rtld-help.out

> +tests-special += \

> +  $(objpfx)noload-mem.out \

> +  $(objpfx)tst-ldconfig-X.out \

> +  $(objpfx)tst-leaks1-mem.out \

> +  $(objpfx)tst-rtld-help.out \

> +  # tests-special

>  endif

>  tlsmod17a-suffixes = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

>  tlsmod18a-suffixes = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

> @@ -382,9 +536,16 @@ tst-tls-many-dynamic-modules-dep = \

>  tst-tls-many-dynamic-modules-dep-bad-suffixes = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

>  tst-tls-many-dynamic-modules-dep-bad = \

>    $(foreach n,$(tst-tls-many-dynamic-modules-dep-bad-suffixes),tst-tls-manydynamic$(n)mod-dep-bad)

> -extra-test-objs += $(tlsmod17a-modules:=.os) $(tlsmod18a-modules:=.os) \

> -                  tst-tlsalign-vars.o

> -test-extras += tst-tlsmod17a tst-tlsmod18a tst-tlsalign-vars

> +extra-test-objs += \

> +  $(tlsmod17a-modules:=.os) \

> +  $(tlsmod18a-modules:=.os) \

> +  tst-tlsalign-vars.o \

> +  # extra-test-objs

> +test-extras += \

> +  tst-tlsalign-vars \

> +  tst-tlsmod17a \

> +  tst-tlsmod18a \

> +  # test-extras

>  modules-names = \

>    circlemod1 \

>    circlemod1a \

> @@ -653,17 +814,17 @@ modules-names-cxx = \

>    tst-unique3lib \

>    tst-unique3lib2 \

>    tst-unique4lib \

> -# modules-names-cxx

> +  # modules-names-cxx

>

>  modules-names += \

>    $(if $(CXX),$(modules-names-cxx)) \

>    $(modules-execstack-$(have-z-execstack)) \

> +  $(tlsmod17a-modules) \

> +  $(tlsmod18a-modules) \

>    $(tst-tls-many-dynamic-modules) \

>    $(tst-tls-many-dynamic-modules-dep) \

>    $(tst-tls-many-dynamic-modules-dep-bad) \

> -  $(tlsmod17a-modules) \

> -  $(tlsmod18a-modules) \

> -# modules-names

> +  # modules-names

>

>  # Most modules build with _ISOMAC defined, but those filtered out

>  # depend on internal headers.

> @@ -728,38 +889,73 @@ modules-names-nobuild := filtmod1 tst-big-note-lib tst-ro-dynamic-mod

>  tests += $(tests-static)

>

>  ifeq (yes,$(have-ifunc))

> -tests-ifuncstatic := ifuncmain1static ifuncmain1picstatic \

> -               ifuncmain2static ifuncmain2picstatic \

> -               ifuncmain4static ifuncmain4picstatic \

> -               ifuncmain5static ifuncmain5picstatic \

> -               ifuncmain7static ifuncmain7picstatic

> +tests-ifuncstatic := \

> +  ifuncmain1static \

> +  ifuncmain1picstatic \

> +  ifuncmain2static \

> +  ifuncmain2picstatic \

> +  ifuncmain4static \

> +  ifuncmain4picstatic \

> +  ifuncmain5static \

> +  ifuncmain5picstatic \

> +  ifuncmain7static \

> +  ifuncmain7picstatic \

> +  # tests-ifuncstatic

>  ifeq (yes,$(have-gcc-ifunc))

>  tests-ifuncstatic += ifuncmain9static ifuncmain9picstatic

>  endif

>  tests-static += $(tests-ifuncstatic)

>  tests-internal += $(tests-ifuncstatic)

>  ifeq (yes,$(build-shared))

> -tests += tst-ifunc-fault-lazy tst-ifunc-fault-bindnow

> +tests += \

> +  tst-ifunc-fault-bindnow \

> +  tst-ifunc-fault-lazy \

> +  # tests

>  # Note: sysdeps/x86_64/ifuncmain8.c uses ifuncmain8.

>  tests-internal += \

> -        ifuncmain1pic ifuncmain1vis ifuncmain1vispic \

> -        ifuncmain1staticpic \

> -        ifuncmain2 ifuncmain2pic ifuncmain3 ifuncmain4 \

> -        ifuncmain5staticpic \

> -        ifuncmain7 ifuncmain7pic

> +  ifuncmain1pic \

> +  ifuncmain1staticpic \

> +  ifuncmain1vis \

> +  ifuncmain1vispic \

> +  ifuncmain2 \

> +  ifuncmain2pic \

> +  ifuncmain3 \

> +  ifuncmain4 \

> +  ifuncmain5staticpic \

> +  ifuncmain7 \

> +  ifuncmain7pic \

> +  # tests-internal

>  ifeq (no,$(with-lld))

> -tests-internal += ifuncmain1 ifuncmain5 ifuncmain5pic

> +tests-internal += \

> +  ifuncmain1 \

> +  ifuncmain5 \

> +  ifuncmain5pic \

> +  # tests-internal

>  endif

>  ifeq (yes,$(have-gcc-ifunc))

> -tests-internal += ifuncmain9 ifuncmain9pic

> +tests-internal += \

> +  ifuncmain9 \

> +  ifuncmain9pic \

> +  # tests-internal

>  endif

> -ifunc-test-modules = ifuncdep1 ifuncdep1pic ifuncdep2 ifuncdep2pic \

> -                    ifuncdep5 ifuncdep5pic

> +ifunc-test-modules = \

> +  ifuncdep1 \

> +  ifuncdep1pic \

> +  ifuncdep2 \

> +  ifuncdep2pic \

> +  ifuncdep5 \

> +  ifuncdep5pic \

> +  # ifunc-test-modules

>  extra-test-objs += $(ifunc-test-modules:=.o)

>  test-internal-extras += $(ifunc-test-modules)

>  ifeq (yes,$(have-fpie))

> -ifunc-pie-tests = ifuncmain1pie ifuncmain1vispie ifuncmain1staticpie \

> -                 ifuncmain6pie ifuncmain7pie

> +ifunc-pie-tests = \

> +  ifuncmain1pie \

> +  ifuncmain1staticpie \

> +  ifuncmain1vispie \

> +  ifuncmain6pie \

> +  ifuncmain7pie \

> +  # ifunc-pie-tests

>  ifeq (yes,$(have-gcc-ifunc))

>  ifunc-pie-tests += ifuncmain9pie

>  endif

> @@ -772,7 +968,11 @@ endif

>  tests-internal += $(ifunc-pie-tests)

>  tests-pie += $(ifunc-pie-tests)

>  endif

> -modules-names += ifuncmod1 ifuncmod3 ifuncmod6

> +modules-names += \

> +  ifuncmod1 \

> +  ifuncmod3 \

> +  ifuncmod6 \

> +  # module-names

>  ifeq (no,$(with-lld))

>  modules-names += ifuncmod5

>  endif

> @@ -781,24 +981,39 @@ endif

>

>  ifeq (yes,$(build-shared))

>  ifeq ($(run-built-tests),yes)

> -tests-special += $(objpfx)tst-pathopt.out $(objpfx)tst-rtld-load-self.out \

> -                $(objpfx)tst-rtld-preload.out $(objpfx)argv0test.out \

> -                $(objpfx)tst-rtld-help.out

> +tests-special += \

> +  $(objpfx)argv0test.out \

> +  $(objpfx)tst-pathopt.out \

> +  $(objpfx)tst-rtld-help.out \

> +  $(objpfx)tst-rtld-load-self.out \

> +  $(objpfx)tst-rtld-preload.out \

> +  # tests-special

>  endif

> -tests-special += $(objpfx)check-textrel.out $(objpfx)check-execstack.out \

> -                $(objpfx)check-wx-segment.out \

> -                $(objpfx)check-localplt.out $(objpfx)check-initfini.out

> +tests-special += \

> +  $(objpfx)check-execstack.out \

> +  $(objpfx)check-initfini.out \

> +  $(objpfx)check-localplt.out \

> +  $(objpfx)check-textrel.out \

> +  $(objpfx)check-wx-segment.out \

> +  # tests-special

>  endif

>

>  ifeq ($(run-built-tests),yes)

> -tests-special += $(objpfx)order-cmp.out $(objpfx)tst-array1-cmp.out \

> -                $(objpfx)tst-array1-static-cmp.out \

> -                $(objpfx)tst-array2-cmp.out $(objpfx)tst-array3-cmp.out \

> -                $(objpfx)tst-array4-cmp.out $(objpfx)tst-array5-cmp.out \

> -                $(objpfx)tst-array5-static-cmp.out $(objpfx)order2-cmp.out \

> -                $(objpfx)tst-initorder-cmp.out \

> -                $(objpfx)tst-initorder2-cmp.out $(objpfx)tst-unused-dep.out \

> -                $(objpfx)tst-unused-dep-cmp.out

> +tests-special += \

> +  $(objpfx)order-cmp.out \

> +  $(objpfx)order2-cmp.out \

> +  $(objpfx)tst-array1-cmp.out \

> +  $(objpfx)tst-array1-static-cmp.out \

> +  $(objpfx)tst-array2-cmp.out \

> +  $(objpfx)tst-array3-cmp.out \

> +  $(objpfx)tst-array4-cmp.out \

> +  $(objpfx)tst-array5-cmp.out \

> +  $(objpfx)tst-array5-static-cmp.out \

> +  $(objpfx)tst-initorder-cmp.out \

> +  $(objpfx)tst-initorder2-cmp.out \

> +  $(objpfx)tst-unused-dep-cmp.out \

> +  $(objpfx)tst-unused-dep.out \

> +  # tests-special

>  endif

>

>  ifndef avoid-generated

> @@ -903,6 +1118,7 @@ rtld-stubbed-symbols = \

>    free \

>    malloc \

>    realloc \

> +  # rtld-stubbed-symbols

>

>  ifeq ($(have-ssp),yes)

>  # rtld is not built with the stack protector, so these references will

> --

> 2.34.1

>

>


LGTM.

Reviewed-by: H.J. Lu <hjl.tools@gmail.com>


Thanks.

-- 
H.J.

Patch

diff --git a/elf/Makefile b/elf/Makefile
index b86d116be9..3065efc485 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -21,24 +21,67 @@  subdir		:= elf
 
 include ../Makeconfig
 
-headers		= elf.h bits/elfclass.h link.h bits/link.h bits/link_lavcurrent.h
-routines	= $(all-dl-routines) dl-support dl-iteratephdr \
-		  dl-addr dl-addr-obj enbl-secure dl-profstub \
-		  dl-origin dl-libc dl-sym dl-sysdep dl-error \
-		  dl-reloc-static-pie libc_early_init rtld_static_init \
-		  libc-dl_find_object
+headers = \
+  bits/elfclass.h \
+  bits/link.h \
+  bits/link_lavcurrent.h \
+  elf.h \
+  link.h \
+  # headers
+
+routines = \
+  $(all-dl-routines) \
+  dl-addr \
+  dl-addr-obj \
+  dl-error \
+  dl-iteratephdr \
+  dl-libc \
+  dl-origin \
+  dl-profstub \
+  dl-reloc-static-pie \
+  dl-support \
+  dl-sym \
+  dl-sysdep \
+  enbl-secure \
+  libc-dl_find_object \
+  libc_early_init \
+  rtld_static_init \
+  # routines
 
 # The core dynamic linking functions are in libc for the static and
 # profiled libraries.
-dl-routines	= $(addprefix dl-,load lookup object reloc deps \
-				  runtime init fini debug misc \
-				  version profile tls origin scope \
-				  execstack open close trampoline \
-				  exception sort-maps lookup-direct \
-				  call-libc-early-init write \
-				  thread_gscope_wait tls_init_tp \
-				  debug-symbols minimal-malloc \
-			          find_object)
+dl-routines = \
+  dl-call-libc-early-init \
+  dl-close \
+  dl-debug \
+  dl-debug-symbols \
+  dl-deps \
+  dl-exception \
+  dl-execstack \
+  dl-find_object \
+  dl-fini \
+  dl-init \
+  dl-load \
+  dl-lookup \
+  dl-lookup-direct \
+  dl-minimal-malloc \
+  dl-misc \
+  dl-object \
+  dl-open \
+  dl-origin \
+  dl-profile \
+  dl-reloc \
+  dl-runtime \
+  dl-scope \
+  dl-sort-maps \
+  dl-thread_gscope_wait \
+  dl-tls \
+  dl-tls_init_tp \
+  dl-trampoline \
+  dl-version \
+  dl-write \
+  # dl-routines
+
 ifeq (yes,$(use-ldconfig))
 dl-routines += dl-cache
 endif
@@ -61,19 +104,43 @@  endif
 
 all-dl-routines = $(dl-routines) $(sysdep-dl-routines)
 # But they are absent from the shared libc, because that code is in ld.so.
-elide-routines.os = $(all-dl-routines) dl-support enbl-secure dl-origin \
-		    dl-sysdep dl-exception dl-reloc-static-pie \
-		    thread_gscope_wait rtld_static_init
+elide-routines.os = \
+  $(all-dl-routines) \
+  dl-exception \
+  dl-origin \
+  dl-reloc-static-pie \
+  dl-support \
+  dl-sysdep \
+  enbl-secure \
+  rtld_static_init \
+  thread_gscope_wait \
+  # elide-routines.os
 
 # These object files are only included in the dynamically-linked libc.
 shared-only-routines = libc-dl_find_object
 
 # ld.so uses those routines, plus some special stuff for being the program
 # interpreter and operating independent of libc.
-rtld-routines	= rtld $(all-dl-routines) dl-sysdep dl-environ dl-minimal \
-  dl-error-minimal dl-conflict dl-hwcaps dl-hwcaps_split dl-hwcaps-subdirs \
-  dl-usage dl-diagnostics dl-diagnostics-kernel dl-diagnostics-cpu \
-  dl-mutex dl-libc_freeres dl-audit
+rtld-routines = \
+  $(all-dl-routines) \
+  dl-audit \
+  dl-conflict \
+  dl-diagnostics \
+  dl-diagnostics-cpu \
+  dl-diagnostics-kernel \
+  dl-environ \
+  dl-error-minimal \
+  dl-hwcaps \
+  dl-hwcaps-subdirs \
+  dl-hwcaps_split \
+  dl-libc_freeres \
+  dl-minimal \
+  dl-mutex \
+  dl-sysdep \
+  dl-usage \
+  rtld \
+  # rtld-routines
+
 all-rtld-routines = $(rtld-routines) $(sysdep-rtld-routines)
 
 CFLAGS-dl-runtime.c += -fexceptions -fasynchronous-unwind-tables
@@ -113,8 +180,16 @@  ld-map		= $(common-objpfx)ld.map
 endif
 
 ifeq (yes,$(build-shared))
-extra-objs	= $(all-rtld-routines:%=%.os) sofini.os interp.os
-generated	+= librtld.os dl-allobjs.os ld.so ldd
+extra-objs = \
+  $(all-rtld-routines:%=%.os) \
+  sofini.os \
+  interp.os \
+  # extra-objs
+generated += \
+  dl-allobjs.os \
+  ld.so ldd \
+  librtld.os \
+  # generated
 install-others	= $(inst_rtlddir)/$(rtld-installed-name) $(inst_bindir)/ld.so
 install-bin-script = ldd
 endif
@@ -132,8 +207,15 @@  others-static	+= ldconfig
 others		+= ldconfig
 install-rootsbin += ldconfig
 
-ldconfig-modules := cache readlib xmalloc xstrdup chroot_canon static-stubs \
-  stringtable
+ldconfig-modules := \
+  cache \
+  chroot_canon \
+  readlib \
+  static-stubs \
+  stringtable \
+  xmalloc \
+  xstrdup \
+  # ldconfig-modules
 extra-objs	+= $(ldconfig-modules:=.o)
 others-extras   = $(ldconfig-modules)
 endif
@@ -167,24 +249,36 @@  $(inst_auditdir)/sotruss-lib.so: $(objpfx)sotruss-lib.so $(+force)
 	$(do-install-program)
 endif
 
-tests-static-normal := tst-array1-static tst-array5-static \
-	       tst-dl-iter-static \
-	       tst-tlsalign-static tst-tlsalign-extern-static \
-	       tst-linkall-static tst-env-setuid tst-env-setuid-tunables \
-	       tst-single_threaded-static tst-single_threaded-pthread-static \
-	       tst-dst-static tst-getauxval-static
-
-tests-static-internal := tst-tls1-static \
-	       tst-ptrguard1-static tst-stackguard1-static \
-	       tst-tls1-static-non-pie \
-	       tst-dl_find_object-static
+tests-static-normal := \
+  tst-array1-static \
+  tst-array5-static \
+  tst-dl-iter-static \
+  tst-dst-static \
+  tst-env-setuid \
+  tst-env-setuid-tunables \
+  tst-getauxval-static \
+  tst-linkall-static \
+  tst-single_threaded-pthread-static \
+  tst-single_threaded-static \
+  tst-tlsalign-extern-static \
+  tst-tlsalign-static \
+  # tests-static-normal
+
+tests-static-internal := \
+  tst-dl_find_object-static \
+  tst-ptrguard1-static \
+  tst-stackguard1-static \
+  tst-tls1-static \
+  tst-tls1-static-non-pie \
+  # tests-static-internal
 
 CRT-tst-tls1-static-non-pie := $(csu-objpfx)crt1.o
 tst-tls1-static-non-pie-no-pie = yes
 
 tests-container := \
-			  tst-ldconfig-bad-aux-cache \
-			  tst-ldconfig-ld_so_conf-update
+  tst-ldconfig-bad-aux-cache \
+  tst-ldconfig-ld_so_conf-update \
+  # tests-container
 
 ifeq (no,$(build-hardcoded-path-in-tests))
 # This is an ld.so.cache test, and RPATH/RUNPATH in the executable
@@ -192,14 +286,31 @@  ifeq (no,$(build-hardcoded-path-in-tests))
 tests-container += tst-glibc-hwcaps-prepend-cache
 endif
 
-tests := tst-tls9 tst-leaks1 \
-	tst-array1 tst-array2 tst-array3 tst-array4 tst-array5 \
-	tst-auxv tst-stringtable
-tests-internal := tst-tls1 $(tests-static-internal)
+tests := \
+  tst-array1 \
+  tst-array2 \
+  tst-array3 \
+  tst-array4 \
+  tst-array5 \
+  tst-auxv \
+  tst-leaks1 \
+  tst-stringtable \
+  tst-tls9 \
+  # tests
+
+tests-internal := \
+  $(tests-static-internal) \
+  tst-tls1 \
+  # tests-internal
+
 tests-static := $(tests-static-normal) $(tests-static-internal)
 
 ifeq (yes,$(build-shared))
-tests-static += tst-tls9-static tst-single_threaded-static-dlopen
+tests-static += \
+  tst-single_threaded-static-dlopen \
+  tst-tls9-static \
+  # tests-static
+
 static-dlopen-environment = \
   LD_LIBRARY_PATH=$(ld-library-path):$(common-objpfx)dlfcn
 tst-tls9-static-ENV = $(static-dlopen-environment)
@@ -327,45 +438,88 @@  tests += \
   unload6 \
   unload7 \
   unload8 \
-#	 reldep9
+  # tests
 tests-cxx = \
   tst-dlopen-nodelete-reloc \
   tst-nodelete \
   tst-unique3 \
   tst-unique4 \
-# tests-cxx
+  # tests-cxx
 
 tests += $(if $(CXX),$(tests-cxx))
-tests-internal += loadtest unload unload2 circleload1 \
-	 neededtest neededtest2 neededtest3 neededtest4 \
-	 tst-tls3 tst-tls6 tst-tls7 tst-tls8 tst-dlmopen2 \
-	 tst-ptrguard1 tst-stackguard1 \
-	 tst-create_format1 tst-tls-surplus tst-dl-hwcaps_split \
-	 tst-audit19a \
-	 tst-dl_find_object tst-dl_find_object-threads
-tests-container += tst-pldd tst-dlopen-tlsmodid-container \
-  tst-dlopen-self-container tst-preload-pthread-libc
-test-srcs = tst-pathopt
+
+tests-internal += \
+  circleload1 \
+  loadtest \
+  neededtest \
+  neededtest2 \
+  neededtest3 \
+  neededtest4 \
+  tst-audit19a \
+  tst-create_format1 \
+  tst-dl-hwcaps_split \
+  tst-dl_find_object \
+  tst-dl_find_object-threads \
+  tst-dlmopen2 \
+  tst-ptrguard1 \
+  tst-stackguard1 \
+  tst-tls-surplus \
+  tst-tls3 \
+  tst-tls6 \
+  tst-tls7 \
+  tst-tls8 \
+  unload \
+  unload2 \
+  # tests-internal
+
+tests-container += \
+  tst-dlopen-self-container \
+  tst-dlopen-tlsmodid-container \
+  tst-pldd \
+  tst-preload-pthread-libc \
+  # tests-container
+
+test-srcs = \
+  tst-pathopt \
+  # tests-srcs
+
 ifeq (yes,$(have-fpie))
 tests-pie += tst-align3
 endif
 selinux-enabled := $(shell cat /selinux/enforce 2> /dev/null)
+
 ifneq ($(selinux-enabled),1)
-tests-execstack-yes = tst-execstack tst-execstack-needed tst-execstack-prog
+tests-execstack-yes = \
+  tst-execstack \
+  tst-execstack-needed \
+  tst-execstack-prog \
+  # tests-execstack-yes
 endif
 ifeq ($(have-depaudit),yes)
-tests += tst-audit14 tst-audit15 tst-audit16 tst-audit14a
+tests += \
+  tst-audit14 \
+  tst-audit14a \
+  tst-audit15 \
+  tst-audit16 \
+  # tests
 ifeq ($(run-built-tests),yes)
-tests-special += $(objpfx)tst-audit14-cmp.out $(objpfx)tst-audit15-cmp.out \
-		 $(objpfx)tst-audit16-cmp.out $(objpfx)tst-audit14a-cmp.out
+tests-special += \
+  $(objpfx)tst-audit14-cmp.out \
+  $(objpfx)tst-audit14a-cmp.out \
+  $(objpfx)tst-audit15-cmp.out \
+  $(objpfx)tst-audit16-cmp.out \
+  # tests-special
 endif
 endif
 endif
 tests += $(tests-execstack-$(have-z-execstack))
 ifeq ($(run-built-tests),yes)
-tests-special += $(objpfx)tst-leaks1-mem.out \
-		 $(objpfx)noload-mem.out \
-		 $(objpfx)tst-ldconfig-X.out $(objpfx)tst-rtld-help.out
+tests-special += \
+  $(objpfx)noload-mem.out \
+  $(objpfx)tst-ldconfig-X.out \
+  $(objpfx)tst-leaks1-mem.out \
+  $(objpfx)tst-rtld-help.out \
+  # tests-special
 endif
 tlsmod17a-suffixes = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
 tlsmod18a-suffixes = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
@@ -382,9 +536,16 @@  tst-tls-many-dynamic-modules-dep = \
 tst-tls-many-dynamic-modules-dep-bad-suffixes = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
 tst-tls-many-dynamic-modules-dep-bad = \
   $(foreach n,$(tst-tls-many-dynamic-modules-dep-bad-suffixes),tst-tls-manydynamic$(n)mod-dep-bad)
-extra-test-objs += $(tlsmod17a-modules:=.os) $(tlsmod18a-modules:=.os) \
-		   tst-tlsalign-vars.o
-test-extras += tst-tlsmod17a tst-tlsmod18a tst-tlsalign-vars
+extra-test-objs += \
+  $(tlsmod17a-modules:=.os) \
+  $(tlsmod18a-modules:=.os) \
+  tst-tlsalign-vars.o \
+  # extra-test-objs
+test-extras += \
+  tst-tlsalign-vars \
+  tst-tlsmod17a \
+  tst-tlsmod18a \
+  # test-extras
 modules-names = \
   circlemod1 \
   circlemod1a \
@@ -653,17 +814,17 @@  modules-names-cxx = \
   tst-unique3lib \
   tst-unique3lib2 \
   tst-unique4lib \
-# modules-names-cxx
+  # modules-names-cxx
 
 modules-names += \
   $(if $(CXX),$(modules-names-cxx)) \
   $(modules-execstack-$(have-z-execstack)) \
+  $(tlsmod17a-modules) \
+  $(tlsmod18a-modules) \
   $(tst-tls-many-dynamic-modules) \
   $(tst-tls-many-dynamic-modules-dep) \
   $(tst-tls-many-dynamic-modules-dep-bad) \
-  $(tlsmod17a-modules) \
-  $(tlsmod18a-modules) \
-# modules-names
+  # modules-names
 
 # Most modules build with _ISOMAC defined, but those filtered out
 # depend on internal headers.
@@ -728,38 +889,73 @@  modules-names-nobuild := filtmod1 tst-big-note-lib tst-ro-dynamic-mod
 tests += $(tests-static)
 
 ifeq (yes,$(have-ifunc))
-tests-ifuncstatic := ifuncmain1static ifuncmain1picstatic \
-		ifuncmain2static ifuncmain2picstatic \
-		ifuncmain4static ifuncmain4picstatic \
-		ifuncmain5static ifuncmain5picstatic \
-		ifuncmain7static ifuncmain7picstatic
+tests-ifuncstatic := \
+  ifuncmain1static \
+  ifuncmain1picstatic \
+  ifuncmain2static \
+  ifuncmain2picstatic \
+  ifuncmain4static \
+  ifuncmain4picstatic \
+  ifuncmain5static \
+  ifuncmain5picstatic \
+  ifuncmain7static \
+  ifuncmain7picstatic \
+  # tests-ifuncstatic
 ifeq (yes,$(have-gcc-ifunc))
 tests-ifuncstatic += ifuncmain9static ifuncmain9picstatic
 endif
 tests-static += $(tests-ifuncstatic)
 tests-internal += $(tests-ifuncstatic)
 ifeq (yes,$(build-shared))
-tests += tst-ifunc-fault-lazy tst-ifunc-fault-bindnow
+tests += \
+  tst-ifunc-fault-bindnow \
+  tst-ifunc-fault-lazy \
+  # tests
 # Note: sysdeps/x86_64/ifuncmain8.c uses ifuncmain8.
 tests-internal += \
-	 ifuncmain1pic ifuncmain1vis ifuncmain1vispic \
-	 ifuncmain1staticpic \
-	 ifuncmain2 ifuncmain2pic ifuncmain3 ifuncmain4 \
-	 ifuncmain5staticpic \
-	 ifuncmain7 ifuncmain7pic
+  ifuncmain1pic \
+  ifuncmain1staticpic \
+  ifuncmain1vis \
+  ifuncmain1vispic \
+  ifuncmain2 \
+  ifuncmain2pic \
+  ifuncmain3 \
+  ifuncmain4 \
+  ifuncmain5staticpic \
+  ifuncmain7 \
+  ifuncmain7pic \
+  # tests-internal
 ifeq (no,$(with-lld))
-tests-internal += ifuncmain1 ifuncmain5 ifuncmain5pic
+tests-internal += \
+  ifuncmain1 \
+  ifuncmain5 \
+  ifuncmain5pic \
+  # tests-internal
 endif
 ifeq (yes,$(have-gcc-ifunc))
-tests-internal += ifuncmain9 ifuncmain9pic
+tests-internal += \
+  ifuncmain9 \
+  ifuncmain9pic \
+  # tests-internal
 endif
-ifunc-test-modules = ifuncdep1 ifuncdep1pic ifuncdep2 ifuncdep2pic \
-		     ifuncdep5 ifuncdep5pic
+ifunc-test-modules = \
+  ifuncdep1 \
+  ifuncdep1pic \
+  ifuncdep2 \
+  ifuncdep2pic \
+  ifuncdep5 \
+  ifuncdep5pic \
+  # ifunc-test-modules
 extra-test-objs += $(ifunc-test-modules:=.o)
 test-internal-extras += $(ifunc-test-modules)
 ifeq (yes,$(have-fpie))
-ifunc-pie-tests = ifuncmain1pie ifuncmain1vispie ifuncmain1staticpie \
-		  ifuncmain6pie ifuncmain7pie
+ifunc-pie-tests = \
+  ifuncmain1pie \
+  ifuncmain1staticpie \
+  ifuncmain1vispie \
+  ifuncmain6pie \
+  ifuncmain7pie \
+  # ifunc-pie-tests
 ifeq (yes,$(have-gcc-ifunc))
 ifunc-pie-tests += ifuncmain9pie
 endif
@@ -772,7 +968,11 @@  endif
 tests-internal += $(ifunc-pie-tests)
 tests-pie += $(ifunc-pie-tests)
 endif
-modules-names += ifuncmod1 ifuncmod3 ifuncmod6
+modules-names += \
+  ifuncmod1 \
+  ifuncmod3 \
+  ifuncmod6 \
+  # module-names
 ifeq (no,$(with-lld))
 modules-names += ifuncmod5
 endif
@@ -781,24 +981,39 @@  endif
 
 ifeq (yes,$(build-shared))
 ifeq ($(run-built-tests),yes)
-tests-special += $(objpfx)tst-pathopt.out $(objpfx)tst-rtld-load-self.out \
-		 $(objpfx)tst-rtld-preload.out $(objpfx)argv0test.out \
-		 $(objpfx)tst-rtld-help.out
+tests-special += \
+  $(objpfx)argv0test.out \
+  $(objpfx)tst-pathopt.out \
+  $(objpfx)tst-rtld-help.out \
+  $(objpfx)tst-rtld-load-self.out \
+  $(objpfx)tst-rtld-preload.out \
+  # tests-special
 endif
-tests-special += $(objpfx)check-textrel.out $(objpfx)check-execstack.out \
-		 $(objpfx)check-wx-segment.out \
-		 $(objpfx)check-localplt.out $(objpfx)check-initfini.out
+tests-special += \
+  $(objpfx)check-execstack.out \
+  $(objpfx)check-initfini.out \
+  $(objpfx)check-localplt.out \
+  $(objpfx)check-textrel.out \
+  $(objpfx)check-wx-segment.out \
+  # tests-special
 endif
 
 ifeq ($(run-built-tests),yes)
-tests-special += $(objpfx)order-cmp.out $(objpfx)tst-array1-cmp.out \
-		 $(objpfx)tst-array1-static-cmp.out \
-		 $(objpfx)tst-array2-cmp.out $(objpfx)tst-array3-cmp.out \
-		 $(objpfx)tst-array4-cmp.out $(objpfx)tst-array5-cmp.out \
-		 $(objpfx)tst-array5-static-cmp.out $(objpfx)order2-cmp.out \
-		 $(objpfx)tst-initorder-cmp.out \
-		 $(objpfx)tst-initorder2-cmp.out $(objpfx)tst-unused-dep.out \
-		 $(objpfx)tst-unused-dep-cmp.out
+tests-special += \
+  $(objpfx)order-cmp.out \
+  $(objpfx)order2-cmp.out \
+  $(objpfx)tst-array1-cmp.out \
+  $(objpfx)tst-array1-static-cmp.out \
+  $(objpfx)tst-array2-cmp.out \
+  $(objpfx)tst-array3-cmp.out \
+  $(objpfx)tst-array4-cmp.out \
+  $(objpfx)tst-array5-cmp.out \
+  $(objpfx)tst-array5-static-cmp.out \
+  $(objpfx)tst-initorder-cmp.out \
+  $(objpfx)tst-initorder2-cmp.out \
+  $(objpfx)tst-unused-dep-cmp.out \
+  $(objpfx)tst-unused-dep.out \
+  # tests-special
 endif
 
 ifndef avoid-generated
@@ -903,6 +1118,7 @@  rtld-stubbed-symbols = \
   free \
   malloc \
   realloc \
+  # rtld-stubbed-symbols
 
 ifeq ($(have-ssp),yes)
 # rtld is not built with the stack protector, so these references will