diff --git a/Makeconfig b/Makeconfig
index 2df4c88..736190b 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -451,7 +451,7 @@ rtld-LDFLAGS = -Wl,-dynamic-linker=$(rtlddir)/$(rtld-installed-name)
 endif
 ifndef rtld-tests-LDFLAGS
 ifeq (yes,$(build-hardcoded-path-in-tests))
-rtld-tests-LDFLAGS = -Wl,-dynamic-linker=$(common-objpfx)elf/ld.so
+rtld-tests-LDFLAGS = -Wl,-dynamic-linker=$(elf-objpfx)ld.so
 else
 rtld-tests-LDFLAGS = $(rtld-LDFLAGS)
 endif
@@ -470,7 +470,7 @@ link-libc-tests-rpath-link = $(link-libc-rpath-link)
 endif
 link-libc-before-gnulib = $(common-objpfx)libc.so$(libc.so-version) \
 			  $(common-objpfx)$(patsubst %,$(libtype.oS),c) \
-			  $(as-needed) $(common-objpfx)elf/ld.so \
+			  $(as-needed) $(elf-objpfx)ld.so \
 			  $(no-as-needed)
 link-libc = $(link-libc-rpath-link) $(link-libc-before-gnulib) $(gnulib)
 link-libc-tests = $(link-libc-tests-rpath-link) \
@@ -485,8 +485,6 @@ link-libc-tests = $(common-objpfx)libc.a $(otherlibs) $(gnulib-tests) $(common-o
 endif
 endif
 
-elfobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)elf)
-
 # Differences in the linkers on the various platforms.
 LDFLAGS-rpath-ORIGIN = -Wl,-rpath,'$$ORIGIN'
 LDFLAGS-soname-fname = -Wl,-soname,$(@F)
diff --git a/Makefile b/Makefile
index e026fb1..2eab98c 100644
--- a/Makefile
+++ b/Makefile
@@ -105,9 +105,9 @@ install-symbolic-link: subdir_install
 	rm -f $(symbolic-link-list)
 
 install:
-	-test ! -x $(common-objpfx)elf/ldconfig || LC_ALL=C LANGUAGE=C \
-	  $(common-objpfx)elf/ldconfig $(addprefix -r ,$(install_root)) \
-				       $(slibdir) $(libdir)
+	-test ! -x $(elf-objpfx)ldconfig || LC_ALL=C LANGUAGE=C \
+	  $(elf-objpfx)ldconfig $(addprefix -r ,$(install_root)) \
+				$(slibdir) $(libdir)
 ifneq (no,$(PERL))
 ifeq (/usr,$(prefix))
 ifeq (,$(install_root))
diff --git a/Makerules b/Makerules
index 4427f4e..817d07e 100644
--- a/Makerules
+++ b/Makerules
@@ -417,7 +417,7 @@ endif
 link-libc-args = -Wl,--start-group \
 		 $(libc-for-link) \
 		 $(common-objpfx)libc_nonshared.a \
-		 $(as-needed) $(elfobjdir)/ld.so $(no-as-needed) \
+		 $(as-needed) $(elf-objpfx)ld.so $(no-as-needed) \
 		 -Wl,--end-group
 
 # The corresponding shared libc to use.  This may be modified for a
@@ -428,7 +428,7 @@ libc-for-link = $(common-objpfx)libc.so
 # not just commands, they cannot use target-specific variables so need
 # to name both possible libc.so objects.
 link-libc-deps = $(common-objpfx)libc.so $(common-objpfx)linkobj/libc.so \
-		 $(common-objpfx)libc_nonshared.a $(elfobjdir)/ld.so
+		 $(common-objpfx)libc_nonshared.a $(elf-objpfx)ld.so
 
 # Pattern rule to build a shared object from an archive of PIC objects.
 # This must come after the installation rules so Make doesn't try to
@@ -592,19 +592,19 @@ $(common-objpfx)linkobj/libc.so: link-libc-deps = # empty
 
 # Use our own special initializer and finalizer files for the libc.so
 # libraries.
-$(common-objpfx)libc.so: $(elfobjdir)/soinit.os \
+$(common-objpfx)libc.so: $(elf-objpfx)soinit.os \
 			 $(common-objpfx)libc_pic.os$(libc_pic_clean) \
-			 $(elfobjdir)/sofini.os \
-			 $(elfobjdir)/interp.os \
-			 $(elfobjdir)/ld.so \
+			 $(elf-objpfx)sofini.os \
+			 $(elf-objpfx)interp.os \
+			 $(elf-objpfx)ld.so \
 			 $(shlib-lds)
 	$(build-shlib)
 
