Date: Saturday, April 18, 2015 @ 02:31:20 Author: heftig Revision: 131603
repair llvm linking Added: rubinius/trunk/0001-Allow-shared-linking-to-LLVM-3.5.patch Modified: rubinius/trunk/PKGBUILD ---------------------------------------------+ 0001-Allow-shared-linking-to-LLVM-3.5.patch | 102 ++++++++++++++++++++++++++ PKGBUILD | 10 +- 2 files changed, 109 insertions(+), 3 deletions(-) Added: 0001-Allow-shared-linking-to-LLVM-3.5.patch =================================================================== --- 0001-Allow-shared-linking-to-LLVM-3.5.patch (rev 0) +++ 0001-Allow-shared-linking-to-LLVM-3.5.patch 2015-04-18 00:31:20 UTC (rev 131603) @@ -0,0 +1,102 @@ +From 4fd2b3dc1395e838d5e77de4b551063d5849deaa Mon Sep 17 00:00:00 2001 +From: "Jan Alexander Steffens (heftig)" <[email protected]> +Date: Fri, 6 Mar 2015 20:45:47 +0100 +Subject: [PATCH] Allow shared linking to LLVM 3.5 + +Run check_llvm_flags before checking for shared libs and use the +calculated flags there. +--- + configure | 53 +++++++++++++++++++++++------------------------------ + 1 file changed, 23 insertions(+), 30 deletions(-) + +diff --git a/configure b/configure +index fabb2d3..3a35743 100755 +--- a/configure ++++ b/configure +@@ -563,15 +563,6 @@ class Configure + return false + end + +- if setup_config +- check_llvm_flags +- return true +- end +- +- failure "ABORT: unable to set up LLVM" +- end +- +- def setup_config + @log.print " Checking for 'llvm-config': " + + config = @llvm_configure +@@ -602,36 +593,38 @@ class Configure + # Ruby 1.9 raises this error + failed = true + end +- if failed +- @log.write "Executing #{config_cmd.inspect} failed" +- return false +- end + +- parts = version.sub(/svn$/, "").split(".").map { |i| i.to_i } +- api_version = ("%d%02d" % parts[0..1]).to_i +- if api_version < 300 or api_version > 305 +- @log.write "only LLVM 3.0-3.5 is supported" +- else +- @log.write "found! (version #{version} - api: #{api_version})" +- @llvm = :config +- @llvm_configure = config_cmd +- @llvm_version = version +- @llvm_api_version = api_version ++ unless failed ++ parts = version.sub(/svn$/, "").split(".").map { |i| i.to_i } ++ api_version = ("%d%02d" % parts[0..1]).to_i ++ if api_version < 300 or api_version > 305 ++ @log.write "only LLVM 3.0-3.5 is supported" ++ else ++ @log.write "found! (version #{version} - api: #{api_version})" ++ @llvm = :config ++ @llvm_configure = config_cmd ++ @llvm_version = version ++ @llvm_api_version = api_version + +- if @llvm_shared +- setup_config_shared ++ check_llvm_flags ++ ++ if @llvm_shared ++ setup_llvm_shared ++ end ++ ++ return true + end +- +- return true ++ else ++ @log.write "executing #{config_cmd.inspect} failed" + end + else + @log.write "not found" + end + +- false ++ failure "ABORT: unable to set up LLVM" + end + +- def setup_config_shared ++ def setup_llvm_shared + @log.print " Checking for LLVM shared libs: " + + src = <<-EOP +@@ -640,7 +633,7 @@ using namespace llvm; + int main() { LLVMContext &Context = getGlobalContext(); } + EOP + +- common_args = `#{@llvm_configure} --cppflags --ldflags`.strip.split(/\s+/) ++ common_args = "`#{@llvm_configure} --cppflags` #{@llvm_cxxflags} #{@llvm_ldflags}".strip.split(/\s+/) + shared_configs = { + "libLLVM-#{@llvm_version}" => ["-lLLVM-#{@llvm_version}"], + "#{@llvm_configure} --libs" => `#{@llvm_configure} --libs`.strip.split(/\s+/) +-- +2.3.5 + Modified: PKGBUILD =================================================================== --- PKGBUILD 2015-04-17 21:38:28 UTC (rev 131602) +++ PKGBUILD 2015-04-18 00:31:20 UTC (rev 131603) @@ -4,17 +4,19 @@ pkgbase=rubinius pkgname=(rubinius rubinius-ruby) pkgver=2.5.1 -pkgrel=3 +pkgrel=4 pkgdesc="Ruby runtime written in Ruby, designed for concurrency" arch=(i686 x86_64) url="http://rubini.us" license=(custom) -depends=(llvm-libs libffi openssl libyaml) -makedepends=(llvm rubinius-ruby) +depends=(llvm35-libs libffi openssl libyaml) +makedepends=(llvm35 rubinius-ruby) options=(!emptydirs) source=(http://releases.rubini.us/${pkgbase}-${pkgver}.tar.bz2 + 0001-Allow-shared-linking-to-LLVM-3.5.patch gemrc dirs.patch) sha256sums=('00d6f23b7632d035d322209e736a9341155350a9d169e8471d38a554a8e26600' + 'e5b1c56e18bce8589d30ee8181128eccec6c3cbacb82f52f5cb4614407d8192a' '4bb7eb2fe66e396ed16b589cdb656831407b39ad4e138d88536754c0448ac614' 'a9922b199730c059c26781af45adc46401811ff2e6840c4aeb49da4fa41acdd9') @@ -22,6 +24,7 @@ export GEM_HOME="$srcdir/gemdir" LANG="en_US.UTF-8" cd $pkgbase-$pkgver + patch -Np1 -i ../0001-Allow-shared-linking-to-LLVM-3.5.patch patch -Np1 -i ../dirs.patch mkdir -p "$GEM_HOME" @@ -39,6 +42,7 @@ --includedir=/usr/include/rubinius \ --appdir=/usr/lib/rubinius \ --gemsdir=/usr/lib/rubinius/gems \ + --llvm-shared \ --preserve-prefix \ --without-rpath \ --bin-link bundle --bin-link bundler
