diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2017-11-06 08:29:48 -0800 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2017-11-06 08:29:57 -0800 |
commit | abcb584d0eae7270b35e1b3fed1f9661e26b8be0 (patch) | |
tree | 135e0a2bd7688a052a8bc3b1ddc9cbce570d3873 /Makerules | |
parent | 4e2dff67beeb063cb36fe100d9d2b3f2f88d80c6 (diff) | |
download | glibc-abcb584d0eae7270b35e1b3fed1f9661e26b8be0.zip glibc-abcb584d0eae7270b35e1b3fed1f9661e26b8be0.tar.gz glibc-abcb584d0eae7270b35e1b3fed1f9661e26b8be0.tar.bz2 |
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 'Makerules')
-rw-r--r-- | Makerules | 9 |
1 files changed, 9 insertions, 0 deletions
@@ -1079,6 +1079,11 @@ rm -f $@.new $(SHELL) $(..)scripts/rellns-sh $< $@.new mv -f $@.new $@ endef +define make-link-multidir +$(patsubst %/,cd %,$(objpfx)); \ + $(LN_S) . $(multidir) 2> /dev/null; \ + test -L $(multidir) +endef else # If we have no symbolic links don't bother with rellns-sh. define make-link @@ -1086,6 +1091,10 @@ rm -f $@.new $(LN_S) $< $@.new mv -f $@.new $@ endef +define make-link-multidir +$(make-target-directory) +ln -f $(objpfx)/$(@F) $@ +endef endif ifeq (yes,$(build-shared)) |