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.raym...@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 <juer...@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.raym...@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