> Upstream GCC does (still) not default to adding `--as-needed` to the > command line (except around libgcc). Some distros add patches which > add `--as-needed` by default though. It looks like alpine is one of > those distros. Maybe you should ask them instead of asking us. It > looks like they made the change between their 3.4 and 3.5 release.
I believe I've found the change: https://git.alpinelinux.org/aports/commit/?id=5b7befa1b989315a57f4fb49b8381ce06ded96c9 As we saw above on 3.4 (gcc-5.3.0) it adds libintl, on 3.5 (gcc-6.2.1) it doesn't. This commit changes pkgver from 5.3.0 to 6.1.0 and seems to make gcc add --as-needed, can you confirm? > Thanks, > Andrew Pinski > > > > > 3.4: /usr/libexec/gcc/x86_64-alpine-linux-musl/5.3.0/collect2 ... -lintl > > 3.5: /usr/libexec/gcc/x86_64-alpine-linux-musl/6.2.1/collect2 ... > > --as-needed ... -lintl > > > > collect2 is supposedly part of GCC. And what passes --as-needed is > > supposedly gcc. > > > > I was told on IRC that generally --as-needed is not the default. For > > the linker I guess. Although I wasn't able to confirm it. The option > > is supposedly defined here: > > > > https://sourceware.org/git/?p=binutils-gdb.git;a=blob;f=ld/lexsup.c;h=dad3b6059edfe1fe31f46c454fdc90d55b0aed5b;hb=ec6f962151998434f9cc743386f2a49a1ce1a0f6#l295 > > > > But I don't see the default value, and where it's used. > > > > And also it looks like gcc started to pass --as-needed to the linker > > since 5.x/6.x. > > > > Am I missing something? > > > > > The GNU linker can be configured to default to --as-needed or not, and > > > different distros use different defaults. > > > > Can you tell me briefly how it's configured? Is there a config? > > > > Regards, > > Yuri