[arch-commits] Commit in vagrant-substrate/repos (10 files)

Jonathan Steel jsteel at archlinux.org
Tue Jul 11 08:50:50 UTC 2017


    Date: Tuesday, July 11, 2017 @ 08:50:49
  Author: jsteel
Revision: 244036

archrelease: copy trunk to community-i686, community-x86_64

Added:
  vagrant-substrate/repos/community-i686/PKGBUILD
    (from rev 244035, vagrant-substrate/trunk/PKGBUILD)
  vagrant-substrate/repos/community-i686/puppet_module_ruby.patch
    (from rev 244035, vagrant-substrate/trunk/puppet_module_ruby.patch)
  vagrant-substrate/repos/community-i686/ruby23_gcc7.patch
    (from rev 244035, vagrant-substrate/trunk/ruby23_gcc7.patch)
  vagrant-substrate/repos/community-x86_64/PKGBUILD
    (from rev 244035, vagrant-substrate/trunk/PKGBUILD)
  vagrant-substrate/repos/community-x86_64/puppet_module_ruby.patch
    (from rev 244035, vagrant-substrate/trunk/puppet_module_ruby.patch)
  vagrant-substrate/repos/community-x86_64/ruby23_gcc7.patch
    (from rev 244035, vagrant-substrate/trunk/ruby23_gcc7.patch)
Deleted:
  vagrant-substrate/repos/community-i686/puppet_module_ruby.patch
  vagrant-substrate/repos/community-i686/ruby23_gcc7.patch
  vagrant-substrate/repos/community-x86_64/puppet_module_ruby.patch
  vagrant-substrate/repos/community-x86_64/ruby23_gcc7.patch

-------------------------------------------+
 /puppet_module_ruby.patch                 |   48 +++++++++++++
 /ruby23_gcc7.patch                        |   98 ++++++++++++++++++++++++++++
 community-i686/PKGBUILD                   |   82 +++++++++++++++++++++++
 community-i686/puppet_module_ruby.patch   |   24 ------
 community-i686/ruby23_gcc7.patch          |   49 --------------
 community-x86_64/PKGBUILD                 |   82 +++++++++++++++++++++++
 community-x86_64/puppet_module_ruby.patch |   24 ------
 community-x86_64/ruby23_gcc7.patch        |   49 --------------
 8 files changed, 310 insertions(+), 146 deletions(-)

