All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH] package/llvm: add dependency on shared libraries
Date: Fri, 6 Apr 2018 22:21:15 +0200	[thread overview]
Message-ID: <20180406222115.14f6cc2c@windsurf.home> (raw)
In-Reply-To: <a05eea9c-d124-84b5-2a75-903f4748f06f@smile.fr>

Hello,

On Fri, 6 Apr 2018 17:03:04 +0200, Valentin Korenblit wrote:

> >> Signed-off-by: Valentin Korenblit <valentin.korenblit@smile.fr>  
> > Interestingly, I haven't seen any failure of LLVM related to static
> > libraries reported by the autobuilders.  
> 
> I think llvm should compile correctly but mesa3d has --enable-llvm-shared-libs.
> We can disable that option if BR2_STATIC_ONLY.

LLVM doesn't build properly with BR2_STATIC_LIBS. The following defconfig:

BR2_arm=y
BR2_cortex_a8=y
BR2_STATIC_LIBS=y
BR2_TOOLCHAIN_BUILDROOT_LOCALE=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_PACKAGE_LLVM=y

fails to build with:

[ 60%] Linking CXX shared module ../../LLVMHello.so
/home/thomas/buildroot/buildroot/output/host/lib/gcc/arm-buildroot-linux-uclibcgnueabihf/6.4.0/../../../../arm-buildroot-linux-uclibcgnueabihf/bin/ld: /home/thomas/buildroot/buildroot/output/host/lib/gcc/arm-buildroot-linux-uclibcgnueabihf/6.4.0/../../../
../arm-buildroot-linux-uclibcgnueabihf/lib/libstdc++.a(eh_globals.o)(.text.__cxa_get_globals_fast+0x10): R_ARM_TLS_LE32 relocation not permitted in shared object
/home/thomas/buildroot/buildroot/output/host/lib/gcc/arm-buildroot-linux-uclibcgnueabihf/6.4.0/../../../../arm-buildroot-linux-uclibcgnueabihf/lib/libstdc++.a(eh_globals.o): In function `__cxa_get_globals_fast':
eh_globals.cc:(.text.__cxa_get_globals_fast+0x10): dangerous relocation: unsupported relocation
/home/thomas/buildroot/buildroot/output/host/lib/gcc/arm-buildroot-linux-uclibcgnueabihf/6.4.0/../../../../arm-buildroot-linux-uclibcgnueabihf/bin/ld: /home/thomas/buildroot/buildroot/output/host/lib/gcc/arm-buildroot-linux-uclibcgnueabihf/6.4.0/../../../
../arm-buildroot-linux-uclibcgnueabihf/lib/libstdc++.a(eh_globals.o)(.text.__cxa_get_globals+0x10): R_ARM_TLS_LE32 relocation not permitted in shared object
/home/thomas/buildroot/buildroot/output/host/lib/gcc/arm-buildroot-linux-uclibcgnueabihf/6.4.0/../../../../arm-buildroot-linux-uclibcgnueabihf/lib/libstdc++.a(eh_globals.o): In function `__cxa_get_globals':
eh_globals.cc:(.text.__cxa_get_globals+0x10): dangerous relocation: unsupported relocation
/home/thomas/buildroot/buildroot/output/host/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/lib/libc.a(__uClibc_main.os): In function `__uClibc_fini':
__uClibc_main.c:(.text+0x164): undefined reference to `__fini_array_end'
__uClibc_main.c:(.text+0x168): undefined reference to `__fini_array_start'
__uClibc_main.c:(.text+0x16c): undefined reference to `__fini_array_start'
/home/thomas/buildroot/buildroot/output/host/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/lib/libc.a(__uClibc_main.os): In function `__uClibc_main':
__uClibc_main.c:(.text+0x580): undefined reference to `__preinit_array_start'
__uClibc_main.c:(.text+0x584): undefined reference to `__preinit_array_start'
__uClibc_main.c:(.text+0x588): undefined reference to `__preinit_array_end'
__uClibc_main.c:(.text+0x58c): undefined reference to `__init_array_start'
__uClibc_main.c:(.text+0x590): undefined reference to `__init_array_end'
__uClibc_main.c:(.text+0x594): undefined reference to `__init_array_start'
/home/thomas/buildroot/buildroot/output/host/lib/gcc/arm-buildroot-linux-uclibcgnueabihf/6.4.0/../../../../arm-buildroot-linux-uclibcgnueabihf/bin/ld: ../../LLVMHello.so: hidden symbol `__fini_array_end' isn't defined
/home/thomas/buildroot/buildroot/output/host/lib/gcc/arm-buildroot-linux-uclibcgnueabihf/6.4.0/../../../../arm-buildroot-linux-uclibcgnueabihf/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
lib/Transforms/Hello/CMakeFiles/LLVMHello.dir/build.make:94: recipe for target 'lib/LLVMHello.so' failed
make[4]: *** [lib/LLVMHello.so] Error 1

So basically, it's trying to build a shared library.

Could you fix up your patch to propagate the !BR2_STATIC_LIBS
dependency to:

 1. The Config.in comment in package/llvm/Config.in

 2. The mesa3d package that selects BR2_PACKAGE_LLVM

And send an updated version ?

Thanks!

Thomas Petazzoni
-- 
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com

      reply	other threads:[~2018-04-06 20:21 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-06  9:39 [Buildroot] [PATCH] package/llvm: add dependency on shared libraries Valentin Korenblit
2018-04-06 11:22 ` Romain Naour
2018-04-06 14:41 ` Thomas Petazzoni
2018-04-06 15:03   ` Valentin Korenblit
2018-04-06 20:21     ` Thomas Petazzoni [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180406222115.14f6cc2c@windsurf.home \
    --to=thomas.petazzoni@bootlin.com \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.