Теперь все модули - статично собираются

This commit is contained in:
Aren Elchinyan 2023-12-07 13:17:05 +03:00
parent 2de168dc78
commit dd45b2ef6c
6 changed files with 12 additions and 8 deletions

View File

@ -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);

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"