-$(common-objpfx)linkobj/libc.so: $(elfobjdir)/soinit.os \
+$(common-objpfx)linkobj/libc.so: $(elf-objpfx)soinit.os \
 			 $(common-objpfx)linkobj/libc_pic.a \
-			 $(elfobjdir)/sofini.os \
-			 $(elfobjdir)/interp.os \
-			 $(elfobjdir)/ld.so \
+			 $(elf-objpfx)sofini.os \
+			 $(elf-objpfx)interp.os \
+			 $(elf-objpfx)ld.so \
 			 $(shlib-lds)
 	$(build-shlib)
 
@@ -895,8 +895,8 @@ endif
 
 ifeq (yes,$(build-shared))
 ifeq (no,$(cross-compiling))
-symbolic-link-prog := $(common-objpfx)elf/sln
-symbolic-link-list := $(common-objpfx)elf/symlink.list
+symbolic-link-prog := $(elf-objpfx)sln
+symbolic-link-list := $(elf-objpfx)symlink.list
 define make-shlib-link
 echo `$(..)scripts/rellns-sh -p $< $@` $@ >> $(symbolic-link-list)
 endef
diff --git a/iconvdata/Makefile b/iconvdata/Makefile
index 60d8bd3..074d330 100644
--- a/iconvdata/Makefile
+++ b/iconvdata/Makefile
@@ -255,7 +255,7 @@ ifeq (no,$(cross-compiling))
 # if this libc has more gconv modules than the previously installed one.
 	if test -f "$(inst_gconvdir)/gconv-modules.cache"; then \
 	   LC_ALL=C LANGUAGE=C \
-	   $(common-objpfx)elf/ld.so --library-path $(rpath-link) \
+	   $(elf-objpfx)ld.so --library-path $(rpath-link) \
 	   $(common-objpfx)iconv/iconvconfig \
 	     $(addprefix --prefix=,$(install_root)); \
 	fi
diff --git a/localedata/Makefile b/localedata/Makefile
index 94562be..f2dd24c 100644
--- a/localedata/Makefile
+++ b/localedata/Makefile
@@ -209,7 +209,7 @@ INSTALL-SUPPORTED-LOCALES=$(addprefix install-, $(SUPPORTED-LOCALES))
 
 # Sometimes the whole collection of locale files should be installed.
 LOCALEDEF=I18NPATH=. GCONV_PATH=$(common-objpfx)iconvdata LC_ALL=C \
-$(common-objpfx)elf/ld.so --library-path $(rpath-link) $(common-objpfx)locale/localedef
+$(elf-objpfx)ld.so --library-path $(rpath-link) $(common-objpfx)locale/localedef
 install-locales: $(INSTALL-SUPPORTED-LOCALES)
 
 install-locales-dir:
diff --git a/sysdeps/arm/Makefile b/sysdeps/arm/Makefile
index b218e76..daaf4aa 100644
--- a/sysdeps/arm/Makefile
+++ b/sysdeps/arm/Makefile
@@ -1,5 +1,5 @@
-gnulib-arch = $(elfobjdir)/libgcc-stubs.a
-static-gnulib-arch = $(elfobjdir)/libgcc-stubs.a
+gnulib-arch = $(elf-objpfx)libgcc-stubs.a
+static-gnulib-arch = $(elf-objpfx)libgcc-stubs.a
 
 ifeq ($(subdir),elf)
 sysdep-dl-routines += tlsdesc dl-tlsdesc
diff --git a/sysdeps/s390/s390-64/Makefile b/sysdeps/s390/s390-64/Makefile
index 37f021c..9fee71b 100644
--- a/sysdeps/s390/s390-64/Makefile
+++ b/sysdeps/s390/s390-64/Makefile
@@ -77,7 +77,7 @@ ifeq (no,$(cross-compiling))
 # if this libc has more gconv modules than the previously installed one.
 	if test -f "$(inst_gconvdir)/gconv-modules.cache"; then \
 	   LC_ALL=C LANGUAGE=C \
-	   $(common-objpfx)elf/ld.so --library-path $(rpath-link) \
+	   $(elf-objpfx)ld.so --library-path $(rpath-link) \
 	   $(common-objpfx)iconv/iconvconfig \
 	     $(addprefix --prefix=,$(install_root)); \
 	fi
