[OE-core] [PATCH V2] llvm: fix link error for powerpc

Khem Raj raj.khem at gmail.com
Fri Jul 12 16:51:59 UTC 2019


On Fri, Jul 12, 2019 at 12:59 AM ChenQi <Qi.Chen at windriver.com> wrote:
>
> I'm recently getting llvm build failure on qemuppc. After reverting this
> patch, the build succeeds.
> My host is ubuntu16.04.
>

so what has changed ? I guess default gcc is now 9.x instead of 8.x. I
wonder if thats contributing to it
if so, I am fine with reverting the change, just mention that if using
8.x we need to add -mlongcall to cxxflags on ppc

> I'm also wondering why autobuilder does not detect the build failure. No
> world build for qemuppc?
>
> Best Regards,
> Chen Qi
>
> On 04/02/2019 08:43 AM, changqing.li at windriver.com wrote:
> > From: Changqing Li <changqing.li at windriver.com>
> >
> > fix below link error for powerpc
> >
> > lib/libLLVMSupport.a(CommandLine.cpp.o): in function `llvm::cl::opt_storage<(anonymous namespace):
> > :HelpPrinterWrapper, true, true>::setLocation(llvm::cl::Option&, (anonymous namespace)::HelpPrinterWrapper&) [clone .isra.189]':
> > /usr/src/debug/llvm/8.0-r0/git/llvm/include/llvm/Support/CommandLine.h:1218:(.text.startup+0x5c):
> > relocation truncated to fit: R_PPC_PLTREL24 against symbol `llvm::errs()' defined in .text section in lib/libLLVMSupport.a(raw_ostream.cpp.o)+8000
> > lib/libLLVMSupport.a(CommandLine.cpp.o): in function `setLocation':
> >
> > Signed-off-by: Changqing Li <changqing.li at windriver.com>
> > ---
> >   meta/recipes-devtools/llvm/llvm_git.bb | 2 ++
> >   1 file changed, 2 insertions(+)
> >
> > diff --git a/meta/recipes-devtools/llvm/llvm_git.bb b/meta/recipes-devtools/llvm/llvm_git.bb
> > index d2ea927..a35ea4a 100644
> > --- a/meta/recipes-devtools/llvm/llvm_git.bb
> > +++ b/meta/recipes-devtools/llvm/llvm_git.bb
> > @@ -88,6 +88,8 @@ EXTRA_OECMAKE_append_class-nativesdk = "\
> >                     -DLLVM_CONFIG_PATH=${STAGING_BINDIR_NATIVE}/llvm-config${PV} \
> >                    "
> >
> > +CXXFLAGS_append_class-target_powerpc = " -mlongcall"
> > +
> >   do_configure_prepend() {
> >   # Fix paths in llvm-config
> >       sed -i "s|sys::path::parent_path(CurrentPath))\.str()|sys::path::parent_path(sys::path::parent_path(CurrentPath))).str()|g" ${S}/tools/llvm-config/llvm-config.cpp
>
>


More information about the Openembedded-core mailing list