Why would it be impossible to fully statically link an application?

后端 未结 2 1452
花落未央
花落未央 2021-02-01 07:44

I\'m trying to compile a statically linked binary with GCC and I\'m getting warning messages like:

warning: Using \'getpwnam_r\' in statically linked application         


        
2条回答
  •  执笔经年
    2021-02-01 08:28

    Function calls that need access to NSS or iconv need access will open other libs dynamically, since NSS needs plugins to work (the helper modules like pam_unix.so). When the NSS system dlopens these modules, there will be two conflicting versions of glibc - the one your program brought with it (statically compiled in), and the one dlopen()ed by NSS dependencies. Shit will happen.

    This is why you can't build static programs using getpwnam_r and a few other functions.

提交回复
热议问题