commit 7de01e60c200c431d3469deb784da8fd4508fc15 Author: Florian Weimer Date: Fri Jan 14 20:16:05 2022 +0100 elf/Makefile: Reflow and sort most variable assignments Reviewed-by: H.J. Lu Conflicts: elf/Makefile Complete rewrite of reflow. diff --git a/elf/Makefile b/elf/Makefile index 53faca4585220048..954cd08c199f5037 100644 --- a/elf/Makefile +++ b/elf/Makefile @@ -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 = \