[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