mirror of
https://github.com/Fennix-Project/Userspace.git
synced 2025-05-28 15:34:26 +00:00
Update filesystem structure
This commit is contained in:
parent
78cfe17749
commit
d9485978bb
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,6 +1,5 @@
|
|||||||
*.o
|
*.o
|
||||||
*.map
|
*.map
|
||||||
*.fex
|
*.fex
|
||||||
*.elf
|
|
||||||
out/
|
out/
|
||||||
.dccache
|
.dccache
|
||||||
|
4
.vscode/c_cpp_properties.json
vendored
4
.vscode/c_cpp_properties.json
vendored
@ -4,7 +4,7 @@
|
|||||||
"name": "Fennix x64 (Linux, GCC, debug)",
|
"name": "Fennix x64 (Linux, GCC, debug)",
|
||||||
"includePath": [
|
"includePath": [
|
||||||
"${workspaceFolder}/libc/include/**",
|
"${workspaceFolder}/libc/include/**",
|
||||||
"${workspaceFolder}/out/system/include/**",
|
"${workspaceFolder}/out/usr/include/**",
|
||||||
"${workspaceFolder}/libs/include/**",
|
"${workspaceFolder}/libs/include/**",
|
||||||
"${workspaceFolder}/libs/include"
|
"${workspaceFolder}/libs/include"
|
||||||
],
|
],
|
||||||
@ -55,7 +55,7 @@
|
|||||||
"name": "Fennix x32 (Linux, GCC, debug)",
|
"name": "Fennix x32 (Linux, GCC, debug)",
|
||||||
"includePath": [
|
"includePath": [
|
||||||
"${workspaceFolder}/libc/include/**",
|
"${workspaceFolder}/libc/include/**",
|
||||||
"${workspaceFolder}/out/system/include/**",
|
"${workspaceFolder}/out/usr/include/**",
|
||||||
"${workspaceFolder}/libs/include/**",
|
"${workspaceFolder}/libs/include/**",
|
||||||
"${workspaceFolder}/libs/include"
|
"${workspaceFolder}/libs/include"
|
||||||
],
|
],
|
||||||
|
12
.vscode/launch.json
vendored
12
.vscode/launch.json
vendored
@ -2,10 +2,10 @@
|
|||||||
"version": "0.2.0",
|
"version": "0.2.0",
|
||||||
"configurations": [
|
"configurations": [
|
||||||
{
|
{
|
||||||
"name": "/system/init.elf",
|
"name": "/init",
|
||||||
"type": "cppdbg",
|
"type": "cppdbg",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
"program": "${workspaceRoot}/out/system/init.elf",
|
"program": "${workspaceRoot}/out/init",
|
||||||
"cwd": "${workspaceRoot}",
|
"cwd": "${workspaceRoot}",
|
||||||
"args": [],
|
"args": [],
|
||||||
"targetArchitecture": "x64",
|
"targetArchitecture": "x64",
|
||||||
@ -31,16 +31,16 @@
|
|||||||
"description": "Make breakpoint pending on future shared library load."
|
"description": "Make breakpoint pending on future shared library load."
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"text": "file ${workspaceRoot}/out/system/init.elf",
|
"text": "file ${workspaceRoot}/out/init",
|
||||||
"description": "Load binary."
|
"description": "Load binary."
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "/system/bin/doom.elf",
|
"name": "/bin/doom",
|
||||||
"type": "cppdbg",
|
"type": "cppdbg",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
"program": "${workspaceRoot}/out/system/bin/doom.elf",
|
"program": "${workspaceRoot}/out/bin/doom",
|
||||||
"cwd": "${workspaceRoot}",
|
"cwd": "${workspaceRoot}",
|
||||||
"args": [],
|
"args": [],
|
||||||
"targetArchitecture": "x64",
|
"targetArchitecture": "x64",
|
||||||
@ -66,7 +66,7 @@
|
|||||||
"description": "Make breakpoint pending on future shared library load."
|
"description": "Make breakpoint pending on future shared library load."
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"text": "file ${workspaceRoot}/out/system/bin/doom.elf",
|
"text": "file ${workspaceRoot}/out/bin/doom",
|
||||||
"description": "Load binary."
|
"description": "Load binary."
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
7
Makefile
7
Makefile
@ -6,10 +6,9 @@ ifeq ($(NEWLIB),1)
|
|||||||
make -C mlibc build
|
make -C mlibc build
|
||||||
else
|
else
|
||||||
mkdir -p out
|
mkdir -p out
|
||||||
mkdir -p out/system
|
mkdir -p out/lib
|
||||||
mkdir -p out/system/lib
|
mkdir -p out/bin
|
||||||
mkdir -p out/system/bin
|
mkdir -p out/usr/include
|
||||||
mkdir -p out/system/include
|
|
||||||
make -C libc build
|
make -C libc build
|
||||||
make -C libs build
|
make -C libs build
|
||||||
make -C apps build
|
make -C apps build
|
||||||
|
@ -1,15 +1,13 @@
|
|||||||
|
WORKSPACE := ../../../
|
||||||
|
|
||||||
# Config file
|
# Config file
|
||||||
include ../../../../Makefile.conf
|
include ../$(WORKSPACE)Makefile.conf
|
||||||
|
|
||||||
FILENAME = echo.elf
|
CC = ../$(WORKSPACE)$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)gcc
|
||||||
|
CPP = ../$(WORKSPACE)$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)g++
|
||||||
SYSROOT = --sysroot=../../../out/system/
|
LD = ../$(WORKSPACE)$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)ld
|
||||||
|
AS = ../$(WORKSPACE)$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)as
|
||||||
CC = ../../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)gcc
|
OBJDUMP = ../$(WORKSPACE)$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)objdump
|
||||||
CPP = ../../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)g++
|
|
||||||
LD = ../../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)ld
|
|
||||||
AS = ../../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)as
|
|
||||||
OBJDUMP = ../../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)objdump
|
|
||||||
|
|
||||||
GIT_COMMIT = $(shell git rev-parse HEAD)
|
GIT_COMMIT = $(shell git rev-parse HEAD)
|
||||||
GIT_COMMIT_SHORT = $(shell git rev-parse --short HEAD)
|
GIT_COMMIT_SHORT = $(shell git rev-parse --short HEAD)
|
||||||
@ -27,36 +25,26 @@ S_SOURCES = $(shell find ./ -type f -name '*.S' -not -path "./arch/amd64/*" -not
|
|||||||
C_SOURCES = $(shell find ./ -type f -name '*.c' -not -path "./arch/amd64/*" -not -path "./arch/i386/*")
|
C_SOURCES = $(shell find ./ -type f -name '*.c' -not -path "./arch/amd64/*" -not -path "./arch/i386/*")
|
||||||
CPP_SOURCES = $(shell find ./ -type f -name '*.cpp' -not -path "./arch/amd64/*" -not -path "./arch/i386/*")
|
CPP_SOURCES = $(shell find ./ -type f -name '*.cpp' -not -path "./arch/amd64/*" -not -path "./arch/i386/*")
|
||||||
endif
|
endif
|
||||||
HEADERS = $(sort $(dir $(wildcard ../../../out/system/include/*)))
|
|
||||||
OBJ = $(C_SOURCES:.c=.o) $(CPP_SOURCES:.cpp=.o) $(ASM_SOURCES:.asm=.o) $(S_SOURCES:.S=.o) $(PSF_SOURCES:.psf=.o) $(BMP_SOURCES:.bmp=.o)
|
OBJ = $(C_SOURCES:.c=.o) $(CPP_SOURCES:.cpp=.o) $(ASM_SOURCES:.asm=.o) $(S_SOURCES:.S=.o) $(PSF_SOURCES:.psf=.o) $(BMP_SOURCES:.bmp=.o)
|
||||||
INCLUDE_DIR = ../../../out/system/include
|
|
||||||
|
|
||||||
LDFLAGS := -Wl,-Map file.map
|
SYSROOT = --sysroot=$(WORKSPACE)out/
|
||||||
|
FILENAME = echo
|
||||||
|
|
||||||
WARNCFLAG = -Wall -Wextra -Wno-builtin-declaration-mismatch
|
HEADERS = $(sort $(dir $(wildcard $(WORKSPACE)out/usr/include/*)))
|
||||||
|
|
||||||
CFLAGS := \
|
LDFLAGS =
|
||||||
-I$(INCLUDE_DIR) \
|
CFLAGS = -I$(WORKSPACE)out/usr/include \
|
||||||
-DGIT_COMMIT='"$(GIT_COMMIT)"' \
|
-DGIT_COMMIT='"$(GIT_COMMIT)"' \
|
||||||
-DGIT_COMMIT_SHORT='"$(GIT_COMMIT_SHORT)"'
|
-DGIT_COMMIT_SHORT='"$(GIT_COMMIT_SHORT)"'
|
||||||
|
WARNCFLAG = -Wall -Wextra
|
||||||
|
|
||||||
ifeq ($(OSARCH), amd64)
|
ifeq ($(DEBUG), 1)
|
||||||
|
CFLAGS += -DDEBUG -ggdb3 -O0 -fdiagnostics-color=always -fverbose-asm
|
||||||
CFLAGS += -march=x86-64
|
LDFLAGS += -ggdb3 -O0
|
||||||
|
|
||||||
else ifeq ($(OSARCH), i386)
|
|
||||||
|
|
||||||
CFLAGS += -march=i386
|
|
||||||
|
|
||||||
else ifeq ($(OSARCH), aarch64)
|
|
||||||
|
|
||||||
CFLAGS += -pipe
|
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
build: $(FILENAME)
|
build: $(FILENAME)
|
||||||
$(OBJDUMP) -d $(FILENAME) > file_dump.map
|
mv $(FILENAME) $(WORKSPACE)out/bin/$(FILENAME)
|
||||||
mv $(FILENAME) ../../../out/system/bin/$(FILENAME)
|
|
||||||
|
|
||||||
$(FILENAME): $(OBJ)
|
$(FILENAME): $(OBJ)
|
||||||
$(info Linking $@)
|
$(info Linking $@)
|
||||||
@ -72,13 +60,7 @@ $(FILENAME): $(OBJ)
|
|||||||
|
|
||||||
%.o: %.S
|
%.o: %.S
|
||||||
$(info Compiling $<)
|
$(info Compiling $<)
|
||||||
ifeq ($(OSARCH), amd64)
|
|
||||||
$(AS) -o $@ $<
|
$(AS) -o $@ $<
|
||||||
else ifeq ($(OSARCH), i386)
|
|
||||||
$(AS) -o $@ $<
|
|
||||||
else ifeq ($(OSARCH), aarch64)
|
|
||||||
$(AS) -o $@ $<
|
|
||||||
endif
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f *.o file.map file_dump.map $(OBJ)
|
rm -f $(OBJ)
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
build:
|
build:
|
||||||
make -C init build
|
make -C init build
|
||||||
make -C sh build
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
make -C init clean
|
make -C init clean
|
||||||
make -C sh clean
|
|
||||||
|
@ -1,15 +1,13 @@
|
|||||||
|
WORKSPACE := ../../../
|
||||||
|
|
||||||
# Config file
|
# Config file
|
||||||
include ../../../../Makefile.conf
|
include ../$(WORKSPACE)Makefile.conf
|
||||||
|
|
||||||
FILENAME = init.elf
|
CC = ../$(WORKSPACE)$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)gcc
|
||||||
|
CPP = ../$(WORKSPACE)$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)g++
|
||||||
SYSROOT = --sysroot=../../../out/system/
|
LD = ../$(WORKSPACE)$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)ld
|
||||||
|
AS = ../$(WORKSPACE)$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)as
|
||||||
CC = ../../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)gcc
|
OBJDUMP = ../$(WORKSPACE)$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)objdump
|
||||||
CPP = ../../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)g++
|
|
||||||
LD = ../../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)ld
|
|
||||||
AS = ../../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)as
|
|
||||||
OBJDUMP = ../../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)objdump
|
|
||||||
|
|
||||||
GIT_COMMIT = $(shell git rev-parse HEAD)
|
GIT_COMMIT = $(shell git rev-parse HEAD)
|
||||||
GIT_COMMIT_SHORT = $(shell git rev-parse --short HEAD)
|
GIT_COMMIT_SHORT = $(shell git rev-parse --short HEAD)
|
||||||
@ -27,25 +25,21 @@ S_SOURCES = $(shell find ./ -type f -name '*.S' -not -path "./arch/amd64/*" -not
|
|||||||
C_SOURCES = $(shell find ./ -type f -name '*.c' -not -path "./arch/amd64/*" -not -path "./arch/i386/*")
|
C_SOURCES = $(shell find ./ -type f -name '*.c' -not -path "./arch/amd64/*" -not -path "./arch/i386/*")
|
||||||
CPP_SOURCES = $(shell find ./ -type f -name '*.cpp' -not -path "./arch/amd64/*" -not -path "./arch/i386/*")
|
CPP_SOURCES = $(shell find ./ -type f -name '*.cpp' -not -path "./arch/amd64/*" -not -path "./arch/i386/*")
|
||||||
endif
|
endif
|
||||||
HEADERS = $(sort $(dir $(wildcard ../../../out/system/include/*)))
|
|
||||||
OBJ = $(C_SOURCES:.c=.o) $(CPP_SOURCES:.cpp=.o) $(ASM_SOURCES:.asm=.o) $(S_SOURCES:.S=.o) $(PSF_SOURCES:.psf=.o) $(BMP_SOURCES:.bmp=.o)
|
OBJ = $(C_SOURCES:.c=.o) $(CPP_SOURCES:.cpp=.o) $(ASM_SOURCES:.asm=.o) $(S_SOURCES:.S=.o) $(PSF_SOURCES:.psf=.o) $(BMP_SOURCES:.bmp=.o)
|
||||||
INCLUDE_DIR = ../../../out/system/include
|
|
||||||
|
|
||||||
LDFLAGS := -Wl,-Map file.map
|
SYSROOT = --sysroot=$(WORKSPACE)out/
|
||||||
|
FILENAME = init
|
||||||
|
|
||||||
WARNCFLAG = -Wall -Wextra -Wno-main
|
HEADERS = $(sort $(dir $(wildcard $(WORKSPACE)out/usr/include/*)))
|
||||||
|
|
||||||
CFLAGS := \
|
LDFLAGS =
|
||||||
-I$(INCLUDE_DIR) \
|
CFLAGS = -I$(WORKSPACE)out/usr/include \
|
||||||
-DGIT_COMMIT='"$(GIT_COMMIT)"' \
|
-DGIT_COMMIT='"$(GIT_COMMIT)"' \
|
||||||
-DGIT_COMMIT_SHORT='"$(GIT_COMMIT_SHORT)"'
|
-DGIT_COMMIT_SHORT='"$(GIT_COMMIT_SHORT)"'
|
||||||
|
WARNCFLAG = -Wall -Wextra
|
||||||
|
|
||||||
ifeq ($(OSARCH), amd64)
|
ifneq ($(OSARCH), aarch64)
|
||||||
CFLAGS += -march=x86-64 -fstack-protector-all -fstack-clash-protection
|
CFLAGS += -fstack-protector-all -fstack-clash-protection
|
||||||
else ifeq ($(OSARCH), i386)
|
|
||||||
CFLAGS += -march=i386
|
|
||||||
else ifeq ($(OSARCH), aarch64)
|
|
||||||
CFLAGS += -pipe
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(DEBUG), 1)
|
ifeq ($(DEBUG), 1)
|
||||||
@ -54,8 +48,7 @@ ifeq ($(DEBUG), 1)
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
build: $(FILENAME)
|
build: $(FILENAME)
|
||||||
$(OBJDUMP) -d $(FILENAME) > file_dump.map
|
mv $(FILENAME) $(WORKSPACE)out/bin/$(FILENAME)
|
||||||
mv $(FILENAME) ../../../out/system/$(FILENAME)
|
|
||||||
|
|
||||||
$(FILENAME): $(OBJ)
|
$(FILENAME): $(OBJ)
|
||||||
$(info Linking $@)
|
$(info Linking $@)
|
||||||
@ -67,17 +60,11 @@ $(FILENAME): $(OBJ)
|
|||||||
|
|
||||||
%.o: %.cpp $(HEADERS)
|
%.o: %.cpp $(HEADERS)
|
||||||
$(info Compiling $<)
|
$(info Compiling $<)
|
||||||
$(CPP) $(CFLAGS) $(WARNCFLAG) -std=c++20 -c $< -o $@
|
$(CPP) $(CFLAGS) $(WARNCFLAG) -std=c++20 -fexceptions -c $< -o $@ -fno-rtti
|
||||||
|
|
||||||
%.o: %.S
|
%.o: %.S
|
||||||
$(info Compiling $<)
|
$(info Compiling $<)
|
||||||
ifeq ($(OSARCH), amd64)
|
|
||||||
$(AS) -o $@ $<
|
$(AS) -o $@ $<
|
||||||
else ifeq ($(OSARCH), i386)
|
|
||||||
$(AS) -o $@ $<
|
|
||||||
else ifeq ($(OSARCH), aarch64)
|
|
||||||
$(AS) -o $@ $<
|
|
||||||
endif
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f *.o file.map file_dump.map $(OBJ)
|
rm -f $(OBJ)
|
||||||
|
@ -55,7 +55,7 @@ int main(int argc, char *argv[], char *envp[])
|
|||||||
if (pid == 0) // Child process
|
if (pid == 0) // Child process
|
||||||
{
|
{
|
||||||
print("Creating shell process\n");
|
print("Creating shell process\n");
|
||||||
char *args[] = {"/system/bin/sh", "--rcfile /home/default/.shrc", NULL};
|
char *args[] = {"/bin/sh", NULL};
|
||||||
execv(args[0], args);
|
execv(args[0], args);
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
@ -1,78 +0,0 @@
|
|||||||
# Config file
|
|
||||||
include ../../../../Makefile.conf
|
|
||||||
|
|
||||||
FILENAME = sh.elf
|
|
||||||
|
|
||||||
SYSROOT = --sysroot=../../../out/system/
|
|
||||||
|
|
||||||
CC = ../../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)gcc
|
|
||||||
CPP = ../../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)g++
|
|
||||||
LD = ../../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)ld
|
|
||||||
AS = ../../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)as
|
|
||||||
OBJDUMP = ../../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)objdump
|
|
||||||
|
|
||||||
GIT_COMMIT = $(shell git rev-parse HEAD)
|
|
||||||
GIT_COMMIT_SHORT = $(shell git rev-parse --short HEAD)
|
|
||||||
|
|
||||||
ifeq ($(OSARCH), amd64)
|
|
||||||
S_SOURCES = $(shell find ./ -type f -name '*.S' -not -path "./arch/i386/*" -not -path "./arch/aarch64/*")
|
|
||||||
C_SOURCES = $(shell find ./ -type f -name '*.c' -not -path "./arch/i386/*" -not -path "./arch/aarch64/*")
|
|
||||||
CPP_SOURCES = $(shell find ./ -type f -name '*.cpp' -not -path "./arch/i386/*" -not -path "./arch/aarch64/*")
|
|
||||||
else ifeq ($(OSARCH), i386)
|
|
||||||
S_SOURCES = $(shell find ./ -type f -name '*.S' -not -path "./arch/amd64/*" -not -path "./arch/aarch64/*")
|
|
||||||
C_SOURCES = $(shell find ./ -type f -name '*.c' -not -path "./arch/amd64/*" -not -path "./arch/aarch64/*")
|
|
||||||
CPP_SOURCES = $(shell find ./ -type f -name '*.cpp' -not -path "./arch/amd64/*" -not -path "./arch/aarch64/*")
|
|
||||||
else ifeq ($(OSARCH), aarch64)
|
|
||||||
S_SOURCES = $(shell find ./ -type f -name '*.S' -not -path "./arch/amd64/*" -not -path "./arch/i386/*")
|
|
||||||
C_SOURCES = $(shell find ./ -type f -name '*.c' -not -path "./arch/amd64/*" -not -path "./arch/i386/*")
|
|
||||||
CPP_SOURCES = $(shell find ./ -type f -name '*.cpp' -not -path "./arch/amd64/*" -not -path "./arch/i386/*")
|
|
||||||
endif
|
|
||||||
HEADERS = $(sort $(dir $(wildcard ../../../out/system/include/*)))
|
|
||||||
OBJ = $(C_SOURCES:.c=.o) $(CPP_SOURCES:.cpp=.o) $(ASM_SOURCES:.asm=.o) $(S_SOURCES:.S=.o) $(PSF_SOURCES:.psf=.o) $(BMP_SOURCES:.bmp=.o)
|
|
||||||
INCLUDE_DIR = ../../../out/system/include
|
|
||||||
|
|
||||||
LDFLAGS := -Wl,-Map file.map
|
|
||||||
|
|
||||||
WARNCFLAG = -Wall -Wextra -Wno-main
|
|
||||||
|
|
||||||
CFLAGS := \
|
|
||||||
-I$(INCLUDE_DIR) \
|
|
||||||
-DGIT_COMMIT='"$(GIT_COMMIT)"' \
|
|
||||||
-DGIT_COMMIT_SHORT='"$(GIT_COMMIT_SHORT)"'
|
|
||||||
|
|
||||||
ifeq ($(OSARCH), amd64)
|
|
||||||
CFLAGS += -march=x86-64 -fstack-protector-all -fstack-clash-protection
|
|
||||||
else ifeq ($(OSARCH), i386)
|
|
||||||
CFLAGS += -march=i386
|
|
||||||
else ifeq ($(OSARCH), aarch64)
|
|
||||||
CFLAGS += -pipe
|
|
||||||
endif
|
|
||||||
|
|
||||||
build: $(FILENAME)
|
|
||||||
$(OBJDUMP) -d $(FILENAME) > file_dump.map
|
|
||||||
mv $(FILENAME) ../../../out/system/bin/$(FILENAME)
|
|
||||||
|
|
||||||
$(FILENAME): $(OBJ)
|
|
||||||
$(info Linking $@)
|
|
||||||
$(CC) $(LDFLAGS) $(SYSROOT) $(OBJ) -lssp -linit -o $@
|
|
||||||
|
|
||||||
%.o: %.c $(HEADERS)
|
|
||||||
$(info Compiling $<)
|
|
||||||
$(CC) $(CFLAGS) $(WARNCFLAG) -std=c17 -c $< -o $@
|
|
||||||
|
|
||||||
%.o: %.cpp $(HEADERS)
|
|
||||||
$(info Compiling $<)
|
|
||||||
$(CPP) $(CFLAGS) $(WARNCFLAG) -std=c++20 -c $< -o $@
|
|
||||||
|
|
||||||
%.o: %.S
|
|
||||||
$(info Compiling $<)
|
|
||||||
ifeq ($(OSARCH), amd64)
|
|
||||||
$(AS) -o $@ $<
|
|
||||||
else ifeq ($(OSARCH), i386)
|
|
||||||
$(AS) -o $@ $<
|
|
||||||
else ifeq ($(OSARCH), aarch64)
|
|
||||||
$(AS) -o $@ $<
|
|
||||||
endif
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -f *.o file.map file_dump.map $(OBJ)
|
|
@ -1,9 +0,0 @@
|
|||||||
#include <stdlib.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <aux.h>
|
|
||||||
|
|
||||||
int main(int argc, char *argv[], char *envp[])
|
|
||||||
{
|
|
||||||
printf("Hello, world!\n");
|
|
||||||
return 0;
|
|
||||||
}
|
|
@ -1 +1 @@
|
|||||||
Subproject commit 604aaaecbeec33bc72397645bbcee7308ad47a82
|
Subproject commit 677271e4b0fba82089cc4dd13ee118e9e997ccb8
|
@ -6,8 +6,8 @@ NAME=ld
|
|||||||
OBJECT_NAME=$(NAME).so
|
OBJECT_NAME=$(NAME).so
|
||||||
SO_NAME=$(OBJECT_NAME)
|
SO_NAME=$(OBJECT_NAME)
|
||||||
|
|
||||||
OUTPUT_DIR=../../out/system/
|
OUTPUT_DIR=../../out/
|
||||||
SYSROOT = --sysroot=../../out/system/
|
SYSROOT = --sysroot=../../out/
|
||||||
|
|
||||||
CC = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)gcc
|
CC = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)gcc
|
||||||
AS = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)as
|
AS = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)as
|
||||||
|
@ -214,7 +214,7 @@ bool ELFDynamicReallocation(void *ElfFile, void *MemoryImage)
|
|||||||
{
|
{
|
||||||
debug("Library \"%s\" not found, retrying... (%#x)", LibPath, LibNode->Status);
|
debug("Library \"%s\" not found, retrying... (%#x)", LibPath, LibNode->Status);
|
||||||
memset(LibPath, 0, 256);
|
memset(LibPath, 0, 256);
|
||||||
strcpy(LibPath, "/system/lib/");
|
strcpy(LibPath, "/lib/");
|
||||||
strcat(LibPath, Library);
|
strcat(LibPath, Library);
|
||||||
AlreadyTried = true;
|
AlreadyTried = true;
|
||||||
goto LibPathRetry;
|
goto LibPathRetry;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
build:
|
build:
|
||||||
cp -r include/* ../out/system/include
|
cp -r include/* ../out/usr/include
|
||||||
cp ../../Kernel/syscalls.h ../out/system/include/sys
|
cp ../../Kernel/syscalls.h ../out/usr/include/sys
|
||||||
make -C runtime build
|
make -C runtime build
|
||||||
make -C src build
|
make -C src build
|
||||||
make -C ElfInterpreter build
|
make -C ElfInterpreter build
|
||||||
|
@ -22,8 +22,8 @@ CRTI_PATH = $(shell $(CC) -print-file-name=crti.o)
|
|||||||
CRTN_PATH = $(shell $(CC) -print-file-name=crtn.o)
|
CRTN_PATH = $(shell $(CC) -print-file-name=crtn.o)
|
||||||
|
|
||||||
build: $(OBJ)
|
build: $(OBJ)
|
||||||
mv $^ ../../out/system/lib/
|
mv $^ ../../out/lib/
|
||||||
cp $(CRTBEGIN_PATH) $(CRTEND_PATH) $(CRTI_PATH) $(CRTN_PATH) ../../out/system/lib/
|
cp $(CRTBEGIN_PATH) $(CRTEND_PATH) $(CRTI_PATH) $(CRTN_PATH) ../../out/lib/
|
||||||
|
|
||||||
%.o: %.c
|
%.o: %.c
|
||||||
$(info Compiling $<)
|
$(info Compiling $<)
|
||||||
|
@ -1,15 +1,17 @@
|
|||||||
|
WORKSPACE := ../../
|
||||||
|
|
||||||
# Config file
|
# Config file
|
||||||
include ../../../Makefile.conf
|
include ../$(WORKSPACE)Makefile.conf
|
||||||
|
|
||||||
NAME=c
|
NAME=c
|
||||||
|
|
||||||
OBJECT_NAME=lib$(NAME).a
|
OBJECT_NAME=lib$(NAME).a
|
||||||
|
|
||||||
OUTPUT_DIR=../../out/system/lib/
|
OUTPUT_DIR=$(WORKSPACE)out/lib/
|
||||||
|
|
||||||
CC = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)gcc
|
CC = ../$(WORKSPACE)$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)gcc
|
||||||
AS = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)as
|
AS = ../$(WORKSPACE)$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)as
|
||||||
AR = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)ar
|
AR = ../$(WORKSPACE)$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)ar
|
||||||
NASM = /usr/bin/nasm
|
NASM = /usr/bin/nasm
|
||||||
|
|
||||||
C_SOURCES = $(shell find ./ -type f -name '*.c')
|
C_SOURCES = $(shell find ./ -type f -name '*.c')
|
||||||
@ -19,7 +21,7 @@ ASM_SOURCES = $(shell find ./ -type f -name '*.asm')
|
|||||||
OBJ = ${C_SOURCES:.c=.o} ${CPP_SOURCES:.cpp=.o} ${ASM_SOURCES:.asm=.o} ${S_SOURCES:.S=.o}
|
OBJ = ${C_SOURCES:.c=.o} ${CPP_SOURCES:.cpp=.o} ${ASM_SOURCES:.asm=.o} ${S_SOURCES:.S=.o}
|
||||||
|
|
||||||
INCLUDE = ../include
|
INCLUDE = ../include
|
||||||
INCLUDE2 = ../../out/system/include
|
INCLUDE2 = $(WORKSPACE)out/usr/include
|
||||||
|
|
||||||
ifeq ($(OSARCH), amd64)
|
ifeq ($(OSARCH), amd64)
|
||||||
ASM_ARCH := elf64
|
ASM_ARCH := elf64
|
||||||
@ -58,4 +60,4 @@ $(OBJECT_NAME): $(OBJ)
|
|||||||
$(NASM) $< -f $(ASM_ARCH) -o $@
|
$(NASM) $< -f $(ASM_ARCH) -o $@
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f $(OBJ) file_dump.map
|
rm -f $(OBJ)
|
||||||
|
@ -1,14 +1,12 @@
|
|||||||
build:
|
build:
|
||||||
cp -r include/* ../out/system/include
|
cp -r include/* ../out/usr/include
|
||||||
make -C libgcc build
|
make -C libgcc build
|
||||||
make -C libinit build
|
make -C libinit build
|
||||||
make -C libssp build
|
make -C libssp build
|
||||||
make -C libsys build
|
make -C libsys build
|
||||||
make -C libgraph build
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
make -C libgcc clean
|
make -C libgcc clean
|
||||||
make -C libinit clean
|
make -C libinit clean
|
||||||
make -C libssp clean
|
make -C libssp clean
|
||||||
make -C libsys clean
|
make -C libsys clean
|
||||||
make -C libgraph clean
|
|
||||||
|
@ -5,7 +5,7 @@ NAME=gcc
|
|||||||
|
|
||||||
OBJECT_NAME=lib$(NAME).a
|
OBJECT_NAME=lib$(NAME).a
|
||||||
|
|
||||||
OUTPUT_DIR=../../out/system/lib/
|
OUTPUT_DIR=../../out/lib/
|
||||||
|
|
||||||
CC = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)gcc
|
CC = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)gcc
|
||||||
|
|
||||||
|
@ -1,15 +0,0 @@
|
|||||||
#include <libdraw.h>
|
|
||||||
|
|
||||||
#include "../../../Kernel/syscalls.h"
|
|
||||||
|
|
||||||
void DrawRect(int x, int y, int w, int h, int color)
|
|
||||||
{
|
|
||||||
int i, j;
|
|
||||||
for (i = 0; i < w; i++)
|
|
||||||
{
|
|
||||||
for (j = 0; j < h; j++)
|
|
||||||
{
|
|
||||||
// TODO: DrawPixel(x + i, y + j, color);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,58 +0,0 @@
|
|||||||
# Config file
|
|
||||||
include ../../../Makefile.conf
|
|
||||||
|
|
||||||
NAME=graph
|
|
||||||
|
|
||||||
OBJECT_NAME=lib$(NAME).so
|
|
||||||
SO_NAME=$(OBJECT_NAME)
|
|
||||||
|
|
||||||
OUTPUT_DIR=../../out/system/lib/
|
|
||||||
SYSROOT = --sysroot=../../out/system/
|
|
||||||
|
|
||||||
CC = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)gcc
|
|
||||||
AS = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)as
|
|
||||||
AR = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)ar
|
|
||||||
OBJDUMP = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)objdump
|
|
||||||
NASM = /usr/bin/nasm
|
|
||||||
|
|
||||||
C_SOURCES = $(shell find ./ -type f -name '*.c')
|
|
||||||
CPP_SOURCES = $(shell find ./ -type f -name '*.cpp')
|
|
||||||
S_SOURCES = $(shell find ./ -type f -name '*.S')
|
|
||||||
ASM_SOURCES = $(shell find ./ -type f -name '*.asm')
|
|
||||||
OBJ = ${C_SOURCES:.c=.o} ${CPP_SOURCES:.cpp=.o} ${ASM_SOURCES:.asm=.o} ${S_SOURCES:.S=.o}
|
|
||||||
|
|
||||||
ifeq ($(OSARCH), amd64)
|
|
||||||
ASM_ARCH := elf64
|
|
||||||
else ifeq ($(OSARCH), i386)
|
|
||||||
ASM_ARCH := elf32
|
|
||||||
endif
|
|
||||||
|
|
||||||
SIMD_FLAGS := -mno-sse -mno-sse2 -mno-sse3 -mno-ssse3 -mno-sse4.1 -mno-sse4.2 -mno-sse4 -mno-avx -mno-avx2 -mno-avx512f
|
|
||||||
|
|
||||||
CFLAGS := -fPIC -fPIE -I../include -I../../libc/include $(SIMD_FLAGS)
|
|
||||||
|
|
||||||
build: $(OBJECT_NAME)
|
|
||||||
|
|
||||||
$(OBJECT_NAME): $(OBJ)
|
|
||||||
$(info Linking $@)
|
|
||||||
$(CC) -nostdlib -shared -fPIC -fPIE -Wl,-soname,$(SO_NAME) $(SYSROOT) $(OBJ) -o $(OUTPUT_DIR)$@
|
|
||||||
$(OBJDUMP) -d $(OUTPUT_DIR)$@ > file_dump.map
|
|
||||||
|
|
||||||
%.o: %.c
|
|
||||||
$(info Compiling $<)
|
|
||||||
$(CC) $(CFLAGS) -std=c17 -c $< -o $@
|
|
||||||
|
|
||||||
%.o: %.cpp
|
|
||||||
$(info Compiling $<)
|
|
||||||
$(CC) $(CFLAGS) -std=c++20 -c $< -o $@
|
|
||||||
|
|
||||||
%.o: %.S
|
|
||||||
$(info Compiling $<)
|
|
||||||
$(AS) -c $< -o $@
|
|
||||||
|
|
||||||
%.o: %.asm
|
|
||||||
$(info Compiling $<)
|
|
||||||
$(NASM) $< -f $(ASM_ARCH) -o $@
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -f file_dump.map $(OBJ)
|
|
@ -6,8 +6,8 @@ NAME=init
|
|||||||
OBJECT_NAME=lib$(NAME).so
|
OBJECT_NAME=lib$(NAME).so
|
||||||
SO_NAME=$(OBJECT_NAME)
|
SO_NAME=$(OBJECT_NAME)
|
||||||
|
|
||||||
OUTPUT_DIR=../../out/system/lib/
|
OUTPUT_DIR=../../out/lib/
|
||||||
SYSROOT = --sysroot=../../out/system/
|
SYSROOT = --sysroot=../../out/
|
||||||
|
|
||||||
CC = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)gcc
|
CC = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)gcc
|
||||||
AS = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)as
|
AS = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)as
|
||||||
|
@ -5,7 +5,7 @@ NAME=ssp
|
|||||||
|
|
||||||
OBJECT_NAME=lib$(NAME).a
|
OBJECT_NAME=lib$(NAME).a
|
||||||
|
|
||||||
OUTPUT_DIR=../../out/system/lib/
|
OUTPUT_DIR=../../out/lib/
|
||||||
|
|
||||||
CC = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)gcc
|
CC = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)gcc
|
||||||
AR = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)ar
|
AR = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)ar
|
||||||
|
@ -6,8 +6,8 @@ NAME=sys
|
|||||||
OBJECT_NAME=lib$(NAME).so
|
OBJECT_NAME=lib$(NAME).so
|
||||||
SO_NAME=$(OBJECT_NAME)
|
SO_NAME=$(OBJECT_NAME)
|
||||||
|
|
||||||
OUTPUT_DIR=../../out/system/lib/
|
OUTPUT_DIR=../../out/lib/
|
||||||
SYSROOT = --sysroot=../../out/system/
|
SYSROOT = --sysroot=../../out/
|
||||||
|
|
||||||
CC = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)gcc
|
CC = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)gcc
|
||||||
AS = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)as
|
AS = ../../../$(TC_COMPILER_PATH)/$(TC_COMPILER_ARCH)as
|
||||||
|
Loading…
x
Reference in New Issue
Block a user