Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build fails in WSL (Ubuntu 22.04) using clang18 #849

Open
what-is-me opened this issue Nov 2, 2024 · 6 comments
Open

Build fails in WSL (Ubuntu 22.04) using clang18 #849

what-is-me opened this issue Nov 2, 2024 · 6 comments
Assignees
Labels
question Further information is requested

Comments

@what-is-me
Copy link

What's Wrong
I have recently tried to clean build proton with clang18 in WSL (Ubuntu 22.04), but it reports error: 'switch' missing 'default' label [-Werror,-Wswitch-default] in base/base/StringRef.h:155:5.
cmake args are copied from build.sh

cmake -DCMAKE_BUILD_TYPE:STRING=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -DCMAKE_C_COMPILER:FILEPATH=/usr/bin/clang -DCMAKE_CXX_COMPILER:FILEPATH=/usr/bin/clang++ \
-DENABLE_PROTON_ALL=OFF -DENABLE_PROTON_SERVER=ON -DENABLE_PROTON_CLIENT=ON \
-DENABLE_PROTON_KLOG_BENCHMARK=ON -DENABLE_PROTON_INSTALL=ON -DENABLE_PROTON_METASTORE=ON \
-DUSE_DEBUG_HELPERS=ON -DENABLE_LIBRARIES=OFF -DENABLE_BENCHMARKS=ON -DENABLE_KAFKA=ON \
-DENABLE_NURAFT=ON -DENABLE_RAPIDJSON=ON -DENABLE_YAML_CPP=ON -DENABLE_SIMDJSON=ON \
-DENABLE_ROCKSDB=ON -DENABLE_JEMALLOC=OFF -DENABLE_SSL=ON -DENABLE_BZIP2=ON -DENABLE_BROTLI=ON \
-DENABLE_PROTOBUF=ON -DENABLE_LIBURING=ON -DENABLE_UTILS=ON -DENABLE_THINLTO=OFF \
-DENABLE_CLANG_TIDY=OFF -DENABLE_TESTS=ON -DENABLE_EXAMPLES=ON -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
-DENABLE_CCACHE=ON -DENABLE_CHECK_HEAVY_BUILDS=1 -DENABLE_GRPC=ON -DENABLE_MATH_FUNCS=ON \
-DENABLE_GEO_FUNCS=ON -DENABLE_HIGH_ORDER_ARRAY_FUNCS=ON -DENABLE_PARQUET=ON -DENABLE_THRIFT=ON \
-DENABLE_CYRUS_SASL=ON -DENABLE_KRB5=ON -DSANITIZE=address -DENABLE_BITMAP_FUNCS=ON \
-DENABLE_BINARY_REPR_FUNCS=ON -DENABLE_IP_CODING_FUNCS=ON -DENABLE_UUID_CODING_FUNCS=ON \
-DENABLE_EXTERNAL_DICT_FUNCS=OFF -DENABLE_FORMATTING_FUNCS=ON -DENABLE_HASH_FUNCS=ON \
-DENABLE_HIGH_ORDER_ARRAY_FUNCS=ON -DENABLE_MISC_FUNCS=ON -DENABLE_MATH_FUNCS=ON \
-DENABLE_GEO_FUNCS=ON -DENABLE_H3_GEO_FUNCS=ON -DENABLE_S2_GEO_FUNCS=ON \
-DENABLE_INTROSPECTION_FUNCS=ON -DUSE_CONSISTENT_HASH_FUNCS=ON -DENABLE_HAMMING_DISTANCE_FUNCS=ON \
-DENABLE_SNOWFLAKE_FUNCS=ON -DENABLE_ENCRYPT_DECRYPT_FUNCS=ON -DENABLE_DEBUG_FUNCS=ON \
-DENABLE_URL_FUNCS=ON -DENABLE_AVRO=ON \
--no-warn-unused-cli -S/home/what-is-me/develop/proton -B/home/what-is-me/develop/proton/build -G Ninja
@what-is-me what-is-me added the question Further information is requested label Nov 2, 2024
@what-is-me
Copy link
Author

I want to know if this is because the higher version of clang, or there are something wrong in my comfiguration.

@yokofly
Copy link
Collaborator

