Skip to content

doc: add missing flags to lind_compile usage#1045

Merged
rennergade merged 1 commit intomainfrom
update-lind-compile-doc
Apr 13, 2026
Merged

doc: add missing flags to lind_compile usage#1045
rennergade merged 1 commit intomainfrom
update-lind-compile-doc

Conversation

@qianxichen233
Copy link
Copy Markdown
Contributor

closes #1022

Document -s/--static, --compile-library, and --fpcast-emu in the usage() help text, and expand --compile-grate's description to note its backend compatibility. Add a backend section explaining the three compilation modes (dynamic, static, library) and their mode compatibility.

Document -s/--static, --compile-library, and --fpcast-emu in the usage()
help text, and expand --compile-grate's description to note its backend
compatibility. Add a backend section explaining the three compilation
modes (dynamic, static, library) and their mode compatibility.
@github-actions
Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

Unified Test Report

grate harness

MetricValue
Total11
Success11
Failures0
Compile Failures0
Runtime Failures0
Timeout Failures0
Missing Pair Failures0

Cases

TestStatusError TypeOutput
concurrent-request/geteuid_grate.cSuccess
STDOUT:
[Grate|geteuid] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 2
[Cage | geteuid] PASS: 1000000 calls returned 10
[Grate|geteuid] PASS

STDERR:

interposing-calls/interpose-exec_grate.cSuccess
STDOUT:
[Grate|interpose-exec] Registering exec handler for cage 2 in grate 1 with fn ptr addr: 2
[Grate|interpose-exec] Handling function ptr: 2 from cage: 1
[Grate|interpose-exec] In exec_grate 1 handler for cage: 1
[Grate|interpose-exec] Handling function ptr: 2 from cage: 1
[Grate|interpose-exec] In exec_grate 1 handler for cage: 1
Exec successful, argv[1]: --execd
[Grate|interpose-exec] PASS

STDERR:

interposing-calls/interpose-exit_grate.cSuccess
STDOUT:
[Grate|interpose-exit] Registering exit handler for cage 2 in grate 1 with fn ptr addr: 2
Exiting...

[Grate|interpose-exit] PASS

STDERR:

interposing-calls/interpose-fork_grate.cSuccess
STDOUT:
[Grate|interpose-fork] Registering fork handler for cage 2 in grate 1 with fn ptr addr: 2
[Grate|interpose-fork] Handling function ptr: 2 from cage: 1
[Grate|interpose-fork] In fork_grate 1 handler for cage: 1
[Grate|interpose-fork] PASS

STDERR:

interposing-calls/interpose-mmap_grate.cSuccess
STDOUT:
[Grate|interpose-mmap] Registering mmap handler for cage 2 in grate 1 with fn ptr addr: 2
[Grate|interpose-mmap] Handling function ptr: 2 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
[Grate|interpose-mmap] Handling function ptr: 2 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
[Grate|interpose-mmap] Handling function ptr: 2 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
[Grate|interpose-mmap] Handling function ptr: 2 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
mmap test: PASS
[Grate|interpose-mmap] PASS

STDERR:

interposing-calls/interpose-register_grate.cSuccess
STDOUT:
[Grate|interpose-register] Registering register_handler for cage 2 in grate 1 with fn ptr addr: 3
[cage] registering 107. grateid: 2 cageid: 3
[Grate|interpose-register] Handling function ptr: 3 from cage: 1
[Grate|interpose-register] In register_grate 1 handler for cage: 1
[Grate|geteuid] Registering geteuid handler for cage 1 in grate 1 with fn ptr addr: 2
[Grate|interpose-register] Handling function ptr: 2 from cage: 1
[Grate|interpose-register] In register_grate 1 handler for cage: 1
[Grate|interpose-register] PASS

STDERR:

multi-register_grate.cSuccess
STDOUT:
[Grate|multi-register_grate] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 2
[Grate|multi-register_grate] Registering getuid handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|multi-register_grate] Handling function ptr: 2 from cage: 1
[Grate|multi-register_grate] In multi-register_grate 1 handler for cage: 1
[Grate|multi-register_grate] Handling function ptr: 3 from cage: 1
[Grate|multi-register_grate] In multi-register_grate 1 handler for cage: 1
[Cage | multi-register] PASS: geteuid=10, getuid=20
[Grate|multi-register] PASS

