[arch-commits] Commit in rubinius/trunk (0001-llvm-3.5.patch PKGBUILD)

Jan Steffens heftig at archlinux.org
Sat Nov 1 19:55:56 UTC 2014


    Date: Saturday, November 1, 2014 @ 20:55:55
  Author: heftig
Revision: 121692

2.3.0

Modified:
  rubinius/trunk/PKGBUILD
Deleted:
  rubinius/trunk/0001-llvm-3.5.patch

---------------------+
 0001-llvm-3.5.patch |  476 --------------------------------------------------
 PKGBUILD            |   17 -
 2 files changed, 5 insertions(+), 488 deletions(-)

Deleted: 0001-llvm-3.5.patch
===================================================================
--- 0001-llvm-3.5.patch	2014-11-01 19:50:30 UTC (rev 121691)
+++ 0001-llvm-3.5.patch	2014-11-01 19:55:55 UTC (rev 121692)
@@ -1,476 +0,0 @@
-From f4796fe40e3d290c134d8fe8c5b6ec78ef7a59b2 Mon Sep 17 00:00:00 2001
-From: "Jan Alexander Steffens (heftig)" <jan.steffens at gmail.com>
-Date: Sat, 6 Sep 2014 00:51:53 +0200
-Subject: [PATCH] llvm 3.5
-
----
- configure                      | 12 ++++++++++++
- rakelib/blueprint.rb           |  2 ++
- vm/environment.cpp             |  2 +-
- vm/llvm/autotypes.cpp          | 19 ++++++++++---------
- vm/llvm/disassembler.cpp       |  8 ++++++++
- vm/llvm/disassembler.hpp       |  6 ++++++
- vm/llvm/jit_builder.cpp        |  4 +++-
- vm/llvm/jit_builder.hpp        |  4 +++-
- vm/llvm/jit_compiler.cpp       | 13 +++++++++++--
- vm/llvm/jit_context.cpp        |  5 ++++-
- vm/llvm/jit_memory_manager.cpp | 20 ++++++++++++++++++++
- vm/llvm/jit_memory_manager.hpp | 37 ++++++++++++++++++++++++++++++++++++-
- vm/llvm/passes.cpp             |  6 +++++-
- vm/llvm/state.cpp              | 11 ++++++++---
- 14 files changed, 129 insertions(+), 20 deletions(-)
-
-diff --git a/configure b/configure
-index bdc9f43..b845dc9 100755
---- a/configure
-+++ b/configure
-@@ -67,6 +67,7 @@ class Configure
-     @llvm_prebuilt_name     = nil
-     @llvm_system_name       = get_system_name
-     @llvm_shared            = false
-+    @llvm_cxxflags          = ""
- 
-     @llvm_version           = "3.2"
-     @llvm_api_version       = 302
-@@ -890,6 +891,12 @@ Unsupported language version requested: #{version}. Options are #{@supported_ver
-     false
-   end
- 
-+  def check_llvm_flags
-+    if @llvm_api_version >= 305
-+      @llvm_cxxflags << " -std=c++11"
-+    end
-+  end
-+
-   def env(which)
-     ENV[which] || ""
-   end
-@@ -1542,6 +1549,10 @@ int main() { return tgetnum(""); }
-       @log.write "WARNING: LLVM disabled."
-     end
- 
-+    if @use_llvm
-+      check_llvm_flags
-+    end
-+
-     @log.write ""
- 
-     detect_sizeof("short")
-@@ -1668,6 +1679,7 @@ int main() { return tgetnum(""); }
-       :llvm_configure     => @llvm_configure,
-       :llvm_version       => @llvm_version,
-       :llvm_shared        => @llvm_shared,
-+      :llvm_cxxflags      => @llvm_cxxflags,
-       :cc                 => @cc,
-       :cxx                => @cxx,
-       :ldshared           => @ldshared,
-diff --git a/rakelib/blueprint.rb b/rakelib/blueprint.rb
-index 826b37b..e6e05ed 100644
---- a/rakelib/blueprint.rb
-+++ b/rakelib/blueprint.rb
-@@ -197,6 +197,8 @@ Daedalus.blueprint do |i|
- 
-   case Rubinius::BUILD_CONFIG[:llvm]
-   when :config, :prebuilt, :svn
-+    gcc.cxxflags << Rubinius::BUILD_CONFIG[:llvm_cxxflags]
-+
-     conf = Rubinius::BUILD_CONFIG[:llvm_configure]
-     flags = `#{conf} --cflags`.strip.split(/\s+/)
-     flags.delete_if { |x| x.index("-O") == 0 }
-diff --git a/vm/environment.cpp b/vm/environment.cpp
-index d0562c2..8af8c50 100644
---- a/vm/environment.cpp
-+++ b/vm/environment.cpp
-@@ -75,7 +75,7 @@ namespace rubinius {
-     , signal_handler_(NULL)
-     , finalizer_handler_(NULL)
-   {
--#ifdef ENABLE_LLVM
-+#if defined ENABLE_LLVM && RBX_LLVM_API_VER < 305
-     if(!llvm::llvm_start_multithreaded()) {
-       assert(0 && "llvm doesn't support threading!");
-     }
-diff --git a/vm/llvm/autotypes.cpp b/vm/llvm/autotypes.cpp
-index 6b2563a..b4f553e 100644
---- a/vm/llvm/autotypes.cpp
-+++ b/vm/llvm/autotypes.cpp
-@@ -8,23 +8,24 @@
- #else
- #include <llvm/Target/TargetData.h>
- #endif
--// #include <llvm/LinkAllPasses.h>
-+#if RBX_LLVM_API_VER >= 305
-+#include <llvm/IR/Verifier.h>
-+#include <llvm/IR/CFG.h>
-+#else
- #include <llvm/Analysis/Verifier.h>
--#include <llvm/Transforms/Scalar.h>
-+#include <llvm/Support/CFG.h>
-+#endif
- #if RBX_LLVM_API_VER >= 303
- #include <llvm/IR/CallingConv.h>
-+#include <llvm/IR/Module.h>
- #else
- #include <llvm/CallingConv.h>
-+#include <llvm/Module.h>
- #endif
--#include <llvm/Support/CFG.h>
-+#include <llvm/Transforms/Scalar.h>
- #include <llvm/Analysis/Passes.h>
--
-+// #include <llvm/LinkAllPasses.h>
- #include <llvm/Target/TargetOptions.h>
--#if RBX_LLVM_API_VER >= 303
--#include <llvm/IR/Module.h>
--#else
--#include <llvm/Module.h>
--#endif
- 
- using namespace llvm;
- 
-diff --git a/vm/llvm/disassembler.cpp b/vm/llvm/disassembler.cpp
-index b3ea424..0c5ff83 100644
---- a/vm/llvm/disassembler.cpp
-+++ b/vm/llvm/disassembler.cpp
-@@ -68,7 +68,12 @@ namespace rubinius {
- #endif
- 
-     if(asm_info) {
-+#if RBX_LLVM_API_VER > 304
-+      context = new llvm::MCContext(asm_info, reg_info, 0);
-+      disassembler = target->createMCDisassembler(*sub_target, *context);
-+#else
-       disassembler = target->createMCDisassembler(*sub_target);
-+#endif
-       memory_object = new JITMemoryObject((const uint8_t*)buffer, (uint64_t) size);
-     }
-   }
-@@ -76,6 +81,9 @@ namespace rubinius {
-   JITDisassembler::~JITDisassembler() {
-     if(memory_object) delete memory_object;
-     if(disassembler) delete disassembler;
-+#if RBX_LLVM_API_VER > 304
-+    if(context) delete context;
-+#endif
-     if(sub_target) delete sub_target;
-     if(target_machine) delete target_machine;
-   }
-diff --git a/vm/llvm/disassembler.hpp b/vm/llvm/disassembler.hpp
-index 3e16a8c..b502a02 100644
---- a/vm/llvm/disassembler.hpp
-+++ b/vm/llvm/disassembler.hpp
-@@ -9,6 +9,9 @@
- #include <llvm/MC/MCAsmInfo.h>
- #include <llvm/MC/MCDisassembler.h>
- #include <llvm/Support/MemoryObject.h>
-+#if RBX_LLVM_API_VER >= 305
-+#include <llvm/MC/MCContext.h>
-+#endif
- 
- namespace rubinius {
- 
-@@ -80,6 +83,9 @@ namespace rubinius {
-       const llvm::MCInstrInfo* instr_info;
-       const llvm::MCRegisterInfo* reg_info;
- #endif
-+#if RBX_LLVM_API_VER > 304
-+      llvm::MCContext* context;
-+#endif
- 
-       llvm::MCDisassembler* disassembler;
-       const JITMemoryObject* memory_object;
-diff --git a/vm/llvm/jit_builder.cpp b/vm/llvm/jit_builder.cpp
-index c479aab..dd7f3d4 100644
---- a/vm/llvm/jit_builder.cpp
-+++ b/vm/llvm/jit_builder.cpp
-@@ -11,7 +11,9 @@
- 
- #include "instruments/tooling.hpp"
- #include <llvm/Analysis/CaptureTracking.h>
--#if RBX_LLVM_API_VER > 301
-+#if RBX_LLVM_API_VER > 304
-+#include <llvm/IR/DebugInfo.h>
-+#elif RBX_LLVM_API_VER > 301
- #include <llvm/DebugInfo.h>
- #else
- #include <llvm/Analysis/DebugInfo.h>
-diff --git a/vm/llvm/jit_builder.hpp b/vm/llvm/jit_builder.hpp
-index 77d4283..3729ae9 100644
---- a/vm/llvm/jit_builder.hpp
-+++ b/vm/llvm/jit_builder.hpp
-@@ -15,7 +15,9 @@
- #else
- #include <llvm/Support/IRBuilder.h>
- #endif
--#if RBX_LLVM_API_VER > 301
-+#if RBX_LLVM_API_VER > 304
-+#include <llvm/IR/DIBuilder.h>
-+#elif RBX_LLVM_API_VER > 301
- #include <llvm/DIBuilder.h>
- #else
- #include <llvm/Analysis/DIBuilder.h>
-diff --git a/vm/llvm/jit_compiler.cpp b/vm/llvm/jit_compiler.cpp
-index 32dbe99..5542dc1 100644
---- a/vm/llvm/jit_compiler.cpp
-+++ b/vm/llvm/jit_compiler.cpp
-@@ -21,14 +21,19 @@
- #else
- #include <llvm/Target/TargetData.h>
- #endif
-+#if RBX_LLVM_API_VER >= 305
-+#include <llvm/IR/Verifier.h>
-+#include <llvm/IR/CFG.h>
-+#else
- #include <llvm/Analysis/Verifier.h>
--#include <llvm/Transforms/Scalar.h>
-+#include <llvm/Support/CFG.h>
-+#endif
- #if RBX_LLVM_API_VER >= 303
- #include <llvm/IR/CallingConv.h>
- #else
- #include <llvm/CallingConv.h>
- #endif
--#include <llvm/Support/CFG.h>
-+#include <llvm/Transforms/Scalar.h>
- #include <llvm/Analysis/Passes.h>
- 
- #include <llvm/Target/TargetOptions.h>
-@@ -97,7 +102,11 @@ namespace jit {
-         (*i)->eraseFromParent();
-       }
- 
-+#if RBX_LLVM_API_VER >= 305
-+      if(Broken or llvm::verifyFunction(*function_, &llvm::outs())) {
-+#else
-       if(Broken or llvm::verifyFunction(*function_, PrintMessageAction)) {
-+#endif
-         llvm::outs() << "ERROR: complication error detected.\n";
-         llvm::outs() << "ERROR: Please report the above message and the\n";
-         llvm::outs() << "       code below to http://github.com/rubinius/rubinius/issues\n";
-diff --git a/vm/llvm/jit_context.cpp b/vm/llvm/jit_context.cpp
-index 594a63a..003bfe9 100644
---- a/vm/llvm/jit_context.cpp
-+++ b/vm/llvm/jit_context.cpp
-@@ -107,7 +107,10 @@ namespace rubinius {
-     builder_->OptLevel = 2;
-     passes_ = new llvm::FunctionPassManager(module_);
- 
--#if RBX_LLVM_API_VER >= 302
-+#if RBX_LLVM_API_VER >= 305
-+    module_->setDataLayout(engine_->getDataLayout()->getStringRepresentation());
-+    passes_->add(new llvm::DataLayoutPass(module_));
-+#elif RBX_LLVM_API_VER >= 302
-     module_->setDataLayout(engine_->getDataLayout()->getStringRepresentation());
-     passes_->add(new llvm::DataLayout(*engine_->getDataLayout()));
- #else
-diff --git a/vm/llvm/jit_memory_manager.cpp b/vm/llvm/jit_memory_manager.cpp
-index 43bcfae..68a0933 100644
---- a/vm/llvm/jit_memory_manager.cpp
-+++ b/vm/llvm/jit_memory_manager.cpp
-@@ -216,6 +216,17 @@ TrimAllocationToSize(FreeRangeHeader *FreeList, uint64_t NewSize) {
- // Memory Block Implementation.
- //===----------------------------------------------------------------------===//
- 
-+#if RBX_LLVM_API_VER >= 305
-+void *JITSlabAllocator::Allocate(size_t Size, size_t /*Alignment*/) {
-+  sys::MemoryBlock B = JMM.allocateNewSlab(Size);
-+  return (void*)B.base();
-+}
-+
-+void JITSlabAllocator::Deallocate(void *Slab, size_t Size) {
-+  sys::MemoryBlock B(Slab, Size);
-+  sys::Memory::ReleaseRWX(B);
-+}
-+#else
- MemSlab *JITSlabAllocator::Allocate(size_t Size) {
-   sys::MemoryBlock B = JMM.allocateNewSlab(Size);
-   MemSlab *Slab = (MemSlab*)B.base();
-@@ -228,13 +239,20 @@ void JITSlabAllocator::Deallocate(MemSlab *Slab) {
-   sys::MemoryBlock B(Slab, Slab->Size);
-   sys::Memory::ReleaseRWX(B);
- }
-+#endif
- 
- RubiniusJITMemoryManager::RubiniusJITMemoryManager()
-   :
-+#if RBX_LLVM_API_VER >= 305
-+    LastSlab(nullptr, 0),
-+    StubAllocator(*this),
-+    DataAllocator(*this),
-+#else
-     LastSlab(0, 0),
-     BumpSlabAllocator(*this),
-     StubAllocator(DefaultSlabSize, DefaultSizeThreshold, BumpSlabAllocator),
-     DataAllocator(DefaultSlabSize, DefaultSizeThreshold, BumpSlabAllocator),
-+#endif
- #ifdef NDEBUG
-     PoisonMemory(false) {
- #else
-@@ -532,6 +550,7 @@ void *RubiniusJITMemoryManager::getPointerToNamedFunction(const std::string &Nam
-   return 0;
- }
- 
-+#if RBX_LLVM_API_VER < 305
- // Allocate memory for code in 512K slabs.
- const size_t RubiniusJITMemoryManager::DefaultCodeSlabSize = 512 * 1024;
- 
-@@ -539,6 +558,7 @@ const size_t RubiniusJITMemoryManager::DefaultCodeSlabSize = 512 * 1024;
- const size_t RubiniusJITMemoryManager::DefaultSlabSize = 64 * 1024;
- 
- const size_t RubiniusJITMemoryManager::DefaultSizeThreshold = 16 * 1024;
-+#endif
- 
- }
- }
-diff --git a/vm/llvm/jit_memory_manager.hpp b/vm/llvm/jit_memory_manager.hpp
-index ae83f7b..20f16cb 100644
---- a/vm/llvm/jit_memory_manager.hpp
-+++ b/vm/llvm/jit_memory_manager.hpp
-@@ -67,6 +67,15 @@ namespace jit {
-   class RubiniusJITMemoryManager;
-   class RubiniusRequestJITMemoryManager;
- 
-+#if RBX_LLVM_API_VER > 304
-+  class JITSlabAllocator {
-+    RubiniusJITMemoryManager &JMM;
-+  public:
-+    JITSlabAllocator(RubiniusJITMemoryManager &jmm) : JMM(jmm) { }
-+    void *Allocate(size_t Size, size_t /*Alignment*/);
-+    void Deallocate(void *Slab, size_t Size);
-+  };
-+#else
-   class JITSlabAllocator : public SlabAllocator {
-     RubiniusJITMemoryManager &JMM;
-   public:
-@@ -75,6 +84,7 @@ namespace jit {
-     virtual MemSlab *Allocate(size_t Size);
-     virtual void Deallocate(MemSlab *Slab);
-   };
-+#endif
- 
-   /// MemoryRangeHeader - For a range of memory, this is the header that we put
-   /// on the block of memory.  It is carefully crafted to be one word of memory.
-@@ -175,7 +185,23 @@ namespace jit {
- 
-     friend class RubiniusRequestJITMemoryManager;
- 
--    // Whether to poison freed memory.
-+#if RBX_LLVM_API_VER > 304
-+  public:
-+    /// DefaultCodeSlabSize - When we have to go map more memory, we allocate at
-+    /// least this much unless more is requested. Currently, in 512k slabs.
-+    static const size_t DefaultCodeSlabSize = 512 * 1024;
-+
-+    /// DefaultSlabSize - Allocate globals and stubs into slabs of 64K (probably
-+    /// 16 pages) unless we get an allocation above SizeThreshold.
-+    static const size_t DefaultSlabSize = 64 * 1024;
-+
-+    /// DefaultSizeThreshold - For any allocation larger than 16K (probably
-+    /// 4 pages), we should allocate a separate slab to avoid wasted space at
-+    /// the end of a normal slab.
-+    static const size_t DefaultSizeThreshold = 16 * 1024;
-+
-+  private:
-+#endif
- 
-     /// LastSlab - This points to the last slab allocated and is used as the
-     /// NearBlock parameter to AllocateRWX so that we can attempt to lay out all
-@@ -187,9 +213,14 @@ namespace jit {
-     // Memory slabs allocated by the JIT.  We refer to them as slabs so we don't
-     // confuse them with the blocks of memory described above.
-     std::vector<sys::MemoryBlock> CodeSlabs;
-+#if RBX_LLVM_API_VER > 304
-+    BumpPtrAllocatorImpl<JITSlabAllocator, DefaultSlabSize, DefaultSizeThreshold> StubAllocator;
-+    BumpPtrAllocatorImpl<JITSlabAllocator, DefaultSlabSize, DefaultSizeThreshold> DataAllocator;
-+#else
-     JITSlabAllocator BumpSlabAllocator;
-     BumpPtrAllocator StubAllocator;
-     BumpPtrAllocator DataAllocator;
-+#endif
- 
-     // Circular list of free blocks.
-     FreeRangeHeader *FreeMemoryList;
-@@ -198,6 +229,8 @@ namespace jit {
-     MemoryRangeHeader *CurBlock;
- 
-     utilities::thread::SpinLock lock_;
-+
-+    // Whether to poison freed memory.
-     bool PoisonMemory;
- 
-   public:
-@@ -208,6 +241,7 @@ namespace jit {
-     /// last slab it allocated, so that subsequent allocations follow it.
-     sys::MemoryBlock allocateNewSlab(size_t size);
- 
-+#if RBX_LLVM_API_VER < 305
-     /// DefaultCodeSlabSize - When we have to go map more memory, we allocate at
-     /// least this much unless more is requested.
-     static const size_t DefaultCodeSlabSize;
-@@ -219,6 +253,7 @@ namespace jit {
-     /// DefaultSizeThreshold - For any allocation larger than this threshold, we
-     /// should allocate a separate slab.
-     static const size_t DefaultSizeThreshold;
-+#endif
- 
-     /// getPointerToNamedFunction - This method returns the address of the
-     /// specified function by using the dlsym function call.
-diff --git a/vm/llvm/passes.cpp b/vm/llvm/passes.cpp
-index 16793f1..3e9a9ec 100644
---- a/vm/llvm/passes.cpp
-+++ b/vm/llvm/passes.cpp
-@@ -3,6 +3,11 @@
- #include "llvm/passes.hpp"
- #include "config.h"
- 
-+#if RBX_LLVM_API_VER >= 305
-+#include <llvm/IR/CallSite.h>
-+#else
-+#include <llvm/Support/CallSite.h>
-+#endif
- #if RBX_LLVM_API_VER >= 303
- #include <llvm/IR/Attributes.h>
- #include <llvm/IR/BasicBlock.h>
-@@ -21,7 +26,6 @@
- #include <llvm/Intrinsics.h>
- #endif
- #include <llvm/Transforms/Utils/Cloning.h>
--#include <llvm/Support/CallSite.h>
- #include <llvm/ADT/APInt.h>
- #include <llvm/Analysis/SparsePropagation.h>
- #include <llvm/Analysis/AliasAnalysis.h>
-diff --git a/vm/llvm/state.cpp b/vm/llvm/state.cpp
-index 3117cb0..cace83c 100644
---- a/vm/llvm/state.cpp
-+++ b/vm/llvm/state.cpp
-@@ -36,19 +36,24 @@
- #else
- #include <llvm/Target/TargetData.h>
- #endif
--// #include <llvm/LinkAllPasses.h>
-+#if RBX_LLVM_API_VER >= 305
-+#include <llvm/IR/Verifier.h>
-+#include <llvm/IR/CFG.h>
-+#else
- #include <llvm/Analysis/Verifier.h>
--#include <llvm/Transforms/Scalar.h>
-+#include <llvm/Support/CFG.h>
-+#endif
- #if RBX_LLVM_API_VER >= 303
- #include <llvm/IR/CallingConv.h>
- #else
- #include <llvm/CallingConv.h>
- #endif
--#include <llvm/Support/CFG.h>
- #include <llvm/Analysis/Passes.h>
-+// #include <llvm/LinkAllPasses.h>
- #include <llvm/Support/TargetSelect.h>
- #include <llvm/Support/Format.h>
- #include <llvm/Target/TargetOptions.h>
-+#include <llvm/Transforms/Scalar.h>
- 
- #include "windows_compat.h"
- 
--- 
-2.1.0
-

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2014-11-01 19:50:30 UTC (rev 121691)
+++ PKGBUILD	2014-11-01 19:55:55 UTC (rev 121692)
@@ -3,8 +3,8 @@
 
 pkgbase=rubinius
 pkgname=(rubinius rubinius-ruby)
-pkgver=2.2.10
-pkgrel=2
+pkgver=2.3.0
+pkgrel=1
 pkgdesc="Ruby runtime written in Ruby, designed for concurrency"
 arch=(i686 x86_64)
 url="http://rubini.us"
@@ -13,22 +13,15 @@
 makedepends=(llvm rubinius-ruby)
 options=(!emptydirs)
 source=(http://releases.rubini.us/${pkgbase}-${pkgver}.tar.bz2
-        http://rubygems.org/downloads/{daedalus-core-0.0.3,redcard-1.1.0,rubinius-bridge-1.0.8}.gem
-        gemrc dirs.patch 0001-llvm-3.5.patch)
-sha256sums=('3cb1a6ab2eba19b6dc84734666bb17a34332d247641b1a88b4c9324c69347780'
-            '5afc30b5c20f1d307837be9cb4f99ccbe33587cc48f09793e62148ac5d123c08'
-            '60c73d440f29fc3577eec86de00d55ee5351647d2d450ea48bc6d2ae5a62b8fc'
-            '7bde9a12008e5c0651500fca6c8954ef48c5cfcfc77556592ebfbddbc81a2611'
+        gemrc dirs.patch)
+sha256sums=('9953c3af5e9694540859eaf55164a38d0c32c3ad35457e4351d20c28a25fecaa'
             '4bb7eb2fe66e396ed16b589cdb656831407b39ad4e138d88536754c0448ac614'
-            'a9922b199730c059c26781af45adc46401811ff2e6840c4aeb49da4fa41acdd9'
-            '1b5534f2c9f0e0d367e23e135583785b837eaa7746cd3642d50e118f1236cf89')
+            'a9922b199730c059c26781af45adc46401811ff2e6840c4aeb49da4fa41acdd9')
 
 prepare() {
   export GEM_HOME="$srcdir/gemdir" LANG="en_US.UTF-8"
   cd $pkgbase-$pkgver
 
-  cp ../*.gem vendor/cache
-  patch -Np1 -i ../0001-llvm-3.5.patch
   patch -Np1 -i ../dirs.patch
 
   mkdir -p "$GEM_HOME"



More information about the arch-commits mailing list