改变glibc,但什么也没发生
我想修改glibc。所以我下载了它的一个版本,并对代码做了一些修改。例如,我对memset进行了更改。但是,如果使用LD_预加载编译生成的.so文件,与不使用任何LD_预加载时相比,我看不出有什么区别。memset的行为与之类似。为什么会这样?是不是编译器内联了memset而没有使用共享对象中的任何东西?我不明白。我甚至对printf进行了更改,但仍然没有任何更改。为什么会这样。我如何修改glibc以进行测试,以便看到更改改变glibc,但什么也没发生,c,linux,gcc,glibc,C,Linux,Gcc,Glibc,我想修改glibc。所以我下载了它的一个版本,并对代码做了一些修改。例如,我对memset进行了更改。但是,如果使用LD_预加载编译生成的.so文件,与不使用任何LD_预加载时相比,我看不出有什么区别。memset的行为与之类似。为什么会这样?是不是编译器内联了memset而没有使用共享对象中的任何东西?我不明白。我甚至对printf进行了更改,但仍然没有任何更改。为什么会这样。我如何修改glibc以进行测试,以便看到更改 此外,当我试图更改pthread_create,当然是LD_预加载lib
此外,当我试图更改pthread_create,当然是LD_预加载libpthread.so时,通过在该函数的开头引入printf pthread_create,我只得到了一个分段错误。这是怎么回事?另外,如果我检查libc.so中的差异,在对glibc源代码进行更改之后,我在生成的版本中看不到任何差异。这里发生了什么。这简直快把我逼疯了 GCC提供了的内置版本,包括memset和printf。它与glibc实现这些功能无关
尝试传递-fno内置编译器选项以禁止此行为。GCC提供的内置版本,包括memset和printf。它与glibc实现这些功能无关
尝试传递-fno内置编译器选项以禁止这种行为。我最终通过静态链接glibc成功了!呸!我终于通过静态链接glibc成功了!呸!