Skip to content

Working In Progress: dynamic loading#512

Closed
qianxichen233 wants to merge 106 commits intomainfrom
dylink_impl
Closed

Working In Progress: dynamic loading#512
qianxichen233 wants to merge 106 commits intomainfrom
dylink_impl

Conversation

@qianxichen233
Copy link
Contributor

@qianxichen233 qianxichen233 commented Nov 3, 2025

This is still a WIP, everything here is subject to substantial change. It’s not review-ready at all, but if anyone’s interested, feel free to take a look and raise any questions or comments about the WIP code.

Current status:

  1. draft implementation done for both preloading and dlopen
  2. need to refactor the code structure wtih huge code cleanup
  3. a lot of details need to be polished

Todo:

  • Integrate with Lind-boot
  • Add support for fork, threads, signal within the shared libraries

Closes #13
Closes #521
Closes #622
Closes #623

@qianxichen233 qianxichen233 marked this pull request as draft November 3, 2025 10:21
@github-actions
Copy link
Contributor

github-actions bot commented Nov 3, 2025

End-to-End Test Report

Test Preview

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases67
Number of Successes0
Number of Failures67
Number of Compilation Failure Native0
Number of Runtime Failure Native0
Number of Segmentation Fault Native0
Number of Timeout During Native0
Number of Lind Wasm Compile Failure0
Number of Lind Wasm Runtime Failure0
Number of Lind Wasm Segmentation Failure0
Number of Timeout During Lind Wasm run0
Number of Unknown Failure67
Number of C Compiler and Wasm Output mismatch0

Test Results by Category

Test CaseStatusError TypeOutput
File Tests
chmod.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (1046) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

close.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (974) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

doubleclose.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (1298) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

dupwrite.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (1082) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

fchmod.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (902) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

fcntl.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (1622) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

fdatasync.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (1442) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

filetest.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (1154) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

filetest1000.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (1550) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

fstat.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (1694) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

fsync.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (938) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

ioctl.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (1514) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

mkdir_rmdir.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (1730) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

open.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (1766) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

pread_pwrite.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (1406) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

printf.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (1118) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

readbytes.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (1658) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

readlink.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (1802) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

rename.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (1334) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

stat.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (1370) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

sync_file_range.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (1262) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

truncate.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (1226) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

unlinkat.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (1190) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

write.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (1478) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

writeloop.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (1586) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

writepartial.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (1010) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

Memory Tests
brk.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (2872) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

malloc.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (2908) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

memcpy.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (2944) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

mmap.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (3052) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

mmap_file.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (2800) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

mprotect.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (2980) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

sbrk.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (2836) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

shmtest.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (3016) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

Networking Tests
gethostname.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (2180) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

makepipe.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (2398) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

pipepong.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (2362) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

poll.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (2144) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

recvfrom-sendto.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (2289) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

simple_epoll.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (2216) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

socket.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (2434) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

socket_cloexec.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (2108) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

socketpair.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (2253) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

tcp_connect_single.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (2325) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

Process Tests
chain_thread.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (504) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

exit.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (236) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

forkexecv-arg.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (466) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

forkexecv.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (583) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

function-ptr.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (92) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

getppid.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (541) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

hello-arg.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (128) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

hello.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (200) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

longjmp.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (424) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

noforkfiles.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (164) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

sem_forks.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (276) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

setsid.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (619) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

thread-test.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (656) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

thread.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (313) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

wait.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (351) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

waitpid_wnohang.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (388) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

Signal Tests
alarm.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (3340) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

setitimer.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (3304) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

sigalrm.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (3413) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

sigchld.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (3486) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

signal-fork.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (3377) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

signal-simple.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (3268) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

sigprocmask.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (3449) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

Non Deterministic Tests

Summary

MetricCount
Total Test Cases41
Number of Successes0
Number of Failures41
Number of Compilation Failure Native0
Number of Runtime Failure Native0
Number of Segmentation Fault Native0
Number of Timeout During Native0
Number of Lind Wasm Compile Failure0
Number of Lind Wasm Runtime Failure0
Number of Lind Wasm Segmentation Failure0
Number of Timeout During Lind Wasm run0
Number of Unknown Failure41
Number of C Compiler and Wasm Output mismatch0

Test Results by Category

Test CaseStatusError TypeOutput
File Tests
chdir_getcwd.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (1982) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

clock_gettime_highlevel.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (1922) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

clock_gettime_simple.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (2042) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

dup.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (1862) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

fchdir.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (1952) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

fstatfs.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (1892) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

getcwd.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (2072) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

read.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (1832) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

statfs.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (2012) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

Memory Tests
malloc_large.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (3082) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

mmap_complicated.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (3172) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

mmap_shared.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (3142) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

segfault.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (3112) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

shm.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (3232) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

vtable.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (3202) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

Networking Tests
dnstest.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (2524) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

getifaddrs.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (2464) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

pipe.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (2644) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

pipe2.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (2494) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

pipeinput.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (2614) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

pipeinput2.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (2584) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

