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 ibm/2.18/master updated. glibc-2.18-134-g052b65b


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, ibm/2.18/master has been updated
       via  052b65bfeee78d8ba82f070f9f10f79bb0de5376 (commit)
      from  7d000197af0d94220c665c5a655c8575fa348e47 (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=052b65bfeee78d8ba82f070f9f10f79bb0de5376

commit 052b65bfeee78d8ba82f070f9f10f79bb0de5376
Author: Brooks Moses <bmoses@google.com>
Date:   Tue Feb 18 11:18:44 2014 -0600

    Fix erroneous (and circular) implied pattern rule for linkobj/libc.so.
    
    [BZ #15915] As described in the bug, the pattern rule for lib%.so files
    in Makerules includes linkobj/libc.so as a dependency.  However, the
    explicit rule for linkobj/libc.so is in the top-level Makefile.
    
    Thus, the subdirectory makefiles that include Makerules end up with an
    erroneous makefile pattern rule for linkobj/libc.so that includes
    itself as a dependency.  The result is make warnings whenever rules
    for other .so files are resolved -- and, on occasion, actual makefile
    failures when a race condition causes the implicit rule to actually be
    used.
    
    This patch moves the explicit rules for linkobj/libc.so into Makerules
    to clear up this problem.  It also elaborates a couple of comments
    that I'd initially found confusing.
    
    Backport of 5f855e3598a576c35e54623a13b256f3e87fcd4d

diff --git a/ChangeLog b/ChangeLog
index 0afa5ca..c448dda 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2014-02-18  Brooks Moses  <bmoses@google.com>
+
+	[BZ #15915]
+	* Makefile (linkobj/libc_pic.a, linkobj/libc.so): Move rules to...
+	* Makerules: ...here, and adjust associated comments.
+
 2014-02-06  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
 
 	* sysdeps/powerpc/powerpc64/power5/Implies: Remove inexistent
diff --git a/Makefile b/Makefile
index 7d8eccf..00e4394 100644
--- a/Makefile
+++ b/Makefile
@@ -123,30 +123,7 @@ lib-noranlib: subdir_lib
 
 ifeq (yes,$(build-shared))
 # Build the shared object from the PIC object library.
-lib: $(common-objpfx)libc.so
-
-lib: $(common-objpfx)linkobj/libc.so
-
-# Do not filter ld.so out of libc.so link.
-$(common-objpfx)linkobj/libc.so: link-libc-deps = # empty
-
-$(common-objpfx)linkobj/libc.so: $(elfobjdir)/soinit.os \
-				 $(common-objpfx)linkobj/libc_pic.a \
-				 $(elfobjdir)/sofini.os \
-				 $(elfobjdir)/interp.os \
-				 $(elfobjdir)/ld.so \
-				 $(shlib-lds)
-	$(build-shlib)
-
-$(common-objpfx)linkobj/libc_pic.a: $(common-objpfx)libc_pic.a \
-				    $(common-objpfx)sunrpc/librpc_compat_pic.a
-	$(..)./scripts/mkinstalldirs $(common-objpfx)linkobj
-	(cd $(common-objpfx)linkobj; \
-	 $(AR) x ../libc_pic.a; \
-	 rm $$($(AR) t ../sunrpc/librpc_compat_pic.a | sed 's/^compat-//'); \
-	 $(AR) x ../sunrpc/librpc_compat_pic.a; \
-	 $(AR) cr libc_pic.a *.os; \
-	 rm *.os)
+lib: $(common-objpfx)libc.so $(common-objpfx)linkobj/libc.so
 endif
 
 
diff --git a/Makerules b/Makerules
index bd8642a..8ed458f 100644
--- a/Makerules
+++ b/Makerules
@@ -565,16 +565,47 @@ generated += libc_pic.opts libc_pic.os.clean
 libc_pic_clean := .clean
 endif
 
-# Do not filter ld.so out of libc.so link.
+# Build a possibly-modified version of libc_pic.a for use in building
+# linkobj/libc.so.
+ifeq (,$(filter sunrpc,$(subdirs)))
+$(common-objpfx)linkobj/libc_pic.a: $(common-objpfx)libc_pic.a
+	$(make-target-directory)
+	ln -f $< $@
+else
+$(common-objpfx)linkobj/libc_pic.a: $(common-objpfx)libc_pic.a \
+				    $(common-objpfx)sunrpc/librpc_compat_pic.a
+	$(make-target-directory)
+	(cd $(common-objpfx)linkobj; \
+	 $(AR) x ../libc_pic.a; \
+	 rm $$($(AR) t ../sunrpc/librpc_compat_pic.a | sed 's/^compat-//'); \
+	 $(AR) x ../sunrpc/librpc_compat_pic.a; \
+	 $(AR) cr libc_pic.a *.os; \
+	 rm *.os)
+endif # $(subdirs) contains sunrpc
+
+# Clear link-libc-deps for the libc.so libraries so build-shlibs does not
+# filter ld.so out of the list of linked objects.
 $(common-objpfx)libc.so: link-libc-deps = # empty
+$(common-objpfx)linkobj/libc.so: link-libc-deps = # empty
 
-# Use our own special initializer and finalizer files for libc.so.
+# Use our own special initializer and finalizer files for the libc.so
+# libraries.
 $(common-objpfx)libc.so: $(elfobjdir)/soinit.os \
 			 $(common-objpfx)libc_pic.os$(libc_pic_clean) \
 			 $(elfobjdir)/sofini.os \
-			 $(elfobjdir)/interp.os $(elfobjdir)/ld.so \
+			 $(elfobjdir)/interp.os \
+			 $(elfobjdir)/ld.so \
+			 $(shlib-lds)
+	$(build-shlib)
+
+$(common-objpfx)linkobj/libc.so: $(elfobjdir)/soinit.os \
+			 $(common-objpfx)linkobj/libc_pic.a \
+			 $(elfobjdir)/sofini.os \
+			 $(elfobjdir)/interp.os \
+			 $(elfobjdir)/ld.so \
 			 $(shlib-lds)
 	$(build-shlib)
+
 ifeq ($(versioning),yes)
 $(common-objpfx)libc.so: $(common-objpfx)libc.map
 endif
diff --git a/NEWS b/NEWS
index 5c2f07a..96df7a9 100644
--- a/NEWS
+++ b/NEWS
@@ -10,8 +10,8 @@ Version 2.18.1
 * The following bugs are resolved with this release:
 
   14143, 14155, 14547, 14699, 15532, 15427, 15522, 15680, 15723, 15734,
-  15735, 15797, 15892, 15895, 15909, 15917, 15996, 16072, 16150, 16414,
-  16430, 16431.
+  15735, 15797, 15892, 15895, 15909, 15915, 15917, 15996, 16072, 16150,
+  16414, 16430, 16431.
 
 * Support for powerpc64le has been added.
 

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog |    6 ++++++
 Makefile  |   25 +------------------------
 Makerules |   37 ++++++++++++++++++++++++++++++++++---
 NEWS      |    4 ++--
 4 files changed, 43 insertions(+), 29 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]