diff mbox series

[bug#55057,core-updates] gnu: llvm-14, llvm-12: Enable RTTI.

Message ID CA+3U0ZkedMa1brxCjo0GbRSRpN2AG5X2pzWf5UszY6RdiFYtPA@mail.gmail.com
State Accepted
Headers show
Series [bug#55057,core-updates] gnu: llvm-14, llvm-12: Enable RTTI. | expand

Checks

Context Check Description
cbaines/applying patch fail View Laminar job
cbaines/issue success View issue

Commit Message

Greg Hogan April 21, 2022, 8:09 p.m. UTC
The llvm packages currently define LLVM_REQUIRES_RTTI rather than the
LLVM_ENABLE_RTTI flag specified in the LLVM documentation (
https://llvm.org/docs/CMake.html).

LLVM_REQUIRES_RTTI is noted as an internal flag in the llvm code (
https://github.com/llvm/llvm-project/blob/llvmorg-14.0.1/llvm/cmake/modules/AddLLVM.cmake#L15
).

This appears to have been an issue from the first Guix commit adding the
LLVM_REQUIRES_RTTI flag as LLVM_ENABLE_RTTI is the flag specified in the
documentation for llvm 3.8.1 (
https://releases.llvm.org/3.8.1/docs/CMake.html).
$ git show 83c49858b518b98f88db5f50ce36c19084e7ad62:gnu/packages/llvm.scm

LLVM_ENABLE_RTTI is propagated to the exported llvm library cmake
configuration.
$ grep RTTI /gnu/store/*-llvm-*/lib/cmake/llvm/LLVMConfig.cmake

With all llvm packages inheriting from llvm-14 or llvm-12 this patch must
go to core-updates.
$ ./pre-inst-env guix search llvm | recsel -C -P version -e "name = 'llvm'"
| awk '$0="llvm@"$0' | xargs ./pre-inst-env guix refresh -l
Building the following 4906 packages would ensure 7034 dependent packages
are rebuilt ...

Greg


From 0cd3048f15fcca774088ab4d5b97a0fdaa74652e Mon Sep 17 00:00:00 2001
From: Greg Hogan <code@greghogan.com>
Date: Thu, 21 Apr 2022 19:13:50 +0000
Subject: [PATCH] gnu: llvm-14, llvm-12: Enable RTTI.

* gnu/packages/llvm.scm (llvm-14, llvm-12): Enable RTTI.
[arguments]<#:configure-flags>: Switch to proper CMake flag.
---
 gnu/packages/llvm.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Marius Bakke Sept. 1, 2022, 9:05 p.m. UTC | #1
Greg Hogan <code@greghogan.com> skriver:

> The llvm packages currently define LLVM_REQUIRES_RTTI rather than the
> LLVM_ENABLE_RTTI flag specified in the LLVM documentation (
> https://llvm.org/docs/CMake.html).
>
> LLVM_REQUIRES_RTTI is noted as an internal flag in the llvm code (
> https://github.com/llvm/llvm-project/blob/llvmorg-14.0.1/llvm/cmake/modules/AddLLVM.cmake#L15
> ).
>
> This appears to have been an issue from the first Guix commit adding the
> LLVM_REQUIRES_RTTI flag as LLVM_ENABLE_RTTI is the flag specified in the
> documentation for llvm 3.8.1 (
> https://releases.llvm.org/3.8.1/docs/CMake.html).
> $ git show 83c49858b518b98f88db5f50ce36c19084e7ad62:gnu/packages/llvm.scm

Good catch.  I wonder how we did not notice, apparently not many
packages depend on LLVM RTTI after all.

>>From 0cd3048f15fcca774088ab4d5b97a0fdaa74652e Mon Sep 17 00:00:00 2001
> From: Greg Hogan <code@greghogan.com>
> Date: Thu, 21 Apr 2022 19:13:50 +0000
> Subject: [PATCH] gnu: llvm-14, llvm-12: Enable RTTI.
>
> * gnu/packages/llvm.scm (llvm-14, llvm-12): Enable RTTI.
> [arguments]<#:configure-flags>: Switch to proper CMake flag.

Applied, thanks!
diff mbox series

Patch

From 0cd3048f15fcca774088ab4d5b97a0fdaa74652e Mon Sep 17 00:00:00 2001
From: Greg Hogan <code@greghogan.com>
Date: Thu, 21 Apr 2022 19:13:50 +0000
Subject: [PATCH] gnu: llvm-14, llvm-12: Enable RTTI.

* gnu/packages/llvm.scm (llvm-14, llvm-12): Enable RTTI.
[arguments]<#:configure-flags>: Switch to proper CMake flag.
---
 gnu/packages/llvm.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index 8348638614..a93a1976b5 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -577,7 +577,7 @@  (define-public llvm-14
          "-DCMAKE_BUILD_WITH_INSTALL_RPATH=FALSE"
          "-DBUILD_SHARED_LIBS:BOOL=TRUE"
          "-DLLVM_ENABLE_FFI:BOOL=TRUE"
-         "-DLLVM_REQUIRES_RTTI=1"       ;for some third-party utilities
+         "-DLLVM_ENABLE_RTTI:BOOL=TRUE" ;for some third-party utilities
          "-DLLVM_INSTALL_UTILS=ON")     ;needed for rustc
       ;; Don't use '-g' during the build, to save space.
       #:build-type "Release"
@@ -711,7 +711,7 @@  (define-public llvm-12
             "-DCMAKE_BUILD_WITH_INSTALL_RPATH=FALSE"
             "-DBUILD_SHARED_LIBS:BOOL=TRUE"
             "-DLLVM_ENABLE_FFI:BOOL=TRUE"
-            "-DLLVM_REQUIRES_RTTI=1" ; For some third-party utilities
+            "-DLLVM_ENABLE_RTTI:BOOL=TRUE" ; For some third-party utilities
             "-DLLVM_INSTALL_UTILS=ON")) ; Needed for rustc.
        ;; Don't use '-g' during the build, to save space.
        #:build-type "Release"
-- 
2.35.1