 7b4a966de8
			
		
	
	7b4a966de8
	
	
	
		
			
			RISC-V has no support for subword atomic operations; code currently generates libatomic library calls. This patch changes the default behavior to fast inline subword atomic calls that do not require libatomic. Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
		
			
				
	
	
		
			37 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From 203f3060dd363361b172f7295f42bb6bf5ac0b3b Mon Sep 17 00:00:00 2001
 | |
| From: Andreas Schwab <schwab@suse.de>
 | |
| Date: Sat, 23 Apr 2022 15:48:42 +0200
 | |
| Subject: [PATCH] riscv/linux: Don't add -latomic with -pthread
 | |
| 
 | |
| Now that we have support for inline subword atomic operations, it is no
 | |
| longer necessary to link against libatomic.  This also fixes testsuite
 | |
| failures because the framework does not properly set up the linker flags
 | |
| for finding libatomic.
 | |
| The use of atomic operations is also independent of the use of libpthread.
 | |
| 
 | |
| gcc/
 | |
| 	* config/riscv/linux.h (LIB_SPEC): Don't redefine.
 | |
| ---
 | |
|  gcc/config/riscv/linux.h | 10 ----------
 | |
|  1 file changed, 10 deletions(-)
 | |
| 
 | |
| --- a/gcc/config/riscv/linux.h
 | |
| +++ b/gcc/config/riscv/linux.h
 | |
| @@ -35,16 +35,6 @@ along with GCC; see the file COPYING3.
 | |
|  #undef MUSL_DYNAMIC_LINKER
 | |
|  #define MUSL_DYNAMIC_LINKER "/lib/ld-musl-riscv" XLEN_SPEC MUSL_ABI_SUFFIX ".so.1"
 | |
|  
 | |
| -/* Because RISC-V only has word-sized atomics, it requries libatomic where
 | |
| -   others do not.  So link libatomic by default, as needed.  */
 | |
| -#undef LIB_SPEC
 | |
| -#ifdef LD_AS_NEEDED_OPTION
 | |
| -#define LIB_SPEC GNU_USER_TARGET_LIB_SPEC \
 | |
| -  " %{pthread:" LD_AS_NEEDED_OPTION " -latomic " LD_NO_AS_NEEDED_OPTION "}"
 | |
| -#else
 | |
| -#define LIB_SPEC GNU_USER_TARGET_LIB_SPEC " -latomic "
 | |
| -#endif
 | |
| -
 | |
|  #define ICACHE_FLUSH_FUNC "__riscv_flush_icache"
 | |
|  
 | |
|  #define CPP_SPEC "%{pthread:-D_REENTRANT}"
 |