yokofly commented Nov 3, 2024

edit v1: This is already on the roadmap, so if you don't have time to do it, I will pick it up later.
Hi, Leo @what-is-me :)
At present, this codebase does not support the clang-18 build. We are still using clang-17.
https://github.com/timeplus-io/proton/blob/8e6b79732115d34d1afe25c8ea1447642b28599a/BUILD.md

The warning you encountered is due to a new compiler check introduced in clang-18.

do you have time to contribute? To enable clang-18, we need to address the compiler warning and update the version in the CI workflow. This is already on the roadmap, so if you don't have time to do it, I will pick it up later.

steps to resolve the compiler warning:
  1. build with cmake .. to enable as much as we can.
  2. in https://github.com/timeplus-io/proton/blob/8e6b79732115d34d1afe25c8ea1447642b28599a/cmake/warnings.cmake:
    no_warning(weak-vtables)
    no_warning(thread-safety-negative) # experimental flag, too many false positives
    no_warning(enum-constexpr-conversion) # breaks magic-enum library in clang-16
    no_warning(unsafe-buffer-usage) # too aggressive
++	no_warning(switch-default) # conflicts with "defaults in a switch covering all enum values"

    # TODO Enable conversion, sign-conversion, double-promotion warnings.
endif ()

This is a CMake trick to disable warnings. but, some warnings can be useful.
2. for other warnings, we probably need to consider fixing them.
3. for the git contrib submodule, usually there is no need to change,
probably only this one needs to switch

[submodule "contrib/datasketches-cpp"]
	path = contrib/datasketches-cpp
--	url = https://github.com/ClickHouse-Extras/datasketches-cpp.git
++ 	url = https://github.com/apache/datasketches-cpp.git
  1. CI action/workflow related, change the clang-17 related to clang-18, I can work on this.

@what-is-me
Copy link
Author

After adding no_warning(switch-default), it reports another error:

[build] In file included from /home/what-is-me/develop/proton/base/poco/Data/src/SessionPool.cpp:15:
[build] In file included from /home/what-is-me/develop/proton/base/poco/Data/include/Poco/Data/SessionPool.h:25:
[build] In file included from /home/what-is-me/develop/proton/base/poco/Foundation/include/Poco/HashMap.h:22:
[build] /home/what-is-me/develop/proton/base/poco/Foundation/include/Poco/LinearHashTable.h:70:35: error: 'iterator<std::forward_iterator_tag, Poco::HashMapEntry<std::string, bool>>' is deprecated [-Werror,-Wdeprecated-declarations]
[build]    70 |         class ConstIterator: public std::iterator<std::forward_iterator_tag, Value>
[build]       |                                          ^
[build] /home/what-is-me/develop/proton/base/poco/Foundation/include/Poco/LinearHashTable.h:171:25: note: in instantiation of member class 'Poco::LinearHashTable<Poco::HashMapEntry<std::string, bool>, Poco::HashMapEntryHash<Poco::HashMapEntry<std::string, bool>, Poco::Hash<std::string>>>::ConstIterator' requested here
[build]   171 |         class Iterator: public ConstIterator
[build]       |                                ^
[build] /home/what-is-me/develop/proton/contrib/llvm-project/libcxx/include/__utility/pair.h:48:9: note: in instantiation of member class 'Poco::LinearHashTable<Poco::HashMapEntry<std::string, bool>, Poco::HashMapEntryHash<Poco::HashMapEntry<std::string, bool>, Poco::Hash<std::string>>>::Iterator' requested here
[build]    48 |     _T1 first;
[build]       |         ^
[build] /home/what-is-me/develop/proton/base/poco/Data/src/SessionPool.cpp:172:14: note: in instantiation of template class 'std::pair<Poco::LinearHashTable<Poco::HashMapEntry<std::string, bool>, Poco::HashMapEntryHash<Poco::HashMapEntry<std::string, bool>, Poco::Hash<std::string>>>::Iterator, bool>' requested here
[build]   172 |         _featureMap.insert(FeatureMap::ValueType(name, state));
[build]       |                     ^
[build] /home/what-is-me/develop/proton/contrib/llvm-project/libcxx/include/__iterator/iterator.h:24:29: note: 'iterator<std::forward_iterator_tag, Poco::HashMapEntry<std::string, bool>>' has been explicitly marked deprecated here
[build]    24 | struct _LIBCPP_TEMPLATE_VIS _LIBCPP_DEPRECATED_IN_CXX17 iterator
[build]       |                             ^
[build] /home/what-is-me/develop/proton/contrib/llvm-project/libcxx/include/__config:812:41: note: expanded from macro '_LIBCPP_DEPRECATED_IN_CXX17'
[build]   812 | #    define _LIBCPP_DEPRECATED_IN_CXX17 _LIBCPP_DEPRECATED
[build]       |                                         ^
[build] /home/what-is-me/develop/proton/contrib/llvm-project/libcxx/include/__config:785:49: note: expanded from macro '_LIBCPP_DEPRECATED'
[build]   785 | #      define _LIBCPP_DEPRECATED __attribute__((deprecated))
[build]       |

