mirror of https://github.com/0Nera/BMOSP.git
Теперь все модули - статично собираются
This commit is contained in:
parent
2de168dc78
commit
dd45b2ef6c
10
kernel/mod.c
10
kernel/mod.c
|
@ -33,8 +33,12 @@ uint64_t bootpng_size;
|
||||||
static void *elf_entry(elf64_header_t *module_bin) {
|
static void *elf_entry(elf64_header_t *module_bin) {
|
||||||
// Приводим заголовок ELF файла к типу elf64_header_t
|
// Приводим заголовок ELF файла к типу elf64_header_t
|
||||||
elf64_header_t *elf_header = (elf64_header_t *)module_bin;
|
elf64_header_t *elf_header = (elf64_header_t *)module_bin;
|
||||||
LOG("(uint64_t)elf_header->e_entry = 0x%x\n",
|
LOG("(uint64_t)elf_header->e_entry = 0x%x, type = %u\n",
|
||||||
(uint64_t)elf_header->e_entry);
|
(uint64_t)elf_header->e_entry, elf_header->e_type);
|
||||||
|
if (elf_header->e_type != 2) {
|
||||||
|
fb_printf("\t\tОшибка! Модуль неправильно собран!\n");
|
||||||
|
for (;;) {}
|
||||||
|
}
|
||||||
// Возвращаем указатель на точку входа
|
// Возвращаем указатель на точку входа
|
||||||
return (void *)((uint64_t)elf_header->e_entry + (uint64_t)module_bin);
|
return (void *)((uint64_t)elf_header->e_entry + (uint64_t)module_bin);
|
||||||
}
|
}
|
||||||
|
@ -99,7 +103,7 @@ void mod_init( ) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
module_info_t (*module_init)(env_t *env) =
|
module_info_t (*module_init)(env_t * env) =
|
||||||
(module_info_t(*)(env_t * env))
|
(module_info_t(*)(env_t * env))
|
||||||
elf_entry((elf64_header_t *)module_ptr->address);
|
elf_entry((elf64_header_t *)module_ptr->address);
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@ echo "Название: CPUBENCH"
|
||||||
echo "Лицензия: Публичное достояние"
|
echo "Лицензия: Публичное достояние"
|
||||||
|
|
||||||
CC="gcc"
|
CC="gcc"
|
||||||
ARCH_FLAGS="-ffreestanding -O0 -g -fPIC -shared -nostdlib "
|
ARCH_FLAGS="-ffreestanding -O0 -g -fPIC -static -nostdlib "
|
||||||
|
|
||||||
if [ -d "../../sdk" ]; then
|
if [ -d "../../sdk" ]; then
|
||||||
CC="../../sdk/bin/x86_64-elf-gcc"
|
CC="../../sdk/bin/x86_64-elf-gcc"
|
||||||
|
|
|
@ -3,7 +3,7 @@ echo "Название: Hello world"
|
||||||
echo "Лицензия: Публичное достояние"
|
echo "Лицензия: Публичное достояние"
|
||||||
|
|
||||||
CC="gcc"
|
CC="gcc"
|
||||||
ARCH_FLAGS="-ffreestanding -O0 -g -fPIC -shared -nostdlib "
|
ARCH_FLAGS="-ffreestanding -O0 -g -fPIC -static -nostdlib "
|
||||||
|
|
||||||
if [ -d "../../sdk" ]; then
|
if [ -d "../../sdk" ]; then
|
||||||
CC="../../sdk/bin/x86_64-elf-gcc"
|
CC="../../sdk/bin/x86_64-elf-gcc"
|
||||||
|
|
|
@ -3,7 +3,7 @@ echo "Название: Мелодия из тетриса"
|
||||||
echo "Лицензия: Публичное достояние"
|
echo "Лицензия: Публичное достояние"
|
||||||
|
|
||||||
CC="gcc"
|
CC="gcc"
|
||||||
ARCH_FLAGS="-ffreestanding -O0 -g -fPIC -shared -nostdlib "
|
ARCH_FLAGS="-ffreestanding -O0 -g -fPIC -static -nostdlib "
|
||||||
|
|
||||||
if [ -d "../../sdk" ]; then
|
if [ -d "../../sdk" ]; then
|
||||||
CC="../../sdk/bin/x86_64-elf-gcc"
|
CC="../../sdk/bin/x86_64-elf-gcc"
|
||||||
|
|
|
@ -4,7 +4,7 @@ echo "Лицензия: Публичное достояние"
|
||||||
|
|
||||||
|
|
||||||
CC="gcc"
|
CC="gcc"
|
||||||
ARCH_FLAGS="-ffreestanding -O0 -g -fPIC -shared -nostdlib "
|
ARCH_FLAGS="-ffreestanding -O0 -g -fPIC -static -nostdlib "
|
||||||
|
|
||||||
if [ -d "../../sdk" ]; then
|
if [ -d "../../sdk" ]; then
|
||||||
CC="../../sdk/bin/x86_64-elf-gcc"
|
CC="../../sdk/bin/x86_64-elf-gcc"
|
||||||
|
|
|
@ -3,7 +3,7 @@ echo "Название: SIMD"
|
||||||
echo "Лицензия: Публичное достояние"
|
echo "Лицензия: Публичное достояние"
|
||||||
|
|
||||||
CC="gcc"
|
CC="gcc"
|
||||||
ARCH_FLAGS="-ffreestanding -O0 -g -fPIC -shared -nostdlib "
|
ARCH_FLAGS="-ffreestanding -O0 -g -fPIC -static -nostdlib "
|
||||||
|
|
||||||
if [ -d "../../sdk" ]; then
|
if [ -d "../../sdk" ]; then
|
||||||
CC="../../sdk/bin/x86_64-elf-gcc"
|
CC="../../sdk/bin/x86_64-elf-gcc"
|
||||||
|
|
Loading…
Reference in New Issue