Install libm.a as linker script [BZ #20539]

Message ID CAMe9rOr713WNJvs73-kNYEJ9kZiTzoevCK-7xMeD3SCUoLwXcg@mail.gmail.com
State New, archived
Headers

Commit Message

H.J. Lu Dec. 7, 2016, 4:21 p.m. UTC
  On Wed, Dec 7, 2016 at 2:34 AM, Andrew Senkevich
<andrew.n.senkevich@gmail.com> wrote:
> 2016-12-07 0:48 GMT+03:00 H.J. Lu <hjl.tools@gmail.com>:
>> On Tue, Dec 6, 2016 at 7:49 AM, Andrew Senkevich
>> <andrew.n.senkevich@gmail.com> wrote:
>>> 2016-12-06 18:21 GMT+03:00 Andreas Schwab <schwab@suse.de>:
>>>> On Dez 06 2016, Andrew Senkevich <andrew.n.senkevich@gmail.com> wrote:
>>>>
>>>>> 2016-12-06 17:17 GMT+03:00 Andreas Schwab <schwab@suse.de>:
>>>>>> On Dez 06 2016, Andrew Senkevich <andrew.n.senkevich@gmail.com> wrote:
>>>>>>
>>>>>>> +2016-12-06  Andrew Senkevich  <andrew.senkevich@intel.com>
>>>>>>> +
>>>>>>> +     [BZ #20539]
>>>>>>> +     * math/Makefile (install-lib-ldscripts): added libm.a.
>>>>>>> +     ($(inst_libdir)/libm.a): added rule for installation as linker script.
>>>>>>> +     * Makerules (install-lib.a): filter out install-lib-ldscripts.
>>>>>>
>>>>>> ChangeLog entries should be in present tense, and written as full
>>>>>> sentences.
>>>>>
>>>>> Which sentence is not full?
>>>>
>>>> Full sentences start with a capital.
>>>
>>> Oh yes of course, fixed.
>>>
>>>
>>> --
>>> WBR,
>>> Andrew
>>
>> diff --git a/Makerules b/Makerules
>> index e865782..573c074 100644
>> --- a/Makerules
>> +++ b/Makerules
>> @@ -1190,7 +1190,8 @@ $(addprefix $(inst_sbindir)/,$(install-sbin)): \
>>   $(do-install-program)
>>  endif
>>  ifdef install-lib
>> -install-lib.a := $(filter lib%.a,$(install-lib))
>> +install-lib.a := $(filter-out libm.a,$(filter lib%.a,$(install-lib)))
>> +install-lib.a := $(filter-out $(install-lib-ldscripts),$(install-lib.a))
>>
>> Need to filler out libm.a separately since it is in install-lib-ldscripts
>> already.
>
> Oh surely, attached.
>
>
> --
> WBR,
> Andrew

Here is install-others.

 $(inst_libdir)/libm.so: $(common-objpfx)format.lds \
  $(libm) \
  $(libmvec) \
@@ -142,6 +142,18 @@ $(inst_libdir)/libm.so: $(common-objpfx)format.lds \
       'AS_NEEDED ( $(libdir)/libmvec_nonshared.a
$(slibdir)/libmvec.so$(libmvec.so-version) ) )' \
  ) > $@.new
  mv -f $@.new $@
+
+install-others = $(inst_libdir)/libm.a
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Is this needed?

+$(inst_libdir)/libm.a: $(common-objpfx)format.lds \
+       $(libm) \
+       $(libmvec) \
+       $(+force)
+ (echo '/* GNU ld script'; echo '*/';\
+ cat $<; \
+ echo 'GROUP ( $(libdir)/libm-$(lib-version).a $(libdir)/libmvec.a )' \
+ ) > $@.new
+ cp $(objpfx)libm.a $(inst_libdir)/libm-$(lib-version).a
+ mv -f $@.new $@
 endif
  

Comments

