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
>

Reply via email to