Fix linker RWX warning
This commit is contained in:
		
							
								
								
									
										9
									
								
								Rakefile
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								Rakefile
									
									
									
									
									
								
							| @@ -350,7 +350,7 @@ rule '.elna.o' => ->(match) { | |||||||
|   architecture, *path_components = relative_from_tmp(match).to_a |   architecture, *path_components = relative_from_tmp(match).to_a | ||||||
|   path_components[-1] = path_components.last.ext('') |   path_components[-1] = path_components.last.ext('') | ||||||
|  |  | ||||||
|   [File.join(path_components), TMP + architecture] |   [File.join('source', path_components), TMP + architecture] | ||||||
| } do |t| | } do |t| | ||||||
|   options = BuildTarget.new relative_from_tmp(t.name).first |   options = BuildTarget.new relative_from_tmp(t.name).first | ||||||
|   compiler = options.rootfs + "bin/#{options.target}-gcc" |   compiler = options.rootfs + "bin/#{options.target}-gcc" | ||||||
| @@ -366,10 +366,11 @@ rule 'kernel.elf' => ->(match) { | |||||||
|  |  | ||||||
|   arch_objects = FileList["arch/#{instruction_set}/*.s"] |   arch_objects = FileList["arch/#{instruction_set}/*.s"] | ||||||
|     .map { |source| Pathname.new(source).relative_path_from("arch/#{instruction_set}").sub_ext('.s.o') } |     .map { |source| Pathname.new(source).relative_path_from("arch/#{instruction_set}").sub_ext('.s.o') } | ||||||
|     .map { |source| TMP + architecture + source } |   source_objects = FileList['source/*.elna'] | ||||||
|     .map(&:to_path) |     .map { |source| Pathname.new(source).relative_path_from('source').sub_ext('.elna.o') } | ||||||
|  |   objects = (arch_objects + source_objects).map { |source| (TMP + architecture + source).to_s } | ||||||
|  |  | ||||||
|   arch_objects + FileList['*.elna'].map { |source| (TMP + architecture + source).to_path + '.o' } << 'kernel.ld' |   objects << "arch/#{instruction_set}/kernel.ld" | ||||||
| } do |t| | } do |t| | ||||||
|   options = BuildTarget.new relative_from_tmp(t.name).first |   options = BuildTarget.new relative_from_tmp(t.name).first | ||||||
|   compiler = options.rootfs + "bin/#{options.target}-gcc" |   compiler = options.rootfs + "bin/#{options.target}-gcc" | ||||||
|   | |||||||
| @@ -1,25 +1,28 @@ | |||||||
| OUTPUT_ARCH("riscv") | OUTPUT_ARCH("riscv") | ||||||
| OUTPUT_FORMAT("elf32-littleriscv") | OUTPUT_FORMAT("elf32-littleriscv") | ||||||
| ENTRY(boot) | ENTRY(_entry) | ||||||
| 
 | 
 | ||||||
| SECTIONS { | PHDRS { | ||||||
|     . = 0x80200000; | 	text PT_LOAD FLAGS(5); | ||||||
| 	__kernel_base = .; | 	data PT_LOAD FLAGS(6); | ||||||
| 
 |  | ||||||
|     .text :{ |  | ||||||
|         KEEP(*(.text.boot)); |  | ||||||
|         *(.text .text.*); |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|     .rodata : ALIGN(4) { | SECTIONS { | ||||||
|  |     .text 0x80200000 : { | ||||||
|  | 		__kernel_base = .; | ||||||
|  |         KEEP(*(.text.boot)); | ||||||
|  |         *(.text .text.*); | ||||||
|  |     } :text | ||||||
|  | 
 | ||||||
|  |     .rodata : ALIGN(16) { | ||||||
|         *(.rodata .rodata.*); |         *(.rodata .rodata.*); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     .data : ALIGN(4) { |     .data : ALIGN(16) { | ||||||
|         *(.data .data.*); |         *(.data .data.*); | ||||||
|     } |     } :data | ||||||
| 
 | 
 | ||||||
|     .bss : ALIGN(4) { |     .bss : ALIGN(16) { | ||||||
|         __bss = .; |         __bss = .; | ||||||
|         *(.bss .bss.* .sbss .sbss.*); |         *(.bss .bss.* .sbss .sbss.*); | ||||||
|         __bss_end = .; |         __bss_end = .; | ||||||
| @@ -29,6 +32,6 @@ SECTIONS { | |||||||
|     . += 128 * 1024; /* 128KB */ |     . += 128 * 1024; /* 128KB */ | ||||||
|     __stack_top = .; |     __stack_top = .; | ||||||
| 
 | 
 | ||||||
| 	. = ALIGN(4096); | 	. = ALIGN(CONSTANT(MAXPAGESIZE)); | ||||||
| 	__free_ram = .; | 	__free_ram = .; | ||||||
| } | } | ||||||
| @@ -1,4 +1,4 @@ | |||||||
| .global kernel_main, __bss, __bss_end, __stack_top | .global _entry, __bss, __bss_end, __stack_top | ||||||
|  |  | ||||||
| .section .rodata | .section .rodata | ||||||
|  |  | ||||||
| @@ -215,7 +215,7 @@ panic: | |||||||
| 	ret | 	ret | ||||||
|  |  | ||||||
| .section .text.boot | .section .text.boot | ||||||
| boot: | _entry: | ||||||
| 	la t0, __stack_top | 	la t0, __stack_top | ||||||
| 	mv sp, t0 # Set the stack pointer | 	mv sp, t0 # Set the stack pointer | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user