Andrew Senkevich Dec. 7, 2016, 8:03 p.m. UTC | #1
2016-12-07 19:21 GMT+03:00 H.J. Lu <hjl.tools@gmail.com>:
> On Wed, Dec 7, 2016 at 2:34 AM, Andrew Senkevich
> <andrew.n.senkevich@gmail.com> wrote:
>> 2016-12-07 0:48 GMT+03:00 H.J. Lu <hjl.tools@gmail.com>:
>>> On Tue, Dec 6, 2016 at 7:49 AM, Andrew Senkevich
>>> <andrew.n.senkevich@gmail.com> wrote:
>>>> 2016-12-06 18:21 GMT+03:00 Andreas Schwab <schwab@suse.de>:
>>>>> On Dez 06 2016, Andrew Senkevich <andrew.n.senkevich@gmail.com> wrote:
>>>>>
>>>>>> 2016-12-06 17:17 GMT+03:00 Andreas Schwab <schwab@suse.de>:
>>>>>>> On Dez 06 2016, Andrew Senkevich <andrew.n.senkevich@gmail.com> wrote:
>>>>>>>
>>>>>>>> +2016-12-06  Andrew Senkevich  <andrew.senkevich@intel.com>
>>>>>>>> +
>>>>>>>> +     [BZ #20539]
>>>>>>>> +     * math/Makefile (install-lib-ldscripts): added libm.a.
>>>>>>>> +     ($(inst_libdir)/libm.a): added rule for installation as linker script.
>>>>>>>> +     * Makerules (install-lib.a): filter out install-lib-ldscripts.
>>>>>>>
>>>>>>> ChangeLog entries should be in present tense, and written as full
>>>>>>> sentences.
>>>>>>
>>>>>> Which sentence is not full?
>>>>>
>>>>> Full sentences start with a capital.
>>>>
>>>> Oh yes of course, fixed.
>>>>
>>>>
>>>> --
>>>> WBR,
>>>> Andrew
>>>
>>> diff --git a/Makerules b/Makerules
>>> index e865782..573c074 100644
>>> --- a/Makerules
>>> +++ b/Makerules
>>> @@ -1190,7 +1190,8 @@ $(addprefix $(inst_sbindir)/,$(install-sbin)): \
>>>   $(do-install-program)
>>>  endif
>>>  ifdef install-lib
>>> -install-lib.a := $(filter lib%.a,$(install-lib))
>>> +install-lib.a := $(filter-out libm.a,$(filter lib%.a,$(install-lib)))
>>> +install-lib.a := $(filter-out $(install-lib-ldscripts),$(install-lib.a))
>>>
>>> Need to filler out libm.a separately since it is in install-lib-ldscripts
>>> already.
>>
>> Oh surely, attached.
>>
>>
>> --
>> WBR,
>> Andrew
>
> diff --git a/math/Makefile b/math/Makefile
> index 848b093..77031b1 100644
> --- a/math/Makefile
> +++ b/math/Makefile
> @@ -128,10 +128,10 @@ generated += $(foreach s,.c .S,$(call
> type-foreach, $(calls:s_%=m_%$(s))))
>  routines = $(call type-foreach, $(calls))
>
>  ifeq ($(build-mathvec),yes)
> -# We need to install libm.so as linker script
> -# for more comfortable use of vector math library.
> -install-lib-ldscripts := libm.so
> -install_subdir: $(inst_libdir)/libm.so
> +# We need to install libm.so and libm.a as linker scripts
> +# for transparent use of vector math library.
> +install-lib-ldscripts := libm.so libm.a
> +install-others: $(inst_libdir)/libm.so $(inst_libdir)/libm.a
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>
> Here is install-others.
>
>  $(inst_libdir)/libm.so: $(common-objpfx)format.lds \
>   $(libm) \
>   $(libmvec) \
> @@ -142,6 +142,18 @@ $(inst_libdir)/libm.so: $(common-objpfx)format.lds \
>        'AS_NEEDED ( $(libdir)/libmvec_nonshared.a
> $(slibdir)/libmvec.so$(libmvec.so-version) ) )' \
>   ) > $@.new
>   mv -f $@.new $@
> +
> +install-others = $(inst_libdir)/libm.a
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>
> Is this needed?

Indeed not needed. Tested with attached patch.


--
WBR,
Andrew
  
