ソースを参照

Merge branch 'cross-compiling'

greatbridf 2 年 前
コミット
33f97a35c3
3 ファイル変更15 行追加10 行削除
  1. 11 6
      Makefile
  2. 3 3
      cross-compile.cmake
  3. 1 1
      include/kernel/mem.h

+ 11 - 6
Makefile

@@ -1,18 +1,23 @@
 # disable kvm to debug triple faults
-QEMU_ARGS=-drive file=build/boot.img,format=raw -no-reboot -no-shutdown -enable-kvm #-d cpu_reset,int
+GDB_BIN=gdb
+QEMU_BIN=qemu-system-i386
+QEMU_ACCELERATION_FLAG=-enable-kvm
+QEMU_DEBUG_FLAG=-d cpu_reset,int
+QEMU_ARGS=-drive file=build/boot.img,format=raw -no-reboot -no-shutdown $(QEMU_ACCELERATION_FLAG) #$(QEMU_DEBUG_FLAG)
+CROSS_COMPILE=#--toolchain cross-compile.cmake
 .PHONY: run
 run: build
-	qemu-system-i386 $(QEMU_ARGS) -display curses -S -s
+	$(QEMU_BIN) $(QEMU_ARGS) -display curses -S -s
 .PHONY: srun
 srun: build
-	qemu-system-i386 $(QEMU_ARGS) -display none -S -s -serial mon:stdio
+	$(QEMU_BIN) $(QEMU_ARGS) -display none -S -s -serial mon:stdio
 .PHONY: nativerun
 nativerun: build
-	qemu-system-i386 $(QEMU_ARGS) -display none -serial mon:stdio
+	$(QEMU_BIN) $(QEMU_ARGS) -display none -serial mon:stdio
 
 .PHONY: configure
 configure:
-	cmake -Bbuild -DCMAKE_BUILD_TYPE=Debug
+	cmake -Bbuild -DCMAKE_BUILD_TYPE=Debug $(CROSS_COMPILE)
 	cp build/compile_commands.json .
 
 .PHONY: build
@@ -26,7 +31,7 @@ clean:
 
 .PHONY: debug
 debug:
-	gdb --symbols=build/kernel.out --init-eval-command 'set pagination off' --init-eval-command 'target remote:1234' --eval-command 'hbr kernel_main' --eval-command 'c'
+	$(GDB_BIN) --symbols=build/kernel.out --init-eval-command 'set pagination off' --init-eval-command 'target remote:1234' --eval-command 'hbr kernel_main' --eval-command 'c'
 
 build/boot.vdi: build/boot.img
 	-rm build/boot.vdi

+ 3 - 3
cross-compile.cmake

@@ -1,9 +1,9 @@
 set(CMAKE_SYSTEM_NAME Linux)
 
-set(TOOLCHAIN_PATH_AND_PREFIX "/usr/local/x86_64-elf-gcc/bin/x86_64-elf-")
+set(TOOLCHAIN_PATH_AND_PREFIX "")
 
-set(CMAKE_C_COMPILER ${TOOLCHAIN_PATH_AND_PREFIX}gcc)
-set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PATH_AND_PREFIX}g++)
+set(CMAKE_C_COMPILER ${TOOLCHAIN_PATH_AND_PREFIX}cc)
+set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PATH_AND_PREFIX}c++)
 set(CMAKE_AR ${TOOLCHAIN_PATH_AND_PREFIX}ar)
 set(CMAKE_LINKER ${TOOLCHAIN_PATH_AND_PREFIX}ld)
 set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)

+ 1 - 1
include/kernel/mem.h

@@ -127,7 +127,7 @@ struct mm {
 extern uint8_t e820_mem_map[1024];
 extern uint32_t e820_mem_map_count;
 extern uint32_t e820_mem_map_entry_size;
-extern uint32_t kernel_size;
+extern size_t kernel_size;
 extern struct mem_size_info mem_size_info;
 
 #define KERNEL_HEAP_START ((void*)0x30000000)