[arch-commits] Commit in cmucl/trunk (2 files)

Jürgen Hötzel juergen at archlinux.org
Sat Nov 10 13:03:29 UTC 2018


    Date: Saturday, November 10, 2018 @ 13:03:28
  Author: juergen
Revision: 405667

Switch to clang, because of upstream gcc8 issue. Fixes #60280

Added:
  cmucl/trunk/82bf2c727ba1d3c461fa360aaae176608eb9349b.patch
Modified:
  cmucl/trunk/PKGBUILD

------------------------------------------------+
 82bf2c727ba1d3c461fa360aaae176608eb9349b.patch |   56 +++++++++++++++++++++++
 PKGBUILD                                       |   23 +++++----
 2 files changed, 69 insertions(+), 10 deletions(-)

Added: 82bf2c727ba1d3c461fa360aaae176608eb9349b.patch
===================================================================
--- 82bf2c727ba1d3c461fa360aaae176608eb9349b.patch	                        (rev 0)
+++ 82bf2c727ba1d3c461fa360aaae176608eb9349b.patch	2018-11-10 13:03:28 UTC (rev 405667)
@@ -0,0 +1,56 @@
+From 82bf2c727ba1d3c461fa360aaae176608eb9349b Mon Sep 17 00:00:00 2001
+From: Raymond Toy <toy.raymond at gmail.com>
+Date: Sat, 25 Aug 2018 16:51:35 -0700
+Subject: [PATCH] Add support for compiling with clang on x86/linux
+
+Add `Config.x86_linux_clang` to use clang instead of gcc to build
+cmucl.  update `create-target.sh` so that it sets the motif variant
+correctly when using `Config.x86_linux_clang`
+
+See issue #68.
+
+With this config, Fedora 28 successfully builds cmucl and passes all
+the tests.
+---
+ bin/create-target.sh            |  2 +-
+ src/lisp/Config.x86_linux_clang | 15 +++++++++++++++
+ 2 files changed, 16 insertions(+), 1 deletion(-)
+ create mode 100644 src/lisp/Config.x86_linux_clang
+
+diff --git a/bin/create-target.sh b/bin/create-target.sh
+index 400a2e52b..c1b763056 100755
+--- a/bin/create-target.sh
++++ b/bin/create-target.sh
+@@ -83,7 +83,7 @@ case $uname_s in
+ 		hp700*) motif_variant=hpux_cc ;;
+ 		pmax_mach) motif_variant=pmax_mach ;;
+ 		sgi*) motif_variant=irix ;;
+-		x86_linux|linux*) motif_variant=x86 ;;
++		x86_linux*|linux*) motif_variant=x86 ;;
+ 	    esac
+ 	}
+ 	[ -f src/motif/server/Config.$motif_variant ] || quit "No such motif-variant could be found: Config.$motif_variant"
+diff --git a/src/lisp/Config.x86_linux_clang b/src/lisp/Config.x86_linux_clang
+new file mode 100644
+index 000000000..cbfb4306a
+--- /dev/null
++++ b/src/lisp/Config.x86_linux_clang
+@@ -0,0 +1,15 @@
++# -*- Mode: makefile -*-
++include Config.x86_common
++
++CC = clang
++CPPFLAGS += -m32 -D__NO_CTYPE -D_GNU_SOURCE
++CFLAGS += -march=pentium4 -mfpmath=sse -mtune=generic
++
++UNDEFSYMPATTERN = -Xlinker -u -Xlinker &
++ASSEM_SRC +=  linux-stubs.S
++OS_SRC += Linux-os.c elf.c
++OS_LIBS = -ldl
++OS_LINK_FLAGS = -m32 -rdynamic -Xlinker --export-dynamic -Xlinker -Map -Xlinker foo
++OS_LINK_FLAGS += -Wl,-z,noexecstack
++
++EXEC_FINAL_OBJ = exec-final.o
+-- 
+2.18.1
+

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2018-11-10 12:58:08 UTC (rev 405666)
+++ PKGBUILD	2018-11-10 13:03:28 UTC (rev 405667)
@@ -3,23 +3,25 @@
 # Maintainer: Juergen Hoetzel <juergen at archlinux.org>
 
 pkgname=cmucl
-pkgver=21b
-pkgrel=2
+pkgver=21c
+pkgrel=1
 pkgdesc="CMU Common Lisp"
 depends_i686=('glibc' 'openmotif')
 depends_x86_64=('lib32-glibc' 'openmotif')
 provides=('common-lisp')
-makedepends=('sed' 'bc')
+makedepends=('sed' 'bc' 'clang')
 license=('custom')
 #license PublicDomain
 source=("https://common-lisp.net/project/cmucl/downloads/release/${pkgver}/cmucl-src-${pkgver}.tar.bz2"
-	"https://common-lisp.net/project/cmucl/downloads/release/${pkgver}/cmucl-src-${pkgver}.tar.bz2.asc"
+        "https://common-lisp.net/project/cmucl/downloads/release/${pkgver}/cmucl-src-${pkgver}.tar.bz2.asc"
         "https://common-lisp.net/project/cmucl/downloads/release/${pkgver}/cmucl-${pkgver}-x86-linux.tar.bz2"
-	"https://common-lisp.net/project/cmucl/downloads/release/${pkgver}/cmucl-${pkgver}-x86-linux.tar.bz2.asc")
-sha256sums=('6f9ea5920d38d6881cee85d976565b3a6070bf6473dd64254e0e9f2f23625875'
+        "https://common-lisp.net/project/cmucl/downloads/release/${pkgver}/cmucl-${pkgver}-x86-linux.tar.bz2.asc"
+        82bf2c727ba1d3c461fa360aaae176608eb9349b.patch)
+sha256sums=('3435963b594d44b5ca0e12674222b40fb00b3c44ea0226fead5d66041369a74d'
             'SKIP'
-            'eaccb1d676dbf40c5327ae5c61a7a638e4c12525b1e4118535582ffb7c59638e'
-            'SKIP')
+            'f94a79ca4c2918cc4e7bdc58c934c98e56accc3c08f7cccde70ade02ab438105'
+            'SKIP'
+            '6cb5b7921bee5c5cba19939de635870f56f1bce662d457aeccde29878a4d0ebc')
 validpgpkeys=('0EF50ED55514BFF6B72B9DAC06CE3819086C750B') # "Raymond Toy <toy.raymond at gmail.com>
 url="https://www.cons.org/cmucl/"
 arch=('x86_64')
@@ -26,6 +28,7 @@
 
 prepare() {
   cd "${srcdir}"
+  patch -p1 -i 82bf2c727ba1d3c461fa360aaae176608eb9349b.patch
 
   if [[ $CARCH == "i686" ]]; then
     sed -i 's|i386\*|i686\*|' bin/build-all.sh
@@ -36,13 +39,13 @@
   cd "${srcdir}"
   export CMUCLLIB="${srcdir}"/lib/cmucl/lib
   # Build using binary-dist lisp
-  ./bin/build-all.sh -o "${srcdir}"/bin/lisp
+  ./bin/build-all.sh -o "${srcdir}"/bin/lisp -C x86_linux_clang
 }
 
 package() {
   cd "${srcdir}"
   # install distribution
-  ./bin/make-dist.sh -I "${pkgdir}"/usr -M share/man/man1 linux-4
+  ./bin/make-dist.sh -I "${pkgdir}"/usr -M share/man/man1 -V 21c linux-4
   # move docs
   mv "${pkgdir}"/usr/doc "${pkgdir}"/usr/share/
   # backwards compatibility



More information about the arch-commits mailing list