<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=http://email.email.llvm.org/c/eJzVVktv4zYQ_jXyhaAgS04cH3xIY2fXRfPYOIV3TwYl0RJrihRIyo7_fT9SdrbJJsgWLQrUkClxZjgvzivX5WG6qrkinRWqItF5smdWUFtu8UmcJoVuWiE5YeSKbPwHYEDF1uOZKonzpwHEuSZLA05jidIrjyKWFxpU1vGW7HUnS7JhQpK9cDWOE26MNqTh1rKKEym2EFALS6L0opfstRLuJNVzJqUwvHDyAN68sR6Vc-imeJROouwySmZRclqhSP_02_TaNS3Wqi7WQ9iQXZ5nCdYU_14X_2EPTa4ltGosd6QRNvgm3nSqcIeW97zI8VcwKf27p36Ji87mb-sR1ke4B0Y23ouwM7jW8Nbosis4EfY9W2zdAwrJoBZ9IgUxzsKqFWfbuCAUvnplKKEbpen94orQlWhaKQr4lC4JvSNUqEJ2JT_yOO76ozturNAqrgldvEBjv847IUuArMPVDfHRUwTwR_gXnP4uZ-w-pvraBlcWiCwE2LORr-AfKck6pyuu8FWwnMl1wwqjrffHK_4ruFdp1WrjWC75SR5tmfuBOErHdPbg7IodomwWpSlkrnd4A_Em7fVyfXt5M1_eX17NcSKo-AMlnV3d3dwvflvcflo_PC5_RN_eLW_u3wXPfl_O1zeL28Xi9nH-cP8wxxqw64f5p2XQgzpmKoR4NutznXZqq_ReUV8yvEb_HtF_GG7-5k7iW8OqhiG6Vj6p6Yo_OcPwts6IwgGtnfYVwFMcy8LbwJIjOQ1zSB4PFirkN121WijHDWXG17_v9Eob7jqjvDoctbKkEM1NOGx42amSKRe4egi2fNOn9FEzJgULRYpudCMc3RjWIPh6acjylNDqZzOnj4i_Vp6-0PzcxT1HzDsR9X-rI89180unOouLgQO6hit_9okwa3mDfIePizeKrv6wwBSnsq1jf_b9ZrFCezCCl74NDrM4iZNjkz3th6eG7AEjT0BNEYBS7ho0lp2wIRyFCo35Vas_KtQ37b4rt776W2djsoRTj41ZKzReoXZa7hDxhS456mOQq7TzbWzrwzC0d3uwRmvnmS7QoqXgOx7YhwKExolz0mJy0GZ7HAjIjikhJfPahajzqgkF5wHosyl-p4HawA5zgOnUycJ-TtDmQFpWbOH-ssfACoQxyrn0zb52rg2tNr3GUxqx43GldSV5DN4A-anHY_AfdmZyd2G-JE_fvv0mLlxzJ6vxpB5_TpZfP983-wlodoLvo-y6sy2yxNbIdFXFZAUWY4NxyME83OTBe6kfrzjp2pP5jVCiYRKTjdxQDE6OoW6UvcO8HxvO1L4OY5g3w1sCQ3OUDLLnpGZwMBy6YSYelNOsnGQTNkAPq7WZPoZL_RWeGHRGTl-aXUF8lx8N9vFyfPnq9gec6PPK2o770D3LxsN0UE_Ho-F5eXaeJsN0UwyL8Wac8BFjeV5m2WiTjgaS4dLtNDr7Bb1N8T0JLHyfO5sN_rkGYpomKZ4hwj0bp6P44mI0yQHJk4uyZAWLRglvMGzGnk-sTTUw08Ay7yoLpAzB_YxELotKcR4UhoZOOMmnPzsUkr2fg7_PrJjDcL0oAm_MyLEeBFumwZA_AVJkxx0>53712</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
error: symbol memset missing .functype when compiling .c to .s and then to wasm32 .o
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
TerrorJack
</td>
</tr>
</table>
<pre>
When using `wasi-sdk` to compile a C file to `.s` and then to wasm32 `.o`, the second step would fail with an error message like this (compiling it to `.o` directly seems to be fine):
```
/tmp/ghc_1.s:630:2: error: symbol memset missing .functype
call memset
^
```
The command line to reproduce is:
```sh
clang -x c rts/Weak.c -o /tmp/ghc_1.s -fno-PIC -Wimplicit -S -O -include rts/include/ghcversion.h -Irts/include -I_build/stage1/rts/build -I_build/stage1/rts/build/include -Irts/include -I_build/stage1/rts/build -Irts -I_build/stage1/rts/build -Xpreprocessor -include -Xpreprocessor _build/stage1/rts/build/autogen/cabal_macros.h -Xpreprocessor -Wno-nonportable-include-path -Xpreprocessor '-DRtsWay="rts_v"' -Xpreprocessor '-DFS_NAMESPACE=rts' -Xpreprocessor -DCOMPILING_RTS -Xpreprocessor -DNOSMP -Xpreprocessor -DNOSMP -DUSE_MINIINTERPRETER -DNO_REGS '--target=wasm32-unknown-wasi' '--target=wasm32-unknown-wasi' '--target=wasm32-unknown-wasi' -Irts/include -I_build/stage1/rts/build -I_build/stage1/rts/build/include -Irts/include -Wno-unknown-pragmas -Wall -Wextra -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Winline -Wpointer-arith -Wmissing-noreturn -Wnested-externs -Wredundant-decls -Wundef -fno-strict-aliasing -fomit-frame-pointer -O2 -g -Irts -I_build/stage1/rts/build -DNOSMP
clang '--target=wasm32-unknown-wasi' -DNO_REGS -DUSE_MINIINTERPRETER -Irts/include -I_build/stage1/rts/build -I_build/stage1/rts/build/include -Irts/include -I_build/stage1/rts/build -Irts -I_build/stage1/rts/build -fno-PIC -Qunused-arguments -x assembler -c /tmp/ghc_1.s -o _build/stage1/rts/build/c/Weak.o.tmp
```
We tried `13.0.0`, `13.0.1` and `14.0.0-rc1` llvm revisions in the `wasi-sdk` build, the error persists. Since this only involves codegen and not linking with sysroot, I believe the repro can also work with a vanilla `clang` installation.
The commands can be run in the directory packaged in this tarball: https://drive.google.com/file/d/1ur9O8rQ0xYYLi8tmOlg79h7H0SXHPmw9/view?usp=sharing. We're still trying to come up with a minimal self-contained repro, meanwhile this is the best we have so far.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzVVluP4jYU_jXhxUoECSzwwMN0YHapdi47TMXuE3Jik7g4dmQ7MPz7fnZgtnPTbKWqUlFw4nOOz83nlmt2nK0rrkhrhSpJ9Kl_oFbElu3wSZwmha4bITmh5JJs_QdgQCXW46lixPnTAOJcnaUBp7FE6aVHEcsLDSrreEMOupWMbKmQ5CBcheOEG6MNqbm1tOREih0EVMKSKJ10kr1Wwp2les6ECcMLJ4_gzWvrUTmHbopH6TTKLqL-POqfVyjSPd02vXJ1g7Wsis0ANmQXn7I-1hT_Thf_YY91riW0qi13pBY2-CbZtqpwx4Z3vMjpV1Ap_bujfo6LRou39QjrA9wDI2vvRdgZXGt4YzRrC06Efc8WW3WAQlKoFT-SghhnYdWa011SkBi-emEoibdKx3fLSxKvRd1IUcCn8YrEtyQWqpAt4ycep113dM-NFVolFYmXz9DYb_JWSAaQdbi6AT46igD-CP-M0z_ljN3HVN-b4MoCkYUAezLyBfwjJWnrdMkVvgqaU7mpaWG09f54wX8N9yqtGm0czSU_y4sb6l4RR-k4nt87u6bHKJtHaQqZmz3eQLxJe7Xa3FxcL1Z3F5cLnAgqvqKM55e313fLr8ubz5v7h9Vr9M3t6vruXfD8j9Vic728WS5vHhb3d_cLrAG7uV98XgU9YkdNiRDP5l2ux63aKX1QsS8ZXqN_j-g_DDd_c2fxjaFlTRFda5_U8Zo_OkPxts6IwgGtnfYVwFOcysLbQMaRnIY6JI8HCxXyO143WijHTUyNr38_6ZU23LVGeXU4aiWLIZqbcNhw1ipGlQtcPQRbvu1S-qQZlYKGIhVvdS1cvDW0RvB10pDlKYnLX82cLiL-Xnm6QvNrF_cUMe9E1P-tjjzVzW-tai0uBg5oa6782UdCreU18h0-Lt4ouvrDAlOcy7ZO_Nn3m8Ua7cEIznwbHGRJP-mfmux5Pzg3ZA8YeoLYFAEo5b5GY9kLG8JRqNCYX7T6k0Jd0-66cuOrv3U2ISs49dSYtULjFWqv5R4RX2jGUR-DXKWdb2M7H4ahvdujNVo7z3SJFi0F3_PAPhQgNE6ckxaTgza700BA9lQJKanXLkSdV00oOA9An03JOw3UBnaYA0yrzhZ2c4I2R9LQYgf3sw4DKxDGKOfSN_vKuSa02vQKDzNiz5NS61LyBLwB8lOPx-A_aM30dmK-9R9__PgqJq6-leV4Wo2_9Fffv9zVhylo9oIfouyqtQ2yxFbIdFUmZA0WY4NxyME83OTRe6kbrzhpm7P5tVCiphKTjdzGGJwcRd1gncO8H2tO1aEKY5g3w1sCQ3OUDHLgpKJwMBy6pSbpsVnGptmU9pxwks9-dbghBz_P_Zy9ME9ATQTzG7NeonutkbPnHixhSZuffOdD7_TyhfJP3IdPUWtb7rNglI0Haa-aTdiUb_Nhlg_5kNLtdjBN2YiyYU6LERumvCcp4sfOotFvaJOKH0hg4VvmaN4Ts7Sf4hkg7rNxOkwmk-E0ByTvTxijBY2GfV5j6ky8Hok2Zc_Mgkp5W1ogZYjyJySSWpSK8yAO_DEEVNrMHoILf0co9YL0WdD-L6Ubsto">