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

后端 未结 2 734
忘掉有多难
忘掉有多难 2021-02-01 08:09

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:16

    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.

提交回复
热议问题