parse exception: popping from empty stack
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 45/100
Línea de trabajo
Ejecuta el script de reproducción de shell proporcionado con emcc y em++; inspecciona el out.wasm generado alrededor del paso wasm-opt --safe-heap y usa wasm-validate --enable-all cuando esté disponible. Se considera terminado cuando la reproducción ya no hace que wasm-opt informe “popping from empty stack” y el enlace se complete correctamente.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Please include the following in your bug report:
Version of emscripten/emsdk:
emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 6.0.5-git
clang version 24.0.0git
Target: wasm32-unknown-emscripten
Thread model: posix
InstalledDir: /opt/homebrew/Cellar/emscripten/6.0.5/libexec/llvm/bin
Failing command line in full:
$ em++ -v $LINK_FLAGS -o out.js main.o functable.o
/opt/homebrew/Cellar/emscripten/6.0.5/libexec/llvm/bin/clang --version
/opt/homebrew/Cellar/emscripten/6.0.5/libexec/llvm/bin/wasm-ld -o out.wasm /var/folders/tn/r_t_4vv55572jny2jgw1082r0000gq/T/tmp3ne1o_u7libemscripten_js_symbols.so -Bstatic --import-undefined --strip-debug --export-if-defined=malloc --export-if-defined=sbrk --export-if-defined=emscripten_stack_get_end --export-if-defined=emscripten_stack_get_free --export-if-defined=emscripten_stack_get_base --export-if-defined=emscripten_stack_get_current --export-if-defined=emscripten_stack_init --export-if-defined=_emscripten_stack_alloc --export-if-defined=emscripten_get_sbrk_ptr --export-if-defined=__wasm_call_ctors --export-if-defined=_emscripten_stack_restore --export-if-defined=__start_em_asm --export-if-defined=__stop_em_asm --export-if-defined=__start_em_lib_deps --export-if-defined=__stop_em_lib_deps --export-if-defined=__start_em_js --export-if-defined=__stop_em_js --export-if-defined=main --export-if-defined=__main_argc_argv --export-if-defined=fflush --export-table -z stack-size=65536 --no-growable-memory --initial-heap=16777216 --no-entry --stack-first --table-base=1 main.o functable.o -L/opt/homebrew/Cellar/emscripten/6.0.5/libexec/cache/sysroot/lib/wasm32-emscripten -L/opt/homebrew/Cellar/emscripten/6.0.5/libexec/src/lib -lGL-getprocaddr -lal -lhtml5 -lstubs-debug -lnoexit -lc-debug -ldlmalloc-debug -lclang_rt.builtins -lc++-debug-noexcept -lc++abi-debug-noexcept -lsockets -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr
/opt/homebrew/Cellar/emscripten/6.0.5/libexec/llvm/bin/llvm-objcopy out.wasm out.wasm '--remove-section=llvm.func_attr.annotate.*' --remove-section=producers --remove-section=name '--remove-section=.debug*'
em++: warning: warnings in JS library compilation [-Wjs-compiler]
/opt/homebrew/Cellar/emscripten/6.0.5/libexec/binaryen/bin/wasm-opt --safe-heap out.wasm -oout.wasm --mvp-features --enable-bulk-memory --enable-bulk-memory-opt --enable-call-indirect-overlong --enable-multivalue --enable-mutable-globals --enable-nontrapping-float-to-int --enable-reference-types --enable-sign-ext
[parse exception: popping from empty stack (at 0:683)]
Fatal: error parsing wasm (try --debug for more info)
em++: error: '/opt/homebrew/Cellar/emscripten/6.0.5/libexec/binaryen/bin/wasm-opt --safe-heap out.wasm -o out.wasm --mvp-features --enable-bulk-memory --enable-bulk-memory-opt --enable-call-indirect-overlong --enable-multivalue --enable-mutable-globals --enable-nontrapping-float-to-int --enable-reference-types --enable-sign-ext' failed (returned 1)
Full link command and output with -v appended:
Here's a repro script you can modify or use as is:
#!/bin/bash
set -e
WORKDIR=$(mktemp -d)
cd "$WORKDIR"
echo "Working in $WORKDIR"
cat > functable.c << 'EOF'
void (*t)();
void x();
void o() {
void (*local)() = x;
__atomic_store(&t, &local, 5);
__atomic_thread_fence(5);
t();
}
EOF
cat > main.cxx << 'EOF'
#include <emscripten.h>
extern "C" void o();
extern "C" EMSCRIPTEN_KEEPALIVE void load() {
o();
}
EOF
echo "--- compiling functable.c (-O1 -fPIC) ---"
emcc -O1 -fPIC -c -o functable.o functable.c
echo "--- compiling main.cxx ---"
em++ -c -o main.o main.cxx
echo "--- linking ---"
LINK_FLAGS="-sASSERTIONS -sERROR_ON_UNDEFINED_SYMBOLS=0 -sSAFE_HEAP=1 -sEXPORTED_FUNCTIONS=_malloc"
set +e
em++ $LINK_FLAGS -o out.js main.o functable.o
LINK_STATUS=$?
set -e
echo
echo "=== link exit status: $LINK_STATUS ==="
if [ -f out.wasm ]; then
echo "=== wasm-validate output ==="
if command -v wasm-validate >/dev/null 2>&1; then
wasm-validate --enable-all out.wasm || true
else
echo "wasm-validate not found on PATH"
fi
else
echo "out.wasm was not produced"
fi
echo
if [ "$LINK_STATUS" -ne 0 ]; then
echo "reproduces"
else
echo "failed to reproduce"
fi
- Lenguaje dominante
- C++
- Estrellas
- 27.8k
- Forks
- 3.6k
- Merge medio
- 1 d 3 h
- PR fusionados (30 d)
- 179
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de emscripten-core/emscripten
-
`other.test_cmake_cxx_import_std` fails on CMake 3.30–4.0.2 due to missing `CMAKE_EXPERIMENTAL_CXX_IMPORT_STD` UUIDsPosiblemente ocupada @subhaushsingh la tomó hace 1 día. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
emscripten-core/emscripten#28160 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
emscripten-core/emscripten#27994 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
LEGACY_GL_EMULATION: generated fixed-function fragment shaders use mediump — fp16 overflow where mediump is half precisionPosiblemente ocupada @TheTomBritton la tomó hace 12 días. AbiertoDesktop OpenGL emulation
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
emscripten-core/emscripten#27948 · 4 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100
emscripten-core/emscripten#27906 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
run_python, run_python_compiler could readlink -fPosiblemente ocupada @kapouer la tomó hace 128 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
emscripten-core/emscripten#27211 · 1 comentario ·
Los mantenedores suelen responder en 1 día
Todos los issues de emscripten-core/emscripten
Issues similares
-
Linux npm packaging leaves workspace files that block subsequent CI checkoutPosiblemente ocupada @Spockkk0225 la tomó hoy. Abiertoci
Dificultad 2/5 1-3 horas Aptitud para principiantes 73/100
alibaba/neug#1195 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 3 días
-
Bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
SCIInstitute/SCIRun#2909 ·
Los mantenedores suelen responder en 2 días
-
area: packaging blocked dependencies P3: low post-stable value: medium
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
patrick-hudson/put.gd-desktop#1210 ·
Los mantenedores suelen responder en 1 día