mirror of
				https://github.com/ohwgiles/laminar.git
				synced 2025-06-13 12:54:29 +00:00 
			
		
		
		
	Link binary resources rodata with GNU-stack note
Improve the linking of binary resources so the content is in .rodata and the object contains a read-only flagged GNU-stack note. This causes GNU ld to not mark the stack executable in the final binary. Resolves #55
This commit is contained in:
		
							parent
							
								
									2a14567b79
								
							
						
					
					
						commit
						b1dc0d62a0
					
				@ -43,7 +43,11 @@ macro(generate_compressed_bins BASEDIR)
 | 
			
		||||
            DEPENDS ${BASEDIR}/${FILE}
 | 
			
		||||
        )
 | 
			
		||||
        add_custom_command(OUTPUT ${OUTPUT_FILE}
 | 
			
		||||
            COMMAND ld -r -b binary -o ${OUTPUT_FILE} ${COMPRESSED_FILE}
 | 
			
		||||
            COMMAND ${CMAKE_LINKER} -r -b binary -o ${OUTPUT_FILE} ${COMPRESSED_FILE}
 | 
			
		||||
            COMMAND ${CMAKE_OBJCOPY}
 | 
			
		||||
              --rename-section .data=.rodata.alloc,load,readonly,data,contents
 | 
			
		||||
              --add-section .note.GNU-stack=/dev/null
 | 
			
		||||
              --set-section-flags .note.GNU-stack=contents,readonly ${OUTPUT_FILE}
 | 
			
		||||
            DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${COMPRESSED_FILE}
 | 
			
		||||
        )
 | 
			
		||||
        list(APPEND COMPRESSED_BINS ${OUTPUT_FILE})
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user