This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] Place $(elf-objpfx)sofini.os the last [BZ #22051]
- From: "H.J. Lu" <hjl dot tools at gmail dot com>
- To: Andreas Schwab <schwab at suse dot de>
- Cc: GNU C Library <libc-alpha at sourceware dot org>
- Date: Thu, 31 Aug 2017 04:05:42 -0700
- Subject: Re: [PATCH] Place $(elf-objpfx)sofini.os the last [BZ #22051]
- Authentication-results: sourceware.org; auth=none
- References: <20170831105203.GA18773@gmail.com> <mvmfuc8gg2y.fsf@suse.de>
On Thu, Aug 31, 2017 at 3:57 AM, Andreas Schwab <schwab@suse.de> wrote:
> On Aug 31 2017, "H.J. Lu" <hjl.tools@gmail.com> wrote:
>
>> +# sofini.os must be the last since it terminates .eh_frame section.
>
> s/the// || s/the/placed/
>
> Andreas.
Like this?
--
H.J.
From 953d46ebe8cf0bf24c78b7ab0306cd035d413411 Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <hjl.tools@gmail.com>
Date: Wed, 30 Aug 2017 21:26:53 -0700
Subject: [PATCH] Place $(elf-objpfx)sofini.os last [BZ #22051]
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.
---
Makerules | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/Makerules b/Makerules
index 8f1324d8e9..bbfbefe33f 100644
--- 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
--
2.13.5