emscripten-core / emscripten-core/emscripten

--embed-file fails if source path contains non-ascii characters or if destination filename contains non-ascii characters

Open
#19,229 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
27.6k
Forks
3.6k
Avg merge
1d 6h
Merged PRs (30d)
109

Description

STR:

In Emscripten root directory,
```bat
echo foo > test_äö.txt
emcc test/hello_world.c --embed-file test_äö.txt
```
results in failure
```
E:\code\emsdk\emscripten\emäscript>emcc test/hello_world.c --embed-file test_äö.txt
C:\Users\jukkaj\AppData\Local\Temp\emscripten_temp_50sg8plp\embedded_files.s:3:39: error: Expected ,, instead got: Σ
.section .rodata.__em_file_data__test_Σ÷_txt,"",@
C:\Users\jukkaj\AppData\Local\Temp\emscripten_temp_50sg8plp\embedded_files.s:6:22: error: Unexpected token in operand: Σ
__em_file_data__test_Σ÷_txt_name:
C:\Users\jukkaj\AppData\Local\Temp\emscripten_temp_50sg8plp\embedded_files.s:7:8: error: data directive must occur in a data segment: "/test_\0o30o300o303\0o20o240o244\0o30o300o303\0o20o260o266.txt"
.asciz "/test_\0o30o300o303\0o20o240o244\0o30o300o303\0o20o260o266.txt"
^
C:\Users\jukkaj\AppData\Local\Temp\emscripten_temp_50sg8plp\embedded_files.s:8:28: error: Expected ,, instead got: Σ
.size __em_file_data__test_Σ÷_txt_name, 63
C:\Users\jukkaj\AppData\Local\Temp\emscripten_temp_50sg8plp\embedded_files.s:11:22: error: Unexpected token in operand: Σ
__em_file_data__test_Σ÷_txt:
C:\Users\jukkaj\AppData\Local\Temp\emscripten_temp_50sg8plp\embedded_files.s:12:9: error: Could not find incbin file 'test_Σ÷.txt'
.incbin "test_Σ÷.txt"
C:\Users\jukkaj\AppData\Local\Temp\emscripten_temp_50sg8plp\embedded_files.s:13:28: error: Expected ,, instead got: Σ
.size __em_file_data__test_Σ÷_txt, 6
C:\Users\jukkaj\AppData\Local\Temp\emscripten_temp_50sg8plp\embedded_files.s:38:28: error: unexpected token
.dc.a __em_file_data__test_Σ÷_txt_name
C:\Users\jukkaj\AppData\Local\Temp\emscripten_temp_50sg8plp\embedded_files.s:42:28: error: unexpected token
.dc.a __em_file_data__test_Σ÷_txt
emcc: error: 'E:/code/emsdk/llvm/git/build_main_vs2019_64/Release/bin\clang++.exe -target wasm32-unknown-emscripten -c --target=wasm32-unknown-emscripten C:\Users\jukkaj\AppData\Local\Temp\emscripten_temp_50sg8plp\embedded_files.s -o C:\Users\jukkaj\AppData\Local\Temp\emscripten_temp_50sg8plp\embedded_files.o' failed (returned 1)
file_packager: error: 'E:\code\emsdk\emscripten\emäscript\emcc.bat -c --target=wasm32-unknown-emscripten -o C:\Users\jukkaj\AppData\Local\Temp\emscripten_temp_50sg8plp\embedded_files.o C:\Users\jukkaj\AppData\Local\Temp\emscripten_temp_50sg8plp\embedded_files.s' failed (returned 1)
emcc: error: 'E:\code\emsdk\emscripten\emäscript\tools\file_packager.bat a.out.data --from-emcc --embed test_äö.txt --obj-output=C:\Users\jukkaj\AppData\Local\Temp\emscripten_temp_50sg8plp\embedded_files.o' failed (returned 1)
```

---------------------

The above issue cannot be worked around by restricting the destination name to consist of only ascii characters E.g.

STR:

In e.g. Emscripten root directory,
```bat
echo foo > test_äö.txt
emcc test/hello_world.c --embed-file test_äö.txt@/test.txt
```
fails with a different error message:
```
C:\Users\jukkaj\AppData\Local\Temp\emscripten_temp_5mpj6c9s\embedded_files.s:12:9: error: Could not find incbin file 'test_Σ÷.txt'
.incbin "test_Σ÷.txt"
emcc: error: 'E:/code/emsdk/llvm/git/build_main_vs2019_64/Release/bin\clang++.exe -target wasm32-unknown-emscripten -c --target=wasm32-unknown-emscripten C:\Users\jukkaj\AppData\Local\Temp\emscripten_temp_5mpj6c9s\embedded_files.s -o C:\Users\jukkaj\AppData\Local\Temp\emscripten_temp_5mpj6c9s\embedded_files.o' failed (returned 1)
file_packager: error: 'E:\code\emsdk\emscripten\emäscript\emcc.bat -c --target=wasm32-unknown-emscripten -o C:\Users\jukkaj\AppData\Local\Temp\emscripten_temp_5mpj6c9s\embedded_files.o C:\Users\jukkaj\AppData\Local\Temp\emscripten_temp_5mpj6c9s\embedded_files.s' failed (returned 1)
emcc: error: 'E:\code\emsdk\emscripten\emäscript\tools\file_packager.bat a.out.data --from-emcc --embed test_äö.txt@/test.txt --obj-output=C:\Users\jukkaj\AppData\Local\Temp\emscripten_temp_5mpj6c9s\embedded_files.o' failed (returned 1)
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.