commit: 1033b686d00b5f545117bbfab3e3643e3f48a73c
parent 583d84863c517f3a0ccd25b84dd195f9f14cefed
Author: Michael Forney <mforney@mforney.org>
Date: Thu, 8 Jul 2021 22:00:18 -0700
musl: Use architecture-specific crt[in].s
This fixes .init so that gcc's crtbegin can call functions in .ctors.
Diffstat:
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/pkg/musl/gen.lua b/pkg/musl/gen.lua
@@ -116,9 +116,10 @@ for _, lib in ipairs{'libm.a', 'librt.a', 'libpthread.a', 'libcrypt.a', 'libutil
end
local startfiles = {'$outdir/libc.a'}
-for _, obj in ipairs{'crt1.o', 'crti.o', 'crtn.o', 'rcrt1.o', 'Scrt1.o'} do
+for _, src in ipairs{'crt1.c', 'rcrt1.c', 'Scrt1.c', arch..'/crti.s', arch..'/crtn.s'} do
+ local obj = src:gsub('.-(%w*)%.[cs]$', '%1.o')
local out = '$outdir/'..obj
- build('cc', out, {'$srcdir/crt/'..obj:gsub('%.o$', '.c'), '|', '$gendir/deps'}, {cflags='$cflags -D CRT $cflags_nossp'})
+ build('cc', out, {'$srcdir/crt/'..src, '|', '$gendir/deps'}, {cflags='$cflags $cflags_nossp'})
file('lib/'..obj, '644', out)
table.insert(startfiles, out)
end