mirror of
https://github.com/EnderIce2/Fennix.git
synced 2025-05-28 15:34:31 +00:00
refactor: fix release building for aarch64 and arm
Signed-off-by: EnderIce2 <enderice2@protonmail.com>
This commit is contained in:
parent
75c8dbd31b
commit
3af04bce80
1
.github/workflows/makefile.yml
vendored
1
.github/workflows/makefile.yml
vendored
@ -173,7 +173,6 @@ jobs:
|
||||
with:
|
||||
folder: doxygen-doc
|
||||
|
||||
|
||||
compile_amd64:
|
||||
name: Build amd64
|
||||
runs-on: ubuntu-latest
|
||||
|
@ -54,7 +54,7 @@ else ifeq ($(OSARCH), i386)
|
||||
CFLAGS += -march=pentium -m32 -mno-red-zone
|
||||
LDFLAGS += -Tarch/i386/linker.ld
|
||||
else ifeq ($(OSARCH), arm)
|
||||
CFLAGS += -march=armv7-a -mfloat-abi=softfp
|
||||
CFLAGS += -march=armv7-a -mfloat-abi=softfp -ggdb3
|
||||
LDFLAGS += -Tarch/arm/linker.ld
|
||||
WARNCFLAG += -w
|
||||
else ifeq ($(OSARCH), aarch64)
|
||||
|
@ -15,6 +15,9 @@
|
||||
along with Fennix Kernel. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
OUTPUT_FORMAT("elf64-littleaarch64")
|
||||
OUTPUT_ARCH(aarch64)
|
||||
|
||||
ENTRY(_start)
|
||||
|
||||
SECTIONS
|
||||
|
@ -15,6 +15,9 @@
|
||||
along with Fennix Kernel. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
OUTPUT_FORMAT("elf32-littlearm")
|
||||
OUTPUT_ARCH(arm)
|
||||
|
||||
ENTRY(_start)
|
||||
|
||||
SECTIONS
|
||||
|
@ -163,8 +163,9 @@ namespace CPU
|
||||
asmv("popl %0"
|
||||
: "=r"(Flags));
|
||||
return Flags & (1 << 9);
|
||||
#elif defined(__aarch64__)
|
||||
#warning "aarch64 not implemented"
|
||||
#else
|
||||
#warning "not implemented"
|
||||
UNUSED(Flags);
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
@ -80,6 +80,7 @@ namespace v0
|
||||
|
||||
#elif defined(__aarch64__)
|
||||
|
||||
UNUSED(cs);
|
||||
stub;
|
||||
|
||||
return 0;
|
||||
|
@ -36,7 +36,9 @@ namespace Memory
|
||||
this->PTEIndex = Address & 0x3FF;
|
||||
Address >>= 10;
|
||||
this->PDEIndex = Address & 0x3FF;
|
||||
#elif defined(__aarch64__)
|
||||
#else
|
||||
#warning "not implemented"
|
||||
UNUSED(Address);
|
||||
#endif
|
||||
|
||||
if (VirtualAddress > PAGE_SIZE)
|
||||
|
@ -330,6 +330,8 @@ namespace Memory
|
||||
MgrLock.Lock(__FUNCTION__);
|
||||
#else
|
||||
#warning "Not implemented"
|
||||
UNUSED(AddressToMap);
|
||||
UNUSED(RealAddress);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -188,6 +188,8 @@ nsa __noreturn void HandleUnrecoverableException(CPU::ExceptionFrame *Frame)
|
||||
#if defined(__amd64__) || defined(__i386__)
|
||||
ExPrint("\x1b[30;41mUnrecoverable exception %#lx on CPU %d\n",
|
||||
Frame->InterruptNumber, core->ID);
|
||||
#else
|
||||
UNUSED(core);
|
||||
#endif
|
||||
#if defined(__amd64__) || defined(__i386__)
|
||||
ExPrint("CR0=%#lx CR2=%#lx CR3=%#lx CR4=%#lx CR8=%#lx\n",
|
||||
|
@ -328,7 +328,7 @@ nsa void DisplayMainScreen(CPU::ExceptionFrame *Frame)
|
||||
#elif defined(__i386__)
|
||||
Frame->eip);
|
||||
#elif defined(__arm__)
|
||||
0);
|
||||
0);
|
||||
#elif defined(__aarch64__)
|
||||
0);
|
||||
#warning "aarch64 not implemented"
|
||||
@ -779,6 +779,9 @@ nsa void DisplayAssertionFailed(const char *File, int Line, const char *Expressi
|
||||
asmv("movl %%cr3, %0" : "=r"(ef.cr3));
|
||||
ef.eip = (uint32_t)fun;
|
||||
ef.ebp = ef.esp = (uint32_t)stk;
|
||||
#else
|
||||
UNUSED(fun);
|
||||
UNUSED(stk);
|
||||
#endif
|
||||
DisplayStackScreen(&ef);
|
||||
|
||||
|
@ -154,6 +154,8 @@ nsa bool UserModeExceptionHandler(CPU::ExceptionFrame *Frame)
|
||||
break;
|
||||
}
|
||||
}
|
||||
#else
|
||||
UNUSED(proc);
|
||||
#endif
|
||||
|
||||
if (sigRet == 0)
|
||||
|
@ -355,8 +355,9 @@ EXTERNC __no_stack_protector NIF void Entry(BootInfo *Info)
|
||||
: "r"(KernelStack)
|
||||
: "memory");
|
||||
asmv("mov $0, %ebp");
|
||||
#elif defined(__aarch64__)
|
||||
#else
|
||||
#warning "Kernel stack is not set!"
|
||||
UNUSED(KernelStack);
|
||||
#endif
|
||||
|
||||
#ifdef DEBUG
|
||||
|
@ -69,6 +69,8 @@ void cmd_top(const char *)
|
||||
Thrd->ID, Thrd->Name, TaskStateStrings[Thrd->State.load()],
|
||||
Thrd->Info.Priority, TO_KiB(Thrd->GetSize()),
|
||||
Thrd->Info.UserTime + Thrd->Info.KernelTime);
|
||||
#else
|
||||
UNUSED(Thrd);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
@ -48,6 +48,9 @@ void cmd_uptime(const char *)
|
||||
printf("%lld days, %lld hours, %lld minutes, %lld %s\n",
|
||||
Days, Hours, Minutes, Seconds,
|
||||
Seconds == 1 ? "second" : "seconds");
|
||||
#else
|
||||
#warning "not implemented"
|
||||
UNUSED(Days);
|
||||
#endif
|
||||
}
|
||||
else
|
||||
|
@ -1091,6 +1091,9 @@ static int linux_mprotect(SysFrm *, void *addr, size_t len, int prot)
|
||||
pte->UserSupervisor = p_Read;
|
||||
pte->ReadWrite = p_Write;
|
||||
// pte->ExecuteDisable = p_Exec;
|
||||
#else
|
||||
UNUSED(p_Read);
|
||||
UNUSED(p_Write);
|
||||
#endif
|
||||
|
||||
debug("Changed permissions of page %#lx to %s %s %s %s",
|
||||
@ -4332,7 +4335,9 @@ uintptr_t HandleLinuxSyscalls(SyscallsFrame *Frame)
|
||||
|
||||
debug("< [%d:\"%s\"] = %d", Frame->ax, Syscall.Name, sc_ret);
|
||||
return sc_ret;
|
||||
#elif defined(__aarch64__)
|
||||
#else
|
||||
UNUSED(LinuxSyscallsTableAMD64);
|
||||
UNUSED(LinuxSyscallsTableI386);
|
||||
return -linux_ENOSYS;
|
||||
#endif
|
||||
|
||||
|
@ -320,8 +320,9 @@ namespace Tasking
|
||||
this->Registers.rsp = StackPointerReg;
|
||||
#elif defined(__i386__)
|
||||
this->Registers.esp = StackPointerReg;
|
||||
#elif defined(__aarch64__)
|
||||
#warning "aarch64 not implemented"
|
||||
#else
|
||||
#warning "not implemented"
|
||||
UNUSED(StackPointerReg);
|
||||
#endif
|
||||
|
||||
if (argvLen > 0)
|
||||
|
Loading…
x
Reference in New Issue
Block a user