[arch-commits] Commit in crystal/repos (3 files)

Evangelos Foutras foutrelis at archlinux.org
Fri Sep 21 02:01:40 UTC 2018


    Date: Friday, September 21, 2018 @ 02:01:39
  Author: foutrelis
Revision: 383801

archrelease: copy trunk to community-staging-x86_64

Added:
  crystal/repos/community-staging-x86_64/
  crystal/repos/community-staging-x86_64/PKGBUILD
    (from rev 383800, crystal/trunk/PKGBUILD)
  crystal/repos/community-staging-x86_64/llvm7.patch
    (from rev 383800, crystal/trunk/llvm7.patch)

-------------+
 PKGBUILD    |   86 +++++++++++++++++
 llvm7.patch |  281 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 367 insertions(+)

Copied: crystal/repos/community-staging-x86_64/PKGBUILD (from rev 383800, crystal/trunk/PKGBUILD)
===================================================================
--- community-staging-x86_64/PKGBUILD	                        (rev 0)
+++ community-staging-x86_64/PKGBUILD	2018-09-21 02:01:39 UTC (rev 383801)
@@ -0,0 +1,86 @@
+# Maintainer: Anatol Pomozov <anatol.pomozov at gmail.com>
+# Contributor: Jonne Haß <me at jhass.eu>
+
+pkgname=crystal
+pkgver=0.26.1
+pkgrel=3
+pkgdesc='The Crystal Programming Language'
+arch=(x86_64)
+url='http://crystal-lang.org'
+license=(Apache)
+depends=(gc libatomic_ops pcre libevent llvm-libs)
+makedepends=(libxml2 llvm crystal) # to compile version N we need crystal compiler of N-1 version
+checkdepends=(libyaml libxml2 gmp inetutils git)
+optdepends=('shards: crystal language package manager'
+            'libyaml: For YAML support'
+            'gmp: For BigInt support'
+            'libxml2: For XML support')
+source=(crystal-$pkgver.tar.gz::https://github.com/crystal-lang/crystal/archive/$pkgver.tar.gz
+        llvm7.patch
+        fix_build.patch::https://github.com/crystal-lang/crystal/commit/b697de03deed7647a7bebe0e0987cb660854bdac.patch
+        fix_openssl_11.patch::https://github.com/crystal-lang/crystal/commit/e7524159ef48fe47df914b3c0c1716c602a8bbd8.patch)
+sha256sums=('b7c755a7d0f49f572ae5c08b8b0139fcb1c6862c9479dfae74f00e2c8424fcb0'
+            '8c0c5e2a33d3d9d74db7c27a8a6d7e9ddb5bac7d61490372b037cead4664f18a'
+            '4f42a13ade130495e683261c5c200112dbb3f56c125dbada7533717393c69138'
+            '6ce3967052f6ac7e6f0a738782369a375310b5c2650fe1ac95e77408d268e24a')
+
+prepare() {
+  cd $pkgname-$pkgver
+  sed -i 's|Please install shards: https://github.com/ysbaddaden/shards|Please install shards: pacman -S shards|' src/compiler/crystal/command.cr
+
+  # https://github.com/crystal-lang/crystal/issues/6672
+  patch -p1 < ../fix_build.patch
+
+  # https://github.com/crystal-lang/crystal/pull/6738
+  patch -p1 < ../fix_openssl_11.patch
+
+  # https://github.com/crystal-lang/crystal/issues/6754
+  patch -p1 < ../llvm7.patch
+}
+
+build() {
+  cd $pkgname-$pkgver
+
+  make release=1 \
+       FLAGS="--release --no-debug" \
+       CRYSTAL_PATH="$srcdir/$pkgname-$pkgver/src" \
+       CRYSTAL_CONFIG_VERSION="$pkgver" \
+       CRYSTAL_CONFIG_PATH="lib:/usr/lib/crystal" \
+       CRYSTAL_CACHE_DIR="/tmp/crystal"
+  make docs CRYSTAL_CACHE_DIR="/tmp/crystal"
+}
+
+check() {
+  cd $pkgname-$pkgver
+  return # tests require too much RAM, disable it temporary
+
+  make spec CRYSTAL_PATH="$srcdir/$pkgname-$pkgver/src" \
+            CRYSTAL_CONFIG_VERSION="$pkgver" \
+            CRYSTAL_CACHE_DIR="/tmp/crystal" \
+            PATH=".build:$PATH"
+}
+
+package() {
+  cd $pkgname-$pkgver
+
+  # /usr/bin/crystal                compiled executable
+  # /usr/lib/crystal/               compiler src & core libs
+  # /usr/share/doc/crystal/api      api docs
+  # /usr/share/doc/crystal/samples/ samples
+
+  install -Dm755 ".build/crystal" "$pkgdir/usr/bin/crystal"
+
+  install -dm755 "$pkgdir/usr/lib" "$pkgdir/usr/share/man/man1"
+  cp -r src "$pkgdir/usr/lib/crystal"
+
+  install -dm755 "$pkgdir/usr/share/doc/crystal"
+  cp -r docs "$pkgdir/usr/share/doc/crystal/api"
+  cp -r samples "$pkgdir/usr/share/doc/crystal/"
+
+  install -Dm644 man/crystal.1 "$pkgdir/usr/share/man/man1/"
+
+  install -Dm644 etc/completion.bash "$pkgdir/usr/share/bash-completion/completions/crystal"
+  install -Dm644 etc/completion.zsh "$pkgdir/usr/share/zsh/site-functions/_crystal"
+
+  install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}

Copied: crystal/repos/community-staging-x86_64/llvm7.patch (from rev 383800, crystal/trunk/llvm7.patch)
===================================================================
--- community-staging-x86_64/llvm7.patch	                        (rev 0)
+++ community-staging-x86_64/llvm7.patch	2018-09-21 02:01:39 UTC (rev 383801)
@@ -0,0 +1,281 @@
+From 96380373229306a27eda49f5bfe67538a2589359 Mon Sep 17 00:00:00 2001
+From: Evangelos Foutras <evangelos at foutrelis.com>
+Date: Fri, 21 Sep 2018 04:38:46 +0300
+Subject: [PATCH] Fix building with LLVM 7 (#6754)
+
+Similarly to how LLVM 6 support was added in commit 249a2ed4dae7:
+
+- Rename functions that conflict with those added to llvm-c/DebugInfo.h
+  in LLVM 7
+- Pass a reference to a module to the bitcode writer (ref LLVM r325155)
+---
+ src/llvm/ext/llvm_ext.cc | 36 ++++++++++++++++++++----------------
+ src/llvm/lib_llvm.cr     |  1 +
+ src/llvm/lib_llvm_ext.cr | 30 +++++++++++++++---------------
+ 3 files changed, 36 insertions(+), 31 deletions(-)
+
+diff --git a/src/llvm/ext/llvm_ext.cc b/src/llvm/ext/llvm_ext.cc
+index e6c5744bf..12746f2d6 100644
+--- a/src/llvm/ext/llvm_ext.cc
++++ b/src/llvm/ext/llvm_ext.cc
+@@ -86,7 +86,7 @@ LLVMMetadataRef LLVMDIBuilderCreateCompileUnit2(DIBuilderRef Dref, unsigned Lang
+ #endif
+ }
+ 
+-LLVMMetadataRef LLVMDIBuilderCreateFunction(
++LLVMMetadataRef LLVMDIBuilderCreateFunction2(
+     DIBuilderRef Dref, LLVMMetadataRef Scope, const char *Name,
+     const char *LinkageName, LLVMMetadataRef File, unsigned Line,
+     LLVMMetadataRef CompositeType, bool IsLocalToUnit, bool IsDefinition,
+@@ -106,7 +106,7 @@ LLVMMetadataRef LLVMDIBuilderCreateFunction(
+   return wrap(Sub);
+ }
+ 
+-LLVMMetadataRef LLVMDIBuilderCreateLexicalBlock(DIBuilderRef Dref,
++LLVMMetadataRef LLVMDIBuilderCreateLexicalBlock2(DIBuilderRef Dref,
+                                                 LLVMMetadataRef Scope,
+                                                 LLVMMetadataRef File,
+                                                 unsigned Line,
+@@ -115,7 +115,7 @@ LLVMMetadataRef LLVMDIBuilderCreateLexicalBlock(DIBuilderRef Dref,
+                                        unwrapDI<DIFile>(File), Line, Column));
+ }
+ 
+-LLVMMetadataRef LLVMDIBuilderCreateBasicType(DIBuilderRef Dref,
++LLVMMetadataRef LLVMDIBuilderCreateBasicType2(DIBuilderRef Dref,
+                                              const char *Name,
+                                              uint64_t SizeInBits,
+                                              uint64_t AlignInBits,
+@@ -127,7 +127,7 @@ LLVMMetadataRef LLVMDIBuilderCreateBasicType(DIBuilderRef Dref,
+ #endif
+ }
+ 
+-LLVMMetadataRef LLVMDIBuilderGetOrCreateTypeArray(DIBuilderRef Dref,
++LLVMMetadataRef LLVMDIBuilderGetOrCreateTypeArray2(DIBuilderRef Dref,
+                                                   LLVMMetadataRef *Data,
+                                                   unsigned Length) {
+   Metadata **DataValue = unwrap(Data);
+@@ -136,7 +136,7 @@ LLVMMetadataRef LLVMDIBuilderGetOrCreateTypeArray(DIBuilderRef Dref,
+           .get());
+ }
+ 
+-LLVMMetadataRef LLVMDIBuilderGetOrCreateArray(DIBuilderRef Dref,
++LLVMMetadataRef LLVMDIBuilderGetOrCreateArray2(DIBuilderRef Dref,
+                                               LLVMMetadataRef *Data,
+                                               unsigned Length) {
+   Metadata **DataValue = unwrap(Data);
+@@ -145,13 +145,13 @@ LLVMMetadataRef LLVMDIBuilderGetOrCreateArray(DIBuilderRef Dref,
+ }
+ 
+ LLVMMetadataRef
+-LLVMDIBuilderCreateSubroutineType(DIBuilderRef Dref, LLVMMetadataRef File,
++LLVMDIBuilderCreateSubroutineType2(DIBuilderRef Dref, LLVMMetadataRef File,
+                                   LLVMMetadataRef ParameterTypes) {
+   DISubroutineType *CT = Dref->createSubroutineType(DITypeRefArray(unwrap<MDTuple>(ParameterTypes)));
+   return wrap(CT);
+ }
+ 
+-LLVMMetadataRef LLVMDIBuilderCreateAutoVariable(
++LLVMMetadataRef LLVMDIBuilderCreateAutoVariable2(
+     DIBuilderRef Dref, LLVMMetadataRef Scope, const char *Name,
+     LLVMMetadataRef File, unsigned Line, LLVMMetadataRef Ty,
+     int AlwaysPreserve,
+@@ -173,7 +173,7 @@ LLVMMetadataRef LLVMDIBuilderCreateAutoVariable(
+   return wrap(V);
+ }
+ 
+-LLVMMetadataRef LLVMDIBuilderCreateParameterVariable(
++LLVMMetadataRef LLVMDIBuilderCreateParameterVariable2(
+     DIBuilderRef Dref, LLVMMetadataRef Scope, const char *Name,
+     unsigned ArgNo, LLVMMetadataRef File, unsigned Line,
+     LLVMMetadataRef Ty, int AlwaysPreserve,
+@@ -189,7 +189,7 @@ LLVMMetadataRef LLVMDIBuilderCreateParameterVariable(
+   return wrap(V);
+ }
+ 
+-LLVMValueRef LLVMDIBuilderInsertDeclareAtEnd(DIBuilderRef Dref,
++LLVMValueRef LLVMDIBuilderInsertDeclareAtEnd2(DIBuilderRef Dref,
+                                              LLVMValueRef Storage,
+                                              LLVMMetadataRef VarInfo,
+                                              LLVMMetadataRef Expr,
+@@ -203,12 +203,12 @@ LLVMValueRef LLVMDIBuilderInsertDeclareAtEnd(DIBuilderRef Dref,
+   return wrap(Instr);
+ }
+ 
+-LLVMMetadataRef LLVMDIBuilderCreateExpression(DIBuilderRef Dref, int64_t *Addr,
++LLVMMetadataRef LLVMDIBuilderCreateExpression2(DIBuilderRef Dref, int64_t *Addr,
+                                               size_t Length) {
+   return wrap(Dref->createExpression(ArrayRef<int64_t>(Addr, Length)));
+ }
+ 
+-LLVMMetadataRef LLVMDIBuilderCreateEnumerationType(
++LLVMMetadataRef LLVMDIBuilderCreateEnumerationType2(
+     DIBuilderRef Dref, LLVMMetadataRef Scope, const char *Name,
+     LLVMMetadataRef File, unsigned LineNumber, uint64_t SizeInBits,
+     uint64_t AlignInBits, LLVMMetadataRef Elements,
+@@ -227,7 +227,7 @@ LLVMMetadataRef LLVMDIBuilderCreateEnumerator(DIBuilderRef Dref,
+ }
+ 
+ LLVMMetadataRef
+-LLVMDIBuilderCreateStructType(DIBuilderRef Dref,
++LLVMDIBuilderCreateStructType2(DIBuilderRef Dref,
+                               LLVMMetadataRef Scope,
+                               const char *Name,
+                               LLVMMetadataRef File,
+@@ -249,7 +249,7 @@ LLVMDIBuilderCreateStructType(DIBuilderRef Dref,
+ }
+ 
+ LLVMMetadataRef
+-LLVMDIBuilderCreateReplaceableCompositeType(DIBuilderRef Dref,
++LLVMDIBuilderCreateReplaceableCompositeType2(DIBuilderRef Dref,
+                                             LLVMMetadataRef Scope,
+                                             const char *Name,
+                                             LLVMMetadataRef File,
+@@ -276,7 +276,7 @@ LLVMDIBuilderReplaceTemporary(DIBuilderRef Dref,
+ }
+ 
+ LLVMMetadataRef
+-LLVMDIBuilderCreateMemberType(DIBuilderRef Dref, LLVMMetadataRef Scope,
++LLVMDIBuilderCreateMemberType2(DIBuilderRef Dref, LLVMMetadataRef Scope,
+                               const char *Name, LLVMMetadataRef File,
+                               unsigned Line, uint64_t SizeInBits,
+                               uint64_t AlignInBits, uint64_t OffsetInBits,
+@@ -292,7 +292,7 @@ LLVMDIBuilderCreateMemberType(DIBuilderRef Dref, LLVMMetadataRef Scope,
+   return wrap(DT);
+ }
+ 
+-LLVMMetadataRef LLVMDIBuilderCreatePointerType(DIBuilderRef Dref,
++LLVMMetadataRef LLVMDIBuilderCreatePointerType2(DIBuilderRef Dref,
+                                                LLVMMetadataRef PointeeType,
+                                                uint64_t SizeInBits,
+                                                uint64_t AlignInBits,
+@@ -306,7 +306,7 @@ LLVMMetadataRef LLVMDIBuilderCreatePointerType(DIBuilderRef Dref,
+   return wrap(T);
+ }
+ 
+-LLVMMetadataRef LLVMTemporaryMDNode(LLVMContextRef C, LLVMMetadataRef *MDs,
++LLVMMetadataRef LLVMTemporaryMDNode2(LLVMContextRef C, LLVMMetadataRef *MDs,
+                                     unsigned Count) {
+   return wrap(MDTuple::getTemporary(*unwrap(C),
+                                     ArrayRef<Metadata *>(unwrap(MDs), Count))
+@@ -440,8 +440,12 @@ void LLVMWriteBitcodeWithSummaryToFile(LLVMModuleRef mref, const char *File) {
+   if (EC) return;
+ 
+   llvm::ModuleSummaryIndex moduleSummaryIndex = llvm::buildModuleSummaryIndex(*m, nullptr, nullptr);
++#if LLVM_VERSION_GE(7, 0)
++  llvm::WriteBitcodeToFile(*m, OS, true, &moduleSummaryIndex, true);
++#else
+   llvm::WriteBitcodeToFile(m, OS, true, &moduleSummaryIndex, true);
+ #endif
++#endif
+ }
+ 
+ }
+diff --git a/src/llvm/lib_llvm.cr b/src/llvm/lib_llvm.cr
+index a1ff03996..07e2f1d71 100644
+--- a/src/llvm/lib_llvm.cr
++++ b/src/llvm/lib_llvm.cr
+@@ -33,6 +33,7 @@ end
+ 
+ {% begin %}
+   lib LibLLVM
++    IS_70 = {{LibLLVM::VERSION.starts_with?("7.0")}}
+     IS_60 = {{LibLLVM::VERSION.starts_with?("6.0")}}
+     IS_50 = {{LibLLVM::VERSION.starts_with?("5.0")}}
+     IS_40 = {{LibLLVM::VERSION.starts_with?("4.0")}}
+diff --git a/src/llvm/lib_llvm_ext.cr b/src/llvm/lib_llvm_ext.cr
+index 3c2998ee3..09e4a7e48 100644
+--- a/src/llvm/lib_llvm_ext.cr
++++ b/src/llvm/lib_llvm_ext.cr
+@@ -13,7 +13,7 @@ lib LibLLVMExt
+   fun create_di_builder = LLVMNewDIBuilder(LibLLVM::ModuleRef) : DIBuilder
+   fun di_builder_finalize = LLVMDIBuilderFinalize(DIBuilder)
+ 
+-  fun di_builder_create_function = LLVMDIBuilderCreateFunction(
++  fun di_builder_create_function = LLVMDIBuilderCreateFunction2(
+     builder : DIBuilder, scope : Metadata, name : Char*,
+     linkage_name : Char*, file : Metadata, line : UInt,
+     composite_type : Metadata, is_local_to_unit : Bool, is_definition : Bool,
+@@ -27,19 +27,19 @@ lib LibLLVMExt
+                                                                        producer : Char*,
+                                                                        optimized : Int, flags : Char*,
+                                                                        runtime_version : UInt) : Metadata
+-  fun di_builder_create_lexical_block = LLVMDIBuilderCreateLexicalBlock(builder : DIBuilder,
++  fun di_builder_create_lexical_block = LLVMDIBuilderCreateLexicalBlock2(builder : DIBuilder,
+                                                                         scope : Metadata,
+                                                                         file : Metadata,
+                                                                         line : Int,
+                                                                         column : Int) : Metadata
+ 
+-  fun di_builder_create_basic_type = LLVMDIBuilderCreateBasicType(builder : DIBuilder,
++  fun di_builder_create_basic_type = LLVMDIBuilderCreateBasicType2(builder : DIBuilder,
+                                                                   name : Char*,
+                                                                   size_in_bits : UInt64,
+                                                                   align_in_bits : UInt64,
+                                                                   encoding : UInt) : Metadata
+ 
+-  fun di_builder_create_auto_variable = LLVMDIBuilderCreateAutoVariable(builder : DIBuilder,
++  fun di_builder_create_auto_variable = LLVMDIBuilderCreateAutoVariable2(builder : DIBuilder,
+                                                                         scope : Metadata,
+                                                                         name : Char*,
+                                                                         file : Metadata, line : UInt,
+@@ -48,46 +48,46 @@ lib LibLLVMExt
+                                                                         flags : LLVM::DIFlags,
+                                                                         align_in_bits : UInt32) : Metadata
+ 
+-  fun di_builder_create_parameter_variable = LLVMDIBuilderCreateParameterVariable(builder : DIBuilder,
++  fun di_builder_create_parameter_variable = LLVMDIBuilderCreateParameterVariable2(builder : DIBuilder,
+                                                                                   scope : Metadata,
+                                                                                   name : Char*, arg_no : UInt,
+                                                                                   file : Metadata, line : UInt, type : Metadata,
+                                                                                   always_preserve : Int, flags : LLVM::DIFlags) : Metadata
+ 
+-  fun di_builder_insert_declare_at_end = LLVMDIBuilderInsertDeclareAtEnd(builder : DIBuilder,
++  fun di_builder_insert_declare_at_end = LLVMDIBuilderInsertDeclareAtEnd2(builder : DIBuilder,
+                                                                          storage : LibLLVM::ValueRef,
+                                                                          var_info : Metadata,
+                                                                          expr : Metadata,
+                                                                          dl : LibLLVM::ValueRef,
+                                                                          block : LibLLVM::BasicBlockRef) : LibLLVM::ValueRef
+ 
+-  fun di_builder_create_expression = LLVMDIBuilderCreateExpression(builder : DIBuilder,
++  fun di_builder_create_expression = LLVMDIBuilderCreateExpression2(builder : DIBuilder,
+                                                                    addr : Int64*, length : SizeT) : Metadata
+ 
+-  fun di_builder_get_or_create_array = LLVMDIBuilderGetOrCreateArray(builder : DIBuilder, data : Metadata*, length : SizeT) : Metadata
++  fun di_builder_get_or_create_array = LLVMDIBuilderGetOrCreateArray2(builder : DIBuilder, data : Metadata*, length : SizeT) : Metadata
+   fun di_builder_create_enumerator = LLVMDIBuilderCreateEnumerator(builder : DIBuilder, name : Char*, value : Int64) : Metadata
+-  fun di_builder_create_enumeration_type = LLVMDIBuilderCreateEnumerationType(builder : DIBuilder,
++  fun di_builder_create_enumeration_type = LLVMDIBuilderCreateEnumerationType2(builder : DIBuilder,
+                                                                               scope : Metadata, name : Char*, file : Metadata, line_number : UInt,
+                                                                               size_in_bits : UInt64, align_in_bits : UInt64, elements : Metadata, underlying_type : Metadata) : Metadata
+ 
+-  fun di_builder_get_or_create_type_array = LLVMDIBuilderGetOrCreateTypeArray(builder : DIBuilder, data : Metadata*, length : SizeT) : Metadata
+-  fun di_builder_create_subroutine_type = LLVMDIBuilderCreateSubroutineType(builder : DIBuilder, file : Metadata, parameter_types : Metadata) : Metadata
++  fun di_builder_get_or_create_type_array = LLVMDIBuilderGetOrCreateTypeArray2(builder : DIBuilder, data : Metadata*, length : SizeT) : Metadata
++  fun di_builder_create_subroutine_type = LLVMDIBuilderCreateSubroutineType2(builder : DIBuilder, file : Metadata, parameter_types : Metadata) : Metadata
+ 
+-  fun di_builder_create_struct_type = LLVMDIBuilderCreateStructType(builder : DIBuilder,
++  fun di_builder_create_struct_type = LLVMDIBuilderCreateStructType2(builder : DIBuilder,
+                                                                     scope : Metadata, name : Char*, file : Metadata, line : UInt, size_in_bits : UInt64,
+                                                                     align_in_bits : UInt64, flags : LLVM::DIFlags, derived_from : Metadata, element_types : Metadata) : Metadata
+ 
+-  fun di_builder_create_member_type = LLVMDIBuilderCreateMemberType(builder : DIBuilder,
++  fun di_builder_create_member_type = LLVMDIBuilderCreateMemberType2(builder : DIBuilder,
+                                                                     scope : Metadata, name : Char*, file : Metadata, line : UInt, size_in_bits : UInt64,
+                                                                     align_in_bits : UInt64, offset_in_bits : UInt64, flags : LLVM::DIFlags, ty : Metadata) : Metadata
+ 
+-  fun di_builder_create_pointer_type = LLVMDIBuilderCreatePointerType(builder : DIBuilder,
++  fun di_builder_create_pointer_type = LLVMDIBuilderCreatePointerType2(builder : DIBuilder,
+                                                                       pointee_type : Metadata,
+                                                                       size_in_bits : UInt64,
+                                                                       align_in_bits : UInt64,
+                                                                       name : Char*) : Metadata
+ 
+-  fun di_builder_create_replaceable_composite_type = LLVMDIBuilderCreateReplaceableCompositeType(builder : DIBuilder,
++  fun di_builder_create_replaceable_composite_type = LLVMDIBuilderCreateReplaceableCompositeType2(builder : DIBuilder,
+                                                                                                  scope : Metadata,
+                                                                                                  name : Char*,
+                                                                                                  file : Metadata,
+-- 
+2.19.0
+



More information about the arch-commits mailing list