| commit 7de01e60c200c431d3469deb784da8fd4508fc15 |
| Author: Florian Weimer <fweimer@redhat.com> |
| Date: Fri Jan 14 20:16:05 2022 +0100 |
| |
| elf/Makefile: Reflow and sort most variable assignments |
| |
| Reviewed-by: H.J. Lu <hjl.tools@gmail.com> |
| |
| Conflicts: |
| elf/Makefile |
| Complete rewrite of reflow. |
| |
| diff --git a/elf/Makefile b/elf/Makefile |
| index 53faca4585220048..954cd08c199f5037 100644 |
| |
| |
| @@ -21,20 +21,60 @@ 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 |
| +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_early_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) |
| +dl-routines = \ |
| + dl-call-libc-early-init \ |
| + dl-close \ |
| + dl-debug \ |
| + dl-deps \ |
| + dl-exception \ |
| + dl-execstack \ |
| + dl-fini \ |
| + dl-init \ |
| + dl-load \ |
| + dl-lookup \ |
| + dl-lookup-direct \ |
| + dl-misc \ |
| + dl-object \ |
| + dl-open \ |
| + dl-origin \ |
| + dl-profile \ |
| + dl-reloc \ |
| + dl-runtime \ |
| + dl-scope \ |
| + dl-sort-maps \ |
| + dl-tls \ |
| + dl-trampoline \ |
| + dl-version \ |
| + dl-write \ |
| + # dl-routines |
| + |
| ifeq (yes,$(use-ldconfig)) |
| dl-routines += dl-cache |
| endif |
| @@ -57,15 +97,36 @@ 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 |
| +elide-routines.os = \ |
| + $(all-dl-routines) \ |
| + dl-exception \ |
| + dl-origin \ |
| + dl-reloc-static-pie \ |
| + dl-support \ |
| + dl-sysdep \ |
| + enbl-secure \ |
| + # elide-routines.os |
| |
| # 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-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-minimal \ |
| + dl-sysdep \ |
| + dl-usage \ |
| + rtld \ |
| + # rtld-routines |
| + |
| all-rtld-routines = $(rtld-routines) $(sysdep-rtld-routines) |
| |
| CFLAGS-dl-runtime.c += -fexceptions -fasynchronous-unwind-tables |
| @@ -98,8 +159,18 @@ ld-map = $(common-objpfx)ld.map |
| endif |
| |
| ifeq (yes,$(build-shared)) |
| -extra-objs = $(all-rtld-routines:%=%.os) soinit.os sofini.os interp.os |
| -generated += librtld.os dl-allobjs.os ld.so ldd |
| +extra-objs = \ |
| + $(all-rtld-routines:%=%.os) \ |
| + sofini.os \ |
| + soinit.os \ |
| + interp.os \ |
| + # extra-objs |
| +generated += \ |
| + dl-allobjs.os \ |
| + ldd \ |
| + ld.so \ |
| + librtld.os \ |
| + # generated |
| install-others = $(inst_rtlddir)/$(rtld-installed-name) $(inst_bindir)/ld.so |
| install-bin-script = ldd |
| endif |
| @@ -117,8 +188,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 |
| @@ -153,20 +231,34 @@ $(inst_auditdir)/sotruss-lib.so: $(objpfx)sotruss-lib.so $(+force) |
| $(do-install-program) |
| endif |
| |
| -tests-static-normal := tst-leaks1-static 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-dst-static |
| -tests-static-internal := tst-tls1-static tst-tls2-static \ |
| - tst-ptrguard1-static tst-stackguard1-static \ |
| - tst-tls1-static-non-pie tst-libc_dlvsym-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-leaks1-static \ |
| + tst-linkall-static \ |
| + tst-tlsalign-extern-static \ |
| + tst-tlsalign-static \ |
| + # tests-static-normal |
| + |
| +tests-static-internal := \ |
| + tst-libc_dlvsym-static \ |
| + tst-ptrguard1-static \ |
| + tst-stackguard1-static \ |
| + tst-tls1-static \ |
| + tst-tls1-static-non-pie \ |
| + tst-tls2-static \ |
| + # 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-bad-aux-cache \ |
| + # tests-container |
| |
| ifeq (no,$(build-hardcoded-path-in-tests)) |
| # This is an ld.so.cache test, and RPATH/RUNPATH in the executable |
| @@ -174,14 +266,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 tst-tls2 $(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 \ |
| + tst-tls2 \ |
| + # tests-internal |
| + |
| tests-static := $(tests-static-normal) $(tests-static-internal) |
| |
| ifeq (yes,$(build-shared)) |
| -tests-static += tst-tls9-static |
| +tests-static += \ |
| + tst-tls9-static \ |
| + # tests-static |
| + |
| tst-tls9-static-ENV = \ |
| LD_LIBRARY_PATH=$(objpfx):$(common-objpfx):$(common-objpfx)dlfcn |
| |
| @@ -302,37 +411,71 @@ 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-libc_dlvsym \ |
| - tst-create_format1 tst-tls-surplus tst-dl-hwcaps_split \ |
| - tst-audit19a |
| -tests-container += tst-pldd tst-preload-pthread-libc |
| + |
| +tests-internal += \ |
| + circleload1 \ |
| + loadtest \ |
| + neededtest \ |
| + neededtest2 \ |
| + neededtest3 \ |
| + neededtest4 \ |
| + tst-audit19a \ |
| + tst-create_format1 \ |
| + tst-dl-hwcaps_split \ |
| + tst-dlmopen2 \ |
| + tst-libc_dlvsym \ |
| + tst-ptrguard1 \ |
| + tst-stackguard1 \ |
| + tst-tls-surplus \ |
| + tst-tls3 \ |
| + tst-tls6 \ |
| + tst-tls7 \ |
| + tst-tls8 \ |
| + unload \ |
| + unload2 \ |
| + # tests-internal |
| + |
| +tests-container += \ |
| + tst-pldd \ |
| + tst-preload-pthread-libc |
| + # tests-container |
| + |
| ifeq ($(build-hardcoded-path-in-tests),yes) |
| tests += tst-dlopen-aout |
| tst-dlopen-aout-no-pie = yes |
| endif |
| -test-srcs = tst-pathopt |
| +test-srcs = \ |
| + tst-pathopt |
| + # tests-srcs |
| + |
| 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 |
| endif |
| tests += $(tests-execstack-$(have-z-execstack)) |
| ifeq ($(run-built-tests),yes) |
| -tests-special += $(objpfx)tst-leaks1-mem.out \ |
| - $(objpfx)tst-leaks1-static-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-leaks1-static-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 |
| @@ -349,9 +492,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 \ |
| @@ -607,17 +757,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. |
| @@ -680,54 +830,103 @@ modules-names-nobuild := filtmod1 |
| tests += $(tests-static) |
| |
| ifneq (no,$(multi-arch)) |
| -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 |
| tests-static += $(tests-ifuncstatic) |
| tests-internal += $(tests-ifuncstatic) |
| ifeq (yes,$(build-shared)) |
| tests-internal += \ |
| - ifuncmain1 ifuncmain1pic ifuncmain1vis ifuncmain1vispic \ |
| - ifuncmain1staticpic \ |
| - ifuncmain2 ifuncmain2pic ifuncmain3 ifuncmain4 \ |
| - ifuncmain5 ifuncmain5pic ifuncmain5staticpic \ |
| - ifuncmain7 ifuncmain7pic |
| -ifunc-test-modules = ifuncdep1 ifuncdep1pic ifuncdep2 ifuncdep2pic \ |
| - ifuncdep5 ifuncdep5pic |
| + ifuncmain1 \ |
| + ifuncmain1pic \ |
| + ifuncmain1staticpic \ |
| + ifuncmain1vis \ |
| + ifuncmain1vispic \ |
| + ifuncmain2 \ |
| + ifuncmain2pic \ |
| + ifuncmain3 \ |
| + ifuncmain4 \ |
| + ifuncmain5 \ |
| + ifuncmain5pic \ |
| + ifuncmain5staticpic \ |
| + ifuncmain7 \ |
| + ifuncmain7pic \ |
| + # tests-internal |
| +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 \ |
| - ifuncmain5pie ifuncmain6pie ifuncmain7pie |
| +ifunc-pie-tests = \ |
| + ifuncmain1pie \ |
| + ifuncmain1staticpie \ |
| + ifuncmain1vispie \ |
| + ifuncmain5pie \ |
| + ifuncmain6pie \ |
| + ifuncmain7pie \ |
| + # ifunc-pie-tests |
| tests-internal += $(ifunc-pie-tests) |
| tests-pie += $(ifunc-pie-tests) |
| endif |
| -modules-names += ifuncmod1 ifuncmod3 ifuncmod5 ifuncmod6 |
| +modules-names += \ |
| + ifuncmod1 \ |
| + ifuncmod3 \ |
| + ifuncmod5 \ |
| + ifuncmod6 \ |
| + # modules-names |
| endif |
| 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 |
| |
| check-abi: $(objpfx)check-abi-ld.out |
| @@ -807,6 +1006,7 @@ rtld-stubbed-symbols = \ |
| free \ |
| malloc \ |
| realloc \ |
| + # rtld-stubbed-symbols |
| |
| # The GCC arguments that implement $(rtld-stubbed-symbols). |
| rtld-stubbed-symbols-args = \ |