Commit: 81e26843b3eb98b3dbd657ffc6e5b8790558d4b2
Parent: 6275b3ac55ca2662f744e263337c51a0c6cbdf77
Author: Randy Palamar
Date: Sat, 3 May 2025 07:57:32 -0600
u-config: add freestanding aarch64 support
Diffstat:
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/pkg/u-config/gen.lua b/pkg/u-config/gen.lua
@@ -1,18 +1,29 @@
--- TODO: i686 support?
local arch = ({
+ aarch64='aarch64',
x86_64='x86_64',
})[config.target.platform:match('[^-]*')]
if not arch then arch = 'generic' end
+local freestanding_cflags = {
+ '-fcf-protection=none',
+ '-fno-asynchronous-unwind-tables',
+ '-fno-builtin',
+ '-fno-lto',
+ '-fno-pie',
+ '-fno-stack-protector',
+}
local archcflags = {}
local archldflags = {}
archcflags['generic'] = {}
archldflags['generic'] = {}
-archcflags['x86_64'] = {'-fno-asynchronous-unwind-tables', '-fno-stack-protector', '-fno-builtin'}
+archcflags['x86_64'] = freestanding_cflags
archldflags['x86_64'] = {'-nostdlib', '-Wl,--gc-sections'}
+archcflags['aarch64'] = freestanding_cflags
+archldflags['aarch64'] = {'-nostdlib', '-Wl,--gc-sections'}
local archsrcs = {}
archsrcs['generic'] = {'main_posix.c'}
+archsrcs['aarch64'] = {'main_linux_aarch64.c'}
archsrcs['x86_64'] = {'main_linux_amd64.c'}
cflags(archcflags[arch])