This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch master updated. glibc-2.26.9000-726-gabcb584
- From: hjl at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 6 Nov 2017 17:29:54 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.26.9000-726-gabcb584
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, master has been updated
via abcb584d0eae7270b35e1b3fed1f9661e26b8be0 (commit)
from 4e2dff67beeb063cb36fe100d9d2b3f2f88d80c6 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=abcb584d0eae7270b35e1b3fed1f9661e26b8be0
commit abcb584d0eae7270b35e1b3fed1f9661e26b8be0
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Mon Nov 6 08:29:48 2017 -0800
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.
diff --git a/ChangeLog b/ChangeLog
index acd573c..57c99d6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2017-11-06 H.J. Lu <hongjiu.lu@intel.com>
+
+ [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.
+
2017-11-06 Joseph Myers <joseph@codesourcery.com>
[BZ #22402]
diff --git a/Makerules b/Makerules
index bbfbefe..522de25 100644
--- a/Makerules
+++ b/Makerules
@@ -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))
diff --git a/config.make.in b/config.make.in
index fd2dbc9..bd84a57 100644
--- a/config.make.in
+++ b/config.make.in
@@ -21,6 +21,7 @@ includedir = @includedir@
datarootdir = @datarootdir@
localstatedir = @libc_cv_localstatedir@
localedir = @localedir@
+multidir= @libc_cv_multidir@
# Should we use and build ldconfig?
use-ldconfig = @use_ldconfig@
diff --git a/configure b/configure
index 6010977..c8697d9 100755
--- a/configure
+++ b/configure
@@ -594,6 +594,7 @@ mach_interface_list
DEFINES
static_nss
profile
+libc_cv_multidir
libc_cv_pie_default
libc_cv_pic_default
shared
@@ -6698,6 +6699,11 @@ fi
$as_echo "$libc_cv_pie_default" >&6; }
+# Set the `multidir' variable by grabbing the variable from the compiler.
+# We do it once and save the result in a generated makefile.
+libc_cv_multidir=`${CC-cc} $CFLAGS $CPPFLAGS -print-multi-directory`
+
+
diff --git a/configure.ac b/configure.ac
index 148f7d1..9f25c9f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1783,6 +1783,11 @@ fi
rm -f conftest.*])
AC_SUBST(libc_cv_pie_default)
+# Set the `multidir' variable by grabbing the variable from the compiler.
+# We do it once and save the result in a generated makefile.
+libc_cv_multidir=`${CC-cc} $CFLAGS $CPPFLAGS -print-multi-directory`
+AC_SUBST(libc_cv_multidir)
+
AC_SUBST(profile)
AC_SUBST(static_nss)
diff --git a/csu/Makefile b/csu/Makefile
index fd668a5..e42a32b 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
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 12 ++++++++++++
Makerules | 9 +++++++++
config.make.in | 1 +
configure | 6 ++++++
configure.ac | 5 +++++
csu/Makefile | 10 ++++++++++
6 files changed, 43 insertions(+), 0 deletions(-)
hooks/post-receive
--
GNU C Library master sources