@ai-ecoverse/wasm-clang (英语)
Clang/LLD 24 用于 slicc 等域,在 CI 中链接
@ai-ecoverse/llvm-emscripten (lllvm-project b158b0ae由补丁编译)
对当前libslicc(6.0.9树)Module.sliccKernel 产卵,
内核证书) ENVIRONMENT=web,worker,node。 。 。 .
伴侣:
@ai-ecoverse/wasix-sysroot(单位:千美元)WASIXCC_SYSROOT_PREFIX(中文(简体) )@ai-ecoverse/wasm-binaryen(单位:千美元)wasm-opt分叉 同步 - 打开PATH(中文(简体) )
司机
cc 编号 : gcc 编号 : c++ 编号 : g++ 编号 : wasixcc 编号 : wasix++ 为: #!/bin/sh 脚本
(单位:千美元)slicc.commands { "script": "bin/…" }) (中文(简体) ). 使用它们作为普通编译器-
典型建筑不需要额外的WASI/EH旗.
-
目标:
--target=wasm32-wasip1(游击舰)lib/wasm32-wasip1) (中文(简体) ). -
C++ 链接
-lc++ -lc++abi -lunwind(外出例外,线条,电流). -
输出为 a 我的程序 SLICC直接运行(没有单独的主机包).
-
导入的可执行链接
proc_fork编号 :stack_checkpoint运行wasm-opt --asyncify(从)@ai-ecoverse/wasm-binaryen自动如此 叉线工程 在SLICC主机上。 普通程序跳过聚合 . -
-shared:侧模块,-nostdlib(没有 libc) —— 解决符号反对 a PIE主要出口商品. -
PIE / 打开主机数字 :
cc -rdynamic …或者说cc -fPIC foo.c -o foo(无)-shared页:1-pie --export-all自由式全管式 标记杆式 礛dlopen("./libsq.so")工作时. -
计算数字 :
CC=cc CXX=c++ cmake …- 确定了Clang 24;pthread.h和SLICC下的sysroot解析. -
大会: 仅用于平面组装的输入(
.s, (中文(简体) ),.asm, (中文(简体) ), 或者说-x assembler司机把C旗的旗子都丢在那里 (单位:千美元)-D_WASI_EMULATED_*, (中文(简体) ),-pthread不连接时,-mthread-model, (中文(简体) ),-fno-trapping-math, (中文(简体) ),-fbracket-depth, (中文(简体) ),-ftls-model, (中文(简体) ),-fvisibility),这样cc -Werror -c foo.s工作时..S混合 C 组装保存它们. -
没有链接, 没有链接旗: 与
-fsyntax-only, (中文(简体) ),-emit-ast或者说--analyze(如:-c, (中文(简体) ),-S, (中文(简体) ),-E财务报告和审定财务报表-M),驾驶员离开 链接图书馆和-Wl,旗帜,所以cc -Werror -fsyntax-only foo.c(配置和CMake检查,编辑) 工作。 A 类.s下级-fsyntax-only仍然得到cang's自己的'assembler' input unused和上游干戈一样.-###财务报告和审定财务报表-fdriver-only留着他们,因为他们显示或检查全部 链接计划.
每个工具都有一个模块
bin/llvm.wasm 持有cang、lld、llvm-ar、llvm-nm、llvm-objcopy和
llvm-同义词,链接在一起,所以他们共享一份LLVM;工具是
(argv[0]),或 llvm <tool> args…。 。 。 . bin/ 胶水船
文件 每个名称下 emcc 构造 LLVM_ROOT (单位:千美元)clang, (中文(简体) ),
clang++, (中文(简体) ), lld, (中文(简体) ), wasm-ld, (中文(简体) ), ld.lld, (中文(简体) ), llvm-ar, (中文(简体) ), llvm-ranlib, (中文(简体) ), llvm-nm, (中文(简体) ),
llvm-objcopy, (中文(简体) ), llvm-strip, (中文(简体) ), llvm-symbolizer:每个字节拷贝
bin/llvm,该定位 llvm.wasm 旁边. slicc.commands 涵盖
同名加号 ar, (中文(简体) ), ranlib, (中文(简体) ), nm, (中文(简体) ), strip 寻找路径.
未发运 (英语:emmcc only needs these for -g /分化-德瓦克/覆盖
emsize / sourcemap demangle) : (中文(简体) ) llvm-dwarfdump, (中文(简体) ), llvm-dwp, (中文(简体) ),
clang-scan-deps, (中文(简体) ), llvm-profdata, (中文(简体) ), llvm-cov, (中文(简体) ), llvm-size, (中文(简体) ), llvm-cxxfilt。 。 。 .
cc hello.c -o hello
cc -fPIC -shared sq.c -o libsq.so
cc -rdynamic -fPIC dl.c -o dl # PIE main exporting libc for dlopen
c++ -O2 t.cpp -o t # iostream + exceptions + threads
CC=cc CXX=c++ cmake -S . -B build
cmake --build build
环境和途径
bin/llvm 链接 shims/slicc/slicc-env.js:工具的环境
内核经过,没有印记的占位符
(单位:千美元)USER=web_user, (中文(简体) ), HOME=/home/web_user, (中文(简体) ), PATH=/) (中文(简体) ). 之后 env -i,cang已经
没有 PATH,所以它不寻找帮助者,例如 wasm-opt 内 /。 。 。 .
胶水与被刻录的套件补丁相连接( 0014: 一个路径可能)
穿过40个符号链接,如Linux上,41是 ELOOP) (中文(简体) ).
通知
THIRD-PARTY-NOTICES.md 覆盖 Encripten 运行时间, 等弦轴
编译器-rt 内建, llvm- project的LLVM 支持通知和 homecoop 自己的
slicc shims (Apache 2.0) (英语).