更改源后编译 GNU libm s_sin.c
Compilng s_sin.c of GNU libm after changing the source
我想稍微修改一下 libm 的 sin
函数(来源:s_sin.c)来试验一些数值。但是,我看不到如何编译修改后的源代码。
我想避免做“./configure, make”。因此,为了解决所有依赖关系,我尝试在我的系统中用 libm.a 编译 s_sin.c。但是我的编译器很快就拒绝了编译,因为它在源文件中找不到头文件"mydefs.h"。源码中有很多这样的头文件。
我的问题是:尝试更改 GNU libm 中的单个数学函数并编译它的最简单方法是什么?谢谢。
I would like to avoid doing "./configure, make".
你无法避免这种情况(因为这是通常的构建过程),但你可以将更多参数传递给 configure
。先尝试 configure --help
。您可以避免下一个 make install
(或将一些 DESTDIR=/tmp/somedir/
传递给它)。
My question is: what is the easiest way for experimenting with changing a single math function in GNU libm and the compiling it?
我会推荐一个小 chroot(2)-ed environment. Debian has schroot and debootstrap 以使其相当容易。
然后你仍然做 ./configure
- 可能使用不同的 --prefix
... - 然后是 make
。你可能想要也可能不想要 make install
也许可以考虑使用 musl-libc,因为它可以与您系统的 libc
共存
顺便说一句,sin
是一个不寻常的函数(就像 -lm
中的许多函数一样)。你可以在那里设置一个断点来检查你的大多数系统程序不使用它。不要忘记备份系统的 libc
并准备一些 static shell 运行 以防万一(也许 sash
,因为很多核心实用程序是内置的:静态 sash
包含 内部 变体 tar
、cp
、mv
等...不依赖于任何外部 libc
)
您还可以(临时)在某些 header 中添加一些 #define sin(x) mysin(x)
(例如 /usr/include/math.h
)或使用 LD_PRELOAD
tricks.
(不清楚你真正想做什么。libm.so
只被程序使用,而不是自己;你想做什么实际的数值实验??).
我想稍微修改一下 libm 的 sin
函数(来源:s_sin.c)来试验一些数值。但是,我看不到如何编译修改后的源代码。
我想避免做“./configure, make”。因此,为了解决所有依赖关系,我尝试在我的系统中用 libm.a 编译 s_sin.c。但是我的编译器很快就拒绝了编译,因为它在源文件中找不到头文件"mydefs.h"。源码中有很多这样的头文件。
我的问题是:尝试更改 GNU libm 中的单个数学函数并编译它的最简单方法是什么?谢谢。
I would like to avoid doing "./configure, make".
你无法避免这种情况(因为这是通常的构建过程),但你可以将更多参数传递给 configure
。先尝试 configure --help
。您可以避免下一个 make install
(或将一些 DESTDIR=/tmp/somedir/
传递给它)。
My question is: what is the easiest way for experimenting with changing a single math function in GNU libm and the compiling it?
我会推荐一个小 chroot(2)-ed environment. Debian has schroot and debootstrap 以使其相当容易。
然后你仍然做 ./configure
- 可能使用不同的 --prefix
... - 然后是 make
。你可能想要也可能不想要 make install
也许可以考虑使用 musl-libc,因为它可以与您系统的 libc
顺便说一句,sin
是一个不寻常的函数(就像 -lm
中的许多函数一样)。你可以在那里设置一个断点来检查你的大多数系统程序不使用它。不要忘记备份系统的 libc
并准备一些 static shell 运行 以防万一(也许 sash
,因为很多核心实用程序是内置的:静态 sash
包含 内部 变体 tar
、cp
、mv
等...不依赖于任何外部 libc
)
您还可以(临时)在某些 header 中添加一些 #define sin(x) mysin(x)
(例如 /usr/include/math.h
)或使用 LD_PRELOAD
tricks.
(不清楚你真正想做什么。libm.so
只被程序使用,而不是自己;你想做什么实际的数值实验??).