H.J. Lu Dec. 7, 2016, 9:49 p.m. UTC | #2
On Wed, Dec 7, 2016 at 12:03 PM, Andrew Senkevich
<andrew.n.senkevich@gmail.com> wrote:
> 2016-12-07 19:21 GMT+03:00 H.J. Lu <hjl.tools@gmail.com>:
>> On Wed, Dec 7, 2016 at 2:34 AM, Andrew Senkevich
>> <andrew.n.senkevich@gmail.com> wrote:
>>> 2016-12-07 0:48 GMT+03:00 H.J. Lu <hjl.tools@gmail.com>:
>>>> On Tue, Dec 6, 2016 at 7:49 AM, Andrew Senkevich
>>>> <andrew.n.senkevich@gmail.com> wrote:
>>>>> 2016-12-06 18:21 GMT+03:00 Andreas Schwab <schwab@suse.de>:
>>>>>> On Dez 06 2016, Andrew Senkevich <andrew.n.senkevich@gmail.com> wrote:
>>>>>>
>>>>>>> 2016-12-06 17:17 GMT+03:00 Andreas Schwab <schwab@suse.de>:
>>>>>>>> On Dez 06 2016, Andrew Senkevich <andrew.n.senkevich@gmail.com> wrote:
>>>>>>>>
>>>>>>>>> +2016-12-06  Andrew Senkevich  <andrew.senkevich@intel.com>
>>>>>>>>> +
>>>>>>>>> +     [BZ #20539]
>>>>>>>>> +     * math/Makefile (install-lib-ldscripts): added libm.a.
>>>>>>>>> +     ($(inst_libdir)/libm.a): added rule for installation as linker script.
>>>>>>>>> +     * Makerules (install-lib.a): filter out install-lib-ldscripts.
>>>>>>>>
>>>>>>>> ChangeLog entries should be in present tense, and written as full
>>>>>>>> sentences.
>>>>>>>
>>>>>>> Which sentence is not full?
>>>>>>
>>>>>> Full sentences start with a capital.
>>>>>
>>>>> Oh yes of course, fixed.
>>>>>
>>>>>
>>>>> --
>>>>> WBR,
>>>>> Andrew
>>>>
>>>> diff --git a/Makerules b/Makerules
>>>> index e865782..573c074 100644
>>>> --- a/Makerules
>>>> +++ b/Makerules
>>>> @@ -1190,7 +1190,8 @@ $(addprefix $(inst_sbindir)/,$(install-sbin)): \
>>>>   $(do-install-program)
>>>>  endif
>>>>  ifdef install-lib
>>>> -install-lib.a := $(filter lib%.a,$(install-lib))
>>>> +install-lib.a := $(filter-out libm.a,$(filter lib%.a,$(install-lib)))
>>>> +install-lib.a := $(filter-out $(install-lib-ldscripts),$(install-lib.a))
>>>>
>>>> Need to filler out libm.a separately since it is in install-lib-ldscripts
>>>> already.
>>>
>>> Oh surely, attached.
>>>
>>>
>>> --
>>> WBR,
>>> Andrew
>>
>> diff --git a/math/Makefile b/math/Makefile
>> index 848b093..77031b1 100644
>> --- a/math/Makefile
>> +++ b/math/Makefile
>> @@ -128,10 +128,10 @@ generated += $(foreach s,.c .S,$(call
>> type-foreach, $(calls:s_%=m_%$(s))))
>>  routines = $(call type-foreach, $(calls))
>>
>>  ifeq ($(build-mathvec),yes)
>> -# We need to install libm.so as linker script
>> -# for more comfortable use of vector math library.
>> -install-lib-ldscripts := libm.so
>> -install_subdir: $(inst_libdir)/libm.so
>> +# We need to install libm.so and libm.a as linker scripts
>> +# for transparent use of vector math library.
>> +install-lib-ldscripts := libm.so libm.a
>> +install-others: $(inst_libdir)/libm.so $(inst_libdir)/libm.a
>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>
>> Here is install-others.
>>
>>  $(inst_libdir)/libm.so: $(common-objpfx)format.lds \
>>   $(libm) \
>>   $(libmvec) \
>> @@ -142,6 +142,18 @@ $(inst_libdir)/libm.so: $(common-objpfx)format.lds \
>>        'AS_NEEDED ( $(libdir)/libmvec_nonshared.a
>> $(slibdir)/libmvec.so$(libmvec.so-version) ) )' \
>>   ) > $@.new
>>   mv -f $@.new $@
>> +
>> +install-others = $(inst_libdir)/libm.a
>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>
>> Is this needed?
>
> Indeed not needed. Tested with attached patch.
>
>

Please update ChangeLog entry: install_subdir is removed
and install-others is added in math/Makefile.  Otherwise, it
looks good to me.

Thanks.
  
Andreas Schwab Dec. 9, 2016, 3:38 p.m. UTC | #3
On Dez 07 2016, Andrew Senkevich <andrew.n.senkevich@gmail.com> wrote:

> +$(inst_libdir)/libm.a: $(common-objpfx)format.lds \
> +		       $(libm) \
> +		       $(libmvec) \
> +		       $(+force)
> +	(echo '/* GNU ld script'; echo '*/';\
> +	 cat $<; \
> +	 echo 'GROUP ( $(libdir)/libm-$(lib-version).a $(libdir)/libmvec.a )' \
> +	) > $@.new
> +	cp $(objpfx)libm.a $(inst_libdir)/libm-$(lib-version).a

A rule should only create the target, nothing else.

Andreas.
  

Patch

diff --git a/math/Makefile b/math/Makefile
index 848b093..77031b1 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -128,10 +128,10 @@  generated += $(foreach s,.c .S,$(call
type-foreach, $(calls:s_%=m_%$(s))))
 routines = $(call type-foreach, $(calls))

 ifeq ($(build-mathvec),yes)
-# We need to install libm.so as linker script
-# for more comfortable use of vector math library.
-install-lib-ldscripts := libm.so
-install_subdir: $(inst_libdir)/libm.so
+# We need to install libm.so and libm.a as linker scripts
+# for transparent use of vector math library.
+install-lib-ldscripts := libm.so libm.a
+install-others: $(inst_libdir)/libm.so $(inst_libdir)/libm.a
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^