llvm / llvm-project

The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
http://llvm.org
Other
27.58k stars 11.34k forks source link

Recent regression: `symbol 'std::__1::num_get<char, std::__1::istreambuf_iterator<char, std::__1::char_traits<char> > >::id' used as both __thread and non-__thread` #60099

Open sylvestre opened 1 year ago

sylvestre commented 1 year ago

On Debian arm64 trunk: Started to regress recently with:

FAILED: /build/llvm-toolchain-snapshot-16~++20230117093440+b332499a94df/build-llvm/tools/clang/stage2-bins/lib/libc++.so.1.0 
: && "/build/llvm-toolchain-snapshot-16~++20230117093440+b332499a94df/build-llvm/tools/clang/stage2-bins/./bin/clang++" --target=aarch64-unknown-linux-gnu -fPIC -fstack-protector-strong -Wformat -Werror=format-security -Wno-unused-command-line-argument -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -ffile-prefix-map=/build/llvm-toolchain-snapshot-16~++20230117093440+b332499a94df/build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins=build-llvm/tools/clang/stage2-bins/runtimes/runtimes-bins -ffile-prefix-map=/build/llvm-toolchain-snapshot-16~++20230117093440+b332499a94df/= -no-canonical-prefixes -O2 -DNDEBUG -g1  -Wl,-z,relro -Wl,--build-id -L/build/llvm-toolchain-snapshot-16~++20230117093440+b332499a94df/build-llvm/lib -Wl,-z,defs -Wl,-z,nodelete -fuse-ld=gold -shared -Wl,-soname,libc++.so.1 -o "/build/llvm-toolchain-snapshot-16~++20230117093440+b332499a94df/build-llvm/tools/clang/stage2-bins/lib/libc++.so.1.0" libcxx/src/CMakeFiles/cxx_shared.dir/algorithm.cpp.o libcxx/src/CMakeFiles/cxx_shared.dir/any.cpp.o libcxx/src/CMakeFiles/cxx_shared.dir/atomic.cpp.o libcxx/src/CMakeFiles/cxx_shared.dir/barrier.cpp.o libcxx/src/CMakeFiles/cxx_shared.dir/bind.cpp.o libcxx/src/CMakeFiles/cxx_shared.dir/charconv.cpp.o libcxx/src/CMakeFiles/cxx_shared.dir/chrono.cpp.o libcxx/src/CMakeFiles/cxx_shared.dir/condition_variable.cpp.o libcxx/src/CMakeFiles/cxx_shared.dir/condition_variable_destructor.cpp.o libcxx/src/CMakeFiles/cxx_shared.dir/exception.cpp.o libcxx/src/CMakeFiles/cxx_shared.dir/functional.cpp.o libcxx/src/CMakeFiles/cxx_shared.dir/future.cpp.o libcxx/src/CMakeFiles/cxx_shared.dir/hash.cpp.o libcxx/src/CMakeFiles/cxx_shared.dir/legacy_pointer_safety.cpp.o libcxx/src/CMakeFiles/cxx_shared.dir/memory.cpp.o libcxx/src/CMakeFiles/cxx_shared.dir/memory_resource.cpp.o libcxx/src/CMakeFiles/cxx_shared.dir/mutex.cpp.o libcxx/src/CMakeFiles/cxx_shared.dir/mutex_destructor.cpp.o libcxx/src/CMakeFiles/cxx_shared.dir/new.cpp.o libcxx/src/CMakeFiles/cxx_shared.dir/optional.cpp.o libcxx/src/CMakeFiles/cxx_shared.dir/random_shuffle.cpp.o libcxx/src/CMakeFiles/cxx_shared.dir/ryu/d2fixed.cpp.o libcxx/src/CMakeFiles/cxx_shared.dir/ryu/d2s.cpp.o libcxx/src/CMakeFiles/cxx_shared.dir/ryu/f2s.cpp.o libcxx/src/CMakeFiles/cxx_shared.dir/shared_mutex.cpp.o libcxx/src/CMakeFiles/cxx_shared.dir/stdexcept.cpp.o libcxx/src/CMakeFiles/cxx_shared.dir/string.cpp.o libcxx/src/CMakeFiles/cxx_shared.dir/system_error.cpp.o libcxx/src/CMakeFiles/cxx_shared.dir/thread.cpp.o libcxx/src/CMakeFiles/cxx_shared.dir/typeinfo.cpp.o libcxx/src/CMakeFiles/cxx_shared.dir/utility.cpp.o libcxx/src/CMakeFiles/cxx_shared.dir/valarray.cpp.o libcxx/src/CMakeFiles/cxx_shared.dir/variant.cpp.o libcxx/src/CMakeFiles/cxx_shared.dir/vector.cpp.o libcxx/src/CMakeFiles/cxx_shared.dir/verbose_abort.cpp.o libcxx/src/CMakeFiles/cxx_shared.dir/random.cpp.o libcxx/src/CMakeFiles/cxx_shared.dir/ios.cpp.o libcxx/src/CMakeFiles/cxx_shared.dir/ios.instantiations.cpp.o libcxx/src/CMakeFiles/cxx_shared.dir/iostream.cpp.o libcxx/src/CMakeFiles/cxx_shared.dir/locale.cpp.o libcxx/src/CMakeFiles/cxx_shared.dir/regex.cpp.o libcxx/src/CMakeFiles/cxx_shared.dir/strstream.cpp.o libcxx/src/CMakeFiles/cxx_shared.dir/filesystem/operations.cpp.o libcxx/src/CMakeFiles/cxx_shared.dir/filesystem/directory_iterator.cpp.o  -Wl,-rpath,"/build/llvm-toolchain-snapshot-16~++20230117093440+b332499a94df/build-llvm/tools/clang/stage2-bins/lib:"  -nostdlib++  --unwindlib=none  -lpthread  -lc  -lm  -lrt  "/build/llvm-toolchain-snapshot-16~++20230117093440+b332499a94df/build-llvm/tools/clang/stage2-bins/lib/clang/16/lib/linux/libclang_rt.builtins-aarch64.a"  "/build/llvm-toolchain-snapshot-16~++20230117093440+b332499a94df/build-llvm/tools/clang/stage2-bins/lib/libc++abi.so.1.0"  "/build/llvm-toolchain-snapshot-16~++20230117093440+b332499a94df/build-llvm/tools/clang/stage2-bins/lib/libunwind.so.1.0"  -lc  "/build/llvm-toolchain-snapshot-16~++20230117093440+b332499a94df/build-llvm/tools/clang/stage2-bins/lib/clang/16/lib/linux/libclang_rt.builtins-aarch64.a"  -ldl  -lpthread && :
/usr/bin/ld.gold: error: libcxx/src/CMakeFiles/cxx_shared.dir/locale.cpp.o: symbol 'std::__1::num_get<char, std::__1::istreambuf_iterator<char, std::__1::char_traits<char> > >::id' used as both __thread and non-__thread
/usr/bin/ld.gold: libcxx/src/CMakeFiles/cxx_shared.dir/ios.instantiations.cpp.o: previous definition here
/usr/bin/ld.gold: error: libcxx/src/CMakeFiles/cxx_shared.dir/locale.cpp.o: symbol 'std::__1::num_get<wchar_t, std::__1::istreambuf_iterator<wchar_t, std::__1::char_traits<wchar_t> > >::id' used as both __thread and non-__thread
/usr/bin/ld.gold: libcxx/src/CMakeFiles/cxx_shared.dir/ios.instantiations.cpp.o: previous definition here
/usr/bin/ld.gold: error: libcxx/src/CMakeFiles/cxx_shared.dir/locale.cpp.o: symbol 'std::__1::num_put<char, std::__1::ostreambuf_iterator<char, std::__1::char_traits<char> > >::id' used as both __thread and non-__thread
/usr/bin/ld.gold: libcxx/src/CMakeFiles/cxx_shared.dir/ios.instantiations.cpp.o: previous definition here
/usr/bin/ld.gold: error: libcxx/src/CMakeFiles/cxx_shared.dir/locale.cpp.o: symbol 'std::__1::num_put<wchar_t, std::__1::ostreambuf_iterator<wchar_t, std::__1::char_traits<wchar_t> > >::id' used as both __thread and non-__thread
/usr/bin/ld.gold: libcxx/src/CMakeFiles/cxx_shared.dir/ios.instantiations.cpp.o: previous definition here
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
[9/29] Generating exported symbols for clang_rt.ubsan_standalone_cxx-aarch64
philnik777 commented 1 year ago

