projects/clang380-import -r294609: arm buildworld broken by picking up -r294499's disable of clang.lib.mk -mlong-calls use

Mark Millard markmi at dsl-only.net
Sat Jan 23 05:43:34 UTC 2016


When I tried an rpi2 buildworld for clang380-import -r294609 it failed with “relocation truncated” problems. (arm7-a cortex-a7 no misaligned accesses as my context.)

It looks like this is from picking up base/head’s -r294499 as part of forming -r294599 in clang380-import. -r294499 commented out having -mlong-calls in /usr/src/lib/clang/clang.lib.mk:

> # more /usr/src/lib/clang/clang.lib.mk
> # $FreeBSD: projects/clang380-import/lib/clang/clang.lib.mk 294599 2016-01-22 20:41:56Z dim $
> 
> LLVM_SRCS= ${.CURDIR}/../../../contrib/llvm
> 
> .include "clang.build.mk"
> 
> INTERNALLIB=
> 
> .if ${MACHINE_CPUARCH} == "arm"
> # This will need to be enabled to link clang 3.8
> #STATIC_CXXFLAGS+= -mlong-calls
> .endif
> 
> .include <bsd.lib.mk>


The script’s buildworld records show:

> --- all_subdir_clang ---
> /usr/obj/clang/arm.armv6/usr/src/usr.bin/clang/clang/../../../lib/clang/libclangfrontendtool/libclangfrontendtool.a(ExecuteCompilerInvocation.o): In function `clang::ExecuteCompilerInvocation(clang::CompilerInstance*)':
> /usr/src/lib/clang/libclangfrontendtool/../../../contrib/llvm/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:(.text+0x98): relocation truncated to fit: R_ARM_CALL against symbol `llvm::sys::DynamicLibrary::getPermanentLibrary(char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*)' defined in .text section in /usr/obj/clang/arm.armv6/usr/src/usr.bin/clang/clang/../../../lib/clang/libllvmsupport/libllvmsupport.a(DynamicLibrary.o)
> /usr/src/lib/clang/libclangfrontendtool/../../../contrib/llvm/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:(.text+0x120): relocation truncated to fit: R_ARM_CALL against symbol `std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string()' defined in .text._ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev[_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED5Ev] section in /usr/obj/clang/arm.armv6/usr/src/tmp/usr/lib/libc++.a(string.o)
> /usr/src/lib/clang/libclangfrontendtool/../../../contrib/llvm/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:(.text+0x1c4): relocation truncated to fit: R_ARM_CALL against symbol `std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string()' defined in .text._ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED2Ev[_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED5Ev] section in /usr/obj/clang/arm.armv6/usr/src/tmp/usr/lib/libc++.a(string.o)
> /usr/src/lib/clang/libclangfrontendtool/../../../contrib/llvm/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:(.text+0x224): relocation truncated to fit: R_ARM_CALL against symbol `operator new[](unsigned int)' defined in .text section in /usr/obj/clang/arm.armv6/usr/src/tmp/usr/lib/libc++.a(new.o)
> /usr/src/lib/clang/libclangfrontendtool/../../../contrib/llvm/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:(.text+0x238): relocation truncated to fit: R_ARM_CALL against symbol `memset' defined in .text section in /usr/obj/clang/arm.armv6/usr/src/tmp/usr/lib/libc.a(memset.o)
> /usr/src/lib/clang/libclangfrontendtool/../../../contrib/llvm/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:(.text+0x294): relocation truncated to fit: R_ARM_CALL against symbol `llvm::cl::ParseCommandLineOptions(int, char const* const*, char const*)' defined in .text section in /usr/obj/clang/arm.armv6/usr/src/usr.bin/clang/clang/../../../lib/clang/libllvmsupport/libllvmsupport.a(CommandLine.o)
> /usr/src/lib/clang/libclangfrontendtool/../../../contrib/llvm/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:(.text+0x29c): relocation truncated to fit: R_ARM_CALL against symbol `operator delete[](void*)' defined in .text section in /usr/obj/clang/arm.armv6/usr/src/tmp/usr/lib/libc++.a(new.o)
> /usr/src/lib/clang/libclangfrontendtool/../../../contrib/llvm/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:(.text+0x2dc): relocation truncated to fit: R_ARM_CALL against symbol `operator delete(void*)' defined in .text section in /usr/obj/clang/arm.armv6/usr/src/tmp/usr/lib/libc++.a(new.o)
> /usr/src/lib/clang/libclangfrontendtool/../../../contrib/llvm/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:(.text+0x2f8): relocation truncated to fit: R_ARM_CALL against symbol `llvm::outs()' defined in .text section in /usr/obj/clang/arm.armv6/usr/src/usr.bin/clang/clang/../../../lib/clang/libllvmsupport/libllvmsupport.a(raw_ostream.o)
> --- all_subdir_usr.sbin ---
> --- auditdistd.debug ---
> --- all_subdir_usr.bin ---
> /usr/src/lib/clang/libclangfrontendtool/../../../contrib/llvm/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:(.text+0x340): relocation truncated to fit: R_ARM_CALL against symbol `operator delete(void*)' defined in .text section in /usr/obj/clang/arm.armv6/usr/src/tmp/usr/lib/libc++.a(new.o)
> /usr/src/lib/clang/libclangfrontendtool/../../../contrib/llvm/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:(.text+0x348): additional relocation overflows omitted from the output

===
Mark Millard
markmi at dsl-only.net



More information about the freebsd-arm mailing list