[RFC] PowerPC select_section / unique_section
Alan Modra
amodra@bigpond.net.au
Fri Aug 30 17:32:00 GMT 2002
On Fri, Aug 30, 2002 at 11:27:25AM -0400, David Edelsohn wrote:
> >>>>> Alan Modra writes:
>
> Alan> Uh, oh. If I understand binds_local_p and mark_constant_function
> Alan> correctly, setting flag_pic is actually a bug-fix when compiling
> Alan> powerpc64-linux shared libs. We have the standard ELF binding of
> Alan> global syms. That is, global functions may be overridden by functions
> Alan> in another shared library or by the main application.
>
> Alan> So powerpc64-linux-gcc should allow -fpic/PIC to twiddle flag_pic for
> Alan> binds_local_p, and users should set -fPIC when compiling shared libs
> Alan> as is common on other ELF targets. We could use another flag, because
> Alan> like that annoying rs6000.c warning says "all code is position
> Alan> independent" on ppc64, but that would make powerpc64-linux just that
> Alan> more odd. Lots of packages set -fPIC to mean "compile me code for a
> Alan> shared library".
>
> This is what the patch that I applied to both gcc-3.2 and the
> trunk already does, without utilizing the generic infrastructure. The
> PowerPC port currently does not use the targetm.binds_local_p. We can
> discuss evolving to the generic infrastructure for GCC 3.4.
The PowerPC back-end code doesn't use binds_local_p, but
mark_constant_function does.
I think I'm correct in claiming that powerpc64-linux-gcc lacks a way
to say "I want this code compiled for a shared library; Don't try to
analyze global functions for pure/const as the function in this file
may not be the one called at runtime."
--
Alan Modra
IBM OzLabs - Linux Technology Centre
More information about the Gcc-patches
mailing list