diff options
author | Carlin Bingham <cb@viennan.net> | 2017-12-12 05:28:51 +1300 |
---|---|---|
committer | Ori Bernstein <ori@markovcorp.com> | 2017-12-11 12:00:22 -0800 |
commit | 671e174caf52f96683cabb294f77623d55fbb91b (patch) | |
tree | e1de3664bca5ebacd00527e8daa0f4a2bc25761e /mbld | |
parent | 133e0113e998eacbb469db5e773552ed69c85a55 (diff) | |
download | mc-671e174caf52f96683cabb294f77623d55fbb91b.tar.gz |
Correctly invoke the linker when binding with C
If the glue file is a lib, dynlibs is empty when linkcmd() is called
Diffstat (limited to 'mbld')
-rw-r--r-- | mbld/deps.myr | 3 | ||||
-rw-r--r-- | mbld/parse.myr | 1 | ||||
-rw-r--r-- | mbld/types.myr | 1 |
3 files changed, 4 insertions, 1 deletions
diff --git a/mbld/deps.myr b/mbld/deps.myr index 9608182..4941557 100644 --- a/mbld/deps.myr +++ b/mbld/deps.myr @@ -177,6 +177,7 @@ const myrdeps = {b, name, mt for l : ll std.slpush(&dynlibs, l) ;; + mt.isdyn = true elif std.hassuffix(f, config.Objsuffix) depends(g, go, p) else @@ -461,7 +462,7 @@ const linkcmd = {b, n, mt, bin, libs, dynlibs, istest if std.sleq(opt_sys, "osx") std.slpush(&n.cmd, std.sldup("-macosx_version_min")) std.slpush(&n.cmd, std.sldup("10.6")) - elif std.sleq(opt_sys, "linux") && dynlibs.len != 0 + elif std.sleq(opt_sys, "linux") && mt.isdyn std.slpush(&n.cmd, std.sldup("-dynamic-linker")) std.slpush(&n.cmd, std.sldup("/lib64/ld-linux-x86-64.so.2")) ;; diff --git a/mbld/parse.myr b/mbld/parse.myr index 5f82c05..fa1c095 100644 --- a/mbld/parse.myr +++ b/mbld/parse.myr @@ -472,6 +472,7 @@ const myrtarget = {b, p, targ .islib=false, .istest=istest, .isbench=isbench, + .isdyn=false, /* attrs */ .tags=tags, .install=install, diff --git a/mbld/types.myr b/mbld/types.myr index 0d671e6..e170b00 100644 --- a/mbld/types.myr +++ b/mbld/types.myr @@ -46,6 +46,7 @@ pkg bld = islib : bool istest : bool isbench : bool + isdyn : bool install : bool ;; |