mirror of
				https://github.com/hzyitc/openwrt-redmi-ax3000
				synced 2025-10-30 07:50:32 +08:00 
			
		
		
		
	config: add a knob to use the mold linker for packages
Building it requires gcc >= 10.2 or clang >= 12. Using sstrip with its -z argument can produce non-working binaries, like a segfaulting `getrandom`, so don't allow that combination. Signed-off-by: Andre Heider <a.heider@gmail.com>
This commit is contained in:
		 Andre Heider
					Andre Heider
				
			
				
					committed by
					
						 Christian Marangi
						Christian Marangi
					
				
			
			
				
	
			
			
			 Christian Marangi
						Christian Marangi
					
				
			
						parent
						
							d026b19cdc
						
					
				
				
					commit
					65a716bb95
				
			| @ -159,6 +159,19 @@ menu "Global build settings" | ||||
| 		  Adds LTO flags to the CFLAGS and LDFLAGS. | ||||
| 		  Packages can choose to opt-out via setting PKG_BUILD_FLAGS:=no-lto | ||||
|  | ||||
| 	config MOLD | ||||
| 		depends on (aarch64 || arm || i386 || i686 || m68k || powerpc || powerpc64 || sh4 || x86_64) | ||||
| 		depends on !GCC_USE_VERSION_11 | ||||
| 		def_bool $(shell, ./config/check-hostcxx.sh 10 2 12) | ||||
|  | ||||
| 	config USE_MOLD | ||||
| 		bool | ||||
| 		prompt "Use the mold linker for all packages" | ||||
| 		depends on MOLD | ||||
| 		help | ||||
| 		  Link packages with mold, a modern linker | ||||
| 		  Packages can opt-out via setting PKG_BUILD_FLAGS:=no-mold | ||||
|  | ||||
| 	config IPV6 | ||||
| 		def_bool y | ||||
|  | ||||
| @ -200,7 +213,7 @@ menu "Global build settings" | ||||
|  | ||||
| 	config SSTRIP_DISCARD_TRAILING_ZEROES | ||||
| 		bool "Strip trailing zero bytes" | ||||
| 		depends on USE_SSTRIP | ||||
| 		depends on USE_SSTRIP && !USE_MOLD | ||||
| 		default y | ||||
| 		help | ||||
| 		  Use sstrip's -z option to discard trailing zero bytes | ||||
|  | ||||
							
								
								
									
										12
									
								
								config/check-hostcxx.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										12
									
								
								config/check-hostcxx.sh
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,12 @@ | ||||
| cat << EOF | "$STAGING_DIR_HOST/bin/g++" -c -x c++ -o /dev/null - >/dev/null 2>&1 | ||||
| #if __clang__ | ||||
|   #if __clang_major__ < $3 | ||||
|     #error "clang too old" | ||||
|   #endif | ||||
| #else | ||||
|   #if __GNUC__ < $1 || (__GNUC__ == $1 && (__GNUC_MINOR__ < $2)) | ||||
|     #error "gcc too old" | ||||
|   #endif | ||||
| #endif | ||||
| EOF | ||||
| [ $? -eq 0 ] && echo y || echo n | ||||
		Reference in New Issue
	
	Block a user