Support for type-generic libm function implementations libm
commitce6698ea0aea863bbfb4e932494406789e4e36c1
authorPaul E. Murphy <murphyp@linux.vnet.ibm.com>
Tue, 14 Jun 2016 16:44:14 +0000 (14 11:44 -0500)
committerPaul E. Murphy <murphyp@linux.vnet.ibm.com>
Wed, 17 Aug 2016 19:06:03 +0000 (17 14:06 -0500)
treefc8a53b53c2b6d459dd9b4a5042314bcad7f4482
parent1f645571d2db9008b3cd3d5acb9ff93357864283
Support for type-generic libm function implementations libm

This defines a new classes of libm objects.  The
<func>_template.c file which is used in conjunction
with the new makefile hooks to derive variants for
each type supported by the target machine.

The headers math-type-macros-TYPE.h are used to supply
macros to a common implementation of a function in
a file named FUNC_template.c and glued togethor via
a generated file matching existing naming in the
build directory.

This has the properties of preserving the existing
override mechanism and not requiring any arcane
build system twiddling.  Likewise, it enables machines
to override these files without any additional work.

I have verified the built objects for ppc64, x86_64,
alpha, arm, and m68k do not change in any meaningful
way with these changes using the Fedora cross toolchains.
I have verified the x86_64 and ppc64 changes still run.
33 files changed:
ChangeLog
math/Makefile
math/cabs_template.c [moved from math/cabs.c with 77% similarity]
math/cabsf.c [deleted file]
math/cabsl.c [deleted file]
math/carg_template.c [moved from math/carg.c with 79% similarity]
math/cargf.c [deleted file]
math/cargl.c [deleted file]
math/cimag_template.c [copied from math/cimag.c with 82% similarity]
math/cimagf.c [deleted file]
math/cimagl.c [deleted file]
math/conj_template.c [moved from math/conj.c with 81% similarity]
math/conjf.c [deleted file]
math/conjl.c [deleted file]
math/creal_template.c [moved from math/creal.c with 82% similarity]
math/crealf.c [deleted file]
math/creall.c [deleted file]
sysdeps/generic/math-type-macros-double.h [new file with mode: 0644]
sysdeps/generic/math-type-macros-float.h [copied from math/cimag.c with 59% similarity]
sysdeps/generic/math-type-macros-ldouble.h [copied from math/cimag.c with 63% similarity]
sysdeps/generic/math-type-macros.h [new file with mode: 0644]
sysdeps/ieee754/ldbl-opt/cabs.c [deleted file]
sysdeps/ieee754/ldbl-opt/cabsl.c [deleted file]
sysdeps/ieee754/ldbl-opt/carg.c [deleted file]
sysdeps/ieee754/ldbl-opt/cargl.c [deleted file]
sysdeps/ieee754/ldbl-opt/cimag.c [deleted file]
sysdeps/ieee754/ldbl-opt/cimagl.c [deleted file]
sysdeps/ieee754/ldbl-opt/conj.c [deleted file]
sysdeps/ieee754/ldbl-opt/conjl.c [deleted file]
sysdeps/ieee754/ldbl-opt/creal.c [deleted file]
sysdeps/ieee754/ldbl-opt/creall.c [deleted file]
sysdeps/ieee754/ldbl-opt/math-type-macros-double.h [new file with mode: 0644]
sysdeps/ieee754/ldbl-opt/math-type-macros-ldouble.h [moved from math/cimag.c with 63% similarity]