merge revision(s) r45520: [Backport #9706]

	* ext/date/date_core.c (d_lite_cmp): should compare with #<.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@46185 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
merge revision(s) r45529: [Backport #8182]

	* lib/xmlrpc/client.rb (do_rpc): don't check body length.
	  If HTTP content-encoding is used, the length may be different.
	  [Bug #8182] [ruby-core:53811]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@46186 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
merge revision(s) r45534: [Backport #9709]

	* string.c (str_buf_cat): should round up the capacity by 4KiB,
	  but not number of rooms.  [ruby-core:61886] [Bug #9709]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@46187 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
merge revision(s) r45562: [Backport #9727]

	* array.c (ary_reject): may be turned into a shared array during
	  the given block.  [ruby-dev:48101] [Bug #9727]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@46188 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
merge revision(s) r45179,r45564,r45565,r45584,r45585: [Backport #9721]

	envutil.rb: move labeled_module and labeled_class

	* test/ruby/envutil.rb (labeled_module, labeled_class): move from
  test/ruby/test_module.rb.
	* proc.c (rb_method_call_with_block, umethod_bind): call with
	  IClass including the module for a module instance method.
	  [ruby-core:61936] [Bug #9721]

	* vm_insnhelper.c (vm_search_super_method): allow bound
	  UnboundMethod case.

	* proc.c (umethod_bind): use the ancestor iclass instead of new
	  iclass to get rid of infinite recursion, if the defined module
	  is already included.  [ruby-core:62014] [Bug #9721]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@46190 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
merge revision(s) r45604: [Backport #9748]

	* lib/fileutils.rb (FileUtils#copy_entry): update rdoc about
	  preserve option and permissions, following r31123.
	  [ruby-core:62065] [Bug #9748]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@46192 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
merge revision(s) r45646: [Backport #9765]

	* ext/stringio/stringio.c (strio_putc): fix for non-ascii
	  encoding, like as IO#putc.  [ruby-dev:48114] [Bug #9765]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@46213 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
merge revision(s) r45701: [Backport #9771]

	* ext/openssl/ossl_asn1.c (ossl_asn1_initialize): SYMID on a value
	  other than Symbol is an undefined behavior.  fix up r31699.
	  [ruby-core:62142] [Bug #9771]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@46214 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
merge revision(s) r45716: [Backport #9665]

	* configure.in (rb_cv_func___builtin_unreachable): try with an
	  external variable not only by a warning, which might not be
	  shown due to the optimization.  [ruby-core:61647] [Bug #9665]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@46215 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
merge revision(s) r45187,r45205,r45206,r45212,r45213: [Backport #9570]

	* numeric.c (ruby_num_interval_step_size): check signs and get rid
	  of implementation dependent behavior of negative division.
	  [ruby-core:61106] [Bug #9570]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@46226 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
merge revision(s) r45178,r45180,r45183: [Backport #9568]

	eval.c: remove unneeded GC guard

	* eval.c (setup_exception): remove RB_GC_GUARD which is no longer
  needed since r41598.
	* eval.c (setup_exception): preserve errinfo across calling #to_s
	  method on the exception.  [ruby-core:61091] [Bug #9568]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@46236 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
merge revision(s) r45350: [Backport #9645]

	* variable.c (rb_const_set): delete existing entry on redefinition
	  [Bug #9645]

	* test/ruby/test_const.rb (test_redefinition): test for leak


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@46301 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
merge revision(s) r45320,r45321: [Backport #9622]

	* vm_insnhelper.c (vm_callee_setup_arg): turn a macro into an
	  inline function.

	* vm_insnhelper.c (vm_callee_setup_arg): disable fastpath if splat
	  argument, since argc may differ for each calls.
	  [ruby-core:61422] [Bug #9622]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@46302 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
merge revision(s) r45365: [Backport #9656]

	dl/extconf.rb: check for -fno-defer-pop option

	* ext/dl/extconf.rb: check for -fno-defer-pop option, since clang
  5.1 no longer support -fno-defer-pop option.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@46303 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
merge revision(s) r45364,r45395,r45396,r45403,r45406: [Backport #9652]

	* time.c (time_mload): freeze and preserve marshal-loaded time zone

	* test/ruby/test_time.rb: add test for GC on loaded object
	  [Bug #9652]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@46304 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
merge revision(s) r45471: [Backport #9688]

	* win32/win32.c (rb_w32_accept, open_ifs_socket, socketpair_internal):
	  reset inherit flag of socket to avoid unintentional inheritance of
	  socket.  note that the return value of SetHandleInformation() is not
	  verified intentionally because old Windows may return an error.
	  [Bug #9688] [ruby-core:61754]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@46305 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
merge revision(s) r45302: [Backport #9616]

	* class.c (rb_class_subclass_add): use xmalloc

	* class.c (rb_module_add_to_subclasses_list): ditto

	* class.c (rb_class_remove_from_super_subclasses): use xfree

	* class.c (rb_class_remove_from_module_subclasses): ditto
	  [Bug #9616]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@46319 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
merge revision(s) r45517,r45544,r45924:

	signal.c: check stack overflow by SP

	* signal.c (check_stack_overflow): raise SystemStackError if SP
  register and fault address is in the same page, on x86 linux.
  [EXPERIMENTAL]
	* signal.c (check_stack_overflow): Don't use ucontext_t if ucontext.h
	  is not available.
	  Fixes build on Android (x86).


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@46367 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/ruby/test_string (test_LSHIFT_neary_long_max): extend timeout.
  this test fails on some CI environment by timeout.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@46398 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
merge revision(s) r45207,r45208,r45209,r45210: [Backport #9575]

	* numeric.c: Create var for rb_intern("<=>")
	* numeric.c: Fix Numeric#step with 0 unit [Bug #9575]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@46401 b2dd03c8-39d4-4d8f-98ff-823fe69b080e