emscripten-core / emscripten-core/emscripten

Duplicate symbol error emitted,when I use libiconv with -sMAIN_MODULE=1 (version:2.0.0)

Open
#11,985 19 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
27.6k
Forks
3.6k
Avg merge
1d 1h
Merged PRs (30d)
105

Description

the error list:

```
wasm-ld: error: duplicate symbol: __ctype_get_mb_cur_max
>>> defined in ../../lib/bitcode/libiconv.so
>>> defined in /opt/emsdk/upstream/emscripten/cache/wasm-pic/libc.a(__ctype_get_mb_cur_max.o)

wasm-ld: error: duplicate symbol: __errno_location
>>> defined in ../../lib/bitcode/libiconv.so
>>> defined in /opt/emsdk/upstream/emscripten/cache/wasm-pic/libc.a(__errno_location.o)

wasm-ld: error: duplicate symbol: __progname
>>> defined in ../../lib/bitcode/libiconv.so
>>> defined in /opt/emsdk/upstream/emscripten/cache/wasm-pic/libc.a(libc.o)

wasm-ld: error: duplicate symbol: __progname_full
>>> defined in ../../lib/bitcode/libiconv.so
>>> defined in /opt/emsdk/upstream/emscripten/cache/wasm-pic/libc.a(libc.o)

wasm-ld: error: duplicate symbol: __libc
>>> defined in ../../lib/bitcode/libiconv.so
>>> defined in /opt/emsdk/upstream/emscripten/cache/wasm-pic/libc.a(libc.o)

wasm-ld: error: duplicate symbol: __hwcap
>>> defined in ../../lib/bitcode/libiconv.so
>>> defined in /opt/emsdk/upstream/emscripten/cache/wasm-pic/libc.a(libc.o)

wasm-ld: error: duplicate symbol: __sysinfo
>>> defined in ../../lib/bitcode/libiconv.so
>>> defined in /opt/emsdk/upstream/emscripten/cache/wasm-pic/libc.a(libc.o)

wasm-ld: error: duplicate symbol: __lctrans
>>> defined in ../../lib/bitcode/libiconv.so
>>> defined in /opt/emsdk/upstream/emscripten/cache/wasm-pic/libc.a(__lctrans.o)

wasm-ld: error: duplicate symbol: __lctrans_cur
>>> defined in ../../lib/bitcode/libiconv.so
>>> defined in /opt/emsdk/upstream/emscripten/cache/wasm-pic/libc.a(__lctrans.o)

wasm-ld: error: duplicate symbol: __nl_langinfo_l
>>> defined in ../../lib/bitcode/libiconv.so
>>> defined in /opt/emsdk/upstream/emscripten/cache/wasm-pic/libc.a(langinfo.o)

wasm-ld: error: duplicate symbol: __nl_langinfo
>>> defined in ../../lib/bitcode/libiconv.so
>>> defined in /opt/emsdk/u (You can run make with `VEBOpstream/emscripten/cache/wasm-pic/libc.a(langinfo.o)

wasm-ld: error: duplicate symbol: pthread_self
>>> defined in ../../lib/bitcode/libiconv.so
>>> defined in /opt/emsdk/upstream/emscripten/cache/wasm-pic/libc.a(emscripten_pthread.o)

wasm-ld: error: duplicate symbol: __emscripten_pthread_data_constructor
>>> defined in ../../lib/bitcode/libiconv.so
>>> defined in /opt/emsdk/upstream/emscripten/cache/wasm-pic/libc.a(emscripten_pthread.o)

wasm-ld: error: duplicate symbol: __fsmu8
>>> defined in ../../lib/bitcode/libiconv.so
>>> defined in /opt/emsdk/upstream/emscripten/cache/wasm-pic/libc.a(internal.o)

wasm-ld: error: duplicate symbol: mbrtowc
>>> defined in ../../lib/bitcode/libiconv.so
>>> defined in /opt/emsdk/upstream/emscripten/cache/wasm-pic/libc.a(mbrtowc.o)
```

libiconv.so:
is compiled used ` emconfigure ./configure `, version is 1.16.0

However, when set -sMAIN_MODULE=0 ,everything is ok!

Can you help me to solve this ploblem? I want to use dynamic link in my main program. but i do not know how to solve the porblem.

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.