From 45cb784846296c28959368b3b8b3562c2cc8a33c Mon Sep 17 00:00:00 2001 From: Adrien Bourmault Date: Mon, 24 Feb 2020 10:00:23 +0100 Subject: [PATCH 1/8] Docs : loader/cpu --- ChangeLog | 2 +- docs/boot/grub/grub.desc | 14 ++++++++-- docs/boot/loader/cpu | 51 ++++++++++++++++++++++++++++++++++++ docs/boot/loader/loader.desc | 8 ++++-- 4 files changed, 70 insertions(+), 5 deletions(-) create mode 100644 docs/boot/loader/cpu diff --git a/ChangeLog b/ChangeLog index 7ce7dd9..462a2bb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -23,7 +23,7 @@ #=----------------------------------------------------------------------------=# 2018-10-00 @os-k-team -Adrien Bourmault and Julian Barathie started talking about making their own OS +Adrien Bourmault and Julian Barathieu started talking about making their own OS 2018-11-00 @os-k-team Name decided & creation of os-k.eu diff --git a/docs/boot/grub/grub.desc b/docs/boot/grub/grub.desc index dcced46..f1cb311 100644 --- a/docs/boot/grub/grub.desc +++ b/docs/boot/grub/grub.desc @@ -12,7 +12,17 @@ # Foundation; with no Invariant Sections, no Front-Cover Texts, and # # no Back-Cover Texts. A copy of the license is included in the # # file entitled "COPYING.GFDL" # -#=-----------------------------------------------------------------------------# +#=----------------------------------------------------------------------------=# -WIP \ No newline at end of file + This folder contains the GRUB configuration file, `boot/grub/grub.cfg`, +used by GRUB to know which OS to boot and how to boot it. + + The GRUB configuration is pretty simple. We choose to use a 0 timeout, a +single entry that starts OS/K. + +Because OS/K is a multiboot compliant kernel, we launch it with the multiboot +command. + +For instance, we ask vbe and vga modules to be provided, but OS/K doesn't use +these modules. \ No newline at end of file diff --git a/docs/boot/loader/cpu b/docs/boot/loader/cpu new file mode 100644 index 0000000..e89f174 --- /dev/null +++ b/docs/boot/loader/cpu @@ -0,0 +1,51 @@ +#=----------------------------------------------------------------------------=# +# GNU GPL OS/K Documentation # +# # +# Desc: OS/K Loader : CPU Management functions # +# # +# # +# Copyright © 2018-2020 The OS/K Team # +# # +# Permission is granted to copy, distribute and/or modify this # +# document under the terms of the GNU Free Documentation License, # +# Version 1.3 or any later version published by the Free Software # +# Foundation; with no Invariant Sections, no Front-Cover Texts, and # +# no Back-Cover Texts. A copy of the license is included in the # +# file entitled "COPYING.GFDL" # +#=----------------------------------------------------------------------------=# + + + This folder contains two files, `boot/loader/cpu/cpu.inc` and +boot/loader/cpu/cpu32.inc`. + +The `boot/loader/cpu/cpu32.inc` is intented to provide 32 bits protected mode +function that can control wether the CPU is qualified to run the OS/K code. + +The `boot/loader/cpu/cpu3.inc` provides 64 bits long mode temporization function +used by the loader when necessary. + + + There is two functions in `cpu32.inc` : + - Is64Bits(), intented to check if the CPU is "ok" with 64 bit code, +if it supports long mode and will not burn if we ask it to execute OS/K +(i.e trigger a #UD fault). + +For this check, we use first the 0x80000000 function of the CPUID instruction +that returns the highest CPUID function available. It must return at least +0x80000001, otherwise we can't check the long mode presence and it is most +likely absent. We pass the function number in the eax register. + +As soon as 0x80000001 is available, we use it and verify it flips to 1 the bit +29 in edx. + + + - Check_cpuid(), that check if the CPUID instruction is supported by the CPU +before use it (don't want #UD). + +For this, we use the FLAGS register and check if we can flip (overwrite with +a 1 persistantly) the bit 21. If it is possible, then CPUID is supported. + + + The temporize(), bitemporize() and tritemporize() functions in `cpu.inc` +are juste loops that make the cpu busy to wait. These temporization are not +precise at all, and are not intented to wait for a determined time lapse. \ No newline at end of file diff --git a/docs/boot/loader/loader.desc b/docs/boot/loader/loader.desc index 7e80d64..5f1880f 100644 --- a/docs/boot/loader/loader.desc +++ b/docs/boot/loader/loader.desc @@ -12,7 +12,7 @@ # Foundation; with no Invariant Sections, no Front-Cover Texts, and # # no Back-Cover Texts. A copy of the license is included in the # # file entitled "COPYING.GFDL" # -#=-----------------------------------------------------------------------------# +#=----------------------------------------------------------------------------=# This folder contains the source for OS/K's early loader. @@ -30,4 +30,8 @@ specified address and prepare it for the hard work it have to do : - Send a structure for it with memory map, cpu infos, and other devices infos, prepared by GRUB. - Switch into long mode. - - Jump to Kaleid kernel. \ No newline at end of file + - Jump to Kaleid kernel. + + Our loader contains the multiboot header used by GRUB to check if the kernel +can be started with the multiboot method. We use an ELF multiboot format, because +it is more convenient. From 82320007cffae662ed8037b86239aef07f5df848 Mon Sep 17 00:00:00 2001 From: Adrien Bourmault Date: Mon, 24 Feb 2020 10:10:29 +0100 Subject: [PATCH 2/8] Docs : loader/io WIP --- docs/boot/loader/io | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 docs/boot/loader/io diff --git a/docs/boot/loader/io b/docs/boot/loader/io new file mode 100644 index 0000000..a9b74bd --- /dev/null +++ b/docs/boot/loader/io @@ -0,0 +1,22 @@ +#=----------------------------------------------------------------------------=# +# GNU GPL OS/K Documentation # +# # +# Desc: OS/K Loader : IO basic functions # +# # +# # +# Copyright © 2018-2020 The OS/K Team # +# # +# Permission is granted to copy, distribute and/or modify this # +# document under the terms of the GNU Free Documentation License, # +# Version 1.3 or any later version published by the Free Software # +# Foundation; with no Invariant Sections, no Front-Cover Texts, and # +# no Back-Cover Texts. A copy of the license is included in the # +# file entitled "COPYING.GFDL" # +#=----------------------------------------------------------------------------=# + + + This folder contains the basic drivers needed to boot OS/K. +There is one single file in this directory : `boot/loader/io/terminal.inc` + +This file provides a basic way to print colored text to the screen, without +advanced functions, for both 32 and 64 bits modes. \ No newline at end of file From 81bae882e1a4b4e631b4af04718a6145d839cb0b Mon Sep 17 00:00:00 2001 From: Adrien Bourmault Date: Mon, 1 Jun 2020 18:04:23 +0200 Subject: [PATCH 3/8] Changes with stack protector for gcc 10 --- Makefile | 2 +- ProjectTree | 47 ++++++++++++++++++++++++++++++----------------- 2 files changed, 31 insertions(+), 18 deletions(-) diff --git a/Makefile b/Makefile index ef8b839..8d6d851 100644 --- a/Makefile +++ b/Makefile @@ -45,7 +45,7 @@ LDFLAGS=-melf_x86_64 COPTIM=-O2 CWARNS=-Wall -Wextra -Wno-unused-parameter -Wno-implicit-fallthrough -Werror=implicit-function-declaration -Werror=return-type #-Wpadded CINCLUDES=-Iinclude -Iinclude/drivers -Iinclude/kernel -CFLAGS1=-nostdlib -ffreestanding -mcmodel=large -std=gnu11 -fstack-protector-all -fdump-rtl-expand +CFLAGS1=-nostdlib -ffreestanding -mcmodel=large -std=gnu11 -fstack-protector-strong -fdump-rtl-expand CFLAGS2= -c -mno-red-zone -mno-mmx -mno-sse -mno-sse2 CFLAGS= $(CFLAGS1) $(CFLAGS2) CFLAGS_MATHS= $(CFLAGS1) -c -mno-red-zone -mno-mmx diff --git a/ProjectTree b/ProjectTree index 6e0b554..eb3d21e 100644 --- a/ProjectTree +++ b/ProjectTree @@ -26,26 +26,39 @@ . ├── boot │   ├── grub -│   │   ├── grub.cfg -│   │   └── multiboot.pdf -│   ├── loader -│   │   ├── cpu -│   │   │   ├── cpu32.inc -│   │   │   └── cpu.inc -│   │   ├── io -│   │   │   └── terminal.inc -│   │   ├── mem -│   │   │   ├── management.inc -│   │   │   └── structures.inc -│   │   ├── multiboot -│   │   │   ├── check.inc -│   │   │   └── header.inc -│   │   └── loader.asm -│   └── folder.desc +│   │   └── grub.cfg +│   └── loader +│   ├── cpu +│   │   ├── cpu32.inc +│   │   └── cpu.inc +│   ├── io +│   │   └── terminal.inc +│   ├── mem +│   │   ├── management.inc +│   │   └── structures.inc +│   ├── multiboot +│   │   ├── check.inc +│   │   └── header.inc +│   └── loader.asm ├── build │   ├── create_disk.sh │   ├── install-os-k.sh │   └── kernel.ld +├── docs +│   ├── boot +│   │   ├── grub +│   │   │   └── grub.desc +│   │   └── loader +│   │   ├── cpu +│   │   ├── io +│   │   └── loader.desc +│   ├── kaleid +│   │   ├── drivers +│   │   ├── kernel +│   │   ├── libbuf +│   │   └── libc +│   ├── COPYING.GFDL +│   └── Documentation ├── include │   ├── drivers │   │   └── ata.h @@ -166,4 +179,4 @@ ├── ProjectTree └── README.md -30 directories, 111 files +39 directories, 115 files From 85a33168092ee5101a311677d9b14c1b445dc54e Mon Sep 17 00:00:00 2001 From: Adrien Bourmault Date: Mon, 1 Jun 2020 23:04:37 +0200 Subject: [PATCH 4/8] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2cdd656..7916315 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ apt update && apt upgrade apt install grub-pc-bin dosfstools make nasm qemu tree libisl15 parted udisks2 ``` -You also need to have the [x86-64 ELF gcc cross-compiler](https://www.os-k.eu/build-tools/cross-cc.tar.xz) and its ``bin`` directory in your PATH. +You also need to have the [x86-64 ELF gcc cross-compiler](https://gitlab.os-k.eu/os-k-team/cross-cc-builder/uploads/fcb43b0cc04c75ff89e40b4b24567484/cross-cc.tar.xz) and its ``bin`` directory in your PATH. To compile, simply use at the root of this project : ``` From 982a65d9ecb9265d202645231ece642ef507ebb3 Mon Sep 17 00:00:00 2001 From: Adrien Bourmault Date: Mon, 1 Jun 2020 23:20:22 +0200 Subject: [PATCH 5/8] New cross-compiler --- .gitignore | 1 + Makefile | 16 +- ProjectTree | 767 +++++++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 781 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 6cf4c2c..5cb2a8e 100644 --- a/.gitignore +++ b/.gitignore @@ -26,6 +26,7 @@ Makefile.out.2 build/bin/s** .buildconfig #.stylehlp +cross-cc # Linker output *.ilk diff --git a/Makefile b/Makefile index 8d6d851..2a10ca4 100644 --- a/Makefile +++ b/Makefile @@ -33,6 +33,12 @@ mode ?= debug ram ?= 4G cpu ?= core2duo +# Cross-cc +CROSS-CC-DIR := $(shell pwd)/cross-cc +LATEST-CROSS-CC := https://gitlab.os-k.eu/os-k-team/cross-cc-builder/uploads/fcb43b0cc04c75ff89e40b4b24567484/cross-cc.tar.xz +export PATH := $(CROSS-CC-DIR)/bin:$(PATH) +NTHREADS := $(shell nproc) + # Programs ASM=nasm LD=x86_64-elf-ld @@ -138,6 +144,12 @@ DriverDep=$(patsubst %.c,$(KOBJDIR)/%.d,$(DriverSources)) ## MISC MAKEFILE ------------------------------------------------------------- # +$(CROSS-CC-DIR)/bin/x86_64-elf-gcc: + @echo ${CL2}[$@] ${NC} Downloading and extracting the cross-compiler...${CL3} + @wget $(LATEST-CROSS-CC) -O $(CROSS-CC-DIR).tar.xz -q -c --show-progress + @tar -xaf $(CROSS-CC-DIR).tar.xz --skip-old-files + @echo ${CL2}[$@] ${CL}Success.${CL3} + ./ProjectTree: ./.stylehlp_sh @cat ./.stylehlp_sh > ./ProjectTree @echo "\n" >> ./ProjectTree @@ -279,8 +291,8 @@ $(LOBJDIR)/loader.o: $(LOADERDIR)/loader.asm $(LOADERDIR)/*/*.inc OS/K: $(dep) ./ProjectTree $(BINDIR)/kaleid @echo ${CL2}[[$@]] ${NC} OS/K successfully made, $(mode) mode.${CL3} -all : - @make OS/K -j 8 +all : $(CROSS-CC-DIR)/bin/x86_64-elf-gcc + @make OS/K -j $(NTHREADS) ## QEMU/DEBUG RELATED test: all installonimage diff --git a/ProjectTree b/ProjectTree index eb3d21e..c41e678 100644 --- a/ProjectTree +++ b/ProjectTree @@ -44,6 +44,770 @@ │   ├── create_disk.sh │   ├── install-os-k.sh │   └── kernel.ld +├── cross-cc +│   ├── include +│   ├── lib +│   │   └── gcc +│   │   └── x86_64-elf +│   │   └── 10.1.0 +│   │   ├── include +│   │   │   ├── adxintrin.h +│   │   │   ├── ammintrin.h +│   │   │   ├── avx2intrin.h +│   │   │   ├── avx5124fmapsintrin.h +│   │   │   ├── avx5124vnniwintrin.h +│   │   │   ├── avx512bf16intrin.h +│   │   │   ├── avx512bf16vlintrin.h +│   │   │   ├── avx512bitalgintrin.h +│   │   │   ├── avx512bwintrin.h +│   │   │   ├── avx512cdintrin.h +│   │   │   ├── avx512dqintrin.h +│   │   │   ├── avx512erintrin.h +│   │   │   ├── avx512fintrin.h +│   │   │   ├── avx512ifmaintrin.h +│   │   │   ├── avx512ifmavlintrin.h +│   │   │   ├── avx512pfintrin.h +│   │   │   ├── avx512vbmi2intrin.h +│   │   │   ├── avx512vbmi2vlintrin.h +│   │   │   ├── avx512vbmiintrin.h +│   │   │   ├── avx512vbmivlintrin.h +│   │   │   ├── avx512vlbwintrin.h +│   │   │   ├── avx512vldqintrin.h +│   │   │   ├── avx512vlintrin.h +│   │   │   ├── avx512vnniintrin.h +│   │   │   ├── avx512vnnivlintrin.h +│   │   │   ├── avx512vp2intersectintrin.h +│   │   │   ├── avx512vp2intersectvlintrin.h +│   │   │   ├── avx512vpopcntdqintrin.h +│   │   │   ├── avx512vpopcntdqvlintrin.h +│   │   │   ├── avxintrin.h +│   │   │   ├── bmi2intrin.h +│   │   │   ├── bmiintrin.h +│   │   │   ├── bmmintrin.h +│   │   │   ├── cet.h +│   │   │   ├── cetintrin.h +│   │   │   ├── cldemoteintrin.h +│   │   │   ├── clflushoptintrin.h +│   │   │   ├── clwbintrin.h +│   │   │   ├── clzerointrin.h +│   │   │   ├── cpuid.h +│   │   │   ├── cross-stdarg.h +│   │   │   ├── emmintrin.h +│   │   │   ├── enqcmdintrin.h +│   │   │   ├── f16cintrin.h +│   │   │   ├── float.h +│   │   │   ├── fma4intrin.h +│   │   │   ├── fmaintrin.h +│   │   │   ├── fxsrintrin.h +│   │   │   ├── gcov.h +│   │   │   ├── gfniintrin.h +│   │   │   ├── ia32intrin.h +│   │   │   ├── immintrin.h +│   │   │   ├── iso646.h +│   │   │   ├── lwpintrin.h +│   │   │   ├── lzcntintrin.h +│   │   │   ├── mm3dnow.h +│   │   │   ├── mmintrin.h +│   │   │   ├── mm_malloc.h +│   │   │   ├── movdirintrin.h +│   │   │   ├── mwaitxintrin.h +│   │   │   ├── nmmintrin.h +│   │   │   ├── pconfigintrin.h +│   │   │   ├── pkuintrin.h +│   │   │   ├── pmmintrin.h +│   │   │   ├── popcntintrin.h +│   │   │   ├── prfchwintrin.h +│   │   │   ├── rdseedintrin.h +│   │   │   ├── rtmintrin.h +│   │   │   ├── sgxintrin.h +│   │   │   ├── shaintrin.h +│   │   │   ├── smmintrin.h +│   │   │   ├── stdalign.h +│   │   │   ├── stdarg.h +│   │   │   ├── stdatomic.h +│   │   │   ├── stdbool.h +│   │   │   ├── stddef.h +│   │   │   ├── stdfix.h +│   │   │   ├── stdint-gcc.h +│   │   │   ├── stdint.h +│   │   │   ├── stdnoreturn.h +│   │   │   ├── tbmintrin.h +│   │   │   ├── tgmath.h +│   │   │   ├── tmmintrin.h +│   │   │   ├── unwind.h +│   │   │   ├── vaesintrin.h +│   │   │   ├── varargs.h +│   │   │   ├── vpclmulqdqintrin.h +│   │   │   ├── waitpkgintrin.h +│   │   │   ├── wbnoinvdintrin.h +│   │   │   ├── wmmintrin.h +│   │   │   ├── x86intrin.h +│   │   │   ├── xmmintrin.h +│   │   │   ├── xopintrin.h +│   │   │   ├── xsavecintrin.h +│   │   │   ├── xsaveintrin.h +│   │   │   ├── xsaveoptintrin.h +│   │   │   ├── xsavesintrin.h +│   │   │   └── xtestintrin.h +│   │   ├── include-fixed +│   │   │   ├── limits.h +│   │   │   ├── README +│   │   │   └── syslimits.h +│   │   ├── install-tools +│   │   │   ├── include +│   │   │   │   ├── limits.h +│   │   │   │   └── README +│   │   │   ├── fixinc_list +│   │   │   ├── gsyslimits.h +│   │   │   ├── macro_list +│   │   │   └── mkheaders.conf +│   │   ├── no-red-zone +│   │   │   ├── crtbegin.o +│   │   │   ├── crtend.o +│   │   │   ├── libgcc.a +│   │   │   └── libgcov.a +│   │   ├── plugin +│   │   │   ├── include +│   │   │   │   ├── ada +│   │   │   │   │   └── gcc-interface +│   │   │   │   │   └── ada-tree.def +│   │   │   │   ├── c-family +│   │   │   │   │   ├── c-common.def +│   │   │   │   │   ├── c-common.h +│   │   │   │   │   ├── c-objc.h +│   │   │   │   │   ├── c-pragma.h +│   │   │   │   │   └── c-pretty-print.h +│   │   │   │   ├── config +│   │   │   │   │   ├── i386 +│   │   │   │   │   │   ├── att.h +│   │   │   │   │   │   ├── biarch64.h +│   │   │   │   │   │   ├── i386elf.h +│   │   │   │   │   │   ├── i386.h +│   │   │   │   │   │   ├── i386-opts.h +│   │   │   │   │   │   ├── i386-protos.h +│   │   │   │   │   │   ├── stringop.def +│   │   │   │   │   │   ├── unix.h +│   │   │   │   │   │   ├── x86-64.h +│   │   │   │   │   │   └── x86-tune.def +│   │   │   │   │   ├── dbxelf.h +│   │   │   │   │   ├── elfos.h +│   │   │   │   │   ├── initfini-array.h +│   │   │   │   │   ├── newlib-stdint.h +│   │   │   │   │   └── vxworks-dummy.h +│   │   │   │   ├── cp +│   │   │   │   │   ├── cp-tree.def +│   │   │   │   │   ├── cp-tree.h +│   │   │   │   │   ├── cxx-pretty-print.h +│   │   │   │   │   ├── name-lookup.h +│   │   │   │   │   ├── operators.def +│   │   │   │   │   └── type-utils.h +│   │   │   │   ├── d +│   │   │   │   │   └── d-tree.def +│   │   │   │   ├── objc +│   │   │   │   │   └── objc-tree.def +│   │   │   │   ├── addresses.h +│   │   │   │   ├── alias.h +│   │   │   │   ├── align.h +│   │   │   │   ├── alloc-pool.h +│   │   │   │   ├── all-tree.def +│   │   │   │   ├── ansidecl.h +│   │   │   │   ├── array-traits.h +│   │   │   │   ├── asan.h +│   │   │   │   ├── attribs.h +│   │   │   │   ├── auto-host.h +│   │   │   │   ├── auto-profile.h +│   │   │   │   ├── backend.h +│   │   │   │   ├── basic-block.h +│   │   │   │   ├── bb-reorder.h +│   │   │   │   ├── b-header-vars +│   │   │   │   ├── bitmap.h +│   │   │   │   ├── brig-builtins.def +│   │   │   │   ├── builtin-attrs.def +│   │   │   │   ├── builtins.def +│   │   │   │   ├── builtins.h +│   │   │   │   ├── builtin-types.def +│   │   │   │   ├── bversion.h +│   │   │   │   ├── calls.h +│   │   │   │   ├── ccmp.h +│   │   │   │   ├── cfganal.h +│   │   │   │   ├── cfgbuild.h +│   │   │   │   ├── cfgcleanup.h +│   │   │   │   ├── cfgexpand.h +│   │   │   │   ├── cfg-flags.def +│   │   │   │   ├── cfg.h +│   │   │   │   ├── cfghooks.h +│   │   │   │   ├── cfgloop.h +│   │   │   │   ├── cfgloopmanip.h +│   │   │   │   ├── cfgrtl.h +│   │   │   │   ├── cgraph.h +│   │   │   │   ├── cif-code.def +│   │   │   │   ├── collect2-aix.h +│   │   │   │   ├── collect2.h +│   │   │   │   ├── collect-utils.h +│   │   │   │   ├── color-macros.h +│   │   │   │   ├── conditions.h +│   │   │   │   ├── configargs.h +│   │   │   │   ├── config.h +│   │   │   │   ├── context.h +│   │   │   │   ├── convert.h +│   │   │   │   ├── coretypes.h +│   │   │   │   ├── coroutine-builtins.def +│   │   │   │   ├── coverage.h +│   │   │   │   ├── cppbuiltin.h +│   │   │   │   ├── cppdefault.h +│   │   │   │   ├── cpplib.h +│   │   │   │   ├── cselib.h +│   │   │   │   ├── c-tree.h +│   │   │   │   ├── data-streamer.h +│   │   │   │   ├── dbgcnt.def +│   │   │   │   ├── dbgcnt.h +│   │   │   │   ├── dbxout.h +│   │   │   │   ├── dce.h +│   │   │   │   ├── ddg.h +│   │   │   │   ├── debug.h +│   │   │   │   ├── defaults.h +│   │   │   │   ├── df.h +│   │   │   │   ├── dfp.h +│   │   │   │   ├── diagnostic-color.h +│   │   │   │   ├── diagnostic-core.h +│   │   │   │   ├── diagnostic.def +│   │   │   │   ├── diagnostic-event-id.h +│   │   │   │   ├── diagnostic.h +│   │   │   │   ├── diagnostic-metadata.h +│   │   │   │   ├── diagnostic-path.h +│   │   │   │   ├── diagnostic-url.h +│   │   │   │   ├── digraph.h +│   │   │   │   ├── dojump.h +│   │   │   │   ├── dominance.h +│   │   │   │   ├── domwalk.h +│   │   │   │   ├── double-int.h +│   │   │   │   ├── dump-context.h +│   │   │   │   ├── dumpfile.h +│   │   │   │   ├── dwarf2asm.h +│   │   │   │   ├── dwarf2out.h +│   │   │   │   ├── edit-context.h +│   │   │   │   ├── emit-rtl.h +│   │   │   │   ├── errors.h +│   │   │   │   ├── escaped_string.h +│   │   │   │   ├── et-forest.h +│   │   │   │   ├── except.h +│   │   │   │   ├── explow.h +│   │   │   │   ├── expmed.h +│   │   │   │   ├── expr.h +│   │   │   │   ├── fibonacci_heap.h +│   │   │   │   ├── file-find.h +│   │   │   │   ├── filenames.h +│   │   │   │   ├── file-prefix-map.h +│   │   │   │   ├── fixed-value.h +│   │   │   │   ├── flags.h +│   │   │   │   ├── flag-types.h +│   │   │   │   ├── fold-const-call.h +│   │   │   │   ├── fold-const.h +│   │   │   │   ├── function-abi.h +│   │   │   │   ├── function.h +│   │   │   │   ├── gcc.h +│   │   │   │   ├── gcc-plugin.h +│   │   │   │   ├── gcc-rich-location.h +│   │   │   │   ├── gcc-symtab.h +│   │   │   │   ├── gcov-counter.def +│   │   │   │   ├── gcov-io.h +│   │   │   │   ├── gcse-common.h +│   │   │   │   ├── gcse.h +│   │   │   │   ├── generic-match.h +│   │   │   │   ├── gengtype.h +│   │   │   │   ├── genrtl.h +│   │   │   │   ├── gensupport.h +│   │   │   │   ├── ggc.h +│   │   │   │   ├── ggc-internal.h +│   │   │   │   ├── gimple-builder.h +│   │   │   │   ├── gimple.def +│   │   │   │   ├── gimple-expr.h +│   │   │   │   ├── gimple-fold.h +│   │   │   │   ├── gimple.h +│   │   │   │   ├── gimple-iterator.h +│   │   │   │   ├── gimple-low.h +│   │   │   │   ├── gimple-match.h +│   │   │   │   ├── gimple-predict.h +│   │   │   │   ├── gimple-pretty-print.h +│   │   │   │   ├── gimple-ssa-evrp-analyze.h +│   │   │   │   ├── gimple-ssa.h +│   │   │   │   ├── gimple-ssa-warn-restrict.h +│   │   │   │   ├── gimple-streamer.h +│   │   │   │   ├── gimple-walk.h +│   │   │   │   ├── gimplify.h +│   │   │   │   ├── gimplify-me.h +│   │   │   │   ├── glimits.h +│   │   │   │   ├── graphds.h +│   │   │   │   ├── graph.h +│   │   │   │   ├── graphite.h +│   │   │   │   ├── graphviz.h +│   │   │   │   ├── gsstruct.def +│   │   │   │   ├── gstab.h +│   │   │   │   ├── gsyms.h +│   │   │   │   ├── gsyslimits.h +│   │   │   │   ├── gtm-builtins.def +│   │   │   │   ├── gtype-desc.h +│   │   │   │   ├── hard-reg-set.h +│   │   │   │   ├── hash-map.h +│   │   │   │   ├── hash-map-traits.h +│   │   │   │   ├── hash-set.h +│   │   │   │   ├── hashtab.h +│   │   │   │   ├── hash-table.h +│   │   │   │   ├── hash-traits.h +│   │   │   │   ├── highlev-plugin-common.h +│   │   │   │   ├── hooks.h +│   │   │   │   ├── hosthooks-def.h +│   │   │   │   ├── hosthooks.h +│   │   │   │   ├── hsa-brig-format.h +│   │   │   │   ├── hsa-builtins.def +│   │   │   │   ├── hsa-common.h +│   │   │   │   ├── hw-doloop.h +│   │   │   │   ├── hwint.h +│   │   │   │   ├── ifcvt.h +│   │   │   │   ├── inchash.h +│   │   │   │   ├── incpath.h +│   │   │   │   ├── input.h +│   │   │   │   ├── insn-addr.h +│   │   │   │   ├── insn-attr-common.h +│   │   │   │   ├── insn-attr.h +│   │   │   │   ├── insn-codes.h +│   │   │   │   ├── insn-constants.h +│   │   │   │   ├── insn-flags.h +│   │   │   │   ├── insn-modes.h +│   │   │   │   ├── insn-modes-inline.h +│   │   │   │   ├── insn-notes.def +│   │   │   │   ├── internal-fn.def +│   │   │   │   ├── internal-fn.h +│   │   │   │   ├── intl.h +│   │   │   │   ├── int-vector-builder.h +│   │   │   │   ├── ipa-fnsummary.h +│   │   │   │   ├── ipa-icf-gimple.h +│   │   │   │   ├── ipa-icf.h +│   │   │   │   ├── ipa-inline.h +│   │   │   │   ├── ipa-param-manipulation.h +│   │   │   │   ├── ipa-predicate.h +│   │   │   │   ├── ipa-prop.h +│   │   │   │   ├── ipa-reference.h +│   │   │   │   ├── ipa-ref.h +│   │   │   │   ├── ipa-utils.h +│   │   │   │   ├── ira.h +│   │   │   │   ├── ira-int.h +│   │   │   │   ├── is-a.h +│   │   │   │   ├── json.h +│   │   │   │   ├── langhooks-def.h +│   │   │   │   ├── langhooks.h +│   │   │   │   ├── lcm.h +│   │   │   │   ├── libfuncs.h +│   │   │   │   ├── libiberty.h +│   │   │   │   ├── limitx.h +│   │   │   │   ├── limity.h +│   │   │   │   ├── line-map.h +│   │   │   │   ├── loop-unroll.h +│   │   │   │   ├── lower-subreg.h +│   │   │   │   ├── lra.h +│   │   │   │   ├── lra-int.h +│   │   │   │   ├── lto-compress.h +│   │   │   │   ├── lto-section-names.h +│   │   │   │   ├── lto-streamer.h +│   │   │   │   ├── machmode.def +│   │   │   │   ├── machmode.h +│   │   │   │   ├── md5.h +│   │   │   │   ├── memmodel.h +│   │   │   │   ├── memory-block.h +│   │   │   │   ├── mem-stats.h +│   │   │   │   ├── mem-stats-traits.h +│   │   │   │   ├── mode-classes.def +│   │   │   │   ├── obstack.h +│   │   │   │   ├── omp-builtins.def +│   │   │   │   ├── omp-expand.h +│   │   │   │   ├── omp-general.h +│   │   │   │   ├── omp-grid.h +│   │   │   │   ├── omp-low.h +│   │   │   │   ├── omp-offload.h +│   │   │   │   ├── omp-simd-clone.h +│   │   │   │   ├── optabs.def +│   │   │   │   ├── optabs.h +│   │   │   │   ├── optabs-libfuncs.h +│   │   │   │   ├── optabs-query.h +│   │   │   │   ├── optabs-tree.h +│   │   │   │   ├── optinfo-emit-json.h +│   │   │   │   ├── optinfo.h +│   │   │   │   ├── options.h +│   │   │   │   ├── opt-problem.h +│   │   │   │   ├── opts-diagnostic.h +│   │   │   │   ├── opts.h +│   │   │   │   ├── opt-suggestions.h +│   │   │   │   ├── ordered-hash-map.h +│   │   │   │   ├── output.h +│   │   │   │   ├── passes.def +│   │   │   │   ├── pass-instances.def +│   │   │   │   ├── pass_manager.h +│   │   │   │   ├── plugin-api.h +│   │   │   │   ├── plugin.def +│   │   │   │   ├── plugin.h +│   │   │   │   ├── plugin-version.h +│   │   │   │   ├── poly-int.h +│   │   │   │   ├── poly-int-types.h +│   │   │   │   ├── predict.def +│   │   │   │   ├── predict.h +│   │   │   │   ├── prefix.h +│   │   │   │   ├── pretty-print.h +│   │   │   │   ├── print-rtl.h +│   │   │   │   ├── print-tree.h +│   │   │   │   ├── profile-count.h +│   │   │   │   ├── profile.h +│   │   │   │   ├── range.h +│   │   │   │   ├── range-op.h +│   │   │   │   ├── read-md.h +│   │   │   │   ├── read-rtl-function.h +│   │   │   │   ├── real.h +│   │   │   │   ├── realmpfr.h +│   │   │   │   ├── recog.h +│   │   │   │   ├── regcprop.h +│   │   │   │   ├── reg-notes.def +│   │   │   │   ├── regrename.h +│   │   │   │   ├── regset.h +│   │   │   │   ├── regs.h +│   │   │   │   ├── reload.h +│   │   │   │   ├── resource.h +│   │   │   │   ├── rtl.def +│   │   │   │   ├── rtl-error.h +│   │   │   │   ├── rtl.h +│   │   │   │   ├── rtlhash.h +│   │   │   │   ├── rtlhooks-def.h +│   │   │   │   ├── rtl-iter.h +│   │   │   │   ├── rtx-vector-builder.h +│   │   │   │   ├── run-rtl-passes.h +│   │   │   │   ├── safe-ctype.h +│   │   │   │   ├── sanitizer.def +│   │   │   │   ├── sbitmap.h +│   │   │   │   ├── sched-int.h +│   │   │   │   ├── selftest-diagnostic.h +│   │   │   │   ├── selftest.h +│   │   │   │   ├── selftest-rtl.h +│   │   │   │   ├── sel-sched-dump.h +│   │   │   │   ├── sel-sched.h +│   │   │   │   ├── sel-sched-ir.h +│   │   │   │   ├── sese.h +│   │   │   │   ├── shortest-paths.h +│   │   │   │   ├── shrink-wrap.h +│   │   │   │   ├── signop.h +│   │   │   │   ├── sparseset.h +│   │   │   │   ├── spellcheck.h +│   │   │   │   ├── spellcheck-tree.h +│   │   │   │   ├── splay-tree.h +│   │   │   │   ├── sreal.h +│   │   │   │   ├── ssa.h +│   │   │   │   ├── ssa-iterators.h +│   │   │   │   ├── stab.def +│   │   │   │   ├── statistics.h +│   │   │   │   ├── stmt.h +│   │   │   │   ├── stor-layout.h +│   │   │   │   ├── streamer-hooks.h +│   │   │   │   ├── stringpool.h +│   │   │   │   ├── substring-locations.h +│   │   │   │   ├── symbol-summary.h +│   │   │   │   ├── symtab.h +│   │   │   │   ├── sync-builtins.def +│   │   │   │   ├── system.h +│   │   │   │   ├── target.def +│   │   │   │   ├── target-def.h +│   │   │   │   ├── target-globals.h +│   │   │   │   ├── target.h +│   │   │   │   ├── target-hooks-macros.h +│   │   │   │   ├── target-insns.def +│   │   │   │   ├── targhooks.h +│   │   │   │   ├── timevar.def +│   │   │   │   ├── timevar.h +│   │   │   │   ├── tm.h +│   │   │   │   ├── tm_p.h +│   │   │   │   ├── tm-preds.h +│   │   │   │   ├── toplev.h +│   │   │   │   ├── tracer.h +│   │   │   │   ├── trans-mem.h +│   │   │   │   ├── tree-affine.h +│   │   │   │   ├── tree-cfgcleanup.h +│   │   │   │   ├── tree-cfg.h +│   │   │   │   ├── tree-check.h +│   │   │   │   ├── tree-chrec.h +│   │   │   │   ├── tree-core.h +│   │   │   │   ├── tree-data-ref.h +│   │   │   │   ├── tree.def +│   │   │   │   ├── tree-dfa.h +│   │   │   │   ├── tree-diagnostic.h +│   │   │   │   ├── tree-dump.h +│   │   │   │   ├── tree-eh.h +│   │   │   │   ├── tree.h +│   │   │   │   ├── tree-hasher.h +│   │   │   │   ├── tree-hash-traits.h +│   │   │   │   ├── tree-if-conv.h +│   │   │   │   ├── tree-inline.h +│   │   │   │   ├── tree-into-ssa.h +│   │   │   │   ├── tree-iterator.h +│   │   │   │   ├── tree-nested.h +│   │   │   │   ├── tree-object-size.h +│   │   │   │   ├── tree-outof-ssa.h +│   │   │   │   ├── tree-parloops.h +│   │   │   │   ├── tree-pass.h +│   │   │   │   ├── tree-phinodes.h +│   │   │   │   ├── tree-pretty-print.h +│   │   │   │   ├── tree-scalar-evolution.h +│   │   │   │   ├── tree-sra.h +│   │   │   │   ├── tree-ssa-address.h +│   │   │   │   ├── tree-ssa-alias.h +│   │   │   │   ├── tree-ssa-ccp.h +│   │   │   │   ├── tree-ssa-coalesce.h +│   │   │   │   ├── tree-ssa-dce.h +│   │   │   │   ├── tree-ssa-dom.h +│   │   │   │   ├── tree-ssa-dse.h +│   │   │   │   ├── tree-ssa.h +│   │   │   │   ├── tree-ssa-live.h +│   │   │   │   ├── tree-ssa-loop.h +│   │   │   │   ├── tree-ssa-loop-ivopts.h +│   │   │   │   ├── tree-ssa-loop-manip.h +│   │   │   │   ├── tree-ssa-loop-niter.h +│   │   │   │   ├── tree-ssanames.h +│   │   │   │   ├── tree-ssa-operands.h +│   │   │   │   ├── tree-ssa-propagate.h +│   │   │   │   ├── tree-ssa-sccvn.h +│   │   │   │   ├── tree-ssa-scopedtables.h +│   │   │   │   ├── tree-ssa-strlen.h +│   │   │   │   ├── tree-ssa-ter.h +│   │   │   │   ├── tree-ssa-threadedge.h +│   │   │   │   ├── tree-ssa-threadupdate.h +│   │   │   │   ├── tree-stdarg.h +│   │   │   │   ├── tree-streamer.h +│   │   │   │   ├── treestruct.def +│   │   │   │   ├── tree-switch-conversion.h +│   │   │   │   ├── tree-vector-builder.h +│   │   │   │   ├── tree-vectorizer.h +│   │   │   │   ├── tree-vrp.h +│   │   │   │   ├── tristate.h +│   │   │   │   ├── tsan.h +│   │   │   │   ├── tsystem.h +│   │   │   │   ├── typeclass.h +│   │   │   │   ├── typed-splay-tree.h +│   │   │   │   ├── ubsan.h +│   │   │   │   ├── valtrack.h +│   │   │   │   ├── value-prof.h +│   │   │   │   ├── value-range.h +│   │   │   │   ├── varasm.h +│   │   │   │   ├── vec.h +│   │   │   │   ├── vec-perm-indices.h +│   │   │   │   ├── vector-builder.h +│   │   │   │   ├── version.h +│   │   │   │   ├── vmsdbg.h +│   │   │   │   ├── vr-values.h +│   │   │   │   ├── vtable-verify.h +│   │   │   │   ├── wide-int-bitmask.h +│   │   │   │   ├── wide-int.h +│   │   │   │   ├── wide-int-print.h +│   │   │   │   ├── xcoff.h +│   │   │   │   └── xcoffout.h +│   │   │   └── gtype.state +│   │   ├── crtbegin.o +│   │   ├── crtend.o +│   │   ├── libgcc.a +│   │   └── libgcov.a +│   ├── libexec +│   │   └── gcc +│   │   └── x86_64-elf +│   │   └── 10.1.0 +│   │   ├── install-tools +│   │   │   ├── fixincl +│   │   │   ├── fixinc.sh +│   │   │   ├── mkheaders +│   │   │   └── mkinstalldirs +│   │   ├── plugin +│   │   │   └── gengtype +│   │   ├── cc1 +│   │   ├── cc1plus +│   │   ├── collect2 +│   │   ├── liblto_plugin.la +│   │   ├── liblto_plugin.so -> liblto_plugin.so.0.0.0 +│   │   ├── liblto_plugin.so.0 -> liblto_plugin.so.0.0.0 +│   │   ├── liblto_plugin.so.0.0.0 +│   │   ├── lto1 +│   │   └── lto-wrapper +│   ├── share +│   │   ├── info +│   │   │   ├── as.info +│   │   │   ├── bfd.info +│   │   │   ├── binutils.info +│   │   │   ├── cpp.info +│   │   │   ├── cppinternals.info +│   │   │   ├── dir +│   │   │   ├── gcc.info +│   │   │   ├── gccinstall.info +│   │   │   ├── gccint.info +│   │   │   ├── gprof.info +│   │   │   └── ld.info +│   │   └── man +│   │   ├── man1 +│   │   │   ├── x86_64-elf-addr2line.1 +│   │   │   ├── x86_64-elf-ar.1 +│   │   │   ├── x86_64-elf-as.1 +│   │   │   ├── x86_64-elf-c++filt.1 +│   │   │   ├── x86_64-elf-cpp.1 +│   │   │   ├── x86_64-elf-dlltool.1 +│   │   │   ├── x86_64-elf-elfedit.1 +│   │   │   ├── x86_64-elf-g++.1 +│   │   │   ├── x86_64-elf-gcc.1 +│   │   │   ├── x86_64-elf-gcov.1 +│   │   │   ├── x86_64-elf-gcov-dump.1 +│   │   │   ├── x86_64-elf-gcov-tool.1 +│   │   │   ├── x86_64-elf-gprof.1 +│   │   │   ├── x86_64-elf-ld.1 +│   │   │   ├── x86_64-elf-lto-dump.1 +│   │   │   ├── x86_64-elf-nm.1 +│   │   │   ├── x86_64-elf-objcopy.1 +│   │   │   ├── x86_64-elf-objdump.1 +│   │   │   ├── x86_64-elf-ranlib.1 +│   │   │   ├── x86_64-elf-readelf.1 +│   │   │   ├── x86_64-elf-size.1 +│   │   │   ├── x86_64-elf-strings.1 +│   │   │   ├── x86_64-elf-strip.1 +│   │   │   ├── x86_64-elf-windmc.1 +│   │   │   └── x86_64-elf-windres.1 +│   │   └── man7 +│   │   ├── fsf-funding.7 +│   │   ├── gfdl.7 +│   │   └── gpl.7 +│   └── x86_64-elf +│   └── lib +│   └── ldscripts +│   ├── elf32_x86_64.x +│   ├── elf32_x86_64.xbn +│   ├── elf32_x86_64.xc +│   ├── elf32_x86_64.xce +│   ├── elf32_x86_64.xd +│   ├── elf32_x86_64.xdc +│   ├── elf32_x86_64.xdce +│   ├── elf32_x86_64.xde +│   ├── elf32_x86_64.xdw +│   ├── elf32_x86_64.xdwe +│   ├── elf32_x86_64.xe +│   ├── elf32_x86_64.xn +│   ├── elf32_x86_64.xr +│   ├── elf32_x86_64.xs +│   ├── elf32_x86_64.xsc +│   ├── elf32_x86_64.xsce +│   ├── elf32_x86_64.xse +│   ├── elf32_x86_64.xsw +│   ├── elf32_x86_64.xswe +│   ├── elf32_x86_64.xu +│   ├── elf32_x86_64.xw +│   ├── elf32_x86_64.xwe +│   ├── elf_i386.x +│   ├── elf_i386.xbn +│   ├── elf_i386.xc +│   ├── elf_i386.xce +│   ├── elf_i386.xd +│   ├── elf_i386.xdc +│   ├── elf_i386.xdce +│   ├── elf_i386.xde +│   ├── elf_i386.xdw +│   ├── elf_i386.xdwe +│   ├── elf_i386.xe +│   ├── elf_i386.xn +│   ├── elf_i386.xr +│   ├── elf_i386.xs +│   ├── elf_i386.xsc +│   ├── elf_i386.xsce +│   ├── elf_i386.xse +│   ├── elf_i386.xsw +│   ├── elf_i386.xswe +│   ├── elf_i386.xu +│   ├── elf_i386.xw +│   ├── elf_i386.xwe +│   ├── elf_iamcu.x +│   ├── elf_iamcu.xbn +│   ├── elf_iamcu.xc +│   ├── elf_iamcu.xce +│   ├── elf_iamcu.xd +│   ├── elf_iamcu.xdc +│   ├── elf_iamcu.xdce +│   ├── elf_iamcu.xde +│   ├── elf_iamcu.xdw +│   ├── elf_iamcu.xdwe +│   ├── elf_iamcu.xe +│   ├── elf_iamcu.xn +│   ├── elf_iamcu.xr +│   ├── elf_iamcu.xs +│   ├── elf_iamcu.xsc +│   ├── elf_iamcu.xsce +│   ├── elf_iamcu.xse +│   ├── elf_iamcu.xsw +│   ├── elf_iamcu.xswe +│   ├── elf_iamcu.xu +│   ├── elf_iamcu.xw +│   ├── elf_iamcu.xwe +│   ├── elf_k1om.x +│   ├── elf_k1om.xbn +│   ├── elf_k1om.xc +│   ├── elf_k1om.xce +│   ├── elf_k1om.xd +│   ├── elf_k1om.xdc +│   ├── elf_k1om.xdce +│   ├── elf_k1om.xde +│   ├── elf_k1om.xdw +│   ├── elf_k1om.xdwe +│   ├── elf_k1om.xe +│   ├── elf_k1om.xn +│   ├── elf_k1om.xr +│   ├── elf_k1om.xs +│   ├── elf_k1om.xsc +│   ├── elf_k1om.xsce +│   ├── elf_k1om.xse +│   ├── elf_k1om.xsw +│   ├── elf_k1om.xswe +│   ├── elf_k1om.xu +│   ├── elf_k1om.xw +│   ├── elf_k1om.xwe +│   ├── elf_l1om.x +│   ├── elf_l1om.xbn +│   ├── elf_l1om.xc +│   ├── elf_l1om.xce +│   ├── elf_l1om.xd +│   ├── elf_l1om.xdc +│   ├── elf_l1om.xdce +│   ├── elf_l1om.xde +│   ├── elf_l1om.xdw +│   ├── elf_l1om.xdwe +│   ├── elf_l1om.xe +│   ├── elf_l1om.xn +│   ├── elf_l1om.xr +│   ├── elf_l1om.xs +│   ├── elf_l1om.xsc +│   ├── elf_l1om.xsce +│   ├── elf_l1om.xse +│   ├── elf_l1om.xsw +│   ├── elf_l1om.xswe +│   ├── elf_l1om.xu +│   ├── elf_l1om.xw +│   ├── elf_l1om.xwe +│   ├── elf_x86_64.x +│   ├── elf_x86_64.xbn +│   ├── elf_x86_64.xc +│   ├── elf_x86_64.xce +│   ├── elf_x86_64.xd +│   ├── elf_x86_64.xdc +│   ├── elf_x86_64.xdce +│   ├── elf_x86_64.xde +│   ├── elf_x86_64.xdw +│   ├── elf_x86_64.xdwe +│   ├── elf_x86_64.xe +│   ├── elf_x86_64.xn +│   ├── elf_x86_64.xr +│   ├── elf_x86_64.xs +│   ├── elf_x86_64.xsc +│   ├── elf_x86_64.xsce +│   ├── elf_x86_64.xse +│   ├── elf_x86_64.xsw +│   ├── elf_x86_64.xswe +│   ├── elf_x86_64.xu +│   ├── elf_x86_64.xw +│   └── elf_x86_64.xwe ├── docs │   ├── boot │   │   ├── grub @@ -175,8 +939,9 @@ ├── AUTHORS ├── ChangeLog ├── COPYING +├── cross-cc.tar.xz ├── Makefile ├── ProjectTree └── README.md -39 directories, 115 files +74 directories, 845 files From 1cbc4d8af4d207145d427a143c5a13e976829eb1 Mon Sep 17 00:00:00 2001 From: Adrien Bourmault Date: Mon, 1 Jun 2020 23:21:01 +0200 Subject: [PATCH 6/8] New cross-compiler --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 5cb2a8e..d77610c 100644 --- a/.gitignore +++ b/.gitignore @@ -26,7 +26,7 @@ Makefile.out.2 build/bin/s** .buildconfig #.stylehlp -cross-cc +cross-cc* # Linker output *.ilk From 95aa97bc955a0e188cc1d8f22b133e0535065038 Mon Sep 17 00:00:00 2001 From: Adrien Bourmault Date: Mon, 1 Jun 2020 23:22:31 +0200 Subject: [PATCH 7/8] New cross-compiler --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7916315..8ddf74b 100644 --- a/README.md +++ b/README.md @@ -23,13 +23,13 @@ apt update && apt upgrade apt install grub-pc-bin dosfstools make nasm qemu tree libisl15 parted udisks2 ``` -You also need to have the [x86-64 ELF gcc cross-compiler](https://gitlab.os-k.eu/os-k-team/cross-cc-builder/uploads/fcb43b0cc04c75ff89e40b4b24567484/cross-cc.tar.xz) and its ``bin`` directory in your PATH. - To compile, simply use at the root of this project : ``` make ``` +The OS/K cross-compiler will automatically be installed. + To compile and test, simply use at the root of this project : ``` make test From f3543c2057fcb098e7edce0ab2f72bd39ce4f993 Mon Sep 17 00:00:00 2001 From: Adrien Bourmault Date: Tue, 2 Jun 2020 00:49:11 +0200 Subject: [PATCH 8/8] cross-cc needed to generate dependencies --- Makefile | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 2a10ca4..d6cc7f8 100644 --- a/Makefile +++ b/Makefile @@ -22,7 +22,7 @@ # along with OS/K. If not, see . # #=----------------------------------------------------------------------------=# -.PHONY: all test testnokvm testnosnd test32 debug gdb ddd gdbnokvm dddnokvm installonimage dust clean OS/K run +.PHONY: all test testnokvm testnosnd test32 debug gdb ddd gdbnokvm dddnokvm installonimage dust clean OS/K run update-cross-cc .DELETE_ON_ERROR: $(BINDIR)/kaleid .DEFAULT_GOAL := all @@ -254,7 +254,7 @@ $(KOBJDIR)/drivers/ata.o: $(KALEIDDIR)/drivers/ata.c $(KALEIDDIR)/drivers/ata.as ## DEPENDENCIES MAKEFILE ----------------------------------------------------- # -$(KOBJDIR)/%.d: %.c | $(KOBJDIR) +$(KOBJDIR)/%.d: %.c $(CROSS-CC-DIR)/bin/x86_64-elf-gcc | $(KOBJDIR) @mkdir -p $(shell dirname $@) @$(KCC) -MM -MT $(@:%.d=%.o) -MF $@ $< @echo ${CL2}[$@] ${CL}Dependencies generated.${CL3} @@ -373,3 +373,7 @@ clean: @rm -Rvf ./ProjectTree $(BUILDDIR)/*.log @rm -Rvf $(BINDIR) $(OBJDIR) @echo ${CL2}[$@] ${CL}Cleaned.${CL3} + +update-cross-cc: + @rm -rf cross-cc + @echo ${CL2}[$@] ${CL}Ready to update.${CL3}