Comments (10)
It is actually pretty easy to use mold instead of /usr/bin/ld now thanks to the feature that I added recently. Please see https://github.com/rui314/mold#how-to-use. In short, if you run mold -run cargo build
instead of cargo build
, cargo starts using mold instead of /usr/bin/ld.
from mold.
that's certified poggers mate
from mold.
Curiouser and curioser.
I can successfully link and run tests for rust-analyzer with mold - which is amazing!
petr_tik@merluzon:~/Coding/rust/rust-analyzer master $
git log --oneline | head -1
4be4d2985 Merge #8332
The only thing I had to change was to add a .cargo/config line for clang-11 as the linker.
diff --git a/.cargo/config b/.cargo/config
index 1447614b7..d41b692ec 100644
--- a/.cargo/config
+++ b/.cargo/config
@@ -7,3 +7,6 @@ lint = "clippy --all-targets -- -Aclippy::collapsible_if -Aclippy::needless_pass
[target.x86_64-pc-windows-msvc]
linker = "rust-lld"
+
+[target.x86_64-unknown-linux-gnu]
+linker = "clang-11"
Build and run the tests like this
RUSTFLAGS='-C link-arg=-fuse-ld=/home/petr_tik/.local/bin/mold' cargo test
All tests pass (stdout truncated)! Just to check that all executables were linked with mold, I ran your readelf command on all executables in the build dir.
# get all executable files that aren't lock files
# use the heuristic that the linker version is inserted at offset (?) 0 in the .comment section of the executable
find target/debug/ -type f -executable -not -iname '*.lock' | xargs readelf -p .comment | rg "0\]"
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
I would be happy to benchmark how much of an improvement this makes to overall build times. What's the best way to try benchmark build times when linking normally vs with mold?
Thanks again for all your work - the fact it's so simple to drop into the cargo workflow is amazing.
from mold.
that's certified poggers mate
rather! Can confirm though without using such venerable expressions
from mold.
I made a change so that at least the trivial test case of Rust and Cargo passes with mold.
Please pull mold again. Here is the .cargo/config.toml
I'm using.
[target.x86_64-unknown-linux-gnu]
rustflags = [
"-C", "link-arg=-fuse-ld=/home/ruiu/mold/mold",
]
linker = "clang"
from mold.
As mentioned, this is my failing case of linking with mold
cargo new a binary project and copy the cargo config file to it
[nix-shell:/tmp]$ cargo new rust_hello_world
Created binary (application) `rust_hello_world` package
[nix-shell:/tmp]$ mkdir rust_hello_world/.cargo
[nix-shell:/tmp]$ cp rust_with_mold/.cargo/config.toml rust_hello_world/.cargo/
[nix-shell:/tmp]$ cd rust_hello_world/
[nix-shell:/tmp/rust_hello_world]$ tree src/
src/
└── main.rs
0 directories, 1 file
[nix-shell:/tmp/rust_hello_world]$ cat src/main.rs
fn main() {
println!("Hello, world!");
}
This is the cargo config taken from your comment above
[nix-shell:/tmp/rust_hello_world]$ cat .cargo/config.toml
[target.x86_64-unknown-linux-gnu]
rustflags = [
"-C", "link-arg=-fuse-ld=mold",
]
linker = "clang-10"
This is my version of mold and where it's located (i.e, in path)
[nix-shell:/tmp/rust_hello_world]$ which mold
/home/petr_tik/.local/bin/mold
[nix-shell:/tmp/rust_hello_world]$ mold --version
mold d90c0651c96d71dc72db90b219387f39be039b61 (compatible with GNU ld)
Let's cargo build the binary via mold. The RUSTC_WRAPPER env variable is unset to avoid sccache from interfering in compilation commands. build -vvv
produces verbose output
[nix-shell:/tmp/rust_hello_world]$ RUSTC_WRAPPER= $HOME/.local/bin/mold -run cargo build -vvv
Compiling rust_hello_world v0.1.0 (/tmp/rust_hello_world)
Running `CARGO=/home/petr_tik/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo CARGO_BIN_NAME=rust_hello_world CARGO_CRATE_NAME=rust_hello_world CARGO_MANIFEST_DIR=/tmp/rust_hello_world CARGO_PKG_AUTHORS='petr-tik <[email protected]>' CARGO_PKG_DESCRIPTION='' CARGO_PKG_HOMEPAGE='' CARGO_PKG_LICENSE='' CARGO_PKG_LICENSE_FILE='' CARGO_PKG_NAME=rust_hello_world CARGO_PKG_REPOSITORY='' CARGO_PKG_VERSION=0.1.0 CARGO_PKG_VERSION_MAJOR=0 CARGO_PKG_VERSION_MINOR=1 CARGO_PKG_VERSION_PATCH=0 CARGO_PKG_VERSION_PRE='' CARGO_PRIMARY_PACKAGE=1 LD_LIBRARY_PATH='/tmp/rust_hello_world/target/debug/deps:/home/petr_tik/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib:/home/petr_tik/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib' rustc --crate-name rust_hello_world --edition=2018 src/main.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type bin --emit=dep-info,link -C embed-bitcode=no -C debuginfo=2 -C metadata=43cbc5f5ca030fcc -C extra-filename=-43cbc5f5ca030fcc --out-dir /tmp/rust_hello_world/target/debug/deps -C linker=clang-10 -C incremental=/tmp/rust_hello_world/target/debug/incremental -L dependency=/tmp/rust_hello_world/target/debug/deps -C target-cpu=native`
Finished dev [unoptimized + debuginfo] target(s) in 0.57s
Doesn't look like mold was used to link this executable though
[nix-shell:/tmp/rust_hello_world]$ readelf -p .comment target/debug/rust_hello_world
String dump of section '.comment':
[ 0] GCC: (Ubuntu 8.4.0-1ubuntu1~18.04) 8.4.0
Rust, cargo and ubuntu versions
[nix-shell:/tmp/rust_hello_world]$ rustc --version
rustc 1.51.0 (2fd73fabe 2021-03-23)
[nix-shell:/tmp/rust_hello_world]$ cargo --version
cargo 1.51.0 (43b129a20 2021-03-16)
[nix-shell:/tmp/rust_hello_world]$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.5 LTS
Release: 18.04
Codename: bionic
[nix-shell:/tmp/rust_hello_world]$ uname -rv
5.4.0-70-generic #78~18.04.1-Ubuntu SMP Sat Mar 20 14:10:07 UTC 2021
from mold.
i got it to build and link by passing RUSTFLAGS as an env variable
Clean the target dir and remove the rustflags var from cargo config (only leave the linker)
[nix-shell:/tmp/rust_hello_world]$ cargo clean
[nix-shell:/tmp/rust_hello_world]$ cat .cargo/config.toml
[target.x86_64-unknown-linux-gnu]
linker = "clang-10"
cargo build with RUSTFLAGS set to what we deleted
[nix-shell:/tmp/rust_hello_world]$ RUSTFLAGS='-C link-arg=-fuse-ld=/home/petr_tik/.local/bin/mold' cargo build
Compiling rust_hello_world v0.1.0 (/tmp/rust_hello_world)
Finished dev [unoptimized + debuginfo] target(s) in 0.75s
[nix-shell:/tmp/rust_hello_world]$ readelf -p .comment target/debug/rust_hello_world
String dump of section '.comment':
[ 0] mold d90c0651c96d71dc72db90b219387f39be039b61
[ 2e] GCC: (Ubuntu 8.4.0-1ubuntu1~18.04) 8.4.0
[ 58] mold command line: -pie -z relro --hash-style=gnu --eh-frame-hdr -m elf_x86_64 -o /tmp/rust_hello_world/target/debug/deps/rust_hello_world-43cbc5f5ca030fcc /usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/8/crtbeginS.o -L/home/petr_tik/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib -L/tmp/rust_hello_world/target/debug/deps -L/home/petr_tik/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib -L/usr/lib/gcc/x86_64-linux-gnu/8 -L/usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu -L/lib/x86_64-linux-gnu -L/lib/../lib64 -L/usr/lib/x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/8/../../.. -L/nix/store/w8a9x07rai37srm9xyq827bspdvvb4xq-clang-10.0.1/bin/../lib -L/lib -L/usr/lib -L/usr/local/lib --as-needed -z noexecstack --eh-frame-hdr /tmp/rust_hello_world/target/debug/deps/rust_hello_world-43cbc5f5ca030fcc.1v1vdowuz0cmav3z.rcgu.o /tmp/rust_hello_world/target/debug/deps/rust_hello_world-43cbc5f5ca030fcc.2jg4rewb8z6um9e8.rcgu.o /tmp/rust_hello_world/target/debug/deps/rust_hello_world-43cbc5f5ca030fcc.2pq56rv83ttcfnq6.rcgu.o /tmp/rust_hello_world/target/debug/deps/rust_hello_world-43cbc5f5ca030fcc.2zwni7t44zafjinr.rcgu.o /tmp/rust_hello_world/target/debug/deps/rust_hello_world-43cbc5f5ca030fcc.30fri5vu6718lsgv.rcgu.o /tmp/rust_hello_world/target/debug/deps/rust_hello_world-43cbc5f5ca030fcc.4ultb9tciqr6ex5i.rcgu.o /tmp/rust_hello_world/target/debug/deps/rust_hello_world-43cbc5f5ca030fcc.5e14krxpmui2kg20.rcgu.o /tmp/rust_hello_world/target/debug/deps/rust_hello_world-43cbc5f5ca030fcc.gwpcdy83y0x602j.rcgu.o /tmp/rust_hello_world/target/debug/deps/rust_hello_world-43cbc5f5ca030fcc.1z35npuqkcb2ax8e.rcgu.o --gc-sections -zrelro -znow --start-group -Bstatic /home/petr_tik/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-b1047a2788193be4.rlib /home/petr_tik/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-e8e399e2092f3b2a.rlib /home/petr_tik/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-c6b02b522c91c060.rlib /home/petr_tik/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-eaad965909c4200f.rlib /home/petr_tik/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-dca728ac8ed54d87.rlib /home/petr_tik/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-4b4efaa8c4601753.rlib /home/petr_tik/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-d36e07ed2cc56ee4.rlib /home/petr_tik/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-3855d04b1bb40ceb.rlib /home/petr_tik/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-58a065cdff5508a2.rlib /home/petr_tik/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-82aeeedcc8d1450a.rlib /home/petr_tik/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-5c4d6c9d7595f844.rlib /home/petr_tik/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-2642d2bccc00517a.rlib /home/petr_tik/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-760e48b3f782e7f5.rlib /home/petr_tik/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-d4ef8bf89076ed01.rlib /home/petr_tik/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-36070e2029bb21ea.rlib /home/petr_tik/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-3aaf8f932781f33e.rlib --end-group /home/petr_tik/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-e2523c360f03ba10.rlib -Bdynamic -lgcc_s -lutil -lrt -lpthread -lm -ldl -lc /usr/lib/gcc/x86_64-linux-gnu/8/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/crtn.o
Run the executable and watch it sefgault
[nix-shell:/tmp/rust_hello_world]$ ./target/debug/rust_hello_world
Segmentation fault (core dumped)
from mold.
Loading the segfaulting executable in rust-gdb
rust-gdb target/debug/rust_hello_world
GNU gdb (Ubuntu 8.1.1-0ubuntu1) 8.1.1
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from target/debug/rust_hello_world...done.
Loaded successfully, but fails to run when I break on main (despite setting the breakpoint correctly)
(gdb) break main
Breakpoint 1 at 0x11190
(gdb) r
Starting program: /tmp/rust_hello_world/target/debug/rust_hello_world
Program received signal SIGSEGV, Segmentation fault.
0x0000000000000000 in ?? ()
(gdb) n
Cannot find bounds of current function
Breaking on _start
gives us a shortlived window of opportunity
(gdb) break _start
Breakpoint 1 at 0x11060
(gdb) run
Starting program: /tmp/rust_hello_world/target/debug/rust_hello_world
Breakpoint 1, 0x00007ffff7fc8060 in _start ()
(gdb) l
1 fn main() {
2 println!("Hello, world!");
3 }
(gdb) n
Single stepping until exit from function _start,
which has no line number information.
0x0000000000000000 in ?? ()
(gdb) s
Cannot find bounds of current function
I am happy to debug this further and read about relevant info on linkers/compilers and I admit i am very much a beginner in linkers.
from mold.
I'm not a Rust user, so I don't have any specific program in my mind, but I'd just pick up a large project (at least a few hundred megabytes in executable size) and build it with or without mold. Then, delete the generated executable and re-run the same build command to see how much improvement you can observe for the incremental build case.
from mold.
I think rust-analyzer or rustc itself might be a good choice for a project. Other than that servo, but I am not sure how easy it would be to convince their build system to use mold instead for testing.
from mold.
Related Issues (20)
- valgrind fails on assertion after loading debuginfo file HOT 7
- 2 tests fail on x86 32-bit in mold 2.3.2 HOT 3
- x86_64-global-offset-table fails on mold-git 5c7a75b3e44b36e8333775400e0f22946cc3da03 HOT 1
- `ifunc-alias.sh` test fails on ppc64le with mold 2.3.2 HOT 1
- How to place startup vector at beginning of executable HOT 9
- Support for flag `-nmagic, -n` HOT 2
- dist.sh fails with "Temporary failure resolving 'archive.ubuntu.com'" HOT 3
- Publish SHA256 checksums in releases HOT 6
- Option to append `PT_LOAD` segments to ELFs HOT 12
- Some errors emit when i wanta change the ld of gcc-linaro-6.5.0-2018.12-x86_64_aarch64-linux-gnu to mold HOT 2
- Error emit when I change the ld of gcc-linaro-6.5.0-2018.12-x86_64_aarch64-linux-gnu to mold HOT 2
- mprotect ENOMEM error when loading binary HOT 8
- Unable to build with `clang` on Android Termux HOT 2
- x86_64-run failure HOT 2
- Question: shall I use sold/mold in performance-sensitive production environment? HOT 4
- mold-linked binaries occasionally emit SEGV during dynamic linker initialization HOT 17
- Qt 6 symbol mismatch HOT 13
- Bad symbol name in the `error: undefined symbol` error message HOT 3
- [Rust] double compilation
- Various tests skipped due to system usage of `HOST` env. variable HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mold.