build: add a config knob to enable gc-sections for all packages
This enables the linker's garbage collection for all packages which haven't opted-out. 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
						
							07730ff346
						
					
				
				
					commit
					aef8bab9d7
				
			| @@ -144,6 +144,14 @@ menu "Global build settings" | |||||||
| 		help | 		help | ||||||
| 		  Adds -g3 to the CFLAGS. | 		  Adds -g3 to the CFLAGS. | ||||||
|  |  | ||||||
|  | 	config USE_GC_SECTIONS | ||||||
|  | 		bool | ||||||
|  | 		prompt "Dead code and data elimination for all packages (EXPERIMENTAL)" | ||||||
|  | 		help | ||||||
|  | 		  Places functions and data items into its own sections to use the linker's | ||||||
|  | 		  garbage collection capabilites. | ||||||
|  | 		  Packages can choose to opt-out via setting PKG_BUILD_FLAGS:=no-gc-sections | ||||||
|  |  | ||||||
| 	config IPV6 | 	config IPV6 | ||||||
| 		def_bool y | 		def_bool y | ||||||
|  |  | ||||||
|   | |||||||
| @@ -51,7 +51,7 @@ ifdef CONFIG_USE_MIPS16 | |||||||
|     TARGET_CXXFLAGS += -mips16 -minterlink-mips16 |     TARGET_CXXFLAGS += -mips16 -minterlink-mips16 | ||||||
|   endif |   endif | ||||||
| endif | endif | ||||||
| ifeq ($(call pkg_build_flag,gc-sections,0),1) | ifeq ($(call pkg_build_flag,gc-sections,$(if $(CONFIG_USE_GC_SECTIONS),1,0)),1) | ||||||
|   TARGET_CFLAGS+= -ffunction-sections -fdata-sections |   TARGET_CFLAGS+= -ffunction-sections -fdata-sections | ||||||
|   TARGET_CXXFLAGS+= -ffunction-sections -fdata-sections |   TARGET_CXXFLAGS+= -ffunction-sections -fdata-sections | ||||||
|   TARGET_LDFLAGS+= -Wl,--gc-sections |   TARGET_LDFLAGS+= -Wl,--gc-sections | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user