gcc libc的getaddrinfo的实现源代码

时间:2014-08-03 05:29:50

标签: gcc static-linking getaddrinfo

这是一个与warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking类似的问题。

在运行时,getaddrinfo(“localhost”)将打开/etc/resolv.conf,这很奇怪! 我甚至发现gcc静态链接的可执行文件将包含硬编码字符串,如/etc/resolv.conf,这真可怕吗?

localhost:tmp macq$ strings node.armv5.static |grep /etc
        // Test: ./node test/fixtures/echo.js < /etc/passwd
/etc/egd-pool
/etc/entropy
/etc/ssl/private
/etc/ssl
/etc/ssl/certs
/etc/ssl/cert.pem
/etc/hosts
/etc/resolv.conf
/etc/nsswitch.conf
/etc/host.conf
/etc/svc.conf
/etc/localtime
/etc/gai.conf
/etc/ld.so.cache
/etc/ld.so.nohwcap
/etc/suid-debug
/etc/mtab

我只是想知道这个警告的来源和getaddrinfo的逻辑。

我认为它来自libgcc,但是我检查了gcc 4.4,4.5的源代码,没有找到这样的错误字符串模式,事件未找到getaddrinfo实现。我找不到ld(colloect2)的来源。

gcc中getaddrinfo的来源在哪里? libnss_files.so的来源在哪里?

编辑:   谢谢大家。我现在改变了标题,谁可以告诉我getaddrinfo之类的实现的源代码,它们似乎不在libc中。

0 个答案:

没有答案