From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
To: 71045@debbugs.gnu.org
Cc: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Subject: [bug#71045] [PATCH] gnu: cling: Update to 1.0.
Date: Sat, 18 May 2024 16:56:38 -0400 [thread overview]
Message-ID: <3e237a99a9a79a4904e5616eb364b5a9063eef9d.1716065797.git.maxim.cournoyer@gmail.com> (raw)
* gnu/packages/llvm.scm (%cling-version): Delete variable.
(llvm-cling): Inherit from llvm-15 and update to version 13-20240318-01.
[source]: Update source URL. Remove obsolete snippet. Add patches field.
[outputs]: Delete field.
[arguments]: Likewise.
(clang-cling-runtime): Update to 13-20240318-01. Inherit from
clang-runtime-13. Use llvm-cling source.
[phases]: Use gexps. Add change-directory phase.
(clang-cling): Update to 13-20240318-01. Inherit from
clang-13. Use llvm-cling source.
[arguments]: Use gexps. Add change-directory phase.
(cling): Update to 1.0.
[source]: Update URL.
[phases] {patch-paths}: Adjust patching of the 'getResourceDir' variable.
* gnu/packages/patches/cling-use-shared-library.patch: Rebase patch.
* gnu/packages/patches/clang-cling-13-libc-search-path.patch: New patch.
* gnu/local.mk (dist_patch_DATA): Register it.
Change-Id: I5d1f2c4d36ca226116bc74c2578154f86413f9e9
---
gnu/local.mk | 1 +
gnu/packages/llvm.scm | 268 ++++++++----------
.../clang-cling-13-libc-search-path.patch | 96 +++++++
.../patches/cling-use-shared-library.patch | 83 ++----
4 files changed, 237 insertions(+), 211 deletions(-)
create mode 100644 gnu/packages/patches/clang-cling-13-libc-search-path.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index 89839f799e..72a99d000e 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1048,6 +1048,7 @@ dist_patch_DATA = \
%D%/packages/patches/clang-17.0-libc-search-path.patch \
%D%/packages/patches/clang-17.0-link-dsymutil-latomic.patch \
%D%/packages/patches/clang-18.0-libc-search-path.patch \
+ %D%/packages/patches/clang-cling-13-libc-search-path.patch \
%D%/packages/patches/clang-runtime-asan-build-fixes.patch \
%D%/packages/patches/clang-runtime-esan-build-fixes.patch \
%D%/packages/patches/clang-runtime-9-libsanitizer-mode-field.patch \
diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index 8855e1ade3..c7c55322d7 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -17,11 +17,10 @@
;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;; Copyright © 2021, 2022 Maxime Devos <maximedevos@telenet.be>
-;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020, 2021, 2022, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2021 Lars-Dominik Braun <lars@6xq.net>
;;; Copyright © 2021, 2022 Guillaume Le Vaillant <glv@posteo.net>
-;;; Copyright © 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022, 2024 Greg Hogan <code@greghogan.com>
;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2022 Clément Lassieur <clement@lassieur.org>
@@ -2236,180 +2235,155 @@ (define-public llvm-julia
(properties `((hidden? . #t)
,@(package-properties llvm-13)))))
-(define %cling-version "0.9")
-
-(define llvm-cling ;LLVM 9 with approximately 10 patches for cling
- (let ((base llvm-9))
+(define llvm-cling
+ ;; To determine which version of LLVM a given release of Cling should use,
+ ;; consult the
+ ;; https://raw.githubusercontent.com/root-project/cling/master/LastKnownGoodLLVMSVNRevision.txt
+ ;; file.
+ (let ((base llvm-15)) ;for a DYLIB build
(package/inherit base
(name "llvm-cling")
+ (version "13-20240318-01")
(source
(origin
(inherit (package-source base))
(method git-fetch)
(uri (git-reference
- (url "http://root.cern/git/llvm.git")
- (commit (string-append "cling-v" %cling-version))))
- (file-name (git-file-name "llvm-cling" %cling-version))
+ (url "https://github.com/root-project/llvm-project")
+ (commit (string-append "cling-llvm" version))))
+ (file-name (git-file-name "llvm-cling" version))
(sha256
(base32
- "0y3iwv3c9152kybmdrwvadggjs163r25h7rmlxzr3hfpr463pnwf"))
- (modules '((guix build utils)))
- (snippet
- ;; The source is missing an include directive (see:
- ;; https://github.com/vgvassilev/cling/issues/219).
- '(substitute* "utils/benchmark/src/benchmark_register.h"
- (("^#include <vector>.*" all)
- (string-append all "#include <limits>\n"))))))
- (outputs '("out"))
- (arguments
- (substitute-keyword-arguments (package-arguments base)
- ((#:configure-flags _ ''())
- '(list "-DLLVM_PARALLEL_LINK_JOBS=1" ;cater to smaller build machines
- ;; Only enable compiler support for the host architecture to
- ;; save on build time.
- "-DLLVM_TARGETS_TO_BUILD=host;NVPTX"
- "-DLLVM_INSTALL_UTILS=ON"
- "-DLLVM_ENABLE_RTTI=ON"
- "-DLLVM_ENABLE_FFI=ON"
- "-DLLVM_BUILD_LLVM_DYLIB=ON"
- "-DLLVM_LINK_LLVM_DYLIB=ON"))
- ((#:phases phases '%standard-phases)
- #~(modify-phases #$phases
- (delete 'shared-lib-workaround)
- (delete 'install-opt-viewer))))))))
+ "1zh6yp8px9hla7v9i67a6anbph140f8ixxbsz65aj7fizksjs1h3"))
+ (patches (search-patches "clang-cling-13-libc-search-path.patch")))))))
(define clang-cling-runtime
- (let ((base clang-runtime-9))
+ (let ((base clang-runtime-13))
(package/inherit base
(name "clang-cling-runtime")
+ (version (package-version llvm-cling))
+ (source (package-source llvm-cling))
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:phases phases '%standard-phases)
- `(modify-phases ,phases
- (add-after 'install 'delete-static-libraries
- ;; This reduces the size from 22 MiB to 4 MiB.
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (for-each delete-file (find-files out "\\.a$")))))))))
+ #~(modify-phases #$phases
+ (add-after 'unpack 'change-directory
+ (lambda _
+ (chdir "compiler-rt")))
+ (add-after 'install 'delete-static-libraries
+ ;; This reduces the size from 22 MiB to 4 MiB.
+ (lambda _
+ (for-each delete-file (find-files #$output "\\.a$"))))))))
(inputs (modify-inputs (package-inputs base)
(replace "llvm" llvm-cling))))))
-(define clang-cling ;modified clang 9 with ~ 60 patches for cling
- (let ((base clang-9))
+(define clang-cling
+ (let ((base clang-13))
(package/inherit base
(name "clang-cling")
- (source
- (origin
- (inherit (package-source base))
- (method git-fetch)
- (uri (git-reference
- (url "http://root.cern/git/clang.git")
- (commit (string-append "cling-v" %cling-version))))
- (file-name (git-file-name "clang-cling" %cling-version))
- (sha256
- (base32
- "128mxkwghss6589wvm6amzv183aq88rdrnfxjiyjcji5hx84vpby"))))
+ (version (package-version llvm-cling))
+ (source (package-source llvm-cling))
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:phases phases '%standard-phases)
- `(modify-phases ,phases
- (add-after 'install 'delete-static-libraries
- ;; This reduces the size by half, from 220 MiB to 112 MiB.
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (for-each delete-file (find-files out "\\.a$")))))))))
+ #~(modify-phases #$phases
+ (add-after 'unpack 'change-directory
+ (lambda _
+ (chdir "clang")))
+ (add-after 'install 'delete-static-libraries
+ ;; This reduces the size by half, from 220 MiB to 112 MiB.
+ (lambda _
+ (for-each delete-file (find-files #$output "\\.a$"))))))))
(propagated-inputs
(modify-inputs (package-propagated-inputs base)
(replace "llvm" llvm-cling)
(replace "clang-runtime" clang-cling-runtime))))))
(define-public cling
- ;; The tagged v0.9 release doesn't build, so use the latest commit.
- (let ((commit "d78d1a03fedfd2bf6d2b6ff295aca576d98940df")
- (revision "1")
- (version* "0.9"))
- (package
- (name "cling")
- (version (git-version version* revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "http://root.cern/git/cling.git")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0lsbxv21b4qw11xkw9iipdpca64jjwwqxm0qf5v2cgdlibf8m8n9"))
- ;; Patch submitted upstream here:
- ;; https://github.com/root-project/cling/pull/433.
- (patches (search-patches "cling-use-shared-library.patch"))))
- (build-system cmake-build-system)
- (arguments
- (list
- #:build-type "Release" ;keep the build as lean as possible
- #:tests? #f ;FIXME: 78 tests fail (out of ~200)
- #:test-target "check-cling"
- #:configure-flags
- #~(list (string-append "-DCLING_CXX_PATH="
- (search-input-file %build-inputs "bin/g++"))
- ;; XXX: The AddLLVM.cmake module expects LLVM_EXTERNAL_LIT to
- ;; be a Python script, not a shell executable.
- (string-append "-DLLVM_EXTERNAL_LIT="
- (search-input-file %build-inputs "bin/.lit-real")))
- #:phases
- #~(modify-phases %standard-phases
- (add-after 'unpack 'set-version
- (lambda _
- (make-file-writable "VERSION")
- (call-with-output-file "VERSION"
- (lambda (port)
- (format port "~a~%" #$version)))))
- (add-after 'unpack 'patch-paths
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "lib/Interpreter/CIFactory.cpp"
- (("\\bsed\\b")
- (which "sed"))
- ;; This ensures that the default C++ library used by Cling is
- ;; that of the compiler that was used to build it, rather
- ;; than that of whatever g++ happens to be on PATH.
- (("ReadCompilerIncludePaths\\(CLING_CXX_RLTV")
- (format #f "ReadCompilerIncludePaths(~s"
- (search-input-file inputs "bin/g++")))
- ;; Cling uses libclang's CompilerInvocation::GetResourcesPath
- ;; to resolve Clang's library prefix, but this fails on Guix
- ;; because it is relative to the output of cling rather than
- ;; clang (see:
- ;; https://github.com/root-project/cling/issues/434). Fully
- ;; shortcut the logic in this method to return the correct
- ;; static location.
- (("static std::string getResourceDir.*" all)
- (string-append all
- " return std::string(\""
- #$(this-package-input "clang-cling")
- "/lib/clang/" #$(package-version clang-cling)
- "\");")))
- ;; Check for the 'lit' command for the tests, not 'lit.py'
- ;; (see: https://github.com/root-project/cling/issues/432).
- (substitute* "CMakeLists.txt"
- (("lit.py")
- "lit"))))
- (add-after 'unpack 'adjust-lit.cfg
- ;; See: https://github.com/root-project/cling/issues/435.
- (lambda _
- (substitute* "test/lit.cfg"
- (("config.llvm_tools_dir \\+ '")
- "config.cling_obj_root + '/bin"))))
- (add-after 'install 'delete-static-libraries
- ;; This reduces the size from 17 MiB to 5.4 MiB.
- (lambda _
- (for-each delete-file (find-files #$output "\\.a$")))))))
- (native-inputs
- (list python python-lit))
- (inputs
- (list clang-cling llvm-cling))
- (home-page "https://root.cern/cling/")
- (synopsis "Interactive C++ interpreter")
- (description "Cling is an interactive C++17 standard compliant
+ (package
+ (name "cling")
+ (version "1.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/root-project/cling")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "17n66wf5yg1xjc94d6yb8g2gydjz0b8cj4a2pn6xrygdvhh09vv1"))
+ ;; Patch submitted upstream here:
+ ;; https://github.com/root-project/cling/pull/433.
+ (patches (search-patches "cling-use-shared-library.patch"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:build-type "Release" ;keep the build as lean as possible
+ #:tests? #f ;FIXME: 78 tests fail (out of ~200)
+ #:test-target "check-cling"
+ #:configure-flags
+ #~(list (string-append "-DCLING_CXX_PATH="
+ (search-input-file %build-inputs "bin/g++"))
+ ;; XXX: The AddLLVM.cmake module expects LLVM_EXTERNAL_LIT to
+ ;; be a Python script, not a shell executable.
+ (string-append "-DLLVM_EXTERNAL_LIT="
+ (search-input-file %build-inputs "bin/.lit-real")))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'set-version
+ (lambda _
+ (make-file-writable "VERSION")
+ (call-with-output-file "VERSION"
+ (lambda (port)
+ (format port "~a~%" #$version)))))
+ (add-after 'unpack 'patch-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "lib/Interpreter/CIFactory.cpp"
+ (("\\bsed\\b")
+ (which "sed"))
+ ;; This ensures that the default C++ library used by Cling is
+ ;; that of the compiler that was used to build it, rather
+ ;; than that of whatever g++ happens to be on PATH.
+ (("ReadCompilerIncludePaths\\(CLING_CXX_RLTV")
+ (format #f "ReadCompilerIncludePaths(~s"
+ (search-input-file inputs "bin/g++")))
+ ;; Cling uses libclang's CompilerInvocation::GetResourcesPath
+ ;; to resolve Clang's library prefix, but this fails on Guix
+ ;; because it is relative to the output of cling rather than
+ ;; clang (see:
+ ;; https://github.com/root-project/cling/issues/434). Fully
+ ;; shortcut the logic in this method to return the correct
+ ;; static location.
+ (("static std::string getResourceDir.*" all)
+ (string-append all
+ " return std::string(\""
+ #$(this-package-input "clang-cling")
+ "/lib/clang/"
+ #$(first
+ (take (string-split
+ (package-version clang-cling) #\-)
+ 1)) ".0.0" ;e.g. 13.0.0
+ "\");")))
+ ;; Check for the 'lit' command for the tests, not 'lit.py'
+ ;; (see: https://github.com/root-project/cling/issues/432).
+ (substitute* "CMakeLists.txt"
+ (("lit.py")
+ "lit"))))
+ (add-after 'unpack 'adjust-lit.cfg
+ ;; See: https://github.com/root-project/cling/issues/435.
+ (lambda _
+ (substitute* "test/lit.cfg"
+ (("config.llvm_tools_dir \\+ '")
+ "config.cling_obj_root + '/bin"))))
+ (add-after 'install 'delete-static-libraries
+ ;; This reduces the size from 17 MiB to 5.4 MiB.
+ (lambda _
+ (for-each delete-file (find-files #$output "\\.a$")))))))
+ (native-inputs (list python python-lit))
+ (inputs (list clang-cling llvm-cling))
+ (home-page "https://root.cern/cling/")
+ (synopsis "Interactive C++ interpreter")
+ (description "Cling is an interactive C++17 standard compliant
interpreter, built on top of LLVM and Clang. Cling can be used as a
read-eval-print loop (REPL) to assist with rapid application development.
Here's how to print @samp{\"Hello World!\"} using @command{cling}:
@@ -2417,4 +2391,4 @@ (define-public cling
@example
cling '#include <stdio.h>' 'printf(\"Hello World!\\n\");'
@end example")
- (license license:lgpl2.1+)))) ;for the combined work
+ (license license:lgpl2.1+))) ;for the combined work
diff --git a/gnu/packages/patches/clang-cling-13-libc-search-path.patch b/gnu/packages/patches/clang-cling-13-libc-search-path.patch
new file mode 100644
index 0000000000..c7d22eaaa3
--- /dev/null
+++ b/gnu/packages/patches/clang-cling-13-libc-search-path.patch
@@ -0,0 +1,96 @@
+Clang attempts to guess file names based on the OS and distro (yes!),
+but unfortunately, that doesn't work for us.
+
+This patch makes it easy to insert libc's $libdir so that Clang passes the
+correct absolute file name of crt1.o etc. to 'ld'. It also disables all
+the distro-specific stuff and removes the hard-coded FHS directory names
+to make sure Clang also works on foreign distros.
+
+diff --git a/clang/lib/Driver/Distro.cpp b/clang/lib/Driver/Distro.cpp
+index ee4fe841..f0313bbe 100644
+--- a/clang/lib/Driver/Distro.cpp
++++ b/clang/lib/Driver/Distro.cpp
+@@ -93,6 +93,10 @@ static Distro::DistroType DetectLsbRelease(llvm::vfs::FileSystem &VFS) {
+ }
+
+ static Distro::DistroType DetectDistro(llvm::vfs::FileSystem &VFS) {
++ // The compiler should always behave the same, even when used via Guix on a
++ // foreign distro.
++ return Distro::UnknownDistro;
++
+ Distro::DistroType Version = Distro::UnknownDistro;
+
+ // Newer freedesktop.org's compilant systemd-based systems
+diff --git a/clang/lib/Driver/ToolChains/Cuda.cpp b/clang/lib/Driver/ToolChains/Cuda.cpp
+index d14776c5..88bc3ccd 100644
+--- a/clang/lib/Driver/ToolChains/Cuda.cpp
++++ b/clang/lib/Driver/ToolChains/Cuda.cpp
+@@ -119,6 +119,9 @@ CudaInstallationDetector::CudaInstallationDetector(
+ const Driver &D, const llvm::Triple &HostTriple,
+ const llvm::opt::ArgList &Args)
+ : D(D) {
++ // Don't look for CUDA in /usr.
++ return;
++
+ struct Candidate {
+ std::string Path;
+ bool StrictChecking;
+diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp
+--- a/clang/lib/Driver/ToolChains/Linux.cpp
++++ b/clang/lib/Driver/ToolChains/Linux.cpp
+@@ -186,6 +186,10 @@
+
+ Generic_GCC::PushPPaths(PPaths);
+
++ // Comment out the distro-specific tweaks so that they don't bite when
++ // using Guix on a foreign distro.
++#if 0
++
+ Distro Distro(D.getVFS(), Triple);
+
+ if (Distro.IsAlpineLinux() || Triple.isAndroid()) {
+@@ -251,6 +255,7 @@
+
+ if (IsAndroid || Distro.IsOpenSUSE())
+ ExtraOpts.push_back("--enable-new-dtags");
++#endif
+
+ // The selection of paths to try here is designed to match the patterns which
+ // the GCC driver itself uses, as this is part of the GCC-compatible driver.
+@@ -264,6 +269,7 @@
+
+ Generic_GCC::AddMultilibPaths(D, SysRoot, OSLibDir, MultiarchTriple, Paths);
+
++#if 0
+ addPathIfExists(D, SysRoot + "/lib/" + MultiarchTriple, Paths);
+ addPathIfExists(D, SysRoot + "/lib/../" + OSLibDir, Paths);
+
+@@ -295,9 +301,11 @@
+ addPathIfExists(D, SysRoot + "/" + OSLibDir + "/" + ABIName, Paths);
+ addPathIfExists(D, SysRoot + "/usr/" + OSLibDir + "/" + ABIName, Paths);
+ }
++#endif
+
+ Generic_GCC::AddMultiarchPaths(D, SysRoot, OSLibDir, Paths);
+
++#if 0
+ // Similar to the logic for GCC above, if we are currently running Clang
+ // inside of the requested system root, add its parent library path to those
+ // searched.
+@@ -305,9 +313,14 @@
+ // directory ('Dir' below) or the ResourceDir.
+ if (StringRef(D.Dir).startswith(SysRoot))
+ addPathIfExists(D, D.Dir + "/../lib", Paths);
++#endif
++
++ // Add libc's lib/ directory to the search path, so that crt1.o, crti.o,
++ // and friends can be found.
++ addPathIfExists(D, "@GLIBC_LIBDIR@", Paths);
+
+- addPathIfExists(D, SysRoot + "/lib", Paths);
+- addPathIfExists(D, SysRoot + "/usr/lib", Paths);
++ // Add GCC's lib/ directory so libstdc++.so can be found.
++ addPathIfExists(D, GCCInstallation.getParentLibPath(), Paths);
+ }
+
+ ToolChain::RuntimeLibType Linux::GetDefaultRuntimeLibType() const {
diff --git a/gnu/packages/patches/cling-use-shared-library.patch b/gnu/packages/patches/cling-use-shared-library.patch
index 6385b307b3..cb79c916b9 100644
--- a/gnu/packages/patches/cling-use-shared-library.patch
+++ b/gnu/packages/patches/cling-use-shared-library.patch
@@ -1,58 +1,30 @@
-From 811f0a575231496318b5e9c9a0ff0ed195b16dc0 Mon Sep 17 00:00:00 2001
-From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
-Date: Tue, 7 Sep 2021 16:35:07 -0400
-Subject: [PATCH] build: Allow building Cling using the Clang shared library.
-
-The officially supported way to build LLVM/Clang as a shared library
-is via the LLVM_BUILD_LLVM_DYLIB and LLVM_LINK_LLVM_DYLIB CMake
-options (see: https://llvm.org/docs/BuildingADistribution.html). When
-built this way, the whole of Clang API is exposed as a shared
-library (libclang-cpp.so).
-
-* CMakeLists.txt: Query if we're in shared mode via llvm-config, and
-register the result as LLVM_LIB_IS_SHARED.
-[LLVM_LIB_IS_SHARED] <target_link_libraries>: Use the PUBLIC interface of the
-LLVM shared library.
-* lib/Interpreter/CMakeLists.txt [LLVM_LIB_IS_SHARED]: When defined, replace the
-individual Clang components by clang-cpp.
-* lib/MetaProcessor/CMakeLists.txt: Likewise.
-* lib/Utils/CMakeLists.txt: Likewise.
-* tools/Jupyter/CMakeLists.txt: Likewise.
-* tools/driver/CMakeLists.txt: Likewise.
-* tools/libcling/CMakeLists.txt: Likewise.
----
- CMakeLists.txt | 10 ++++++--
- lib/Interpreter/CMakeLists.txt | 40 ++++++++++++++++++--------------
- lib/MetaProcessor/CMakeLists.txt | 16 +++++++++----
- lib/Utils/CMakeLists.txt | 34 +++++++++++++++------------
- tools/Jupyter/CMakeLists.txt | 11 ++++++++-
- tools/driver/CMakeLists.txt | 16 +++----------
- tools/libcling/CMakeLists.txt | 38 +++++++++++++++---------------
- 7 files changed, 93 insertions(+), 72 deletions(-)
+Allow linking Cling to a LLVM shared library
+Upstream status: https://github.com/root-project/root/pull/15563
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 65b14b27..888f7ee9 100644
+index 9775b07f..31dd58fb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -23,6 +23,7 @@ if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR )
+@@ -23,7 +23,8 @@ if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR )
+ "--bindir"
"--libdir"
"--includedir"
- "--prefix"
-+ "--shared-mode"
- "--src-root")
+- "--prefix")
++ "--prefix"
++ "--shared-mode")
execute_process(
COMMAND ${CONFIG_COMMAND}
-@@ -47,7 +48,8 @@ if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR )
+ RESULT_VARIABLE HAD_ERROR
+@@ -47,6 +48,8 @@ if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR )
list(GET CONFIG_OUTPUT 2 LIBRARY_DIR)
list(GET CONFIG_OUTPUT 3 INCLUDE_DIR)
list(GET CONFIG_OUTPUT 4 LLVM_OBJ_ROOT)
-- list(GET CONFIG_OUTPUT 5 MAIN_SRC_DIR)
+ list(GET CONFIG_OUTPUT 5 LLVM_LIB_IS_SHARED)
+ list(GET CONFIG_OUTPUT 6 MAIN_SRC_DIR)
if(NOT MSVC_IDE)
set(LLVM_ENABLE_ASSERTIONS ${ENABLE_ASSERTIONS}
-@@ -427,7 +429,11 @@ macro(add_cling_library name)
+@@ -444,7 +447,11 @@ macro(add_cling_library name)
endif()
if(TARGET ${name})
@@ -66,7 +38,7 @@ index 65b14b27..888f7ee9 100644
if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "libcling")
install(TARGETS ${name}
diff --git a/lib/Interpreter/CMakeLists.txt b/lib/Interpreter/CMakeLists.txt
-index 921c773c..af65c020 100644
+index e397da97..9a50ad2c 100644
--- a/lib/Interpreter/CMakeLists.txt
+++ b/lib/Interpreter/CMakeLists.txt
@@ -6,22 +6,28 @@
@@ -114,13 +86,6 @@ index 921c773c..af65c020 100644
set(LLVM_LINK_COMPONENTS
analysis
-@@ -369,4 +375,4 @@ if ((NOT builtin_llvm) AND builtin_clang)
- get_property(P SOURCE TransactionUnloader.cpp PROPERTY INCLUDE_DIRECTORIES)
- list(INSERT P 0 ${FixInclude})
- set_property(SOURCE TransactionUnloader.cpp PROPERTY INCLUDE_DIRECTORIES "${P}")
--endif()
-\ No newline at end of file
-+endif()
diff --git a/lib/MetaProcessor/CMakeLists.txt b/lib/MetaProcessor/CMakeLists.txt
index e753dca3..5f4641bb 100644
--- a/lib/MetaProcessor/CMakeLists.txt
@@ -230,19 +195,18 @@ index aad5f3f7..8b4ac36f 100644
if( LLVM_ENABLE_PIC )
set(ENABLE_SHARED SHARED)
diff --git a/tools/driver/CMakeLists.txt b/tools/driver/CMakeLists.txt
-index 1968b97f..5ed53fb7 100644
+index d107dd7d..49fbaef8 100644
--- a/tools/driver/CMakeLists.txt
+++ b/tools/driver/CMakeLists.txt
-@@ -9,23 +9,13 @@
- # Keep symbols for JIT resolution
+@@ -10,16 +10,9 @@
set(LLVM_NO_DEAD_STRIP 1)
+ set(LLVM_LINK_COMPONENTS Support)
-if(BUILD_SHARED_LIBS)
- set(LIBS
-- LLVMSupport
-
- clangFrontendTool
--
+
- clingInterpreter
- clingMetaProcessor
- clingUserInterface
@@ -253,13 +217,7 @@ index 1968b97f..5ed53fb7 100644
add_cling_executable(cling
cling.cpp
)
- else()
- set(LIBS
-- LLVMSupport
-
- clangASTMatchers
- clangFrontendTool
-@@ -38,7 +28,7 @@ else()
+@@ -36,7 +29,7 @@ else()
$<TARGET_OBJECTS:obj.clingMetaProcessor>
$<TARGET_OBJECTS:obj.clingUtils>
)
@@ -269,7 +227,7 @@ index 1968b97f..5ed53fb7 100644
set_target_properties(cling
PROPERTIES ENABLE_EXPORTS 1)
diff --git a/tools/libcling/CMakeLists.txt b/tools/libcling/CMakeLists.txt
-index 143d3bdb..ba000d44 100644
+index 2a2b15e0..06d07138 100644
--- a/tools/libcling/CMakeLists.txt
+++ b/tools/libcling/CMakeLists.txt
@@ -10,21 +10,25 @@ set(SOURCES
@@ -313,7 +271,7 @@ index 143d3bdb..ba000d44 100644
set( LLVM_LINK_COMPONENTS
analysis
-@@ -63,10 +67,6 @@ option(LIBCLING_BUILD_STATIC
+@@ -64,10 +68,6 @@ option(LIBCLING_BUILD_STATIC
# set(LLVM_EXPORTED_SYMBOL_FILE)
#endif()
@@ -324,6 +282,3 @@ index 143d3bdb..ba000d44 100644
if((NOT LLVM_ENABLE_PIC OR LIBCLING_BUILD_STATIC) AND NOT WIN32)
set(ENABLE_STATIC STATIC)
endif()
---
-2.33.0
-
base-commit: e9b25a6c6c626a560d28a1f732e6e5d362d584a4
--
2.41.0
next reply other threads:[~2024-05-18 21:27 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-18 20:56 Maxim Cournoyer [this message]
2024-05-26 18:20 ` [bug#71045] [PATCH v2] gnu: cling: Update to 1.0 Maxim Cournoyer
2024-05-30 2:06 ` bug#71045: " Maxim Cournoyer
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
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3e237a99a9a79a4904e5616eb364b5a9063eef9d.1716065797.git.maxim.cournoyer@gmail.com \
--to=maxim.cournoyer@gmail.com \
--cc=71045@debbugs.gnu.org \
/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.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).