LGTM, thanks for adding those comments :)
On Wed, Jan 19, 2022 at 1:21 AM Palmer Dabbelt <pal...@rivosinc.com> wrote: > > The code generated by -mcmodel=medany is defined to be > position-independent, but is not guaranteed to function correctly when > linked into position-independent executables or libraries. See the > recent discussion at the psABI specification [1] for more details. > > It would be better to reject these invalid sequences when linking, but > as pointed out in a recent LD bug [2] there may be some compatibility > issues related to the PCREL_HI20 relocations used to initialize GP. > Given the complexity here it's unlikely we'll be able to reject these > sequences any time soon, so instead just document that these may not > work. > > [1]: https://github.com/riscv-non-isa/riscv-elf-psabi-doc/issues/245 > [2]: https://sourceware.org/bugzilla/show_bug.cgi?id=28789 > > gcc/ChangeLog: > > * doc/invoke.texi: Document the degree of position independence > that -mcmodel=medany affords. > > Signed-off-by: Palmer Dabbelt <pal...@rivosinc.com> > > --- > > Changes since v1: > > * Fix spelling of "guaranteed", twice. > * Reference the binutils bug on rejecting these sequences, for more > context. > --- > gcc/doc/invoke.texi | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi > index 5504971ea81..7bca621535f 100644 > --- a/gcc/doc/invoke.texi > +++ b/gcc/doc/invoke.texi > @@ -27568,6 +27568,10 @@ Generate code for the medium-any code model. The > program and its statically > defined symbols must be within any single 2 GiB address range. Programs can > be > statically or dynamically linked. > > +The code generated by the medium-any code model is position-independent, but > is > +not guaranteed to function correctly when linked into position-independent > +executables or libraries. > + > @item -mexplicit-relocs > @itemx -mno-exlicit-relocs > Use or do not use assembler relocation operators when dealing with symbolic > -- > 2.32.0 >