]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Place $(elf-objpfx)sofini.os last [BZ #22051]
authorH.J. Lu <hjl.tools@gmail.com>
Thu, 31 Aug 2017 13:28:31 +0000 (06:28 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Thu, 7 Sep 2017 15:27:30 +0000 (08:27 -0700)
Since sofini.os terminates .eh_frame section, it should be placed last.

[BZ #22051]
* Makerules (build-module-helper-objlist): Filter out
$(elf-objpfx)sofini.os.
(build-shlib-objlist): Append $(elf-objpfx)sofini.os if it is
needed.

(cherry picked from commit ecd0747df388f3925d4839740b0abcf43d0a9fb2)

ChangeLog
Makerules

index 87cc2f486547f0faf5987cdc6bef05ce0d5ade3d..f9e423dbb34b8dd793e757294befc9b024cc0780 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2017-08-31  H.J. Lu  <hongjiu.lu@intel.com>
+
+       [BZ #22051]
+       * Makerules (build-module-helper-objlist): Filter out
+       $(elf-objpfx)sofini.os.
+       (build-shlib-objlist): Append $(elf-objpfx)sofini.os if it is
+       needed.
+
 2017-08-30  Florian Weimer  <fweimer@redhat.com>
 
        * malloc/dynarray_emplace_enlarge.c
index 9bb707c168acd9f5d4dbf29a4d8aad79a817a9c4..828a445f24d380c2c2c04ab608ed38c299a48250 100644 (file)
--- a/Makerules
+++ b/Makerules
@@ -686,14 +686,17 @@ $(build-module-helper) -o $@ $(shlib-lds-flags) \
 $(call after-link,$@)
 endef
 
+# sofini.os must be placed last since it terminates .eh_frame section.
 build-module-helper-objlist = \
        $(patsubst %_pic.a,$(whole-archive) %_pic.a $(no-whole-archive),\
                   $(filter-out %.lds $(map-file) $(+preinit) $(+postinit) \
+                               $(elf-objpfx)sofini.os \
                                $(link-libc-deps),$^))
 
 build-module-objlist = $(build-module-helper-objlist) $(LDLIBS-$(@F:%.so=%).so)
 build-shlib-objlist = $(build-module-helper-objlist) \
-                     $(LDLIBS-$(@F:lib%.so=%).so)
+                     $(LDLIBS-$(@F:lib%.so=%).so) \
+                     $(filter $(elf-objpfx)sofini.os,$^)
 
 # Don't try to use -lc when making libc.so itself.
 # Also omits crti.o and crtn.o, which we do not want