Ruby 2.5.0 (#2143)

* ruby: patching two cross compile bugs in ruby 2.5.0

* ruby 2.5.1
This commit is contained in:
Carl Hörberg 2018-04-22 21:24:15 +02:00 committed by Fredrik Fornwall
parent c4061e081f
commit 1ab55487de
9 changed files with 96 additions and 57 deletions

View File

@ -1,8 +1,8 @@
TERMUX_PKG_HOMEPAGE=https://www.ruby-lang.org/ TERMUX_PKG_HOMEPAGE=https://www.ruby-lang.org/
TERMUX_PKG_DESCRIPTION="Dynamic programming language with a focus on simplicity and productivity" TERMUX_PKG_DESCRIPTION="Dynamic programming language with a focus on simplicity and productivity"
_MAJOR_VERSION=2.4 _MAJOR_VERSION=2.5
TERMUX_PKG_VERSION=${_MAJOR_VERSION}.3 TERMUX_PKG_VERSION=${_MAJOR_VERSION}.1
TERMUX_PKG_SHA256=23677d40bf3b7621ba64593c978df40b1e026d8653c74a0599f0ead78ed92b51 TERMUX_PKG_SHA256=886ac5eed41e3b5fc699be837b0087a6a5a3d10f464087560d2d21b3e71b754d
TERMUX_PKG_SRCURL=https://cache.ruby-lang.org/pub/ruby/${_MAJOR_VERSION}/ruby-${TERMUX_PKG_VERSION}.tar.xz TERMUX_PKG_SRCURL=https://cache.ruby-lang.org/pub/ruby/${_MAJOR_VERSION}/ruby-${TERMUX_PKG_VERSION}.tar.xz
# libbffi is used by the fiddle extension module: # libbffi is used by the fiddle extension module:
TERMUX_PKG_DEPENDS="libandroid-support, libffi, libgmp, readline, openssl, libutil, libyaml" TERMUX_PKG_DEPENDS="libandroid-support, libffi, libgmp, readline, openssl, libutil, libyaml"

View File

@ -0,0 +1,21 @@
--- /home/vagrant/ruby-2.5.0/configure.ac 2017-12-15 09:43:40.000000000 +0000
+++ src/configure.ac 2018-02-14 19:07:11.272257521 +0000
@@ -742,7 +742,7 @@
rb_cv_warnflags="$warnflags"
AS_IF([test "$GCC:${warnflags+set}:no" = yes::no], [
AS_IF([test $gcc_major -ge 4], [
- extra_warning=-Werror=extra-tokens
+ extra_warning=
], [
extra_warning=
])
@@ -765,9 +765,7 @@
-Werror=pointer-arith \
-Werror=write-strings \
-Werror=declaration-after-statement \
- -Werror=shorten-64-to-32 \
-Werror=implicit-function-declaration \
- -Werror=division-by-zero \
-Werror=deprecated-declarations \
-Werror=misleading-indentation \
-Wno-packed-bitfield-compat \

View File

@ -1,25 +0,0 @@
Fix issues when compiling with clang (where cpp is provided by gcc
in the standalone toolchain).
diff -u -r ../ruby-2.3.1/configure.in ./configure.in
--- ../ruby-2.3.1/configure.in 2016-04-24 13:44:40.000000000 -0400
+++ ./configure.in 2016-05-18 01:10:09.523385169 -0400
@@ -799,7 +799,7 @@
rb_cv_warnflags="$warnflags"
if test "$GCC:${warnflags+set}:no" = yes::no; then
if test $gcc_major -ge 4; then
- extra_warning=-Werror=extra-tokens
+ extra_warning=
else
extra_warning=
fi
@@ -813,9 +813,7 @@
-Werror=pointer-arith \
-Werror=write-strings \
-Werror=declaration-after-statement \
- -Werror=shorten-64-to-32 \
-Werror=implicit-function-declaration \
- -Werror=division-by-zero \
-Werror=deprecated-declarations \
-Wno-packed-bitfield-compat \
$extra_warning \

View File

@ -0,0 +1,21 @@
--- /home/vagrant/ruby-2.5.0/configure 2017-12-25 07:00:28.000000000 +0000
+++ src/configure 2018-02-14 19:06:28.742701948 +0000
@@ -7434,7 +7434,7 @@
if test $gcc_major -ge 4; then :
- extra_warning=-Werror=extra-tokens
+ extra_warning=
else
@@ -7464,9 +7464,7 @@
-Werror=pointer-arith \
-Werror=write-strings \
-Werror=declaration-after-statement \
- -Werror=shorten-64-to-32 \
-Werror=implicit-function-declaration \
- -Werror=division-by-zero \
-Werror=deprecated-declarations \
-Werror=misleading-indentation \
-Wno-packed-bitfield-compat \

View File

@ -1,14 +1,14 @@
diff -uNr ruby-2.4.2/addr2line.c ruby-2.4.2.mod/addr2line.c diff -uNr ruby-2.4.2/addr2line.c ruby-2.4.2.mod/addr2line.c
--- ruby-2.4.2/addr2line.c 2016-10-18 18:09:08.000000000 +0300 --- ruby-2.4.2/addr2line.c 2016-10-18 18:09:08.000000000 +0300
+++ ruby-2.4.2.mod/addr2line.c 2017-09-15 12:00:56.242805138 +0300 +++ ruby-2.4.2.mod/addr2line.c 2017-09-15 12:00:56.242805138 +0300
@@ -440,7 +440,7 @@ @@ -451,7 +451,7 @@
/* Ideally we should check 4 paths to follow gnu_debuglink, /* Ideally we should check 4 paths to follow gnu_debuglink,
but we handle only one case for now as this format is used but we handle only one case for now as this format is used
by some linux distributions. See GDB's info for detail. */ by some linux distributions. See GDB's info for detail. */
- static const char global_debug_dir[] = "/usr/lib/debug"; - static const char global_debug_dir[] = "/usr/lib/debug";
+ static const char global_debug_dir[] = "@TERMUX_PREFIX@/lib/debug"; + static const char global_debug_dir[] = "@TERMUX_PREFIX@/lib/debug";
char *p, *subdir; const size_t global_debug_dir_len = sizeof(global_debug_dir) - 1;
obj_info_t *o1 = *objp, *o2; char *p;
diff -uNr ruby-2.4.2/dln_find.c ruby-2.4.2.mod/dln_find.c diff -uNr ruby-2.4.2/dln_find.c ruby-2.4.2.mod/dln_find.c
--- ruby-2.4.2/dln_find.c 2016-06-02 19:52:15.000000000 +0300 --- ruby-2.4.2/dln_find.c 2016-06-02 19:52:15.000000000 +0300

View File

@ -0,0 +1,13 @@
--- /home/vagrant/ruby-2.5.0/lib/fileutils.rb 2017-12-22 08:00:10.000000000 +0000
+++ ./lib/fileutils.rb 2018-02-17 23:19:55.344655246 +0000
@@ -744,8 +744,8 @@
#
def compare_stream(a, b)
bsize = fu_stream_blksize(a, b)
- sa = String.new(capacity: bsize)
- sb = String.new(capacity: bsize)
+ sa = String.new
+ sb = String.new
begin
a.read(bsize, sa)
b.read(bsize, sb)

View File

@ -1,7 +1,6 @@
diff -u -r ../ruby-2.3.0/process.c ./process.c --- /home/vagrant/ruby-2.5.0/process.c 2017-12-14 10:24:38.000000000 +0000
--- ../ruby-2.3.0/process.c 2015-12-23 03:57:48.000000000 -0500 +++ src/process.c 2018-02-14 18:48:50.591627727 +0000
+++ ./process.c 2015-12-25 15:40:56.370279634 -0500 @@ -1240,9 +1240,9 @@
@@ -1227,9 +1227,9 @@
*argv = (char *)prog; *argv = (char *)prog;
*--argv = (char *)"sh"; *--argv = (char *)"sh";
if (envp) if (envp)
@ -13,7 +12,7 @@ diff -u -r ../ruby-2.3.0/process.c ./process.c
} }
#else #else
@@ -1301,9 +1301,9 @@ @@ -1310,9 +1310,9 @@
} }
#else #else
if (envp_str) if (envp_str)
@ -22,10 +21,10 @@ diff -u -r ../ruby-2.3.0/process.c ./process.c
else else
- execl("/bin/sh", "sh", "-c", str, (char *)NULL); /* async-signal-safe (since SUSv4) */ - execl("/bin/sh", "sh", "-c", str, (char *)NULL); /* async-signal-safe (since SUSv4) */
+ execl("@TERMUX_PREFIX@/bin/sh", "sh", "-c", str, (char *)NULL); /* async-signal-safe (since SUSv4) */ + execl("@TERMUX_PREFIX@/bin/sh", "sh", "-c", str, (char *)NULL); /* async-signal-safe (since SUSv4) */
#endif
return -1;
#endif /* _WIN32 */ #endif /* _WIN32 */
@@ -1406,7 +1406,7 @@ return errno;
}
@@ -1415,7 +1415,7 @@
if (status == -1 && errno == ENOEXEC) { if (status == -1 && errno == ENOEXEC) {
*argv = (char *)prog; *argv = (char *)prog;
*--argv = (char *)"sh"; *--argv = (char *)"sh";
@ -34,7 +33,7 @@ diff -u -r ../ruby-2.3.0/process.c ./process.c
after_exec(); after_exec();
if (status == -1) errno = ENOEXEC; if (status == -1) errno = ENOEXEC;
} }
@@ -1444,7 +1444,7 @@ @@ -1453,7 +1453,7 @@
char *shell = dln_find_exe_r("sh", 0, fbuf, sizeof(fbuf)); char *shell = dln_find_exe_r("sh", 0, fbuf, sizeof(fbuf));
before_exec(); before_exec();

View File

@ -0,0 +1,11 @@
--- /home/vagrant/ruby-2.5.0/template/configure-ext.mk.tmpl 2017-04-23 16:19:22.000000000 +0000
+++ ./template/configure-ext.mk.tmpl 2018-02-17 23:31:02.304445580 +0000
@@ -24,7 +24,7 @@
MINIRUBY = <%=miniruby%>
SCRIPT_ARGS = <%=script_args%>
EXTMK_ARGS = $(SCRIPT_ARGS) --gnumake=$(gnumake) --extflags="$(EXTLDFLAGS)" \
- --make-flags='MINIRUBY=$(MINIRUBY)'
+ --make-flags="MINIRUBY='$(MINIRUBY)'"
all: exts gems
exts:

View File

@ -1,21 +1,20 @@
diff -u -r ../ruby-2.3.0/tool/rbinstall.rb ./tool/rbinstall.rb --- /home/vagrant/ruby-2.5.0/tool/rbinstall.rb 2017-10-30 05:45:20.000000000 +0000
--- ../ruby-2.3.0/tool/rbinstall.rb 2015-11-16 01:33:17.000000000 -0500 +++ src/tool/rbinstall.rb 2018-02-14 18:53:42.498522407 +0000
+++ ./tool/rbinstall.rb 2015-12-25 15:43:04.756646343 -0500 @@ -731,7 +731,7 @@
@@ -696,7 +696,7 @@
# :startdoc:
install?(:ext, :comm, :gem) do
- gem_dir = Gem.default_dir
+ gem_dir = "@TERMUX_PREFIX@/lib/ruby/gems/2.4.0"
directories = Gem.ensure_gem_subdirectories(gem_dir, :mode => $dir_mode)
prepare "default gems", gem_dir, directories
@@ -732,7 +732,7 @@
end end
install?(:ext, :comm, :gem) do def install_default_gem(dir, srcdir)
- gem_dir = Gem.default_dir - gem_dir = Gem.default_dir
+ gem_dir = "@TERMUX_PREFIX@/lib/ruby/gems/2.4.0" + gem_dir = "@TERMUX_PREFIX@/lib/ruby/gems/2.5.0"
directories = Gem.ensure_gem_subdirectories(gem_dir, :mode => $dir_mode) directories = Gem.ensure_gem_subdirectories(gem_dir, :mode => $dir_mode)
prepare "bundle gems", gem_dir, directories prepare "default gems from #{dir}", gem_dir, directories
@@ -765,7 +765,7 @@
end
install?(:ext, :comm, :gem, :'bundled-gems') do
- gem_dir = Gem.default_dir
+ gem_dir = "@TERMUX_PREFIX@/lib/ruby/gems/2.5.0"
directories = Gem.ensure_gem_subdirectories(gem_dir, :mode => $dir_mode)
prepare "bundled gems", gem_dir, directories
install_dir = with_destdir(gem_dir) install_dir = with_destdir(gem_dir)