about summary refs log tree commit diff
path: root/csu/Makefile
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2017-11-06 08:29:48 -0800
committerH.J. Lu <hjl.tools@gmail.com>2017-11-06 08:29:57 -0800
commitabcb584d0eae7270b35e1b3fed1f9661e26b8be0 (patch)
tree135e0a2bd7688a052a8bc3b1ddc9cbce570d3873 /csu/Makefile
parent4e2dff67beeb063cb36fe100d9d2b3f2f88d80c6 (diff)
downloadglibc-abcb584d0eae7270b35e1b3fed1f9661e26b8be0.tar.gz
glibc-abcb584d0eae7270b35e1b3fed1f9661e26b8be0.tar.xz
glibc-abcb584d0eae7270b35e1b3fed1f9661e26b8be0.zip
Use newly built crt*.o files to build shared objects [BZ #22362]
When multi-lib GCC is used to build glibc, the search order of GCC driver
for crt*.o is -B*/`gcc -print-multi-directory`, the installed diretory,
-B*/.  This patch adds multi-lib support to csu/Makefile so that
-B/glibc-build-directory/csu/ will pick up the newly built crt*.o.

Tested on x86-64 for i686 and x32.

	[BZ #22362]
	* Makerules (make-link-multidir): New.
	* config.make.in (multidir): New.
	* configure.ac (libc_cv_multidir): New.  AC_SUBST.
	* configure: Regenerated.
	* csu/Makefile [$(multidir) != .](multilib-extra-objs): New.
	[$(multidir) != .](extra-objs): Add $(multilib-extra-objs).
	[$(multidir) != .]($(addprefix $(objpfx)$(multidir)/, $(install-lib))):
	New target.
Diffstat (limited to 'csu/Makefile')
-rw-r--r--csu/Makefile10
1 files changed, 10 insertions, 0 deletions
diff --git a/csu/Makefile b/csu/Makefile
index fd668a5d00..e42a32b3eb 100644
--- a/csu/Makefile
+++ b/csu/Makefile
@@ -77,6 +77,11 @@ crtstuff = crti crtn
 install-lib += $(crtstuff:=.o)
 extra-objs += $(crtstuff:=.o)
 
+ifneq ($(multidir),.)
+multilib-extra-objs = $(addprefix $(multidir)/, $(install-lib))
+extra-objs += $(multilib-extra-objs)
+endif
+
 extra-objs += abi-note.o init.o
 asm-CPPFLAGS += -I$(objpfx).
 
@@ -147,3 +152,8 @@ $(objpfx)abi-tag.h: $(..)abi-tags
 	done
 	if test -r $@.new; then mv -f $@.new $@; \
 	else echo >&2 'This configuration not matched in $<'; exit 1; fi
+
+ifneq ($(multidir),.)
+$(addprefix $(objpfx)$(multidir)/, $(install-lib)): $(addprefix $(objpfx), $(install-lib))
+	$(make-link-multidir)
+endif