eliminate protected-visibility data in libc.so with vis.h preinclude
authorRich Felker <dalias@aerifal.cx>
Tue, 29 Sep 2015 02:44:05 +0000 (02:44 +0000)
committerRich Felker <dalias@aerifal.cx>
Tue, 29 Sep 2015 02:44:05 +0000 (02:44 +0000)
commitf3a53f095cd8ba108f8ac780da27a5ebbf4b224f
tree8f31e84a9e7e0e510fffed164235b7a1ca839d0c
parent2a6e1f0f5a8811d08101df0fd72b9baa27ed430c
eliminate protected-visibility data in libc.so with vis.h preinclude

some newer binutils versions print scary warnings about protected data
because most gcc versions fail to produce the right address
references/relocations for such data that might be subject to copy
relocations. originally vis.h explicitly assigned default visibility
to all public data symbols to avoid this issue, but commit
b8dda24fe1caa901a99580f7a52defb95aedb67c removed this treatment for
stdin/out/err to work around a gcc 3.x bug, and since they don't
actually need it (because taking their addresses is not valid C).

instead, a check for the gcc 3.x bug is added to the configure check
for vis.h preinclude support; this feature will simply be disabled
when using a buggy version of gcc.
configure
src/internal/vis.h