[PATCH] Document and fix --enable-bind-now [BZ #21015]
Florian Weimer
fweimer@redhat.com
Wed Mar 1 16:52:00 GMT 2017
On 03/01/2017 05:47 PM, Carlos O'Donell wrote:
> On 02/28/2017 10:04 AM, Florian Weimer wrote:
>> On 01/04/2017 06:52 PM, Florian Weimer wrote:
>>> On 01/02/2017 07:46 PM, Florian Weimer wrote:
>>>> 2017-01-02 Florian Weimer <fweimer@redhat.com>
>>>>
>>>> [BZ #21015]
>>>> * manual/install.texi (Configuring and compiling): Document
>>>> --enable-bind-now.
>>>> * Makeconfig [bind-now] (LDFLAGS-lib.so): Set.
>>>> (build-shlib-helper): Use $(LDFLAGS-lib.so).
>>>> (format.lds): Likewise.
>>>> [bind-now] (LDFLAGS-c.so): Remove.
>>>> * sysdeps/x86_64/localplt.data (libm.so): matherr relocation can
>>>> be R_X86_64_GLOB_DAT.
>>>> * sysdeps/unix/sysv/linux/i386/localplt.data (libm.so): matherr
>>>> relocation can be R_386_GLOB_DAT.
>>>> * sysdeps/unix/sysv/linux/alpha/localplt.data (libm.so): matherr
>>>> relocaiton can be R_ALPHA_GLOB_DAT.
>>>
>>> The patch is incomplete because it does not cover gconv modules, which
>>> are compiled as, well, modules (just like the test DSOs in elf/).
>>>
>>> This patch on top fixes that omission (hopefully it's not garbled too
>>> much):
>>>
>>> diff --git a/iconvdata/Makefile b/iconvdata/Makefile
>>> index 04157b2..eb744da 100644
>>> --- a/iconvdata/Makefile
>>> +++ b/iconvdata/Makefile
>>> @@ -63,6 +63,10 @@ modules := ISO8859-1 ISO8859-2 ISO8859-3
>>> ISO8859-4 ISO8859-5 \
>>> MAC-CENTRALEUROPE KOI8-RU ISO8859-9E \
>>> CP770 CP771 CP772 CP773 CP774
>>>
>>> +ifeq ($(bind-now),yes)
>>> +LDFLAGS.so += -Wl,-z,now
>>> +endif
>>> +
>>> modules.so := $(addsuffix .so, $(modules))
>>>
>>> ifeq (yes,$(build-shared))
>>>
>>> But I wonder if it's the right approach. I don't think it's worth
>>> adding another kind of module just for this feature.
>
> I don't follow your question here, could you expand what you mean by
> "another kind of module?"
Another way of compiling a shared object (“module”). Overriding
LDFLAGS.so this way avoids defining another category which is neither an
installed library, nor a DSO used by tests.
Thanks,
Florian
More information about the Libc-alpha
mailing list