What configuration are you using?

sylvestre commented 1 year ago

stage2

Full log: https://llvm-jenkins.debian.net/job/llvm-toolchain-binaries/architecture=arm64,distribution=unstable,label=arm64/871/consoleFull

Full cmake run:

 cmake -S llvm/ -B build-llvm \
-G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr/lib/llvm-16 \
-DLLVM_VERSION_SUFFIX= \
-DCMAKE_SUPPRESS_REGENERATION=ON \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_FLAGS="-fstack-protector-strong -Wformat -Werror=format-security -Wno-unused-command-line-argument -Wdate-time -D_FORTIFY_SOURCE=2" \
-DCMAKE_CXX_FLAGS="-fstack-protector-strong -Wformat -Werror=format-security -Wno-unused-command-line-argument -Wdate-time -D_FORTIFY_SOURCE=2" \
-DCMAKE_SHARED_LINKER_FLAGS="-Wl,-z,relro -Wl,--build-id" \
-DCMAKE_MODULE_LINKER_FLAGS="-Wl,-z,relro -Wl,--build-id" \
-DCMAKE_EXE_LINKER_FLAGS="-Wl,-z,relro -Wl,--build-id" \
-DPACKAGE_VENDOR=Debian \
-DENABLE_LINKER_BUILD_ID=ON \
-DLLVM_TARGETS_TO_BUILD=Native \
-DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;lld;cross-project-tests;mlir;flang;polly;openmp;lldb" \
-DLLVM_ENABLE_RUNTIMES="compiler-rt;libcxx;libcxxabi;libunwind" \
-DLLVM_ENABLE_PIC=ON \
-DLLVM_ENABLE_RTTI=ON \
-DLLVM_BUILD_DOCS=OFF \
-DLLVM_INCLUDE_GO_TESTS=OFF \
-DLLVM_USE_RELATIVE_PATHS_IN_FILES=ON \
-DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON \
-DLLVM_ENABLE_CURL=ON \
-DLLVM_USE_RELATIVE_PATHS_IN_DEBUG_INFO=ON \
-DCLANG_PLUGIN_SUPPORT=OFF \
-DCLANG_BUILD_EXAMPLES=OFF \
-DCLANG_DEFAULT_LINKER=ld \
-DCLANG_DEFAULT_RTLIB=libgcc \
-DCOMPILER_RT_BUILD_XRAY=OFF \
-DCOMPILER_RT_INCLUDE_TESTS=OFF \
-DCOMPILER_RT_USE_LIBCXX=OFF \
-DCOMPILER_RT_USE_BUILTINS_LIBRARY=ON \
-DLIBUNWIND_USE_COMPILER_RT=ON \
-DLIBUNWIND_INSTALL_LIBRARY=OFF \
-DLIBCXXABI_ENABLE_EXCEPTIONS=ON \
-DLIBCXXABI_USE_COMPILER_RT=ON \
-DLIBCXXABI_INSTALL_LIBRARY=OFF \
-DLIBCXX_ENABLE_EXCEPTIONS=ON \
-DLIBCXX_USE_COMPILER_RT=ON \
-DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=ON \
-DLIBCXX_STATICALLY_LINK_ABI_IN_STATIC_LIBRARY=ON \
-DLIBCXX_STATICALLY_LINK_ABI_IN_SHARED_LIBRARY=OFF \
-DLIBCXX_INSTALL_LIBRARY=OFF \
-DOPENMP_ENABLE_LIBOMP_PROFILING=OFF \
-DOPENMP_ENABLE_LIBOMPTARGET_PROFILING=OFF \
-DLIBOMP_ENABLE_RTTI=OFF \
-DLIBOMP_OMPT_SUPPORT=OFF \
-DCLANG_FORCE_MATCHING_LIBCLANG_SOVERSION=ON \
 -DLLVM_USE_LINKER=gold -DLLVM_BINUTILS_INCDIR=/usr/include/ -DLIBCXXABI_USE_LLVM_UNWINDER=ON -DLIBOMP_LIBFLAGS="-lm" -DOPENMP_USE_LLVM_UNWINDER=ON -DMLIR_INSTALL_AGGREGATE_OBJECTS=OFF -DLLDB_ENABLE_LUA=OFF \
-DBUILTINS_CMAKE_ARGS="-DCMAKE_C_FLAGS=-fstack-protector-strong -Wformat -Werror=format-security -Wno-unused-command-line-argument -Wdate-time -D_FORTIFY_SOURCE=2;-DCMAKE_CXX_FLAGS=-fstack-protector-strong -Wformat -Werror=format-security -Wno-unused-command-line-argument -Wdate-time -D_FORTIFY_SOURCE=2;-DCMAKE_EXE_LINKER_FLAGS=-Wl,-z,relro -Wl,--build-id;-DCMAKE_SHARED_LINKER_FLAGS=-Wl,-z,relro -Wl,--build-id;-DCMAKE_MODULE_LINKER_FLAGS=-Wl,-z,relro -Wl,--build-id;-DCMAKE_BUILD_TYPE=Release;-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=OFF" \
-DRUNTIMES_CMAKE_ARGS="-DCMAKE_C_FLAGS=-fstack-protector-strong -Wformat -Werror=format-security -Wno-unused-command-line-argument -Wdate-time -D_FORTIFY_SOURCE=2;-DCMAKE_CXX_FLAGS=-fstack-protector-strong -Wformat -Werror=format-security -Wno-unused-command-line-argument -Wdate-time -D_FORTIFY_SOURCE=2;-DCMAKE_EXE_LINKER_FLAGS=-Wl,-z,relro -Wl,--build-id;-DCMAKE_SHARED_LINKER_FLAGS=-Wl,-z,relro -Wl,--build-id;-DCMAKE_MODULE_LINKER_FLAGS=-Wl,-z,relro -Wl,--build-id;-DCMAKE_BUILD_TYPE=Release;-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=OFF" \
-DCLANG_ENABLE_BOOTSTRAP=ON \
-DCLANG_BOOTSTRAP_TARGETS="check-all;check-llvm;check-clang;check-clang-tools;check-lld;check-libcxx;check-libcxxabi;check-mlir;check-sanitizer;llvm-config;test-suite" \
-DCLANG_BOOTSTRAP_PASSTHROUGH="CMAKE_INSTALL_PREFIX;CMAKE_SUPPRESS_REGENERATION;ENABLE_LINKER_BUILD_ID;LLVM_ENABLE_PIC;LLVM_ENABLE_RTTI;LLVM_INCLUDE_GO_TESTS;LLVM_USE_RELATIVE_PATHS_IN_FILES;CLANG_DEFAULT_LINKER;CLANG_DEFAULT_CXX_STDLIB;CLANG_DEFAULT_RTLIB;COMPILER_RT_USE_LIBCXX;COMPILER_RT_USE_BUILTINS_LIBRARY;COMPILER_RT_INCLUDE_TESTS;LIBUNWIND_USE_COMPILER_RT;LIBCXXABI_ENABLE_EXCEPTIONS;LIBCXXABI_USE_COMPILER_RT;LIBCXX_USE_COMPILER_RT;LIBCXX_ENABLE_EXCEPTIONS;LIBCXX_ENABLE_STATIC_ABI_LIBRARY;LIBCXX_STATICALLY_LINK_ABI_IN_STATIC_LIBRARY;LIBCXX_STATICALLY_LINK_ABI_IN_SHARED_LIBRARY;LIBOMP_ENABLE_RTTI;LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN;CLANG_FORCE_MATCHING_LIBCLANG_SOVERSION" \
-DBOOTSTRAP_CMAKE_BUILD_TYPE=RelWithDebInfo \
-DBOOTSTRAP_CMAKE_C_FLAGS_RELWITHDEBINFO="-O2 -DNDEBUG -g1" \
-DBOOTSTRAP_CMAKE_CXX_FLAGS_RELWITHDEBINFO="-O2 -DNDEBUG -g1" \
-DBOOTSTRAP_CMAKE_C_FLAGS="-fstack-protector-strong -Wformat -Werror=format-security -Wno-unused-command-line-argument -Wdate-time -D_FORTIFY_SOURCE=2" \
-DBOOTSTRAP_CMAKE_CXX_FLAGS="-fstack-protector-strong -Wformat -Werror=format-security -Wno-unused-command-line-argument -Wdate-time -D_FORTIFY_SOURCE=2" \
-DBOOTSTRAP_CMAKE_SHARED_LINKER_FLAGS="-Wl,-z,relro -Wl,--build-id" \
-DBOOTSTRAP_CMAKE_MODULE_LINKER_FLAGS="-Wl,-z,relro -Wl,--build-id" \
-DBOOTSTRAP_CMAKE_EXE_LINKER_FLAGS="-Wl,-z,relro -Wl,--build-id" \
-DBOOTSTRAP_LLVM_ENABLE_FFI=ON \
-DBOOTSTRAP_LLVM_ENABLE_DUMP=ON \
-DBOOTSTRAP_LLVM_ENABLE_LIBPFM=ON \
-DBOOTSTRAP_LLVM_ENABLE_SPHINX=ON \
-DBOOTSTRAP_CLANG_DEFAULT_PIE_ON_LINUX=ON \
-DBOOTSTRAP_SPHINX_WARNINGS_AS_ERRORS=OFF \
-DBOOTSTRAP_LLVM_USE_RELATIVE_PATHS_IN_FILES=ON \
-DBOOTSTRAP_LLVM_INSTALL_UTILS=ON \
-DBOOTSTRAP_LLVM_VERSION_SUFFIX= \
-DBOOTSTRAP_LLVM_POLLY_LINK_INTO_TOOLS=ON \
-DBOOTSTRAP_LLVM_EXPERIMENTAL_TARGETS_TO_BUILD="M68k" \
-DBOOTSTRAP_LLVM_LINK_LLVM_DYLIB=ON \
    -DBOOTSTRAP_LLVM_ENABLE_CURL=ON \
-DBOOTSTRAP_CLANG_LINK_CLANG_DYLIB=ON \
-DBOOTSTRAP_LIBCLANG_LIBRARY_VERSION=1 \
-DBOOTSTRAP_LIBCXX_INSTALL_EXPERIMENTAL_LIBRARY=ON \
-DBOOTSTRAP_PYTHON_EXECUTABLE=/usr/bin/python3 \
 -DBOOTSTRAP_CLANG_REPOSITORY_STRING=++20230117093440+b332499a94df-1~exp1~20230117093532.1041  -DBOOTSTRAP_LLVM_ENABLE_Z3_SOLVER=ON  -DBOOTSTRAP_CLANG_SYSTEMZ_DEFAULT_ARCH=z196  -DBOOTSTRAP_CLANGD_ENABLE_REMOTE=ON  -DBOOTSTRAP_LLVM_USE_PERF=ON  -DBOOTSTRAP_LLVM_ENABLE_LIBPFM=ON  -DBOOTSTRAP_LLVM_USE_LINKER=gold  -DBOOTSTRAP_LLVM_BINUTILS_INCDIR=/usr/include/  -DBOOTSTRAP_LIBCXXABI_USE_LLVM_UNWINDER=ON  -DBOOTSTRAP_LIBOMP_LIBFLAGS="-lm"  -DBOOTSTRAP_OPENMP_USE_LLVM_UNWINDER=ON  -DBOOTSTRAP_MLIR_INSTALL_AGGREGATE_OBJECTS=OFF  -DBOOTSTRAP_LLDB_ENABLE_LUA=OFF \
-DBOOTSTRAP_BUILTINS_CMAKE_ARGS="-DCMAKE_C_FLAGS=-fstack-protector-strong -Wformat -Werror=format-security -Wno-unused-command-line-argument -Wdate-time -D_FORTIFY_SOURCE=2;-DCMAKE_CXX_FLAGS=-fstack-protector-strong -Wformat -Werror=format-security -Wno-unused-command-line-argument -Wdate-time -D_FORTIFY_SOURCE=2;-DCMAKE_EXE_LINKER_FLAGS=-Wl,-z,relro -Wl,--build-id;-DCMAKE_SHARED_LINKER_FLAGS=-Wl,-z,relro -Wl,--build-id;-DCMAKE_MODULE_LINKER_FLAGS=-Wl,-z,relro -Wl,--build-id;-DCMAKE_BUILD_TYPE=RelWithDebInfo;-DCMAKE_C_FLAGS_RELWITHDEBINFO=-O2 -DNDEBUG -g1;-DCMAKE_CXX_FLAGS_RELWITHDEBINFO=-O2 -DNDEBUG -g1;-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=OFF" \
-DBOOTSTRAP_RUNTIMES_CMAKE_ARGS="-DCMAKE_C_FLAGS=-fstack-protector-strong -Wformat -Werror=format-security -Wno-unused-command-line-argument -Wdate-time -D_FORTIFY_SOURCE=2;-DCMAKE_CXX_FLAGS=-fstack-protector-strong -Wformat -Werror=format-security -Wno-unused-command-line-argument -Wdate-time -D_FORTIFY_SOURCE=2;-DCMAKE_EXE_LINKER_FLAGS=-Wl,-z,relro -Wl,--build-id -L/build/llvm-toolchain-snapshot-16~++20230117093440+b332499a94df/build-llvm/lib;-DCMAKE_SHARED_LINKER_FLAGS=-Wl,-z,relro -Wl,--build-id -L/build/llvm-toolchain-snapshot-16~++20230117093440+b332499a94df/build-llvm/lib;-DCMAKE_MODULE_LINKER_FLAGS=-Wl,-z,relro -Wl,--build-id -L/build/llvm-toolchain-snapshot-16~++20230117093440+b332499a94df/build-llvm/lib;-DCMAKE_BUILD_TYPE=RelWithDebInfo;-DCMAKE_C_FLAGS_RELWITHDEBINFO=-O2 -DNDEBUG -g1;-DCMAKE_CXX_FLAGS_RELWITHDEBINFO=-O2 -DNDEBUG -g1;-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=OFF"