This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]