Message ID | 20191005094818.1956334-1-romain.naour@gmail.com |
---|---|
State | Accepted |
Headers | show |
Series | [v2,1/4] package/llvm: add llvm RTTI option | expand |
Am Sat, 05 Oct 2019 11:48:15 +0200 schrieb Romain Naour: > Allow to build LLVM with run-time type information when this feature is > needed (for example) by mesa3d's Gallium Nouveau driver or the Clover > OpenCL state tracker when llvm support is enabled in mesa3d. > > Signed-off-by: Romain Naour > <romain.naour@gmail.com> Tested-by: Bernd Kuhls <bernd.kuhls@t-online.de> [build-tested using this defconfig: BR2_KERNEL_HEADERS_4_4=y BR2_TOOLCHAIN_BUILDROOT_LOCALE=y BR2_BINUTILS_VERSION_2_30_X=y BR2_GCC_VERSION_5_X=y BR2_TOOLCHAIN_BUILDROOT_CXX=y BR2_INIT_NONE=y BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y # BR2_PACKAGE_BUSYBOX is not set BR2_PACKAGE_MESA3D=y BR2_PACKAGE_MESA3D_LLVM=y BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_NOUVEAU=y BR2_PACKAGE_MESA3D_XVMC=y BR2_PACKAGE_MESA3D_OPENGL_GLX=y BR2_PACKAGE_MESA3D_OPENGL_EGL=y BR2_PACKAGE_MESA3D_OPENGL_ES=y BR2_PACKAGE_XORG7=y]
On Sat, 5 Oct 2019 11:48:15 +0200 Romain Naour <romain.naour@gmail.com> wrote: > Allow to build LLVM with run-time type information > when this feature is needed (for example) by mesa3d's > Gallium Nouveau driver or the Clover OpenCL state > tracker when llvm support is enabled in mesa3d. > > Signed-off-by: Romain Naour <romain.naour@gmail.com> > --- > v2: rebase the patch on master Series applied, thanks! On this particular patch, I extended a bit the commit log to explain why we're doing it on both the host and target LLVM variants. Thanks! Thomas
diff --git a/package/llvm/Config.in b/package/llvm/Config.in index 83e94660eb..4eaca3df58 100644 --- a/package/llvm/Config.in +++ b/package/llvm/Config.in @@ -35,6 +35,18 @@ config BR2_PACKAGE_LLVM_AMDGPU Build AMDGPU target. Select this option if you are going to install mesa3d with llvm and use Gallium Radeon driver. +config BR2_PACKAGE_LLVM_RTTI + bool "enable rtti" + help + Build LLVM with run-time type information. LLVM can be + built without rtti, but turning it off rtti changes the + ABI of C++ programs. + This features is needed to build the Gallium Nouveau + driver or the Clover OpenCL state tracker when llvm + support is enabled. + + https://llvm.org/docs/HowToSetUpLLVMStyleRTTI.html + endif comment "llvm needs a toolchain w/ wchar, threads, C++, gcc >= 4.8, host gcc >= 4.8, dynamic library" diff --git a/package/llvm/llvm.mk b/package/llvm/llvm.mk index f14b537d94..27a9f41860 100644 --- a/package/llvm/llvm.mk +++ b/package/llvm/llvm.mk @@ -216,6 +216,14 @@ LLVM_CONF_OPTS += \ -DLLVM_INCLUDE_TOOLS=ON \ -DLLVM_BUILD_TOOLS=OFF +ifeq ($(BR2_PACKAGE_LLVM_RTTI),y) +HOST_LLVM_CONF_OPTS += -DLLVM_ENABLE_RTTI=ON +LLVM_CONF_OPTS += -DLLVM_ENABLE_RTTI=ON +else +HOST_LLVM_CONF_OPTS += -DLLVM_ENABLE_RTTI=OFF +LLVM_CONF_OPTS += -DLLVM_ENABLE_RTTI=OFF +endif + # Compiler-rt not in the source tree. # llvm runtime libraries are not in the source tree. # Polly is not in the source tree.
Allow to build LLVM with run-time type information when this feature is needed (for example) by mesa3d's Gallium Nouveau driver or the Clover OpenCL state tracker when llvm support is enabled in mesa3d. Signed-off-by: Romain Naour <romain.naour@gmail.com> --- v2: rebase the patch on master package/llvm/Config.in | 12 ++++++++++++ package/llvm/llvm.mk | 8 ++++++++ 2 files changed, 20 insertions(+)