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

Message ID CAMXFM3u+VyNo0Y0DzZcZc0JaAqP8pqy44==Fg3dw0QxS=gzPaw@mail.gmail.com
State New, archived
Headers

Commit Message

Andrew Senkevich Dec. 5, 2016, 7:39 p.m. UTC
  2016-10-25 1:02 GMT+03:00 H.J. Lu <hjl.tools@gmail.com>:
. . .
>
> Do you need to update rules for building static math tests with
> libmvec.a?

Currently where are no static tests linked with libmvec.
Should we add such tests?

Current patch is:

  $(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
+$(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

 # Rules for the test suite.


--
WBR,
Andrew
  

Comments

H.J. Lu Dec. 5, 2016, 8:01 p.m. UTC | #1
On Mon, Dec 5, 2016 at 11:39 AM, Andrew Senkevich
<andrew.n.senkevich@gmail.com> wrote:
> 2016-10-25 1:02 GMT+03:00 H.J. Lu <hjl.tools@gmail.com>:
> . . .
>>
>> Do you need to update rules for building static math tests with
>> libmvec.a?
>
> Currently where are no static tests linked with libmvec.
> Should we add such tests?

It is probably OK without it for now.

> Current patch is:
>
> diff --git a/Makerules b/Makerules
> index e865782..a670f81 100644
> --- a/Makerules
> +++ b/Makerules
> @@ -1190,7 +1190,10 @@ $(addprefix $(inst_sbindir)/,$(install-sbin)): \
>   $(do-install-program)
>  endif
>  ifdef install-lib
> -install-lib.a := $(filter lib%.a,$(install-lib))
> +ifeq ($(build-mathvec),yes)
> +install-lib.a := $(filter-out libm.a,$(filter lib%.a,$(install-lib)))
> +install-lib.a := $(filter-out $(install-lib-ldscripts),$(install-lib.a))
> +endif

Will just

++ b/Makerules
@@ -1191,6 +1191,7 @@ $(addprefix $(inst_sbindir)/,$(install-sbin)): \
 endif
 ifdef install-lib
 install-lib.a := $(filter lib%.a,$(install-lib))
+install-lib.a := $(filter-out $(install-lib-ldscripts),$(install-lib.a))
 install-lib-non.a := $(filter-out lib%.a,$(install-lib))
 ifdef install-lib-non.a
 $(addprefix $(inst_libdir)/$(libprefix),$(install-lib-non.a)): \

work?

>  install-lib-non.a := $(filter-out lib%.a,$(install-lib))
>  ifdef install-lib-non.a
>  $(addprefix $(inst_libdir)/$(libprefix),$(install-lib-non.a)): \
> 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
>  $(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
> +$(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
>
>  # Rules for the test suite.
>
>
> --
> WBR,
> Andrew
  
Andrew Senkevich Dec. 6, 2016, 12:17 p.m. UTC | #2
2016-12-05 23:01 GMT+03:00 H.J. Lu <hjl.tools@gmail.com>:
> On Mon, Dec 5, 2016 at 11:39 AM, Andrew Senkevich
> <andrew.n.senkevich@gmail.com> wrote:
>> 2016-10-25 1:02 GMT+03:00 H.J. Lu <hjl.tools@gmail.com>:
>> . . .
>>>
>>> Do you need to update rules for building static math tests with
>>> libmvec.a?
>>
>> Currently where are no static tests linked with libmvec.
>> Should we add such tests?
>
> It is probably OK without it for now.
>
>> Current patch is:
>>
>> diff --git a/Makerules b/Makerules
>> index e865782..a670f81 100644
>> --- a/Makerules
>> +++ b/Makerules
>> @@ -1190,7 +1190,10 @@ $(addprefix $(inst_sbindir)/,$(install-sbin)): \
>>   $(do-install-program)
>>  endif
>>  ifdef install-lib
>> -install-lib.a := $(filter lib%.a,$(install-lib))
>> +ifeq ($(build-mathvec),yes)
>> +install-lib.a := $(filter-out libm.a,$(filter lib%.a,$(install-lib)))
>> +install-lib.a := $(filter-out $(install-lib-ldscripts),$(install-lib.a))
>> +endif
>
> Will just
>
> ++ b/Makerules
> @@ -1191,6 +1191,7 @@ $(addprefix $(inst_sbindir)/,$(install-sbin)): \
>  endif
>  ifdef install-lib
>  install-lib.a := $(filter lib%.a,$(install-lib))
> +install-lib.a := $(filter-out $(install-lib-ldscripts),$(install-lib.a))
>  install-lib-non.a := $(filter-out lib%.a,$(install-lib))
>  ifdef install-lib-non.a
>  $(addprefix $(inst_libdir)/$(libprefix),$(install-lib-non.a)): \
>
> work?

Yes, indeed.

Attached fixed with updated ChangeLog, Ok for trunk?


--
WBR,
Andrew
  
Andreas Schwab Dec. 6, 2016, 2:17 p.m. UTC | #3
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.

Andreas.
  
Andrew Senkevich Dec. 6, 2016, 2:48 p.m. UTC | #4
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?


--
WBR,
Andrew
  
Andreas Schwab Dec. 6, 2016, 3:21 p.m. UTC | #5
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.

Andreas.
  
Andrew Senkevich Dec. 6, 2016, 3:49 p.m. UTC | #6
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
  

Patch

diff --git a/Makerules b/Makerules
index e865782..a670f81 100644
--- a/Makerules
+++ b/Makerules
@@ -1190,7 +1190,10 @@  $(addprefix $(inst_sbindir)/,$(install-sbin)): \
  $(do-install-program)
 endif
 ifdef install-lib
-install-lib.a := $(filter lib%.a,$(install-lib))
+ifeq ($(build-mathvec),yes)
+install-lib.a := $(filter-out libm.a,$(filter lib%.a,$(install-lib)))
+install-lib.a := $(filter-out $(install-lib-ldscripts),$(install-lib.a))
+endif
 install-lib-non.a := $(filter-out lib%.a,$(install-lib))
 ifdef install-lib-non.a
 $(addprefix $(inst_libdir)/$(libprefix),$(install-lib-non.a)): \
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
 $(inst_libdir)/libm.so: $(common-objpfx)format.lds \
  $(libm) \