Copied: vagrant-substrate/repos/community-i686/PKGBUILD (from rev 244035, vagrant-substrate/trunk/PKGBUILD)
===================================================================
--- community-i686/PKGBUILD	                        (rev 0)
+++ community-i686/PKGBUILD	2017-07-11 08:50:49 UTC (rev 244036)
@@ -0,0 +1,82 @@
+# Maintainer: Jonathan Steel <jsteel at archlinux.org>
+
+pkgname=vagrant-substrate
+_pkgname=vagrant-installers
+pkgver=718.205e64c
+pkgrel=2
+pkgdesc="Substrate layer for Vagrant"
+arch=('i686' 'x86_64')
+url="http://vagrantup.com"
+license=('MIT')
+options=('!emptydirs' '!makeflags')
+makedepends=('git' 'puppet' 'chrpath' 'wget' 'go')
+depends=('lzo')
+source=(git://github.com/mitchellh/$_pkgname.git#commit=205e64c
+        ruby23_gcc7.patch
+        puppet_module_ruby.patch)
+md5sums=('SKIP'
+         '6e3db41f8918479dd408b8557c3a1ea1'
+         '599a72704b0d0deb6a728ff84a047e6f')
+
+pkgver() {
+  cd $_pkgname
+
+  echo $(git rev-list --count HEAD).$(git describe --always)
+}
+
+prepare() {
+  cd $_pkgname/substrate
+
+  # Use $srcdir for the working directory
+  sed -i "s:/vagrant-substrate:$srcdir/$_pkgname/vagrant-substrate:" \
+    hiera/common.yaml
+  sed -i "s:\"/opt/vagrant\":\"$srcdir/$_pkgname/opt/vagrant\":" \
+    hiera/common.yaml
+
+  # Use latest openssl
+  sed -i 's/openssl-1.0.2e.tar.gz/openssl-1.0.2k.tar.gz/' \
+    modules/openssl/manifests/init.pp
+  # Disable SSLv3
+  sed -i '16 s/shared/shared no-ssl3-method/' \
+    modules/openssl/manifests/install/linux.pp
+
+  # Don't create a zip of the substrate
+  sed -i '48,50d' modules/vagrant_substrate/manifests/init.pp
+
+  # Do not set file ownership
+  find . -name *.pp -exec sed -i "/owner.*.=.*.root/d" {} +
+  find . -name *.pp -exec sed -i "/group.*.=.*.root/d" {} +
+
+  # Fix compile issues
+  # https://github.com/mitchellh/vagrant-installers/issues/60
+  sed -i '20 s/-I/-O2 -I/' modules/vagrant_substrate/manifests/staging/posix.pp
+  # chmod u+w the file before chrpath
+  sed -i 's/chrpath --replace/chmod u+w $name; chrpath --replace/' \
+    modules/vagrant_substrate/manifests/staging/linux_chrpath.pp
+  # ruby23 gcc7 patch
+  patch -Np1 -i "$srcdir"/puppet_module_ruby.patch
+}
+
+build() {
+  cd $_pkgname/substrate
+
+  FACTER_param_output_dir="$srcdir" puppet apply \
+    --detailed-exitcodes \
+    --hiera_config=config/hiera.yaml --confdir=config \
+    --modulepath=modules manifests/init.pp || test $? -eq 2
+}
+
+package() {
+  cd $_pkgname
+
+  install -d "$pkgdir"/opt
+
+  cp -r vagrant-substrate/staging "$pkgdir"/opt/vagrant
+
+  install -Dm644 LICENSE.md \
+    "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+
+  # FS#54246 Fix pkg-config paths
+  sed -i 's@/build/vagrant-substrate/src/vagrant-installers/@/@g' \
+    "$pkgdir"/opt/vagrant/embedded/lib/pkgconfig/*.pc
+}

Deleted: community-i686/puppet_module_ruby.patch
===================================================================
--- community-i686/puppet_module_ruby.patch	2017-07-11 08:48:36 UTC (rev 244035)
+++ community-i686/puppet_module_ruby.patch	2017-07-11 08:50:49 UTC (rev 244036)
@@ -1,24 +0,0 @@
---- a/modules/ruby/manifests/source.pp
-+++ b/modules/ruby/manifests/source.pp
-@@ -73,6 +73,12 @@
-     require => Exec["download-ruby"],
-   }
- 
-+  exec { "patch-ruby":
-+    command => "patch -Np0 -i ../../../ruby23_gcc7.patch",
-+    cwd     => $file_cache_dir,
-+    require => Exec["untar-ruby"],
-+  }
-+
-   autotools { "ruby":
-     configure_flags  => "--prefix=${prefix} --disable-debug --disable-dependency-tracking --disable-install-doc --enable-shared --with-opt-dir=${prefix} --enable-load-relative${extra_configure_flags}",
-     cwd              => $source_dir_path,
-@@ -80,7 +86,7 @@
-     install_sentinel => "${prefix}/bin/ruby",
-     make_notify      => $make_notify,
-     make_sentinel    => "${source_dir_path}/ruby",
--    require          => Exec["untar-ruby"],
-+    require          => Exec["untar-ruby", "patch-ruby"],
-   }
- 
-   if $operatingsystem == 'Darwin' {

Copied: vagrant-substrate/repos/community-i686/puppet_module_ruby.patch (from rev 244035, vagrant-substrate/trunk/puppet_module_ruby.patch)
===================================================================
--- community-i686/puppet_module_ruby.patch	                        (rev 0)
+++ community-i686/puppet_module_ruby.patch	2017-07-11 08:50:49 UTC (rev 244036)
@@ -0,0 +1,24 @@
+--- a/modules/ruby/manifests/source.pp
++++ b/modules/ruby/manifests/source.pp
+@@ -73,6 +73,12 @@
+     require => Exec["download-ruby"],
+   }
+ 
++  exec { "patch-ruby":
++    command => "patch -Np0 -i ../../../ruby23_gcc7.patch",
++    cwd     => $file_cache_dir,
++    require => Exec["untar-ruby"],
++  }
++
+   autotools { "ruby":
+     configure_flags  => "--prefix=${prefix} --disable-debug --disable-dependency-tracking --disable-install-doc --enable-shared --with-opt-dir=${prefix} --enable-load-relative${extra_configure_flags}",
+     cwd              => $source_dir_path,
+@@ -80,7 +86,7 @@
+     install_sentinel => "${prefix}/bin/ruby",
+     make_notify      => $make_notify,
+     make_sentinel    => "${source_dir_path}/ruby",
+-    require          => Exec["untar-ruby"],
++    require          => Exec["untar-ruby", "patch-ruby"],
+   }
+ 
+   if $operatingsystem == 'Darwin' {

Deleted: community-i686/ruby23_gcc7.patch
===================================================================
--- community-i686/ruby23_gcc7.patch	2017-07-11 08:48:36 UTC (rev 244035)
+++ community-i686/ruby23_gcc7.patch	2017-07-11 08:50:49 UTC (rev 244036)
@@ -1,49 +0,0 @@
-diff -ur ruby-2.3.4.orig/include/ruby/ruby.h ruby-2.3.4/include/ruby/ruby.h
---- ruby-2.3.4.orig/include/ruby/ruby.h	2016-03-29 07:03:30.000000000 +0100
-+++ ruby-2.3.4/include/ruby/ruby.h	2017-07-10 20:00:18.699618133 +0100
-@@ -555,7 +555,10 @@
-  * itself.  don't use it directly */
- #ifdef __GNUC__
- #define RB_GC_GUARD_PTR(ptr) \
--    __extension__ ({volatile VALUE *rb_gc_guarded_ptr = (ptr); rb_gc_guarded_ptr;})
-+    __extension__ ({volatile VALUE *rb_gc_guarded_ptr = (ptr); \
-+ __asm__("" : : "m"(rb_gc_guarded_ptr)); \
-+ rb_gc_guarded_ptr; \
-+    })
- #else
- #ifdef _MSC_VER
- #pragma optimize("", off)
-diff -ur ruby-2.3.4.orig/marshal.c ruby-2.3.4/marshal.c
---- ruby-2.3.4.orig/marshal.c	2017-01-16 19:08:08.000000000 +0000
-+++ ruby-2.3.4/marshal.c	2017-07-10 20:01:36.016807763 +0100
-@@ -1024,7 +1024,7 @@
-     struct dump_arg *arg;
-     VALUE wrapper; /* used to avoid memory leak in case of exception */
- 
--    wrapper = TypedData_Make_Struct(rb_cData, struct dump_arg, &dump_arg_data, arg);
-+    wrapper = TypedData_Make_Struct(0, struct dump_arg, &dump_arg_data, arg);
-     arg->dest = 0;
-     arg->symbols = st_init_numtable();
-     arg->data    = rb_init_identtable();
-@@ -2059,7 +2059,7 @@
-     else {
- 	io_needed();
-     }
--    wrapper = TypedData_Make_Struct(rb_cData, struct load_arg, &load_arg_data, arg);
-+    wrapper = TypedData_Make_Struct(0, struct load_arg, &load_arg_data, arg);
-     arg->infection = infection;
-     arg->src = port;
-     arg->offset = 0;
-diff -ur ruby-2.3.4.orig/test/ruby/test_marshal.rb ruby-2.3.4/test/ruby/test_marshal.rb
---- ruby-2.3.4.orig/test/ruby/test_marshal.rb	2017-01-16 19:08:08.000000000 +0000
-+++ ruby-2.3.4/test/ruby/test_marshal.rb	2017-07-10 20:02:08.710362086 +0100
-@@ -645,6 +645,9 @@
-     c = Bug9523.new
-     assert_raise_with_message(RuntimeError, /Marshal\.dump reentered at marshal_dump/) do
-       Marshal.dump(c)
-+      GC.start
-+      1000.times {"x"*1000}
-+      GC.start
-       c.cc.call
-     end
-   end

Copied: vagrant-substrate/repos/community-i686/ruby23_gcc7.patch (from rev 244035, vagrant-substrate/trunk/ruby23_gcc7.patch)
===================================================================
--- community-i686/ruby23_gcc7.patch	                        (rev 0)
+++ community-i686/ruby23_gcc7.patch	2017-07-11 08:50:49 UTC (rev 244036)
@@ -0,0 +1,49 @@
+diff -ur ruby-2.3.4.orig/include/ruby/ruby.h ruby-2.3.4/include/ruby/ruby.h
+--- ruby-2.3.4.orig/include/ruby/ruby.h	2016-03-29 07:03:30.000000000 +0100
++++ ruby-2.3.4/include/ruby/ruby.h	2017-07-10 20:00:18.699618133 +0100
+@@ -555,7 +555,10 @@
+  * itself.  don't use it directly */
+ #ifdef __GNUC__
+ #define RB_GC_GUARD_PTR(ptr) \
+-    __extension__ ({volatile VALUE *rb_gc_guarded_ptr = (ptr); rb_gc_guarded_ptr;})
++    __extension__ ({volatile VALUE *rb_gc_guarded_ptr = (ptr); \
++ __asm__("" : : "m"(rb_gc_guarded_ptr)); \
++ rb_gc_guarded_ptr; \
++    })
+ #else
+ #ifdef _MSC_VER
+ #pragma optimize("", off)
+diff -ur ruby-2.3.4.orig/marshal.c ruby-2.3.4/marshal.c
+--- ruby-2.3.4.orig/marshal.c	2017-01-16 19:08:08.000000000 +0000
++++ ruby-2.3.4/marshal.c	2017-07-10 20:01:36.016807763 +0100
+@@ -1024,7 +1024,7 @@
+     struct dump_arg *arg;
+     VALUE wrapper; /* used to avoid memory leak in case of exception */
+ 
+-    wrapper = TypedData_Make_Struct(rb_cData, struct dump_arg, &dump_arg_data, arg);
++    wrapper = TypedData_Make_Struct(0, struct dump_arg, &dump_arg_data, arg);
+     arg->dest = 0;
+     arg->symbols = st_init_numtable();
+     arg->data    = rb_init_identtable();
+@@ -2059,7 +2059,7 @@
+     else {
+ 	io_needed();
+     }
+-    wrapper = TypedData_Make_Struct(rb_cData, struct load_arg, &load_arg_data, arg);
++    wrapper = TypedData_Make_Struct(0, struct load_arg, &load_arg_data, arg);
+     arg->infection = infection;
+     arg->src = port;
+     arg->offset = 0;
+diff -ur ruby-2.3.4.orig/test/ruby/test_marshal.rb ruby-2.3.4/test/ruby/test_marshal.rb
+--- ruby-2.3.4.orig/test/ruby/test_marshal.rb	2017-01-16 19:08:08.000000000 +0000
++++ ruby-2.3.4/test/ruby/test_marshal.rb	2017-07-10 20:02:08.710362086 +0100
+@@ -645,6 +645,9 @@
+     c = Bug9523.new
+     assert_raise_with_message(RuntimeError, /Marshal\.dump reentered at marshal_dump/) do
+       Marshal.dump(c)
++      GC.start
++      1000.times {"x"*1000}
++      GC.start
+       c.cc.call
+     end
+   end

Copied: vagrant-substrate/repos/community-x86_64/PKGBUILD (from rev 244035, vagrant-substrate/trunk/PKGBUILD)
===================================================================
--- community-x86_64/PKGBUILD	                        (rev 0)
+++ community-x86_64/PKGBUILD	2017-07-11 08:50:49 UTC (rev 244036)
@@ -0,0 +1,82 @@
+# Maintainer: Jonathan Steel <jsteel at archlinux.org>
+
+pkgname=vagrant-substrate
+_pkgname=vagrant-installers
+pkgver=718.205e64c
+pkgrel=2
+pkgdesc="Substrate layer for Vagrant"
+arch=('i686' 'x86_64')
+url="http://vagrantup.com"
+license=('MIT')
+options=('!emptydirs' '!makeflags')
+makedepends=('git' 'puppet' 'chrpath' 'wget' 'go')
+depends=('lzo')
+source=(git://github.com/mitchellh/$_pkgname.git#commit=205e64c
+        ruby23_gcc7.patch
+        puppet_module_ruby.patch)
+md5sums=('SKIP'
+         '6e3db41f8918479dd408b8557c3a1ea1'
+         '599a72704b0d0deb6a728ff84a047e6f')
+
+pkgver() {
+  cd $_pkgname
+
+  echo $(git rev-list --count HEAD).$(git describe --always)
+}
+
+prepare() {
+  cd $_pkgname/substrate
+
+  # Use $srcdir for the working directory
+  sed -i "s:/vagrant-substrate:$srcdir/$_pkgname/vagrant-substrate:" \
+    hiera/common.yaml
+  sed -i "s:\"/opt/vagrant\":\"$srcdir/$_pkgname/opt/vagrant\":" \
+    hiera/common.yaml
+
+  # Use latest openssl
+  sed -i 's/openssl-1.0.2e.tar.gz/openssl-1.0.2k.tar.gz/' \
+    modules/openssl/manifests/init.pp
+  # Disable SSLv3
+  sed -i '16 s/shared/shared no-ssl3-method/' \
+    modules/openssl/manifests/install/linux.pp
+
+  # Don't create a zip of the substrate
+  sed -i '48,50d' modules/vagrant_substrate/manifests/init.pp
+
+  # Do not set file ownership
+  find . -name *.pp -exec sed -i "/owner.*.=.*.root/d" {} +
+  find . -name *.pp -exec sed -i "/group.*.=.*.root/d" {} +
+
+  # Fix compile issues
+  # https://github.com/mitchellh/vagrant-installers/issues/60
+  sed -i '20 s/-I/-O2 -I/' modules/vagrant_substrate/manifests/staging/posix.pp
+  # chmod u+w the file before chrpath
+  sed -i 's/chrpath --replace/chmod u+w $name; chrpath --replace/' \
+    modules/vagrant_substrate/manifests/staging/linux_chrpath.pp
+  # ruby23 gcc7 patch
+  patch -Np1 -i "$srcdir"/puppet_module_ruby.patch
+}
+
+build() {
+  cd $_pkgname/substrate
+
+  FACTER_param_output_dir="$srcdir" puppet apply \
+    --detailed-exitcodes \
+    --hiera_config=config/hiera.yaml --confdir=config \
+    --modulepath=modules manifests/init.pp || test $? -eq 2
+}
+
+package() {
+  cd $_pkgname
+
+  install -d "$pkgdir"/opt
+
+  cp -r vagrant-substrate/staging "$pkgdir"/opt/vagrant
+
+  install -Dm644 LICENSE.md \
+    "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+
+  # FS#54246 Fix pkg-config paths
+  sed -i 's@/build/vagrant-substrate/src/vagrant-installers/@/@g' \
+    "$pkgdir"/opt/vagrant/embedded/lib/pkgconfig/*.pc
+}

Deleted: community-x86_64/puppet_module_ruby.patch
===================================================================
--- community-x86_64/puppet_module_ruby.patch	2017-07-11 08:48:36 UTC (rev 244035)
+++ community-x86_64/puppet_module_ruby.patch	2017-07-11 08:50:49 UTC (rev 244036)
@@ -1,24 +0,0 @@
---- a/modules/ruby/manifests/source.pp
-+++ b/modules/ruby/manifests/source.pp
-@@ -73,6 +73,12 @@
-     require => Exec["download-ruby"],
-   }
- 
-+  exec { "patch-ruby":
-+    command => "patch -Np0 -i ../../../ruby23_gcc7.patch",
-+    cwd     => $file_cache_dir,
-+    require => Exec["untar-ruby"],
-+  }
-+
-   autotools { "ruby":
-     configure_flags  => "--prefix=${prefix} --disable-debug --disable-dependency-tracking --disable-install-doc --enable-shared --with-opt-dir=${prefix} --enable-load-relative${extra_configure_flags}",
-     cwd              => $source_dir_path,
-@@ -80,7 +86,7 @@
-     install_sentinel => "${prefix}/bin/ruby",
-     make_notify      => $make_notify,
-     make_sentinel    => "${source_dir_path}/ruby",
--    require          => Exec["untar-ruby"],
-+    require          => Exec["untar-ruby", "patch-ruby"],
-   }
- 
-   if $operatingsystem == 'Darwin' {

Copied: vagrant-substrate/repos/community-x86_64/puppet_module_ruby.patch (from rev 244035, vagrant-substrate/trunk/puppet_module_ruby.patch)
===================================================================
--- community-x86_64/puppet_module_ruby.patch	                        (rev 0)
+++ community-x86_64/puppet_module_ruby.patch	2017-07-11 08:50:49 UTC (rev 244036)
@@ -0,0 +1,24 @@
+--- a/modules/ruby/manifests/source.pp
++++ b/modules/ruby/manifests/source.pp
+@@ -73,6 +73,12 @@
+     require => Exec["download-ruby"],
+   }
+ 
++  exec { "patch-ruby":
++    command => "patch -Np0 -i ../../../ruby23_gcc7.patch",
++    cwd     => $file_cache_dir,
++    require => Exec["untar-ruby"],
++  }
++
+   autotools { "ruby":
+     configure_flags  => "--prefix=${prefix} --disable-debug --disable-dependency-tracking --disable-install-doc --enable-shared --with-opt-dir=${prefix} --enable-load-relative${extra_configure_flags}",
+     cwd              => $source_dir_path,
+@@ -80,7 +86,7 @@
+     install_sentinel => "${prefix}/bin/ruby",
+     make_notify      => $make_notify,
+     make_sentinel    => "${source_dir_path}/ruby",
+-    require          => Exec["untar-ruby"],
++    require          => Exec["untar-ruby", "patch-ruby"],
+   }
+ 
+   if $operatingsystem == 'Darwin' {

Deleted: community-x86_64/ruby23_gcc7.patch
===================================================================
--- community-x86_64/ruby23_gcc7.patch	2017-07-11 08:48:36 UTC (rev 244035)
+++ community-x86_64/ruby23_gcc7.patch	2017-07-11 08:50:49 UTC (rev 244036)
@@ -1,49 +0,0 @@
-diff -ur ruby-2.3.4.orig/include/ruby/ruby.h ruby-2.3.4/include/ruby/ruby.h
---- ruby-2.3.4.orig/include/ruby/ruby.h	2016-03-29 07:03:30.000000000 +0100
-+++ ruby-2.3.4/include/ruby/ruby.h	2017-07-10 20:00:18.699618133 +0100
-@@ -555,7 +555,10 @@
-  * itself.  don't use it directly */
- #ifdef __GNUC__
- #define RB_GC_GUARD_PTR(ptr) \
--    __extension__ ({volatile VALUE *rb_gc_guarded_ptr = (ptr); rb_gc_guarded_ptr;})
-+    __extension__ ({volatile VALUE *rb_gc_guarded_ptr = (ptr); \
-+ __asm__("" : : "m"(rb_gc_guarded_ptr)); \
-+ rb_gc_guarded_ptr; \
-+    })
- #else
- #ifdef _MSC_VER
- #pragma optimize("", off)
-diff -ur ruby-2.3.4.orig/marshal.c ruby-2.3.4/marshal.c
---- ruby-2.3.4.orig/marshal.c	2017-01-16 19:08:08.000000000 +0000
-+++ ruby-2.3.4/marshal.c	2017-07-10 20:01:36.016807763 +0100
-@@ -1024,7 +1024,7 @@
-     struct dump_arg *arg;
-     VALUE wrapper; /* used to avoid memory leak in case of exception */
- 
--    wrapper = TypedData_Make_Struct(rb_cData, struct dump_arg, &dump_arg_data, arg);
-+    wrapper = TypedData_Make_Struct(0, struct dump_arg, &dump_arg_data, arg);
-     arg->dest = 0;
-     arg->symbols = st_init_numtable();
-     arg->data    = rb_init_identtable();
-@@ -2059,7 +2059,7 @@
-     else {
- 	io_needed();
-     }
--    wrapper = TypedData_Make_Struct(rb_cData, struct load_arg, &load_arg_data, arg);
-+    wrapper = TypedData_Make_Struct(0, struct load_arg, &load_arg_data, arg);
-     arg->infection = infection;
-     arg->src = port;
-     arg->offset = 0;
-diff -ur ruby-2.3.4.orig/test/ruby/test_marshal.rb ruby-2.3.4/test/ruby/test_marshal.rb
---- ruby-2.3.4.orig/test/ruby/test_marshal.rb	2017-01-16 19:08:08.000000000 +0000
-+++ ruby-2.3.4/test/ruby/test_marshal.rb	2017-07-10 20:02:08.710362086 +0100
-@@ -645,6 +645,9 @@
-     c = Bug9523.new
-     assert_raise_with_message(RuntimeError, /Marshal\.dump reentered at marshal_dump/) do
-       Marshal.dump(c)
-+      GC.start
-+      1000.times {"x"*1000}
-+      GC.start
-       c.cc.call
-     end
-   end

Copied: vagrant-substrate/repos/community-x86_64/ruby23_gcc7.patch (from rev 244035, vagrant-substrate/trunk/ruby23_gcc7.patch)
===================================================================
--- community-x86_64/ruby23_gcc7.patch	                        (rev 0)
+++ community-x86_64/ruby23_gcc7.patch	2017-07-11 08:50:49 UTC (rev 244036)
@@ -0,0 +1,49 @@
+diff -ur ruby-2.3.4.orig/include/ruby/ruby.h ruby-2.3.4/include/ruby/ruby.h
+--- ruby-2.3.4.orig/include/ruby/ruby.h	2016-03-29 07:03:30.000000000 +0100
++++ ruby-2.3.4/include/ruby/ruby.h	2017-07-10 20:00:18.699618133 +0100
+@@ -555,7 +555,10 @@
+  * itself.  don't use it directly */
+ #ifdef __GNUC__
+ #define RB_GC_GUARD_PTR(ptr) \
+-    __extension__ ({volatile VALUE *rb_gc_guarded_ptr = (ptr); rb_gc_guarded_ptr;})
++    __extension__ ({volatile VALUE *rb_gc_guarded_ptr = (ptr); \
++ __asm__("" : : "m"(rb_gc_guarded_ptr)); \
++ rb_gc_guarded_ptr; \
++    })
+ #else
+ #ifdef _MSC_VER
+ #pragma optimize("", off)
+diff -ur ruby-2.3.4.orig/marshal.c ruby-2.3.4/marshal.c
+--- ruby-2.3.4.orig/marshal.c	2017-01-16 19:08:08.000000000 +0000
++++ ruby-2.3.4/marshal.c	2017-07-10 20:01:36.016807763 +0100
+@@ -1024,7 +1024,7 @@
+     struct dump_arg *arg;
+     VALUE wrapper; /* used to avoid memory leak in case of exception */
+ 
+-    wrapper = TypedData_Make_Struct(rb_cData, struct dump_arg, &dump_arg_data, arg);
++    wrapper = TypedData_Make_Struct(0, struct dump_arg, &dump_arg_data, arg);
+     arg->dest = 0;
+     arg->symbols = st_init_numtable();
+     arg->data    = rb_init_identtable();
+@@ -2059,7 +2059,7 @@
+     else {
+ 	io_needed();
+     }
+-    wrapper = TypedData_Make_Struct(rb_cData, struct load_arg, &load_arg_data, arg);
++    wrapper = TypedData_Make_Struct(0, struct load_arg, &load_arg_data, arg);
+     arg->infection = infection;
+     arg->src = port;
+     arg->offset = 0;
+diff -ur ruby-2.3.4.orig/test/ruby/test_marshal.rb ruby-2.3.4/test/ruby/test_marshal.rb
+--- ruby-2.3.4.orig/test/ruby/test_marshal.rb	2017-01-16 19:08:08.000000000 +0000
++++ ruby-2.3.4/test/ruby/test_marshal.rb	2017-07-10 20:02:08.710362086 +0100
+@@ -645,6 +645,9 @@
+     c = Bug9523.new
+     assert_raise_with_message(RuntimeError, /Marshal\.dump reentered at marshal_dump/) do
+       Marshal.dump(c)
++      GC.start
++      1000.times {"x"*1000}
++      GC.start
+       c.cc.call
+     end
+   end



More information about the arch-commits mailing list