(e)glibc构建过程是黑色,黑色魔法.你不想试图理解它.但是,glibc遵循每个公共函数的单文件编码风格,所以一般来说,如果你有源代码树并且想要找到某个函数的实现,那么最简单的事情就是
$ find * -name '*function*' -print
Run Code Online (Sandbox Code Playgroud)
当然,从顶层,替换function为功能的名称.
关于具体说到sin的数学函数都在的通用实现:math目录:然而,似乎有是没有一般定义sin.所以接下来要看的是sysdeps.所有非通用的东西都在sysdeps,特别sysdeps/ieee754是所有数学函数都依赖于IEEE 754浮点规范,但没有其他系统依赖性.此目录按类型组织:sysdeps/ieee754/dbl-64包含IEEE的所有数学函数double.在这里你会发现sysdeps/ieee754/dbl-64/s_sin.c,这是你正在寻找的代码.(本e_,s_,k_,所使用意味着什么,但据我所知所有这些文件等前缀不再做.)
如果sin某个特定处理器的汇编语言有一个实现,那么它将位于一个名为sin.S(或可能s_sin.S)其他地方的文件中sysdeps.但是,似乎没有一个.