================
@@ -151,9 +155,10 @@ Usage
 
 To enable ShadowCallStack, just pass the ``-fsanitize=shadow-call-stack`` flag
 to both compile and link command lines. On aarch64, you also need to pass
-``-ffixed-x18`` unless your target already reserves ``x18``. On RISC-V, ``x3``
-(``gp``) is always reserved. It is, however, important to disable GP relaxation
-in the linker. This can be done with the ``--no-relax-gp`` flag in GNU ld.
+``-ffixed-x18`` unless your target already reserves ``x18``. On RISC-V with 
software
+shadow stack, ``x3`` (``gp``) is always reserved. It is, however, important to
+disable GP relaxation in the linker. This can be done with the 
``--no-relax-gp``
+flag in GNU ld.
----------------
ilovepi wrote:

We reserve `gp` even w/o SCS. The `--no-relax-gp`  advice does only apply to 
the software SCS.

Maybe something along these lines?

```suggestion
``-ffixed-x18`` unless your target already reserves ``x18``. No additional 
flags need to be passed on RISC-V because the software based shadow stack uses 
``x3`` (``gp``), which is always reserved, and the hardware based shadow call 
stack uses a dedicated register, ``ssp``.
However, it is important to disable GP relaxation in the linker when using the 
software based shadow call stack on RISC-V. 
This can be done with the ``--no-relax-gp`` flag in GNU ld, and is off by 
default in LLD.
```

https://github.com/llvm/llvm-project/pull/68075
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to