On Wed, Nov 21, 2018 at 6:50 PM Waldemar Kozaczuk <[email protected]>
wrote:

> Some libraries like x265 fmpeg codec is linked
> to reference libc aliases of some math functions like
> log*, exp and pow ones. Unfortunately because our
> versions of these funcions are provided by musl
> and we do not modify musl code we cannot
> add aliases by simple weak_alias construct.
>
> Therefore we add simple stub files in libc
> where we define functions with alias names that delegate
> to corresponding functions provided by musl.
>
> Another alternative would be to copy corresponding
> files from musl to libc directory and add weak_alias there.
> This would be slightly more performant as we would avoid
> unnecessary instructions involved in calling a function.
>

I think having both musl/something.c and libc/something.c used is confusing
because until
now the tradition was always that when both exist, only the
libc/something.c is used *instead*
of the musl one.

I think an easier and nicer approach would be to have just one file, e.g.,
libc/math/aliases.c, where you define all these aliases, in just one file.



>
> Signed-off-by: Waldemar Kozaczuk <[email protected]>
> ---
>  Makefile          | 5 +++++
>  libc/math/exp.c   | 6 ++++++
>  libc/math/log.c   | 6 ++++++
>  libc/math/log10.c | 6 ++++++
>  libc/math/log2.c  | 6 ++++++
>  libc/math/pow.c   | 6 ++++++
>  6 files changed, 35 insertions(+)
>  create mode 100644 libc/math/exp.c
>  create mode 100644 libc/math/log.c
>  create mode 100644 libc/math/log10.c
>  create mode 100644 libc/math/log2.c
>  create mode 100644 libc/math/pow.c
>
> diff --git a/Makefile b/Makefile
> index 2270206b..c475f311 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1145,6 +1145,7 @@ musl += math/erf.o
>  musl += math/erff.o
>  musl += math/erfl.o
>  musl += math/exp.o
> +libc += math/exp.o
>
 musl += math/exp10.o

>  musl += math/exp10f.o
>  musl += math/exp10l.o
> @@ -1214,13 +1215,16 @@ musl += math/llround.o
>  musl += math/llroundf.o
>  musl += math/llroundl.o
>  musl += math/log.o
> +libc += math/log.o
>  musl += math/log10.o
> +libc += math/log10.o
>  musl += math/log10f.o
>  musl += math/log10l.o
>  musl += math/log1p.o
>  musl += math/log1pf.o
>  musl += math/log1pl.o
>  musl += math/log2.o
> +libc += math/log2.o
>  musl += math/log2f.o
>  musl += math/log2l.o
>  musl += math/logb.o
> @@ -1253,6 +1257,7 @@ musl += math/nexttoward.o
>  musl += math/nexttowardf.o
>  musl += math/nexttowardl.o
>  musl += math/pow.o
> +libc += math/pow.o
>  musl += math/powf.o
>  musl += math/powl.o
>  musl += math/remainder.o
> diff --git a/libc/math/exp.c b/libc/math/exp.c
> new file mode 100644
> index 00000000..cba01a32
> --- /dev/null
> +++ b/libc/math/exp.c
> @@ -0,0 +1,6 @@
> +#include "libm.h"
> +
> +double __exp_finite(double x)
> +{
> +       return exp(x);
> +}
> diff --git a/libc/math/log.c b/libc/math/log.c
> new file mode 100644
> index 00000000..50709e09
> --- /dev/null
> +++ b/libc/math/log.c
> @@ -0,0 +1,6 @@
> +#include "libm.h"
> +
> +double __log_finite(double x)
> +{
> +       return log(x);
> +}
> diff --git a/libc/math/log10.c b/libc/math/log10.c
> new file mode 100644
> index 00000000..39201935
> --- /dev/null
> +++ b/libc/math/log10.c
> @@ -0,0 +1,6 @@
> +#include "libm.h"
> +
> +double __log10_finite(double x)
> +{
> +       return log10(x);
> +}
> diff --git a/libc/math/log2.c b/libc/math/log2.c
> new file mode 100644
> index 00000000..4167230a
> --- /dev/null
> +++ b/libc/math/log2.c
> @@ -0,0 +1,6 @@
> +#include "libm.h"
> +
> +double __log2_finite(double x)
> +{
> +       return log2(x);
> +}
> diff --git a/libc/math/pow.c b/libc/math/pow.c
> new file mode 100644
> index 00000000..28ba1d5d
> --- /dev/null
> +++ b/libc/math/pow.c
> @@ -0,0 +1,6 @@
> +#include "libm.h"
> +
> +double __pow_finite(double x, double y)
> +{
> +       return pow(x, y);
> +}
> --
> 2.19.1
>
> --
> You received this message because you are subscribed to the Google Groups
> "OSv Development" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups "OSv 
Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to