Date: Sat, 19 Aug 2023 22:28:37 +0200 From: Ronald Klop <ronald@FreeBSD.org> To: Brooks Davis <brooks@freebsd.org> Cc: freebsd-current@freebsd.org Subject: Re: building with llvm16 pkg fails in tests Message-ID: <dc5a55c4-b1da-995a-6add-2faf79a5cf2e@FreeBSD.org> In-Reply-To: <ZN52DRc5DJ7ouyYp@spindle.one-eyed-alien.net> References: <76ecade1-3f42-a314-825d-6f1ba0b2dcaa@FreeBSD.org> <ZN52DRc5DJ7ouyYp@spindle.one-eyed-alien.net>
index | next in thread | previous in thread | raw e-mail
On 8/17/23 21:33, Brooks Davis wrote: > On Thu, Aug 17, 2023 at 12:45:06PM +0200, Ronald Klop wrote: >> Hi, >> >> To save time on my Raspberry Pi I would like to build FreeBSD using a llvm pkg instead of llvm in the tree. >> >> My /etc/make.conf: >> WITHOUT_TOOLCHAIN=yes >> LD=/usr/local/llvm16/bin/ld.lld >> CC=/usr/local/llvm16/bin/clang >> CXX=/usr/local/llvm16/bin/clang++ >> CPP=/usr/local/llvm16/bin/clang-cpp >> OBJCOPY=/usr/local/llvm16/bin/llvm-objcopy >> >> #WITHOUT_CLEAN=yes >> >> >> This fails in: >> >> /usr/local/llvm16/bin/clang++ -O2 -pipe -fno-common -fPIE -Wno-format-zero-length -nobuiltininc -idirafter /usr/local/llvm16/lib/clang/16/include -fstack-protector-strong -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wshadow -Wunused-parameter -Wcast-align -Wchar-subscripts -Wdate-time -Wmissing-variable-declarations -Wno-empty-body -Wno-string-plus-int -Wno-unused-const-variable -Wno-error=unused-but-set-parameter -O0 -g0 -Qunused-arguments -I/usr/obj/usr/src/amd64.amd64/tmp/usr/include/private -I/usr/src/contrib/googletest/googlemock/include -I/usr/src/contrib/googletest/googlemock -I/usr/src/contrib/googletest/googletest/include -I/usr/src/contrib/googletest/googletest -I/usr/obj/usr/src/amd64.amd64/tmp/usr/include/private -DGTEST_HAS_POSIX_RE=1 -DGTEST_HAS_PTHREAD=1 -DGTEST_HAS_STREAM_REDIRECTION=1 -frtti -Wno-deprecated-copy -Wno-signed-unsigned-wchar -DGTEST_HAS_POSIX_RE=1 -DGTEST_HAS_PTHREAD=1 -DGTEST_HAS_STREAM_REDIRECTION=1 -frtti -Wno-deprecated-copy -Wno-signed-unsigned-wchar -fPIE -std=c++14 -Wno-deprecated-copy -Wno-error=inconsistent-missing-override -Wno-error=missing-variable-declarations -Wno-error=sign-compare -Wno-error=unused-parameter -Wno-c++11-extensions -Wl,-zrelro -pie --ld-path=/usr/local/llvm16/bin/ld.lld -o gmock-actions_test gmock-actions_test.o -lprivategmock_main -lprivategmock -lprivategtest >> ld.lld: error: undefined symbol: testing::internal::DeathTest::Create(char const*, testing::Matcher<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&>, char const*, int, testing::internal::DeathTest**) >>>>> referenced by gmock-actions_test.cc >>>>> gmock-actions_test.o:(testing::(anonymous namespace)::BuiltInDefaultValueDeathTest_IsUndefinedForReferences_Test::TestBody()) >>>>> referenced by gmock-actions_test.cc >>>>> gmock-actions_test.o:(testing::(anonymous namespace)::BuiltInDefaultValueDeathTest_IsUndefinedForReferences_Test::TestBody()) >>>>> referenced by gmock-actions_test.cc >>>>> gmock-actions_test.o:(testing::(anonymous namespace)::BuiltInDefaultValueDeathTest_IsUndefinedForNonDefaultConstructibleType_Test::TestBody()) >>>>> referenced 4 more times >> >> ld.lld: error: undefined symbol: testing::Expectation::Expectation(std::__1::shared_ptr<testing::internal::ExpectationBase> const&) >> >> >> Any thoughts on how to fix this? >> Compiling with the in tree llvm does work properly. > > Did it work with exactly this git revision? I suspect an issue with the > recent google test update rather than an llvm16 issue. Note that for > every sync to github we build the tree with the llvm16 port (all be it > on amd64 by default). > > It's worth noting one difference between your configuration and the > CI one: We don't set CC and friends directly. Instead we use > CROSS_TOOLCHAIN=llvm16. > > -- Brooks Hi, What I would like to accomplish is this: CROSS_TOOLCHAIN=llvm16 WITHOUT_TOOLCHAIN=yes yes | make delete-old delete-old-libs make buildworld buildkernel So I can run a system with only external toolchain. But doing this quickly errors out because /usr/bin/cc does not exist and the build uses that even though CROSS_TOOLCHAIN is set. To circumvent that I set CC, etc. instead of CROSS_TOOLCHAIN. Regards, Ronald.home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?dc5a55c4-b1da-995a-6add-2faf79a5cf2e>