STDERR:

race-test_grate.cSuccess
STDOUT:
pass

STDERR:

simple-tests/cpdata_grate.cSuccess
STDOUT:
[Grate|open] intercepts open call: thiscage=1, arg1cage=2
[Grate|open] copied pathname: random
[cage] fd=10

STDERR:

simple-tests/diff-cage-args_grate.cSuccess
STDOUT:
[Grate|diff-cage-args] Handling function ptr: 2 from cage: 1
[Grate|diff-cage-args] In open_grate 1 handler for cage: 1
Hello world. FD=-1
[Grate|diff-cage-args] Handling function ptr: 3 from cage: 1
Goodbye world! ret=4321 buf=helloworld
[Grate|diff-cage-args] PASS

STDERR:

simple-tests/geteuid_grate.cSuccess
STDOUT:
[Grate|geteuid] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 2
[Grate|geteuid] Handling function ptr: 2 from cage: 1
[Grate|geteuid] In geteuid_grate 1 handler for cage: 1
[Cage | geteuid] PASS: geteuid ret = 10
[Grate|geteuid] PASS

STDERR:

wasm harness

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases198
Number of Successes198
Number of Failures0
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 Failure0
Number of C Compiler and Wasm Output mismatch0
Number of Fail Test: Native Succeeded (Should Fail)0
Number of Fail Test: Wasm Succeeded (Should Fail)0
Number of Fail Test: Both Native and Wasm Succeeded (Should Fail)0
Number of Fail Test: Native Compilation Failure (Should Succeed)0
Number of Fail Test: Wasm Compilation Failure (Should Succeed)0

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
File Tests
chartests.cSuccessNone0.046905s0.189667s
Success
chdir_getcwd.cSuccessNone0.048122s0.152004s
Success
chmod.cSuccessNone0.053333s0.160050s
Success
clock_gettime_highlevel.cSuccessNone0.119624s0.326922s
Success
clock_gettime_simple.cSuccessNone0.042887s0.139995s
Success
cloexec.cSuccessNone0.051201s0.214931s
Success
close.cSuccessNone0.058400s0.176677s
Success
creat_access.cSuccessNone0.051038s0.145046s
Success
doubleclose.cSuccessNone0.045584s0.138493s
Success
dup.cSuccessNone0.042812s0.146192s
Success
dup2.cSuccessNone0.050083s0.148266s
Success
dup3.cSuccessNone0.046484s0.152016s
Success
dupwrite.cSuccessNone0.051098s0.149636s
Success
etc_conf.cSuccessNone0.044225s0.151049s
Success
fchdir.cSuccessNone0.052718s0.160529s
Success
fchmod.cSuccessNone0.054001s0.161000s
Success
fcntl.cSuccessNone0.049026s0.154751s
Success
fdatasync.cSuccessNone0.049994s0.140806s
Success
filetest.cSuccessNone0.048269s0.138320s
Success
filetest1000.cSuccessNone0.057641s0.159306s
Success
flock.cSuccessNone0.066100s0.192617s
Success
fstat.cSuccessNone0.051821s0.157106s
Success
fstatfs.cSuccessNone0.049829s0.143249s
Success
fsync.cSuccessNone0.049263s0.141647s
Success
ftruncate.cSuccessNone0.053086s0.264313s
Success
getcwd.cSuccessNone0.045814s0.138416s
Success
getrandom.cSuccessNone0.049914s0.146303s
Success
ioctl.cSuccessNone0.051682s0.147637s
Success
link.cSuccessNone0.055480s0.216010s
Success
locale_test.cSuccessNone0.064019s0.637626s
Success
lseek.cSuccessNone0.054081s0.267879s
Success
mkdir_rmdir.cSuccessNone0.050395s0.152934s
Success
mkfifo_test.cSuccessNone0.055938s0.199731s
Success
mknod.cSuccessNone0.051020s0.162907s
Success
nocancel_io.cSuccessNone0.052845s0.176901s
Success
open.cSuccessNone0.048046s0.139296s
Success
openat.cSuccessNone0.045600s0.144407s
Success
path_conversion_safety.cSuccessNone0.053619s0.175187s
Success
pread_pwrite.cSuccessNone0.046755s0.156675s
Success
printf.cSuccessNone0.041044s0.126415s
Success
prlimit64.cSuccessNone0.043258s0.128307s
Success
read.cSuccessNone0.049704s0.150264s
Success
readbytes.cSuccessNone0.046175s0.135845s
Success
readdir_basic.cSuccessNone0.054705s0.168029s
Success
readlink.cSuccessNone0.049683s0.149013s
Success
readlinkat.cSuccessNone0.050702s0.157052s
Success
readv_writev_test.cSuccessNone0.054962s0.170357s
Success
rename.cSuccessNone0.051758s0.147440s
Success
sc-writev.cSuccessNone0.048729s0.151683s
Success
stat.cSuccessNone0.050885s0.156711s
Success
statfs.cSuccessNone0.043597s0.141039s
Success
sync_file_range.cSuccessNone0.048751s0.144471s
Success
timespec_time_t_compat.cSuccessNone0.046812s0.136881s
Success
truncate.cSuccessNone0.052662s0.170215s
Success
unlink.cSuccessNone0.053309s0.198120s
Success
unlinkat.cSuccessNone0.053307s0.175516s
Success
write.cSuccessNone0.044891s0.140401s
Success
writeloop.cSuccessNone0.054707s0.143827s
Success
writepartial.cSuccessNone0.052899s0.138356s
Success
writev.cSuccessNone0.050729s0.155022s
Success
Math Tests
math_link_smoke.cSuccessNone0.053897s0.139157s
Success
math_tests.cSuccessNone0.060664s0.171219s
Success
Memory Tests
brk.cSuccessNone0.047345s0.140738s
Success
fork_large_memory.cSuccessNone0.078762s0.406632s
Success
malloc.cSuccessNone0.047679s0.127130s
Success
malloc_large.cSuccessNone0.046594s0.134166s
Success
memcpy.cSuccessNone0.044280s0.131439s
Success
memory_error_test.cSuccessNone0.051489s0.173536s
Success
mmap.cSuccessNone0.043703s0.133733s
Success
mmap_aligned.cSuccessNone0.044318s0.150581s
Success
mmap_complicated.cSuccessNone0.050907s0.157832s
Success
mmap_file.cSuccessNone0.051234s0.151245s
Success
mmap_shared.cSuccessNone0.050272s0.155536s
Success
mmaptest.cSuccessNone0.049959s0.146041s
Success
mprotect.cSuccessNone0.043843s0.133535s
Success
mprotect_boundary.cSuccessNone0.043963s0.150670s
Success
mprotect_end_region.cSuccessNone0.042729s0.138652s
Success
mprotect_middle_region.cSuccessNone0.044636s0.143759s
Success
mprotect_multiple_times.cSuccessNone0.042852s0.146054s
Success
mprotect_same_value.cSuccessNone0.043383s0.139237s
Success
mprotect_spanning_regions.cSuccessNone0.044968s0.159167s
Success
sbrk.cSuccessNone0.045753s0.131828s
Success
segfault.cSuccessNone0.053685s0.168294s
Success
shm.cSuccessNone0.050339s0.160196s
Success
shmtest.cSuccessNone0.045927s0.137567s
Success
thread_malloc_sequential.cSuccessNone0.050618s0.165811s
Success
vtable.cSuccessNone0.055198s0.158665s
Success
Networking Tests
accept4.cSuccessNone0.057153s0.170175s
Success
dns_resolve_test.cSuccessNone0.049388s0.147378s
Success
dnstest.cSuccessNone0.051118s0.159827s
Success
epoll_edge_triggered.cSuccessNone0.209071s0.505475s
Success
epollcreate1.cSuccessNone0.052094s0.159367s
Success
error_handling_net.cSuccessNone0.059198s0.270367s
Success
getaddrinfo_test.cSuccessNone0.054615s0.197872s
Success
getaddrinfo_unspec.cSuccessNone0.055231s0.162049s
Success
gethostname.cSuccessNone0.043994s0.132292s
Success
getifaddrs.cSuccessNone0.053099s0.156979s
Success
getsockname.cSuccessNone0.056136s0.152299s
Success
getsockopt.cSuccessNone0.055092s0.207972s
Success
ipv6_basic.cSuccessNone0.056285s0.210866s
Success
makepipe.cSuccessNone0.044098s0.129983s
Success
nonblocking_eagain.cSuccessNone0.056349s0.217498s
Success
pipe.cSuccessNone0.055330s0.161199s
Success
pipe2.cSuccessNone0.056904s0.150069s
Success
pipeinput.cSuccessNone0.055835s0.175812s
Success
pipeinput2.cSuccessNone0.055071s0.172909s
Success
pipeonestring.cSuccessNone0.054530s0.173438s
Success
pipepong.cSuccessNone0.055356s0.184442s
Success
pipewrite.cSuccessNone0.046938s0.151948s
Success
poll.cSuccessNone0.051798s0.143933s
Success
recvfrom-sendto.cSuccessNone0.053207s0.164123s
Success
sendmsg_recvmsg_test.cSuccessNone0.052055s0.159311s
Success
serverclient.cSuccessNone0.051508s0.156745s
Success
shutdown.cSuccessNone0.055482s0.159962s
Success
shutdown_fork.cSuccessNone0.052878s0.158829s
Success
simple-select.cSuccessNone0.053519s0.175922s
Success
simple_epoll.cSuccessNone0.053685s0.158798s
Success
socket.cSuccessNone0.051051s0.148290s
Success
socket_cloexec.cSuccessNone0.050828s0.146047s
Success
socket_options_advanced.cSuccessNone0.058164s0.224320s
Success
socketepoll.cSuccessNone0.051340s0.149141s
Success
socketpair.cSuccessNone0.050504s0.156321s
Success
socketselect.cSuccessNone0.051179s0.151006s
Success
udp_send_recv.cSuccessNone0.158182s0.324837s
Success
uds-getsockname.cSuccessNone0.052090s0.146445s
Success
uds-nb-select.cSuccessNone2.060402s2.223182s
Success
uds-serverclient.cSuccessNone0.057119s0.189969s
Success
uds-socketselect.cSuccessNone0.052379s0.155472s
Success
writev_socket.cSuccessNone0.055488s0.194724s
Success
Process Tests
barrier_test.cSuccessNone0.052722s0.170816s
Success
chain_thread.cSuccessNone1.051505s1.156382s
Success
ctor_syscall_test.cSuccessNone0.041795s0.132194s
Success
cxa_atexit_test.cSuccessNone0.047629s0.137015s
Success
execve_shebang.cSuccessNone0.051573s0.148552s
Success
exit.cSuccessNone0.049550s0.138718s
Success
exit_failure.cSuccessNone0.051125s0.150409s
Success
exit_group_thread.cSuccessNone0.053192s0.162169s
Success
flockfile_test.cSuccessNone0.050665s0.169544s
Success
fork2malloc.cSuccessNone0.053518s0.153838s
Success
fork_select.cSuccessNone0.050410s0.164993s
Success
fork_simple.cSuccessNone0.049083s0.146151s
Success
fork_syscall.cSuccessNone0.059333s0.309556s
Success
fork_tls_ctype.cSuccessNone0.056588s0.185135s
Success
forkandopen.cSuccessNone0.054538s0.177070s
Success
forkdup.cSuccessNone0.054625s0.166392s
Success
forkexecuid.cSuccessNone0.049826s0.225884s
Success
forkexecv-arg.cSuccessNone0.050848s0.206060s
Success
forkexecv.cSuccessNone0.047771s0.201038s
Success
forkfiles.cSuccessNone0.053386s0.166568s
Success
forkmalloc.cSuccessNone0.063172s0.155041s
Success
forknodup.cSuccessNone0.054895s0.172158s
Success
function-ptr.cSuccessNone0.047620s0.138471s
Success
getegid_syscall.cSuccessNone0.052197s0.299356s
Success
getgid_syscall.cSuccessNone0.051886s0.292874s
Success
getpid.cSuccessNone0.044832s0.130910s
Success
getpid_syscall.cSuccessNone0.053375s0.326332s
Success
getppid.cSuccessNone0.051951s0.153156s
Success
getppid_syscall.cSuccessNone0.054806s0.270897s
Success
getuid.cSuccessNone0.051955s0.145591s
Success
getuid_syscall.cSuccessNone0.049814s0.193089s
Success
hello-arg.cSuccessNone0.041223s0.132286s
Success
hello.cSuccessNone0.044308s0.135451s
Success
longjmp.cSuccessNone0.043579s0.137250s
Success
mutex.cSuccessNone2.054875s2.163243s
Success
printf_deadlock_smoke.cSuccessNone0.060020s0.196508s
Success
printf_thread_test.cSuccessNone0.049691s0.166504s
Success
sem_forks.cSuccessNone0.054577s0.173574s
Success
setsid.cSuccessNone0.043954s0.133398s
Success
template.cSuccessNone0.052475s0.170069s
Success
test_exec_nofork.cSuccessNone0.049511s0.197297s
Success
test_unlink_open_file.cSuccessNone0.046130s0.131478s
Success
thread-test.cSuccessNone0.046335s0.141715s
Success
thread.cSuccessNone0.045703s0.137239s
Success
thread_cageid_race.cSuccessNone0.047604s0.198360s
Success
tls_test.cSuccessNone0.048495s0.161623s
Success
uname.cSuccessNone0.045070s0.142127s
Success
wait.cSuccessNone2.047790s2.151081s
Success
waitpid_anychild.cSuccessNone0.051595s0.154956s
Success
waitpid_syscall.cSuccessNone1.050736s1.200102s
Success
waitpid_wnohang.cSuccessNone0.051518s0.150836s
Success
Signal Tests
alarm.cSuccessNone7.051084s7.171199s
Success
eintr_fork_signal.cSuccessNone1.056110s1.172812s
Success
kill.cSuccessNone1.050215s1.152547s
Success
setitimer.cSuccessNone7.052251s7.174644s
Success
sigalrm.cSuccessNone2.050820s2.161197s
Success
sigaltstack.cSuccessNone0.052093s0.160085s
Success
sigchld.cSuccessNone1.055269s1.156688s
Success
signal-fork.cSuccessNone4.054442s4.160718s
Success
signal-simple.cSuccessNone0.054384s0.147589s
Success
signal_SIGCHLD.cSuccessNone0.051102s0.161372s
Success
signal_fork.cSuccessNone0.047745s0.162156s
Success
signal_int_ignored.cSuccessNone2.051468s2.157488s
Success
signal_kill_cleanup.cSuccessNone1.049846s1.151980s
Success
signal_procmask.cSuccessNone0.046529s0.154547s
Success
signal_recursive.cSuccessNone0.045250s0.146032s
Success
signal_sa_mask.cSuccessNone0.047566s0.145044s
Success
sigpipe.cSuccessNone1.056936s1.175433s
Success
sigprocmask.cSuccessNone1.050424s1.153145s
Success
Fail Tests

Summary

MetricCount
Total Test Cases4
Number of Successes4
Number of Failures0
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 Failure0
Number of C Compiler and Wasm Output mismatch0
Number of Fail Test: Native Succeeded (Should Fail)0
Number of Fail Test: Wasm Succeeded (Should Fail)0
Number of Fail Test: Both Native and Wasm Succeeded (Should Fail)0
Number of Fail Test: Native Compilation Failure (Should Succeed)0
Number of Fail Test: Wasm Compilation Failure (Should Succeed)0

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Dylink Tests
dlerror.cSuccessNone0.041998s0.133067s
Success
Memory Tests
mmap-negative1.cSuccessNone0.121610s0.140048s
Success
mmap-negative2.cSuccessNone0.111782s0.165716s
Success
Signal Tests
signal_resethand.cSuccessNone1.050449s1.155272s
Success

@rennergade rennergade merged commit a035a53 into main Apr 13, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Doc: update new flags/usage for lind_compile

4 participants