emscripten-core / emscripten-core/emscripten

Compile harfbuzz to wasm error ?

Aperta
#18,136 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
C++
Stelle
27.6k
Fork
3.6k
Merge medio
1g 14h
PR unite (30g)
125

Descrizione

**Emsdk version is 3.1.10**

```
/Users/lukiyang/Work/opensource/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__threading_support:83:9: error: unknown type name 'sem_t'
typedef sem_t __libcpp_semaphore_t;
^
/Users/lukiyang/Work/opensource/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__threading_support:460:12: error: use of undeclared identifier 'sem_init'
return sem_init(__sem, 0, __init) == 0;
^
/Users/lukiyang/Work/opensource/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__threading_support:465:12: error: use of undeclared identifier 'sem_destroy'
return sem_destroy(__sem) == 0;
^
/Users/lukiyang/Work/opensource/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__threading_support:470:12: error: use of undeclared identifier 'sem_post'
return sem_post(__sem) == 0;
^
/Users/lukiyang/Work/opensource/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__threading_support:475:12: error: use of undeclared identifier 'sem_wait'
return sem_wait(__sem) == 0;
^
/Users/lukiyang/Work/opensource/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__threading_support:482:12: error: use of undeclared identifier 'sem_timedwait'
return sem_timedwait(__sem, &__ts) == 0;
^
In file included from /Users/lukiyang/Work/DynamicFramework/core/third_party/harfbuzz/src/hb-buffer-serialize.cc:27:
In file included from /Users/lukiyang/Work/DynamicFramework/core/modules/tdfshaper/../../third_party/harfbuzz/src/hb.hh:143:
In file included from /Users/lukiyang/Work/DynamicFramework/core/modules/tdfshaper/../../third_party/harfbuzz/src/hb-config.hh:95:
In file included from /Users/lukiyang/Work/DynamicFramework/core/modules/tdfshaper/harfbuzz/config-override.h:4:
In file included from /Users/lukiyang/Work/opensource/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/mutex:190:
In file included from /Users/lukiyang/Work/opensource/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__mutex_base:14:
/Users/lukiyang/Work/opensource/emsdk/upstream/emscripten/cache/sysroot/include/c++/v1/__threading_support:83:9: error: unknown type name 'sem_t'

```

**I upgrade to 3.1.11 compile is ok, but appear wasm-ld error**

```
wasm-ld: error: /Users/lukiyang/Work/DynamicFramework/core/build-web/_deps/tgfx-src/libtgfx.a(BytesKey.cpp.o): undefined symbol: std::__2::__vector_base_common::__throw_length_error() const
wasm-ld: error: /Users/lukiyang/Work/DynamicFramework/core/build-web/_deps/tgfx-src/libtgfx.a(BytesKey.cpp.o): undefined symbol: std::__2::__vector_base_common::__throw_length_error() const
wasm-ld: error: /Users/lukiyang/Work/DynamicFramework/core/build-web/_deps/tgfx-src/libtgfx.a(BytesKey.cpp.o): undefined symbol: std::__2::__vector_base_common::__throw_length_error() const
wasm-ld: error: /Users/lukiyang/Work/DynamicFramework/core/build-web/_deps/tgfx-src/libtgfx.a(BytesKey.cpp.o): undefined symbol: std::__2::__vector_base_common::__throw_length_error() const
wasm-ld: error: /Users/lukiyang/Work/DynamicFramework/core/build-web/_deps/tgfx-src/libtgfx.a(BytesKey.cpp.o): undefined symbol: std::__2::__vector_base_common::__throw_length_error() const
wasm-ld: error: /Users/lukiyang/Work/DynamicFramework/core/build-web/_deps/tgfx-src/libtgfx.a(BytesKey.cpp.o): undefined symbol: std::__2::__vector_base_common::__throw_length_error() const
wasm-ld: error: /Users/lukiyang/Work/DynamicFramework/core/build-web/_deps/tgfx-src/libtgfx.a(BytesKey.cpp.o): undefined symbol: std::__2::__vector_base_common::__throw_length_error() const
wasm-ld: error: /Users/lukiyang/Work/DynamicFramework/core/build-web/_deps/tgfx-src/libtgfx.a(GLProgramDataManager.cpp.o): undefined symbol: std::__2::__vector_base_common::__throw_out_of_range() const
wasm-ld: error: /Users/lukiyang/Work/DynamicFramework/core/build-web/_deps/tgfx-src/libtgfx.a(BytesKey.cpp.o): undefined symbol: std::__2::__vector_base_common::__throw_length_error() const
wasm-ld: error: /Users/lukiyang/Work/DynamicFramework/core/build-web/_deps/tgfx-src/libtgfx.a(BytesKey.cpp.o): undefined symbol: std::__2::__vector_base_common::__throw_length_error() const
wasm-ld: error: /Users/lukiyang/Work/DynamicFramework/core/build-web/_deps/tgfx-src/libtgfx.a(BytesKey.cpp.o): undefined symbol: std::__2::__vector_base_common::__throw_length_error() const
wasm-ld: error: /Users/lukiyang/Work/DynamicFramework/core/build-web/_deps/tgfx-src/libtgfx.a(BytesKey.cpp.o): undefined symbol: std::__2::__vector_base_common::__throw_length_error() const
wasm-ld: error: /Users/lukiyang/Work/DynamicFramework/core/build-web/_deps/tgfx-src/libtgfx.a(BytesKey.cpp.o): undefined symbol: std::__2::__vector_base_common::__throw_length_error() const
wasm-ld: error: /Users/lukiyang/Work/DynamicFramework/core/build-web/_deps/tgfx-src/libtgfx.a(BytesKey.cpp.o): undefined symbol: std::__2::__vector_base_common::__throw_length_error() const
wasm-ld: error: /Users/lukiyang/Work/DynamicFramework/core/build-web/_deps/tgfx-src/libtgfx.a(BytesKey.cpp.o): undefined symbol: std::__2::__vector_base_common::__throw_length_error() const
wasm-ld: error: /Users/lukiyang/Work/DynamicFramework/core/build-web/_deps/tgfx-src/libtgfx.a(BytesKey.cpp.o): undefined symbol: std::__2::__vector_base_common::__throw_length_error() const
wasm-ld: error: /Users/lukiyang/Work/DynamicFramework/core/build-web/_deps/tgfx-src/libtgfx.a(BytesKey.cpp.o): undefined symbol: std::__2::__vector_base_common::__throw_length_error() const
wasm-ld: error: /Users/lukiyang/Work/DynamicFramework/core/build-web/_deps/tgfx-src/libtgfx.a(BytesKey.cpp.o): undefined symbol: std::__2::__vector_base_common::__throw_length_error() const
wasm-ld: error: /Users/lukiyang/Work/DynamicFramework/core/build-web/_deps/tgfx-src/libtgfx.a(BytesKey.cpp.o): undefined symbol: std::__2::__vector_base_common::__throw_length_error() const
wasm-ld: error: /Users/lukiyang/Work/DynamicFramework/core/build-web/_deps/tgfx-src/libtgfx.a(BytesKey.cpp.o): undefined symbol: std::__2::__vector_base_common::__throw_length_error() const

```

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia confrontando l’output della build di Emscripten 3.1.10 e 3.1.11, quindi esamina hb-buffer-serialize.cc, hb-config.hh e config-override.h in relazione al mutex e agli errori di linking. Riproduci la build di HarfBuzz con la configurazione indicata; il lavoro è completato quando compila e fa il linking verso wasm senza gli errori relativi ai simboli sem_t o std::__2.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
cpp, wasm
Ambito
build-system, compilers
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.