pipeonestring.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (2734) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

pipewrite.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (2554) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

shutdown_fork.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (2674) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

simple-select.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (2764) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

socketepoll.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (2704) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

Process Tests
fork2malloc.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (866) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

fork_simple.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (776) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

forkandopen.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (716) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

forkfiles.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (836) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

forkmalloc.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (806) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

forknodup.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (746) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

getpid.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (686) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

Signal Tests
signal.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (3516) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

signal_SIGCHLD.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (3726) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

signal_fork.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (3636) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

signal_int_thread.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (3696) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

signal_longjmp.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (3576) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

signal_nodefer.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (3546) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

signal_procmask.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (3666) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

signal_sa_mask.cFailureUnknown_Failure
[debug]: define a table

thread 'main' (3606) panicked at src/commands/run.rs:178:60:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

qianxichen233 and others added 27 commits November 16, 2025 06:29
…627)

* Add unified cargo compilation support.

- Add cargo-lind_compile global binary
- Add lind::epoch_callback in the linker

* Remove trailing escape sequence

* Add symlink to lind-cargo

* Handle epoch_callback change in #631

* wasip1-clang.sh: Fix the REPO_ROOT, chmod +x

* Update docs: compiling rust, getting started

* Remove .DS_Store

* Alias => lind-cargo-build

* More detailed contrib docs
* fixed ignored signal interruption

* added test for ignored signal interruption

* fixed deterministic test

* update signal documentation

* removed printf in test

* delete unused code
* Fix pointer translation in getsockopt syscall

* Apply rustfmt formatting

* Re-enable getsockopt tests after pointer translation fix
* Update Dockerfiles and Makefile for build and sysroot folder

* update lind scripts for using new build/sysroot
* Convert pipeinput, pipeinput2, pipeonestring, and pipewrite to deterministic assert-based tests

- Replace non-deterministic printf statements with assert() calls
- Remove printing of PIDs, FD numbers, return values, and message contents
- Add required assertions for pipe(), fork(), write(), read(), memcmp(), close(), and waitpid()
- Ensure tests fail via assert() on incorrect behavior
- Use fixed messages with explicit length checks
- Child processes read until full message length is received
- Parent processes verify child exit status via waitpid()

Addresses issue #603: Deprecate non-deterministic tests

* fix: assert

* moved non deterministic to deterministic folder

* updated skip test
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 6.1.0 to 6.2.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](actions/setup-python@83679a8...a309ff8)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: 6.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [docker/login-action](https://github.com/docker/login-action) from 3.6.0 to 3.7.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](docker/login-action@5e57cd1...c94ce9f)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: 3.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
m-hemmings and others added 28 commits February 16, 2026 13:56
* Update path acquisition code in test report

* Update dockerfiles with path variables

* create smoke test c file

* Pin compiler

* provide libm for -lm

* add libm.a properly

* Reset sysroot and compile scripts to main, since they are out of scope of this PR

* Remove redundant code that was used for testing
* Write a test case to test exec without fork. (#717)

* Rename noforfiles.c to test_unlink_open_file.c (#717)

* Remove fork.c duplicate of fork_simple.c (#717)

---------

Co-authored-by: Thomas Kim <tjkim417@gmail.com>
* glibc: Use Implies file to select IEEE-754 math over i386 FPU sysdeps

* Updated glibc build script to create static archives (.a) files for libc, libm and other glibc modules

* Update the lind_compile script to link against libm by adding -lm option

* Enhance comments and structure in make_archive.sh

Refactor make_archive.sh to improve comments and structure.

* Update glibc build script

Removed the creation of the libpthread.a archive and its success check.

* Updated SCRIPT_DIR to the beginning of the script

* Fix undefined symbol error for sched_setscheduler and sched_get_priority_max

* Using default stub implementations of Floating point rounding and exception handling from math/ folder

* Using default stub implementations within math/ folder of fegetround and fesetround instead of i386 specific implementation containing assembly

* Fix undefined symbol error for sched_get_priority_min and sched_getscheduler by adding weak symbols within arch specific impl

* Add math tests

* Updated math of math tests
* add lind-boot to main readme

* modify lind-boot description

* Update README.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Alice Wen <40227173+Yaxuan-w@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Added target to Makefile to create lindfs folders

* Updated lindfs target name in Makefile
* add cwasm option to lind-boot

* add cwasm option to lind-boot

* add cwasm option to lind-boot
* Update wabt version with build stage

* update wabt version on e2e build
* add addr translation to nocancel functions

* test
* Update usage and add grate tests intro

* Update

* Update
* Fix register_handler semantics in make_syscall

* Change register_handler signature in glibc and 3i
* Fix broken support for .wasm

* Fix linter warnings.
* conf files

* add conf setup to makefile

* test

* group files

* group files

* update makefile

* combined lindfs with prepare root, create actuall null

* keep /dev/null as file for now

* reformat
@qianxichen233
Copy link
Contributor Author

I messed up branches. Moved to #791 as a new PR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet