[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