Re: [PATCH v2 1/3] um/kconfig: introduce CC_CAN_LINK_STATIC_NO_RUNTIME_DEPS

From: Brendan Higgins
Date: Wed Jul 15 2020 - 04:38:26 EST


On Sat, Jul 4, 2020 at 1:52 AM Ignat Korchagin <ignat@xxxxxxxxxxxxxx> wrote:
>
> For statically linked UML build it is important to take into account the
> standard C-library implementation. Some implementations, notably glibc have
> caveats: even when linked statically, the final program might require some
> runtime dependencies, if certain functions are used within the code.
>
> Consider the following program:
> int main(void)
> {
> getpwent();
> return 0;
> }
>
> Compiling this program and linking statically with glibc produces the following
> warning from the linker:
> /usr/sbin/ld: /tmp/ccuthw1o.o: in function `main':
> test.c:(.text+0x5): warning: Using 'getpwent' in statically linked
> applications requires at runtime the shared libraries from the glibc version
> used for linking
>
> We will use the flag to detect such C-library implementation build time and
> possibly disable static linking for UML to avoid producing a binary with
> unexpected behaviour and dependencies.
>
> Signed-off-by: Ignat Korchagin <ignat@xxxxxxxxxxxxxx>

Nice.

Reviewed-by: Brendan Higgins <brendanhiggins@xxxxxxxxxx>