RISC-V: add static-pie support

Message ID 20231007113225.3196037-1-yanzhang.wang@intel.com
State Accepted
Headers
Series RISC-V: add static-pie support |

Checks

Context Check Description
snail/gcc-patch-check success Github commit url

Commit Message

Wang, Yanzhang Oct. 7, 2023, 11:32 a.m. UTC
  From: Yanzhang Wang <yanzhang.wang@intel.com>

We only need to pass options to the linker when static-pie is passed.
There's another patch to enable static-pie in glibc. And we need to
enable in GCC first.

gcc/ChangeLog:

	* config/riscv/linux.h: Pass the static-pie specific options to
	  the linker.

Signed-off-by: Yanzhang Wang <yanzhang.wang@intel.com>
---

Have tested with glibc enabled and no regression of gcc found.

 gcc/config/riscv/linux.h | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)
  

Comments

Jeff Law Oct. 7, 2023, 4:13 p.m. UTC | #1
On 10/7/23 05:32, yanzhang.wang@intel.com wrote:
> From: Yanzhang Wang <yanzhang.wang@intel.com>
> 
> We only need to pass options to the linker when static-pie is passed.
> There's another patch to enable static-pie in glibc. And we need to
> enable in GCC first.
> 
> gcc/ChangeLog:
> 
> 	* config/riscv/linux.h: Pass the static-pie specific options to
> 	  the linker.
OK.
jeff
  
Li, Pan2 Oct. 8, 2023, 12:41 a.m. UTC | #2
Committed, thanks Jeff.

Pan

-----Original Message-----
From: Jeff Law <jeffreyalaw@gmail.com> 
Sent: Sunday, October 8, 2023 12:13 AM
To: Wang, Yanzhang <yanzhang.wang@intel.com>; gcc-patches@gcc.gnu.org
Cc: juzhe.zhong@rivai.ai; kito.cheng@sifive.com; Li, Pan2 <pan2.li@intel.com>
Subject: Re: [PATCH] RISC-V: add static-pie support



On 10/7/23 05:32, yanzhang.wang@intel.com wrote:
> From: Yanzhang Wang <yanzhang.wang@intel.com>
> 
> We only need to pass options to the linker when static-pie is passed.
> There's another patch to enable static-pie in glibc. And we need to
> enable in GCC first.
> 
> gcc/ChangeLog:
> 
> 	* config/riscv/linux.h: Pass the static-pie specific options to
> 	  the linker.
OK.
jeff
  

Patch

diff --git a/gcc/config/riscv/linux.h b/gcc/config/riscv/linux.h
index 7323ff30f70..8901671ddf6 100644
--- a/gcc/config/riscv/linux.h
+++ b/gcc/config/riscv/linux.h
@@ -55,9 +55,10 @@  along with GCC; see the file COPYING3.  If not see
 %{shared} \
   %{!shared: \
     %{!static: \
-      %{rdynamic:-export-dynamic} \
-      -dynamic-linker " GNU_USER_DYNAMIC_LINKER "} \
-    %{static:-static}}"
+      %{!static-pie: \
+	%{rdynamic:-export-dynamic} \
+	-dynamic-linker " GNU_USER_DYNAMIC_LINKER "}} \
+    %{static:-static} %{static-pie:-static -pie --no-dynamic-linker -z text}}"
 
 #define STARTFILE_PREFIX_SPEC 			\
    "/lib" XLEN_SPEC "/" ABI_SPEC "/ "		\