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) {
|
||||
// Приводим заголовок ELF файла к типу elf64_header_t
|
||||
elf64_header_t *elf_header = (elf64_header_t *)module_bin;
|
||||
LOG("(uint64_t)elf_header->e_entry = 0x%x\n",
|
||||
(uint64_t)elf_header->e_entry);
|
||||
LOG("(uint64_t)elf_header->e_entry = 0x%x, type = %u\n",
|
||||
(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);
|
||||
}
|
||||
|
@ -99,7 +103,7 @@ void mod_init( ) {
|
|||
continue;
|
||||
}
|
||||
|
||||
module_info_t (*module_init)(env_t *env) =
|
||||
module_info_t (*module_init)(env_t * env) =
|
||||
(module_info_t(*)(env_t * env))
|
||||
elf_entry((elf64_header_t *)module_ptr->address);
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ echo "Название: CPUBENCH"
|
|||
echo "Лицензия: Публичное достояние"
|
||||
|
||||
CC="gcc"
|
||||
ARCH_FLAGS="-ffreestanding -O0 -g -fPIC -shared -nostdlib "
|
||||
ARCH_FLAGS="-ffreestanding -O0 -g -fPIC -static -nostdlib "
|
||||
|
||||
if [ -d "../../sdk" ]; then
|
||||
CC="../../sdk/bin/x86_64-elf-gcc"
|
||||
|
|
|
@ -3,7 +3,7 @@ echo "Название: Hello world"
|
|||
echo "Лицензия: Публичное достояние"
|
||||
|
||||
CC="gcc"
|
||||
ARCH_FLAGS="-ffreestanding -O0 -g -fPIC -shared -nostdlib "
|
||||
ARCH_FLAGS="-ffreestanding -O0 -g -fPIC -static -nostdlib "
|
||||
|
||||
if [ -d "../../sdk" ]; then
|
||||
CC="../../sdk/bin/x86_64-elf-gcc"
|
||||
|
|
|
@ -3,7 +3,7 @@ echo "Название: Мелодия из тетриса"
|
|||
echo "Лицензия: Публичное достояние"
|
||||
|
||||
CC="gcc"
|
||||
ARCH_FLAGS="-ffreestanding -O0 -g -fPIC -shared -nostdlib "
|
||||
ARCH_FLAGS="-ffreestanding -O0 -g -fPIC -static -nostdlib "
|
||||
|
||||
if [ -d "../../sdk" ]; then
|
||||
CC="../../sdk/bin/x86_64-elf-gcc"
|
||||
|
|
|
@ -4,7 +4,7 @@ echo "Лицензия: Публичное достояние"
|
|||
|
||||
|
||||
CC="gcc"
|
||||
ARCH_FLAGS="-ffreestanding -O0 -g -fPIC -shared -nostdlib "
|
||||
ARCH_FLAGS="-ffreestanding -O0 -g -fPIC -static -nostdlib "
|
||||
|
||||
if [ -d "../../sdk" ]; then
|
||||
CC="../../sdk/bin/x86_64-elf-gcc"
|
||||
|
|
|
@ -3,7 +3,7 @@ echo "Название: SIMD"
|
|||
echo "Лицензия: Публичное достояние"
|
||||
|
||||
CC="gcc"
|
||||
ARCH_FLAGS="-ffreestanding -O0 -g -fPIC -shared -nostdlib "
|
||||
ARCH_FLAGS="-ffreestanding -O0 -g -fPIC -static -nostdlib "
|
||||
|
||||
if [ -d "../../sdk" ]; then
|
||||
CC="../../sdk/bin/x86_64-elf-gcc"
|
||||
|
|
Loading…
Reference in New Issue