gcc-libc的getaddrinfo实现的源代码

gcc-libc的getaddrinfo实现的源代码,gcc,static-linking,getaddrinfo,Gcc,Static Linking,Getaddrinfo,这是一个类似的问题 在运行时,getaddrinfolocalhost将打开/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 /et

这是一个类似的问题

在运行时,getaddrinfolocalhost将打开/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,但我已经检查了GCC4.4、4.5的源代码,没有发现这样的错误字符串模式,事件没有找到getaddrinfo实现。我找不到ldcolloect2的来源

gcc中getaddrinfo的源在哪里?libnss_文件的来源在哪里

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

这与gcc或libgcc无关。它是关于libc的,static linking.resolv.conf是解析器的配置。为什么在进行名称解析的代码中引用它会很奇怪?你到底有什么问题?android没有/etc/resolv.conf,所以无法运行。谢谢。我认为这是由gcc的libc引起的,gcc编译的代码有这些警告,并且在运行时遇到了错误,因为android或其他操作系统中没有/etc/resolv.conf。我对静态可执行文件进行了反汇编,发现gcc的代码确实实现了这种逻辑。但是我想知道这些实现的来源在哪里,像这样的文件名来源是由运行时库中的内容引起的。getaddrinfo必须了解系统如何解析DNS调用。换句话说,由于代码可以在具有不同DNS配置的不同机器上编译和运行,getaddrinfo无法提前知道,因此它依赖于已知文件。