All Projects → Luukdegram → zwld

Luukdegram / zwld

Licence: MIT license
Experimental wasm linker

Programming Languages

Zig
133 projects

Projects that are alternatives of or similar to zwld

xDL
🔥 xDL is an enhanced implementation of the Android DL series functions.
Stars: ✭ 117 (+216.22%)
Mutual labels:  linker
Small-C
Small-C Compiler, Assembler, Linker, and Library for 16-bit MS-DOS. Includes "YLink", an object file linker for MS-DOS executables.
Stars: ✭ 35 (-5.41%)
Mutual labels:  linker
zalgebra
Linear algebra library for games and real-time graphics.
Stars: ✭ 129 (+248.65%)
Mutual labels:  ziglang
WifiLinker
🔥空祖家的Wifi连接封装库,适用于智能硬件Wifi连接通讯
Stars: ✭ 52 (+40.54%)
Mutual labels:  linker
vox
Vox language compiler. AOT / JIT / Linker. Zero dependencies
Stars: ✭ 288 (+678.38%)
Mutual labels:  linker
scas
SirCmpwn's assembler (and linker)
Stars: ✭ 22 (-40.54%)
Mutual labels:  linker
zetaframe
lightweight zig game framework.
Stars: ✭ 14 (-62.16%)
Mutual labels:  ziglang
Emma
Emma Memory and Mapfile Analyser
Stars: ✭ 21 (-43.24%)
Mutual labels:  linker
Unity.Blog.Override App Delegate
A maintainable way to extend / override app delegate in Unity iOS / OSX standalone player. (Much) more at http://eppz.eu/blog/override-app-delegate-unity-ios-osx-1/
Stars: ✭ 28 (-24.32%)
Mutual labels:  linker
mach-glfw
Ziggified GLFW bindings with 100% API coverage, zero-fuss installation, cross compilation, and more.
Stars: ✭ 186 (+402.7%)
Mutual labels:  ziglang
Exodus
Painless relocation of Linux binaries–and all of their dependencies–without containers.
Stars: ✭ 2,560 (+6818.92%)
Mutual labels:  linker
Project-Iris
Iris systems programming language frontend & backend
Stars: ✭ 14 (-62.16%)
Mutual labels:  linker
zlm
Zig linear mathemathics
Stars: ✭ 67 (+81.08%)
Mutual labels:  ziglang
zonetool
zonetool, a fastfile linker for various Call of Duty titles.
Stars: ✭ 98 (+164.86%)
Mutual labels:  linker
luf
Statically typed, embeddable, scripting language written in Zig.
Stars: ✭ 26 (-29.73%)
Mutual labels:  ziglang
ansi-term
Zig library for dealing with ANSI terminals
Stars: ✭ 25 (-32.43%)
Mutual labels:  ziglang
zig-args
Simple-to-use argument parser with struct-based config
Stars: ✭ 106 (+186.49%)
Mutual labels:  ziglang
zig-gamedev
Building game development ecosystem for @ziglang!
Stars: ✭ 1,059 (+2762.16%)
Mutual labels:  ziglang
ccpu
A 8-bit computer made of 74xx series logic gates and memory ICs.
Stars: ✭ 31 (-16.22%)
Mutual labels:  linker
foxwren
Zig WebAssembly Runtime Engine
Stars: ✭ 126 (+240.54%)
Mutual labels:  ziglang

zwld

Experimental linker for wasm object files. The idea is to implement a linker that stays close to wasm-ld in regards to features so that one day this could potentially be used within the Zig self-hosted compiler to incrementally link Zig code with other wasm object files. With zwld now having been upstreamed, the main development of the linker is done directly within the Zig compiler. Features and improvements will be backported to zwld at one point. Until then, this repository is mostly inactive.

While there's no official specification for linking, zwld follows the wasm tool-convention closely. The initial goal is to support mvp features and have a base skeleton which would provide us with enough information on how to integrate this within the Zig compiler. The first step is to make static linking work as specified by tool-convention, once that is completed, dynamic linking will be tackled.

Usage

Usage: zwld [options] [files...] -o [path]

Options:
-h, --help                         Print this help and exit
-o [path]                          Output path of the binary
--entry <entry>                    Name of entry point symbol
--global-base=<value>              Value from where the global data will start
--import-memory                    Import memory from the host environment
--import-table                     Import function table from the host environment
--initial-memory=<value>           Initial size of the linear memory
--max-memory=<value>               Maximum size of the linear memory
--merge-data-segments              Enable merging data segments
--no-entry                         Do not output any entry point
--stack-first                      Place stack at start of linear memory instead of after data
--stack-size=<value>               Specifies the stack size in bytes

Building

zwld uses the latest Zig, which can either be built from source or you can download the latest binary. Zwld can then be built running the following command:

zig build [-Denable-logging]

Right now zwld only contains debug logging, which is hidden behind the enable-logging flag. It is set to false by default.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].