summaryrefslogtreecommitdiff
path: root/pkg/musl
diff options
context:
space:
mode:
authorMichael Forney <mforney@mforney.org>2020-02-12 23:43:05 -0800
committerMichael Forney <mforney@mforney.org>2020-02-13 01:16:11 -0800
commit292af2d420bdb3fed9229b9ecb90d35546ef922f (patch)
treeb962e5b8550a276bef3dbc1472375cb4374051d2 /pkg/musl
parent9056195f43c4a265f2a6ba1d43844d7e7c3ad7b2 (diff)
musl: Build and install libc.so
Although we statically link everything, this is useful for running dynamically linked binaries from pkgsrc.
Diffstat (limited to 'pkg/musl')
-rw-r--r--pkg/musl/gen.lua10
1 files changed, 9 insertions, 1 deletions
diff --git a/pkg/musl/gen.lua b/pkg/musl/gen.lua
index eacd9209..7bffc080 100644
--- a/pkg/musl/gen.lua
+++ b/pkg/musl/gen.lua
@@ -57,8 +57,16 @@ for _, src in pairs(srcmap) do
table.insert(srcs, src)
end
-lib('libc.a', srcs)
+local objs = objects(srcs)
+ar('libc.a', objs)
file('lib/libc.a', '644', '$outdir/libc.a')
+exe('libc.so', {'ldso/dlstart.c', 'ldso/dynlink.c', objs}, nil, {
+ ldflags='$ldflags -nostdlib -shared -Wl,-e,_dlstart',
+ ldlibs='-lgcc',
+})
+file('lib/libc.so', '755', '$outdir/libc.so')
+sym('lib/ld-musl-'..arch..'.so.1', 'libc.so')
+sym('bin/ldd', '../lib/libc.so')
local startfiles = {'$outdir/libc.a'}
for _, obj in ipairs{'crt1.o', 'crti.o', 'crtn.o', 'rcrt1.o'} do