Skip to content

"Toolchain is unable to link executables" with libvpx on tot-upstream #9449

Description

@bvibber

The configure script for libvpx errors out on tot-upstream (releases-upstream-cef6f9c51078c2a2ba7c5c69bd368836b6552295-64bit), which worked on 1.38.45-upstream (releases-upstream-f3030d9fffcc9e1287cb6b8e72982e94ece31d71-64bit).

EMCONFIGURE_JS=1 \
  LDFLAGS=-pthread \
  emconfigure ../../../libvpx/configure \
    --prefix="$dir/build/wasm-mt/root" \
    --target=generic-gnu \
    --extra-cflags=-pthread\ -s\ USE_PTHREADS=1\ -s\ WASM=1\ -I`dirname \`which emcc\``/system/lib/libcxxabi/include/ \
    --enable-multithread \
    --enable-vp9-decoder \
    --disable-vp8-encoder \
    --disable-vp9-encoder \
    --disable-shared \
    --disable-docs \
    --disable-examples \
    --disable-tools \
    --disable-unit-tests
cache:INFO: generating system asset: is_vanilla.txt... (this will be cached in "/Users/brion/.emscripten_cache/is_vanilla.txt" for subsequent builds)
cache:INFO:  - ok
  enabling vp9_decoder
  disabling vp8_encoder
  disabling vp9_encoder
  disabling shared
  disabling docs
  disabling examples
  disabling tools
  disabling unit_tests
  enabling vp8_decoder
Configuring for target 'generic-gnu'
  enabling generic
  enabling webm_io
  enabling libyuv
Toolchain is unable to link executables

Configuration failed. This could reflect a misconfiguration of your
toolchains, improper options selected, or another problem. If you
don't see any useful error messages above, the next step is to look
at the configure error log file (config.log) to determine what
configure was trying to do when it died.

The config.log fails with:

wasm-ld: error: unable to find library -lpthread

Full input/commands/output:

BEGIN /var/folders/1l/zc63mhrx20b6mmzh5t2j_g200000gp/T//vpx-conf-69696-27280.c
     1	int main(void) {return 0;}
END /var/folders/1l/zc63mhrx20b6mmzh5t2j_g200000gp/T//vpx-conf-69696-27280.c
/Users/brion/src/emsdk/upstream/emscripten/emcc -DNDEBUG -O3 -Wall -Wdeclaration-after-statement -Wdisabled-optimization -Wfloat-conversion -Wparentheses-equality -Wpointer-arith -Wtype-limits -Wcast-qual -Wvla -Wimplicit-function-declaration -Wuninitialized -Wunused -Wextra -Wundef -Wshorten-64-to-32 -pthread -s USE_PTHREADS=1 -s WASM=1 -I/Users/brion/src/emsdk/upstream/emscripten/system/lib/libcxxabi/include/ -c -o /var/folders/1l/zc63mhrx20b6mmzh5t2j_g200000gp/T//vpx-conf-69696-27280.o /var/folders/1l/zc63mhrx20b6mmzh5t2j_g200000gp/T//vpx-conf-69696-27280.c
/Users/brion/src/emsdk/upstream/emscripten/em++ -pthread -o /var/folders/1l/zc63mhrx20b6mmzh5t2j_g200000gp/T//vpx-conf-69696-27280.x /var/folders/1l/zc63mhrx20b6mmzh5t2j_g200000gp/T//vpx-conf-69696-27280.o -lpthread
cache:INFO: generating system library: libc-mt.a... (this will be cached in "/Users/brion/.emscripten_cache/wasm-obj/libc-mt.a" for subsequent builds)
cache:INFO:  - ok
cache:INFO: generating system library: libcompiler_rt.a... (this will be cached in "/Users/brion/.emscripten_cache/wasm-obj/libcompiler_rt.a" for subsequent builds)
cache:INFO:  - ok
cache:INFO: generating system library: libc-wasm.a... (this will be cached in "/Users/brion/.emscripten_cache/wasm-obj/libc-wasm.a" for subsequent builds)
cache:INFO:  - ok
cache:INFO: generating system library: libdlmalloc-mt.a... (this will be cached in "/Users/brion/.emscripten_cache/wasm-obj/libdlmalloc-mt.a" for subsequent builds)
cache:INFO:  - ok
cache:INFO: generating system library: libpthreads-mt.a... (this will be cached in "/Users/brion/.emscripten_cache/wasm-obj/libpthreads-mt.a" for subsequent builds)
cache:INFO:  - ok
cache:INFO: generating system library: libcompiler_rt_wasm.a... (this will be cached in "/Users/brion/.emscripten_cache/wasm-obj/libcompiler_rt_wasm.a" for subsequent builds)
cache:INFO:  - ok
cache:INFO: generating system library: libc_rt_wasm.a... (this will be cached in "/Users/brion/.emscripten_cache/wasm-obj/libc_rt_wasm.a" for subsequent builds)
cache:INFO:  - ok
wasm-ld: error: unable to find library -lpthread
shared:ERROR: '/Users/brion/src/emsdk/upstream/bin/wasm-ld -o /var/folders/1l/zc63mhrx20b6mmzh5t2j_g200000gp/T/emscripten_temp_oj6Inv/vpx-conf-69696-27280.x.wasm --allow-undefined --import-memory --import-table --lto-O0 /var/folders/1l/zc63mhrx20b6mmzh5t2j_g200000gp/T//vpx-conf-69696-27280.o -lpthread -L/Users/brion/src/emsdk/upstream/emscripten/system/local/lib -L/Users/brion/src/emsdk/upstream/emscripten/system/lib -L/Users/brion/.emscripten_cache/wasm-obj /Users/brion/.emscripten_cache/wasm-obj/libc-mt.a /Users/brion/.emscripten_cache/wasm-obj/libcompiler_rt.a /Users/brion/.emscripten_cache/wasm-obj/libc-wasm.a /Users/brion/.emscripten_cache/wasm-obj/libdlmalloc-mt.a /Users/brion/.emscripten_cache/wasm-obj/libpthreads-mt.a /Users/brion/.emscripten_cache/wasm-obj/libcompiler_rt_wasm.a /Users/brion/.emscripten_cache/wasm-obj/libc_rt_wasm.a --shared-memory -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr --export __wasm_call_ctors --export __data_end --export main --export malloc --export free --export setThrew --export __errno_location --export fflush --export emscripten_get_global_libc --export __pthread_tsd_run_dtors --export _register_pthread_ptr --export pthread_self --export __emscripten_pthread_data_constructor --export memalign -z stack-size=5242880 --initial-memory=16777216 --no-entry --max-memory=16777216 --global-base=1024' failed (1)

I'm somewhat suspicious the library path changes in #9436 could be related, but haven't confirmed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions