Hi,

The words `shared:ERROR:` are due to the fact that the error is reported
from the file called shared.py.   I can see how that is confusing.  We
should probably drop the first part and just repot "error:".

It does look like that those symbols (e.g. `g_defines`) are being defined
in multiple compilation units.  I'm not sure how this would work in
fastcomp but not with the backend.  Does this codebase build with other
toolchains? (e.g. native/desktop toolchains?).  Can you take a look at the
definition of `g_defines`.  Is it defined in a header file?  From the error
messages, it looks like those symbols might be defined in a header file
which would mean they are duplicated in each object file that includes them.

cheers,
sam


On Mon, Mar 2, 2020 at 2:37 PM r0ller r0ller <[email protected]> wrote:

> Hi All,
>
> My project built fine some time back with fastcomp and now I wanted to
> catch up with upstream. Unfortunately, the command I used to build the
> stuff results in duplicate symbol errors as if I wanted to build a shared
> library. However, all the dependent libs are compiled to .a archives.
> Here's the command (tried to copy relevant parts from the makefile):
>
> CXXFLAGS=-std=c++11 -fPIC -pedantic -Wall
> em++ ${CXXFLAGS} $$includedirs -s EXPORTED_FUNCTIONS=$$exportedfunction
> $$srcfilepath $$projectdir/logger.cpp $$projectdir/sqlite_db.cpp
> $$projectdir/lexer.cpp $$projectdir/sp.cpp $$projectdir/tokenpaths.cpp
> $$projectdir/query_result.cpp $$projectdir/morphan_result.cpp
> $$projectdir/morphan.cpp $$projectdir/transgraph.cpp $$jslibdir -lsqlite3
> -lfoma -lz -lreadline -o $$absbuilddir/hi_js/embedded/hi.js --embed-file
> $$jsdb --embed-file $$jsfst;
>
> See the result (only the errors it ends up with) at the end. The
> interesting thing is that all errors seem to come from libfoma.a and the
> build stops with SHARED ERROR. Does anyone happen to have any hint how to
> make it build?
>
> Thanks&regards,
> r0ller
>
> wasm-ld: error: duplicate symbol: g_defines
> >>> defined in /home/r0ller/hi/alice/hi_js/libfoma.a(apply.o)
> >>> defined in /home/r0ller/hi/alice/hi_js/libfoma.a(int_stack.o)
>
> wasm-ld: error: duplicate symbol: g_defines_f
> >>> defined in /home/r0ller/hi/alice/hi_js/libfoma.a(apply.o)
> >>> defined in /home/r0ller/hi/alice/hi_js/libfoma.a(int_stack.o)
>
> wasm-ld: error: duplicate symbol: g_defines
> >>> defined in /home/r0ller/hi/alice/hi_js/libfoma.a(int_stack.o)
> >>> defined in /home/r0ller/hi/alice/hi_js/libfoma.a(topsort.o)
>
> wasm-ld: error: duplicate symbol: g_defines_f
> >>> defined in /home/r0ller/hi/alice/hi_js/libfoma.a(int_stack.o)
> >>> defined in /home/r0ller/hi/alice/hi_js/libfoma.a(topsort.o)
>
> wasm-ld: error: duplicate symbol: g_defines
> >>> defined in /home/r0ller/hi/alice/hi_js/libfoma.a(topsort.o)
> >>> defined in /home/r0ller/hi/alice/hi_js/libfoma.a(flags.o)
>
> wasm-ld: error: duplicate symbol: g_defines_f
> >>> defined in /home/r0ller/hi/alice/hi_js/libfoma.a(topsort.o)
> >>> defined in /home/r0ller/hi/alice/hi_js/libfoma.a(flags.o)
>
> wasm-ld: error: duplicate symbol: g_defines
> >>> defined in /home/r0ller/hi/alice/hi_js/libfoma.a(flags.o)
> >>> defined in /home/r0ller/hi/alice/hi_js/libfoma.a(determinize.o)
>
> wasm-ld: error: duplicate symbol: g_defines_f
> >>> defined in /home/r0ller/hi/alice/hi_js/libfoma.a(flags.o)
> >>> defined in /home/r0ller/hi/alice/hi_js/libfoma.a(determinize.o)
>
> wasm-ld: error: duplicate symbol: trans_array
> >>> defined in /home/r0ller/hi/alice/hi_js/libfoma.a(determinize.o)
> >>> defined in /home/r0ller/hi/alice/hi_js/libfoma.a(minimize.o)
>
> wasm-ld: error: duplicate symbol: trans_list
> >>> defined in /home/r0ller/hi/alice/hi_js/libfoma.a(determinize.o)
> >>> defined in /home/r0ller/hi/alice/hi_js/libfoma.a(minimize.o)
>
> wasm-ld: error: duplicate symbol: g_defines
> >>> defined in /home/r0ller/hi/alice/hi_js/libfoma.a(determinize.o)
> >>> defined in /home/r0ller/hi/alice/hi_js/libfoma.a(minimize.o)
>
> wasm-ld: error: duplicate symbol: g_defines_f
> >>> defined in /home/r0ller/hi/alice/hi_js/libfoma.a(determinize.o)
> >>> defined in /home/r0ller/hi/alice/hi_js/libfoma.a(minimize.o)
>
> wasm-ld: error: duplicate symbol: g_defines
> >>> defined in /home/r0ller/hi/alice/hi_js/libfoma.a(minimize.o)
> >>> defined in /home/r0ller/hi/alice/hi_js/libfoma.a(reverse.o)
>
> wasm-ld: error: duplicate symbol: g_defines_f
> >>> defined in /home/r0ller/hi/alice/hi_js/libfoma.a(minimize.o)
> >>> defined in /home/r0ller/hi/alice/hi_js/libfoma.a(reverse.o)
>
> wasm-ld: error: duplicate symbol: g_defines
> >>> defined in /home/r0ller/hi/alice/hi_js/libfoma.a(reverse.o)
> >>> defined in /home/r0ller/hi/alice/hi_js/libfoma.a(sigma.o)
>
> wasm-ld: error: duplicate symbol: g_defines_f
> >>> defined in /home/r0ller/hi/alice/hi_js/libfoma.a(reverse.o)
> >>> defined in /home/r0ller/hi/alice/hi_js/libfoma.a(sigma.o)
>
> wasm-ld: error: duplicate symbol: g_defines
> >>> defined in /home/r0ller/hi/alice/hi_js/libfoma.a(sigma.o)
> >>> defined in /home/r0ller/hi/alice/hi_js/libfoma.a(define.o)
>
> wasm-ld: error: duplicate symbol: g_defines_f
> >>> defined in /home/r0ller/hi/alice/hi_js/libfoma.a(sigma.o)
> >>> defined in /home/r0ller/hi/alice/hi_js/libfoma.a(define.o)
>
> wasm-ld: error: duplicate symbol: g_defines
> >>> defined in /home/r0ller/hi/alice/hi_js/libfoma.a(define.o)
> >>> defined in /home/r0ller/hi/alice/hi_js/libfoma.a(io.o)
>
> wasm-ld: error: duplicate symbol: g_defines_f
> >>> defined in /home/r0ller/hi/alice/hi_js/libfoma.a(define.o)
> >>> defined in /home/r0ller/hi/alice/hi_js/libfoma.a(io.o)
>
> wasm-ld: error: too many errors emitted, stopping now (use -error-limit=0
> to see all errors)
> shared:ERROR: '/usr/pkg/bin/wasm-ld -o
> /tmp/emscripten_temp_d2_aum2l/hi.wasm --allow-undefined --lto-O0
> /tmp/emscripten_temp_d2_aum2l/hi.y_0.o
> -L/home/r0ller/emsdk/upstream/emscripten/system/local/lib
> /tmp/emscripten_temp_d2_aum2l/logger_1.o
> -L/home/r0ller/emsdk/upstream/emscripten/system/lib
> /tmp/emscripten_temp_d2_aum2l/sqlite_db_2.o
> -L/home/r0ller/.emscripten_cache/wasm-obj
> /tmp/emscripten_temp_d2_aum2l/lexer_3.o
> /tmp/emscripten_temp_d2_aum2l/sp_4.o
> /tmp/emscripten_temp_d2_aum2l/tokenpaths_5.o
> /tmp/emscripten_temp_d2_aum2l/query_result_6.o
> /tmp/emscripten_temp_d2_aum2l/morphan_result_7.o
> /tmp/emscripten_temp_d2_aum2l/morphan_8.o
> /tmp/emscripten_temp_d2_aum2l/transgraph_9.o -L/home/r0ller/hi/alice/hi_js
> /home/r0ller/hi/alice/hi_js/libsqlite3.a
> /home/r0ller/hi/alice/hi_js/libfoma.a /home/r0ller/hi/alice/hi_js/libz.a
> /home/r0ller/hi/alice/hi_js/libreadline.a
> /home/r0ller/.emscripten_cache/wasm-obj/libc.a
> /home/r0ller/.emscripten_cache/wasm-obj/libcompiler_rt.a
> /home/r0ller/.emscripten_cache/wasm-obj/libc-wasm.a
> /home/r0ller/.emscripten_cache/wasm-obj/libc++-noexcept.a
> /home/r0ller/.emscripten_cache/wasm-obj/libc++abi-noexcept.a
> /home/r0ller/.emscripten_cache/wasm-obj/libdlmalloc.a
> /home/r0ller/.emscripten_cache/wasm-obj/libpthread_stub.a
> /home/r0ller/.emscripten_cache/wasm-obj/libc_rt_wasm.a
> /home/r0ller/.emscripten_cache/wasm-obj/libsockets.a --import-memory
> --import-table -mllvm -combiner-global-alias-analysis=false -mllvm
> -enable-emscripten-sjlj -mllvm -disable-lsr --strip-debug --export
> __wasm_call_ctors --export __data_end --export hi --export malloc --export
> free --export setThrew --export __errno_location --export fflush --export
> _ZSt18uncaught_exceptionv --export emscripten_builtin_free --export
> _get_environ --export emscripten_builtin_memalign --export memalign
> --export usleep --export _get_tzname --export _get_daylight --export
> _get_timezone --export realloc -z stack-size=5242880
> --initial-memory=16777216 --no-entry --max-memory=16777216
> --global-base=1024' failed (1)
> *** Error code 1
>
> Stop.
> make: stopped in /home/r0ller/hi/alice
>
> --
> You received this message because you are subscribed to the Google Groups
> "emscripten-discuss" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/emscripten-discuss/f9c54035-db3b-4acf-bc87-8aa04c28d527%40googlegroups.com
> <https://groups.google.com/d/msgid/emscripten-discuss/f9c54035-db3b-4acf-bc87-8aa04c28d527%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"emscripten-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/emscripten-discuss/CAL_va2_12Vk_daRCr_AL1oMRtCY5pH__kaAi%3DvLLumyvgAfw3w%40mail.gmail.com.

Reply via email to