So, no_warning(deprecated-declarations) also should be added.

@yokofly
Copy link
Collaborator

yokofly commented Nov 5, 2024

let's add together

@what-is-me
Copy link
Author

what-is-me commented Nov 5, 2024

[build] In file included from /home/what-is-me/develop/proton/programs/klog/klog.cpp:7:
[build] In file included from /home/what-is-me/develop/proton/src/KafkaLog/KafkaWAL.h:5:
[build] /home/what-is-me/develop/proton/src/KafkaLog/KafkaWALSettings.h:61:60: error: missing field 'username' initializer [-Werror,-Wmissing-field-initializers]
[build]    61 |     KafkaWALAuth auth = { .security_protocol = "plaintext" };
[build]       |                                                            ^
[build] 1 error generated.
[build] /home/what-is-me/develop/proton/src/Interpreters/Context.cpp:2209:20: error: returning variable 'keeper_dispatcher' by reference requires holding mutex 'shared->keeper_dispatcher_mutex' exclusively [-Werror,-Wthread-safety-reference-return]
[build]  2209 |     return shared->keeper_dispatcher;
[build]       |                    ^
[build] /home/what-is-me/develop/proton/src/Interpreters/Context.cpp:2204:1: note: thread warning in function 'getKeeperDispatcher'
[build]  2204 | {
[build]       | ^
[build] /home/what-is-me/develop/proton/src/Interpreters/Context.cpp:2267:20: error: returning variable 'metastore_dispatcher' by reference requires holding mutex 'shared->metastore_dispatcher_mutex' exclusively [-Werror,-Wthread-safety-reference-return]
[build]  2267 |     return shared->metastore_dispatcher;
[build]       |                    ^
[build] /home/what-is-me/develop/proton/src/Interpreters/Context.cpp:2262:1: note: thread warning in function 'getMetaStoreDispatcher'
[build]  2262 | {
[build]       | ^
[build] /home/what-is-me/develop/proton/src/Interpreters/Context.cpp:2340:20: error: returning variable 'remote_host_filter' by reference requires holding mutex 'shared->mutex' [-Werror,-Wthread-safety-reference-return]
[build]  2340 |     return shared->remote_host_filter;
[build]       |                    ^
[build] /home/what-is-me/develop/proton/src/Interpreters/Context.cpp:2338:1: note: thread warning in function 'getRemoteHostFilter'
[build]  2338 | {
[build]       | ^
[build] 3 errors generated.

These can also be solved by adding no_warning(missing-field-initializers) and no_warning(thread-safety-reference-return).
However, finally, it fails with error:

[build] FAILED: utils/memcpy-bench/memcpy-bench 
[build] : && /usr/bin/clang++-18 --target=x86_64-linux-gnu --sysroot=/home/what-is-me/develop/proton/cmake/linux/../../contrib/sysroot/linux-x86_64/x86_64-linux-gnu/libc --gcc-toolchain=/home/what-is-me/develop/proton/cmake/linux/../../contrib/sysroot/linux-x86_64  -g -fno-omit-frame-pointer -DSANITIZER -fsanitize=address -fsanitize-address-use-after-scope -lresolv -fdiagnostics-color=always -Xclang -fuse-ctor-homing -Wno-enum-constexpr-conversion -fsized-deallocation  -gdwarf-aranges -pipe -mssse3 -msse4.1 -msse4.2 -mpclmul -mpopcnt -fasynchronous-unwind-tables -falign-functions=32 -mbranches-within-32B-boundaries   -Wall -Wno-unused-command-line-argument  -fdiagnostics-absolute-paths -fstrict-vtable-pointers -Wall -Wextra -Weverything -Wpedantic -Wno-zero-length-array -Wno-c++98-compat-pedantic -Wno-c++98-compat -Wno-c++20-compat -Wno-sign-conversion -Wno-implicit-int-conversion -Wno-implicit-int-float-conversion -Wno-shorten-64-to-32 -Wno-ctad-maybe-unsupported -Wno-disabled-macro-expansion -Wno-documentation-unknown-command -Wno-double-promotion -Wno-exit-time-destructors -Wno-float-equal -Wno-global-constructors -Wno-missing-prototypes -Wno-missing-variable-declarations -Wno-padded -Wno-switch-enum -Wno-undefined-func-template -Wno-unused-template -Wno-vla -Wno-weak-template-vtables -Wno-weak-vtables -Wno-thread-safety-negative -Wno-enum-constexpr-conversion -Wno-unsafe-buffer-usage -Wno-switch-default -Wno-deprecated-declarations -Wno-missing-field-initializers -Wno-thread-safety-reference-return -g -O0 -g -gdwarf-4  -D_LIBCPP_DEBUG=0 --gcc-toolchain=/home/what-is-me/develop/proton/cmake/linux/../../contrib/sysroot/linux-x86_64 --ld-path=/usr/bin/ld.lld-18 -rdynamic -Wl,--gdb-index -Wl,--build-id=sha1 src/CMakeFiles/clickhouse_malloc.dir/Common/malloc.cpp.o utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/memcpy-bench.cpp.o utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/FastMemcpy.cpp.o utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/FastMemcpy_Avx.cpp.o utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/memcpy_jart.S.o utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/glibc/memcpy-ssse3.S.o utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/glibc/memcpy-ssse3-back.S.o utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/glibc/memmove-sse2-unaligned-erms.S.o utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/glibc/memmove-avx-unaligned-erms.S.o utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/glibc/memmove-avx512-unaligned-erms.S.o utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/glibc/memmove-avx512-no-vzeroupper.S.o -o utils/memcpy-bench/memcpy-bench  src/libclickhouse_new_deleted.a  src/libdbmsd.a  contrib/boost-cmake/lib_boost_program_optionsd.a  src/Storages/ExternalStream/libexternal_streamd.a  src/KafkaLog/libklogd.a  src/NativeLog/libnlogd.a  src/Storages/ExternalTable/libexternal_tabled.a  src/Checkpoint/libcheckpointd.a  contrib/llvm-project/llvm/lib/libLLVMExecutionEngined.a  contrib/llvm-project/llvm/lib/libLLVMOrcTargetProcessd.a  contrib/llvm-project/llvm/lib/libLLVMOrcSharedd.a  contrib/llvm-project/llvm/lib/libLLVMRuntimeDyldd.a  contrib/llvm-project/llvm/lib/libLLVMPassesd.a  contrib/llvm-project/llvm/lib/libLLVMCoroutinesd.a  contrib/llvm-project/llvm/lib/libLLVMObjCARCOptsd.a  contrib/llvm-project/llvm/lib/libLLVMipod.a  contrib/llvm-project/llvm/lib/libLLVMFrontendOpenMPd.a  contrib/llvm-project/llvm/lib/libLLVMIRReaderd.a  contrib/llvm-project/llvm/lib/libLLVMAsmParserd.a  contrib/llvm-project/llvm/lib/libLLVMLinkerd.a  contrib/llvm-project/llvm/lib/libLLVMVectorized.a  contrib/llvm-project/llvm/lib/libLLVMX86CodeGend.a  contrib/llvm-project/llvm/lib/libLLVMAsmPrinterd.a  contrib/llvm-project/llvm/lib/libLLVMGlobalISeld.a  contrib/llvm-project/llvm/lib/libLLVMSelectionDAGd.a  contrib/llvm-project/llvm/lib/libLLVMCodeGend.a  contrib/llvm-project/llvm/lib/libLLVMBitWriterd.a  contrib/llvm-project/llvm/lib/libLLVMScalarOptsd.a  contrib/llvm-project/llvm/lib/libLLVMAggressiveInstCombined.a  contrib/llvm-project/llvm/lib/libLLVMInstCombined.a  contrib/llvm-project/llvm/lib/libLLVMInstrumentationd.a  contrib/llvm-project/llvm/lib/libLLVMTransformUtilsd.a  contrib/llvm-project/llvm/lib/libLLVMTargetd.a  contrib/llvm-project/llvm/lib/libLLVMAnalysisd.a  contrib/llvm-project/llvm/lib/libLLVMProfileDatad.a  contrib/llvm-project/llvm/lib/libLLVMSymbolized.a  contrib/llvm-project/llvm/lib/libLLVMDebugInfoDWARFd.a  contrib/llvm-project/llvm/lib/libLLVMDebugInfoPDBd.a  contrib/llvm-project/llvm/lib/libLLVMObjectd.a  contrib/llvm-project/llvm/lib/libLLVMBitReaderd.a  contrib/llvm-project/llvm/lib/libLLVMMCParserd.a  contrib/llvm-project/llvm/lib/libLLVMTextAPId.a  contrib/llvm-project/llvm/lib/libLLVMDebugInfoMSFd.a  contrib/llvm-project/llvm/lib/libLLVMX86Descd.a  contrib/llvm-project/llvm/lib/libLLVMMCDisassemblerd.a  contrib/llvm-project/llvm/lib/libLLVMX86Infod.a  contrib/llvm-project/llvm/lib/libLLVMMCd.a  contrib/llvm-project/llvm/lib/libLLVMDebugInfoCodeViewd.a  contrib/llvm-project/llvm/lib/libLLVMCFGuardd.a  contrib/llvm-project/llvm/lib/libLLVMCored.a  contrib/llvm-project/llvm/lib/libLLVMRemarksd.a  contrib/llvm-project/llvm/lib/libLLVMBitstreamReaderd.a  contrib/llvm-project/llvm/lib/libLLVMBinaryFormatd.a  contrib/llvm-project/llvm/lib/libLLVMSupportd.a  contrib/llvm-project/llvm/lib/libLLVMDemangled.a  contrib/croaring-cmake/lib_roaringd.a  contrib/librdkafka-cmake/lib_rdkafkad.a  contrib/cyrus-sasl-cmake/lib_sasl2d.a  contrib/krb5-cmake/lib_krb5d.a  contrib/nuraft-cmake/lib_nuraftd.a  contrib/boost-cmake/lib_boost_coroutined.a  src/V8/libV8d.a  contrib/v8-cmake/libv8_compilerd.a  contrib/v8-cmake/libv8_base_without_compilerd.a  contrib/v8-cmake/libv8_snapshotd.a  contrib/v8-cmake/libv8_inspectord.a  contrib/v8-cmake/libv8_libplatformd.a  contrib/v8-cmake/libv8_libsamplerd.a  contrib/v8-cmake/libv8_libbased.a  contrib/v8-cmake/libv8_initializersd.a  contrib/v8-cmake/libv8_torque_generatedd.a  src/Common/Config/libclickhouse_common_configd.a  contrib/yaml-cpp-cmake/lib_yaml_cppd.a  src/Common/ZooKeeper/libclickhouse_common_zookeeperd.a  src/Dictionaries/Embedded/libclickhouse_dictionaries_embeddedd.a  src/Parsers/libclickhouse_parsersd.a  src/Access/Common/libclickhouse_common_accessd.a  src/libclickhouse_common_iod.a  contrib/boost-cmake/lib_boost_program_optionsd.a  contrib/gwpasan-cmake/lib_gwp_asand.a  contrib/muduo-cmake/net/lib_muduo_netd.a  contrib/muduo-cmake/base/lib_muduo_based.a  base/widechar_width/libwidechar_widthd.a  base/base/libcommond.a  base/poco/NetSSL_OpenSSL/lib_poco_net_ssld.a  base/poco/Net/lib_poco_netd.a  base/poco/Crypto/lib_poco_cryptod.a  base/poco/Util/lib_poco_utild.a  base/poco/XML/lib_poco_xmld.a  base/poco/XML/lib_poco_xml_expatd.a  contrib/replxx-cmake/lib_replxxd.a  contrib/cctz-cmake/lib_cctzd.a  -Wl,--whole-archive /home/what-is-me/develop/proton/build/contrib/cctz-cmake/libtzdatad.a -Wl,--no-whole-archive  contrib/fmtlib-cmake/lib_fmtd.a  contrib/dragonbox-cmake/lib_dragonbox_to_charsd.a  contrib/re2-cmake/libre2_std.a  contrib/cityhash102/lib_cityhashd.a  contrib/xz-cmake/lib_liblzmad.a  contrib/liburing-cmake/lib_liburingd.a  contrib/bzip2-cmake/lib_bzip2d.a  base/poco/JSON/lib_poco_jsond.a  base/poco/Foundation/lib_poco_foundationd.a  base/poco/Foundation/lib_poco_foundation_pcred.a  base/poco/JSON/lib_poco_json_pdjsond.a  src/Common/StringUtils/libstring_utilsd.a  contrib/boost-cmake/lib_boost_systemd.a  contrib/arrow-cmake/lib_parquetd.a  contrib/arrow-cmake/lib_arrowd.a  contrib/boost-cmake/lib_boost_filesystemd.a  contrib/double-conversion-cmake/lib_double-conversiond.a  contrib/brotli-cmake/lib_brotlid.a  contrib/flatbuffers/libflatbuffersd.a  contrib/arrow-cmake/lib_orcd.a  contrib/thrift-cmake/lib_thriftd.a  contrib/boost-cmake/lib_boost_regexd.a  contrib/avro-cmake/lib_avrocppd.a  contrib/boost-cmake/lib_boost_iostreamsd.a  src/Server/grpc_protos/libclickhouse_grpc_protosd.a  contrib/grpc/libgrpc++d.a  contrib/protobuf-cmake/lib_libprotobufd.a  contrib/grpc/libgrpcd.a  contrib/re2-cmake/libre2d.a  contrib/c-ares-cmake/lib_c-aresd.a  contrib/abseil-cpp/absl/hash/libabsl_hashd.a  contrib/abseil-cpp/absl/hash/libabsl_cityd.a  contrib/abseil-cpp/absl/types/libabsl_bad_variant_accessd.a  contrib/abseil-cpp/absl/hash/libabsl_low_level_hashd.a  contrib/abseil-cpp/absl/container/libabsl_raw_hash_setd.a  contrib/abseil-cpp/absl/container/libabsl_hashtablez_samplerd.a  contrib/boringssl-cmake/lib_ssld.a  contrib/boringssl-cmake/lib_cryptod.a  contrib/abseil-cpp/absl/status/libabsl_statusd.a  contrib/abseil-cpp/absl/strings/libabsl_cordd.a  contrib/abseil-cpp/absl/strings/libabsl_cordz_infod.a  contrib/abseil-cpp/absl/strings/libabsl_cord_internald.a  contrib/abseil-cpp/absl/strings/libabsl_cordz_functionsd.a  contrib/abseil-cpp/absl/profiling/libabsl_exponential_biasedd.a  contrib/abseil-cpp/absl/strings/libabsl_cordz_handled.a  contrib/abseil-cpp/absl/types/libabsl_bad_optional_accessd.a  contrib/grpc/libaddress_sortingd.a  contrib/grpc/libupbd.a  contrib/grpc/libgprd.a  -ldl  -lpthread  -lrt  contrib/abseil-cpp/absl/synchronization/libabsl_synchronizationd.a  contrib/abseil-cpp/absl/debugging/libabsl_stacktraced.a  contrib/abseil-cpp/absl/debugging/libabsl_symbolized.a  contrib/abseil-cpp/absl/debugging/libabsl_debugging_internald.a  contrib/abseil-cpp/absl/debugging/libabsl_demangle_internald.a  contrib/abseil-cpp/absl/synchronization/libabsl_graphcycles_internald.a  contrib/abseil-cpp/absl/base/libabsl_malloc_internald.a  contrib/abseil-cpp/absl/time/libabsl_timed.a  contrib/abseil-cpp/absl/time/libabsl_civil_timed.a  contrib/abseil-cpp/absl/time/libabsl_time_zoned.a  contrib/abseil-cpp/absl/strings/libabsl_str_format_internald.a  contrib/abseil-cpp/absl/strings/libabsl_stringsd.a  contrib/abseil-cpp/absl/strings/libabsl_strings_internald.a  contrib/abseil-cpp/absl/base/libabsl_based.a  contrib/abseil-cpp/absl/base/libabsl_spinlock_waitd.a  -lrt  contrib/abseil-cpp/absl/base/libabsl_throw_delegated.a  contrib/abseil-cpp/absl/base/libabsl_raw_logging_internald.a  contrib/abseil-cpp/absl/base/libabsl_log_severityd.a  contrib/abseil-cpp/absl/numeric/libabsl_int128d.a  contrib/rocksdb-cmake/lib_rocksdbd.a  contrib/lz4-cmake/lib_lz4d.a  contrib/zstd-cmake/lib_zstdd.a  contrib/zlib-ng-cmake/lib_zlibd.a  contrib/snappy-cmake/lib_snappyd.a  contrib/boost-cmake/lib_boost_contextd.a  contrib/simdjson-cmake/lib_simdjsond.a  contrib/consistent-hashing/lib_consistent_hashingd.a  -Wl,--start-group  base/glibc-compatibility/libglibc-compatibilityd.a  base/glibc-compatibility/memcpy/libmemcpyd.a  contrib/libcxx-cmake/libcxxd.a  contrib/libcxxabi-cmake/libcxxabid.a  contrib/libunwind-cmake/libunwindd.a  -Wl,--end-group  -nodefaultlibs /usr/lib/llvm-18/lib/clang/18/lib/linux/libclang_rt.builtins-x86_64.a  -lc -lm -lrt -lpthread -ldl && :
[build] ld.lld-18: error: relocation R_X86_64_32S cannot be used against local symbol; recompile with -fPIC
[build] >>> defined in utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/memcpy_jart.S.o
[build] >>> referenced by memcpy_jart.S:47 (/home/what-is-me/develop/proton/utils/memcpy-bench/memcpy_jart.S:47)
[build] >>>               utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/memcpy_jart.S.o:(MemCpy)
[build] 
[build] ld.lld-18: error: relocation R_X86_64_64 cannot be used against local symbol; recompile with -fPIC
[build] >>> defined in utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/memcpy_jart.S.o
[build] >>> referenced by utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/memcpy_jart.S.o:(.rodata+0x0)
[build] 
[build] ld.lld-18: error: relocation R_X86_64_64 cannot be used against local symbol; recompile with -fPIC
[build] >>> defined in utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/memcpy_jart.S.o
[build] >>> referenced by utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/memcpy_jart.S.o:(.rodata+0x8)
[build] 
[build] ld.lld-18: error: relocation R_X86_64_64 cannot be used against local symbol; recompile with -fPIC
[build] >>> defined in utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/memcpy_jart.S.o
[build] >>> referenced by utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/memcpy_jart.S.o:(.rodata+0x10)
[build] 
[build] ld.lld-18: error: relocation R_X86_64_64 cannot be used against local symbol; recompile with -fPIC
[build] >>> defined in utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/memcpy_jart.S.o
[build] >>> referenced by utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/memcpy_jart.S.o:(.rodata+0x18)
[build] 
[build] ld.lld-18: error: relocation R_X86_64_64 cannot be used against local symbol; recompile with -fPIC
[build] >>> defined in utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/memcpy_jart.S.o
[build] >>> referenced by utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/memcpy_jart.S.o:(.rodata+0x20)
[build] 
[build] ld.lld-18: error: relocation R_X86_64_64 cannot be used against local symbol; recompile with -fPIC
[build] >>> defined in utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/memcpy_jart.S.o
[build] >>> referenced by utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/memcpy_jart.S.o:(.rodata+0x28)
[build] 
[build] ld.lld-18: error: relocation R_X86_64_64 cannot be used against local symbol; recompile with -fPIC
[build] >>> defined in utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/memcpy_jart.S.o
[build] >>> referenced by utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/memcpy_jart.S.o:(.rodata+0x30)
[build] 
[build] ld.lld-18: error: relocation R_X86_64_64 cannot be used against local symbol; recompile with -fPIC
[build] >>> defined in utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/memcpy_jart.S.o
[build] >>> referenced by utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/memcpy_jart.S.o:(.rodata+0x38)
[build] 
[build] ld.lld-18: error: relocation R_X86_64_64 cannot be used against local symbol; recompile with -fPIC
[build] >>> defined in utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/memcpy_jart.S.o
[build] >>> referenced by utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/memcpy_jart.S.o:(.rodata+0x40)
[build] 
[build] ld.lld-18: error: relocation R_X86_64_64 cannot be used against local symbol; recompile with -fPIC
[build] >>> defined in utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/memcpy_jart.S.o
[build] >>> referenced by utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/memcpy_jart.S.o:(.rodata+0x48)
[build] 
[build] ld.lld-18: error: relocation R_X86_64_64 cannot be used against local symbol; recompile with -fPIC
[build] >>> defined in utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/memcpy_jart.S.o
[build] >>> referenced by utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/memcpy_jart.S.o:(.rodata+0x50)
[build] 
[build] ld.lld-18: error: relocation R_X86_64_64 cannot be used against local symbol; recompile with -fPIC
[build] >>> defined in utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/memcpy_jart.S.o
[build] >>> referenced by utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/memcpy_jart.S.o:(.rodata+0x58)
[build] 
[build] ld.lld-18: error: relocation R_X86_64_64 cannot be used against local symbol; recompile with -fPIC
[build] >>> defined in utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/memcpy_jart.S.o
[build] >>> referenced by utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/memcpy_jart.S.o:(.rodata+0x60)
[build] 
[build] ld.lld-18: error: relocation R_X86_64_64 cannot be used against local symbol; recompile with -fPIC
[build] >>> defined in utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/memcpy_jart.S.o
[build] >>> referenced by utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/memcpy_jart.S.o:(.rodata+0x68)
[build] 
[build] ld.lld-18: error: relocation R_X86_64_64 cannot be used against local symbol; recompile with -fPIC
[build] >>> defined in utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/memcpy_jart.S.o
[build] >>> referenced by utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/memcpy_jart.S.o:(.rodata+0x70)
[build] 
[build] ld.lld-18: error: relocation R_X86_64_64 cannot be used against local symbol; recompile with -fPIC
[build] >>> defined in utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/memcpy_jart.S.o
[build] >>> referenced by utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/memcpy_jart.S.o:(.rodata+0x78)
[build] 
[build] ld.lld-18: error: relocation R_X86_64_64 cannot be used against local symbol; recompile with -fPIC
[build] >>> defined in utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/memcpy_jart.S.o
[build] >>> referenced by utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/memcpy_jart.S.o:(.rodata+0x80)
[build] 
[build] ld.lld-18: error: relocation R_X86_64_64 cannot be used against local symbol; recompile with -fPIC
[build] >>> defined in utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/memcpy_jart.S.o
[build] >>> referenced by utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/memcpy_jart.S.o:(.rodata+0x88)
[build] 
[build] ld.lld-18: error: relocation R_X86_64_64 cannot be used against local symbol; recompile with -fPIC
[build] >>> defined in utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/memcpy_jart.S.o
[build] >>> referenced by utils/memcpy-bench/CMakeFiles/memcpy-bench.dir/memcpy_jart.S.o:(.rodata+0x90)
[build] 
[build] ld.lld-18: error: too many errors emitted, stopping now (use --error-limit=0 to see all errors)
[build] clang++-18: error: linker command failed with exit code 1 (use -v to see invocation)

so we should add -fPIC to CXX_FLAGS ?

@yokofly
Copy link
Collaborator

yokofly commented Nov 6, 2024

@what-is-me
It seems this is an old issue #719. While I am debugging, let's simply use cmake .. instead of address sanitizer to make progress first.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants