<pre style='margin:0'>
Ken (kencu) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/e95b071b7bcc27eb2d972a285fa8a582fdb19689">https://github.com/macports/macports-ports/commit/e95b071b7bcc27eb2d972a285fa8a582fdb19689</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new e95b071b7bc ruby26: Fix build issues on 10.4, 10.5.
</span>e95b071b7bc is described below
<span style='display:block; white-space:pre;color:#808000;'>commit e95b071b7bcc27eb2d972a285fa8a582fdb19689
</span>Author: Fred Wright <fw@fwright.net>
AuthorDate: Thu Sep 16 15:12:12 2021 -0700
<span style='display:block; white-space:pre;color:#404040;'> ruby26: Fix build issues on 10.4, 10.5.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> This includes a patch for some OS version issues common to earlier
</span><span style='display:block; white-space:pre;color:#404040;'> Ruby versions:
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> The OS version conditional in dln.c is comparing an undefined macro to
</span><span style='display:block; white-space:pre;color:#404040;'> a sometimes undefined (and essentially useless) macro. However, the
</span><span style='display:block; white-space:pre;color:#404040;'> relevant code doesn't seem to be built for any OS version, making the
</span><span style='display:block; white-space:pre;color:#404040;'> bug irrelevant. Nevertheless, it's now fixed, since another, similar
</span><span style='display:block; white-space:pre;color:#404040;'> fix was needed, anyway, and it might become relevant if something else
</span><span style='display:block; white-space:pre;color:#404040;'> changes.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> The OS version conditionals in error.c were using another useless
</span><span style='display:block; white-space:pre;color:#404040;'> macro for the comparison, this time with a real effect, though only in
</span><span style='display:block; white-space:pre;color:#404040;'> a couple of messages related to crash reports on < 10.6. This is now
</span><span style='display:block; white-space:pre;color:#404040;'> fixed.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> It also includes an updated patch for a 10.4 issue:
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> The context register naming issue on 10.4 was sort of fixed upstream
</span><span style='display:block; white-space:pre;color:#404040;'> but tied to an inappropriate config flag. The patched version uses an
</span><span style='display:block; white-space:pre;color:#404040;'> SDK version macro to make the decision.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> A newly discovered issue, common to some older Ruby versions, is:
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> The 10.5 x86_64 build fails if libunwind-headers is active. Since
</span><span style='display:block; white-space:pre;color:#404040;'> this is an unusual configuration, and the need for libunwind-headers
</span><span style='display:block; white-space:pre;color:#404040;'> seems to be waning, it's not worth fixing "right". This just adds the
</span><span style='display:block; white-space:pre;color:#404040;'> usual failure for such cases. It's unknown why this only affects 10.5
</span><span style='display:block; white-space:pre;color:#404040;'> x86_64 (and perhaps 10.4 x86_64, though that's untested).
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> The remaining issues were new in ruby26:
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> The syntax-checking compiler invocations in transform_mjit_header.rb
</span><span style='display:block; white-space:pre;color:#404040;'> require a C99 or later compiler, but don't include compiler flags from
</span><span style='display:block; white-space:pre;color:#404040;'> the build. There's code to detect the non-C99 case and add -std=c99
</span><span style='display:block; white-space:pre;color:#404040;'> to the real uses, but it relies on matching the error message from the
</span><span style='display:block; white-space:pre;color:#404040;'> test case. Recent versions of gcc use locale-dependent quotes which
</span><span style='display:block; white-space:pre;color:#404040;'> may break such comparisons, depending on the current locale settings.
</span><span style='display:block; white-space:pre;color:#404040;'> The fix recommended by gcc documentation is to run it with LC_ALL=C to
</span><span style='display:block; white-space:pre;color:#404040;'> get traditional ASCII quotes. This adds code to apply that
</span><span style='display:block; white-space:pre;color:#404040;'> environment to the compiler test invocation.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> For some strange reason, using gcc-4.2 for Ruby's coroutine-related
</span><span style='display:block; white-space:pre;color:#404040;'> assembler code on x86_64 passes "-arch i386" to the assembler, thereby
</span><span style='display:block; white-space:pre;color:#404040;'> causing failures on x86_64 register references. To fix that, cases
</span><span style='display:block; white-space:pre;color:#404040;'> with gcc-4.2 and x86_64 targeted now pass the correct architecture in
</span><span style='display:block; white-space:pre;color:#404040;'> ASFLAGS.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Also corrects a small typo in the description.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Also fixes some lint errors in the Portfile.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Since this affects the installed code for < 10.6, it includes a
</span><span style='display:block; white-space:pre;color:#404040;'> revbump.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Universal builds still fail on 10.4 i386 due to a weird configure bug,
</span><span style='display:block; white-space:pre;color:#404040;'> and 10.4 ppc has broken universal dependencies.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> TESTED:
</span><span style='display:block; white-space:pre;color:#404040;'> Built -universal on 10.4-10.5 ppc, 10.4-10.6 i386, and 10.6-10.15
</span><span style='display:block; white-space:pre;color:#404040;'> x86_64. Built +universal on 10.5-10.13.
</span>---
lang/ruby26/Portfile | 38 +++++++++++++++++++++++++++------
lang/ruby26/files/patch-c99check.diff | 13 +++++++++++
lang/ruby26/files/patch-osversions.diff | 32 +++++++++++++++++++++++++++
lang/ruby26/files/patch-tiger.diff | 24 +++++++++++++++++++++
4 files changed, 100 insertions(+), 7 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/ruby26/Portfile b/lang/ruby26/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 3b9ed702c1a..073ddf1cc89 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/ruby26/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/ruby26/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5,7 +5,7 @@ PortGroup select 1.0
</span>
name ruby26
version 2.6.8
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 2
</span>
categories lang ruby
maintainers {kimuraw @kimuraw} openmaintainer
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -16,7 +16,7 @@ long_description Ruby is the interpreted scripting language for quick \
</span> and easy object-oriented programming. It has many \
features to process text files and to do system \
management tasks (as in Perl). It is simple, \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- straight-forward, extensible, and portable.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ straightforward, extensible, and portable.
</span>
homepage https://www.ruby-lang.org/
license {Ruby BSD}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -29,7 +29,8 @@ dist_subdir ruby26
</span> checksums md5 c53761123d17e929cfe248f50429bcab \
rmd160 734337856050cb238e0b81280364b614ee02b56d \
sha1 7d38cacb6a0779f04b9f19f94406da97e95bbec4 \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- sha256 dac96ca6df8bab5a6fc7778907f42498037f8ce05b63d20779dce3163e9fafe6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 dac96ca6df8bab5a6fc7778907f42498037f8ce05b63d20779dce3163e9fafe6 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 14131671
</span>
use_parallel_build no
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -59,12 +60,20 @@ configure.args --enable-shared \
</span> # patch-configure_cxx11.diff: fix "invalid suffix on literal" with C++11
# from RUBY_ARCH and RUBY_PLATFORM in config.h
# https://trac.macports.org/ticket/58255
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# Note that this patches the output of autoconf, rather than the input, but
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# at present, rerunning autonconf produces a broken configure.
</span> patchfiles patch-configure_cxx11.diff
# Fix test failure at ext/fiddle
patchfiles-append patch-test-fiddle-helper.rb.diff
# avoid build error with apple clang 12 (implicit declaration of function)
# https://bugs.ruby-lang.org/issues/17777
patchfiles-append patch-ruby_issue_17777.diff
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# Fix build on 10.4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append patch-tiger.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Fix build on < 10.6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append patch-osversions.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Fix build with pre-C99 compilers and some locale settings
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append patch-c99check.diff
</span>
# [NOTE] workaround for mismatch of sdk versions on macOS 11.x,
# such as MacOSX11.0.sdk (buildbot) <=> MacOSX11.1.sdk (user's Mac).
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -77,11 +86,11 @@ post-build {
</span> # rewrite MacOSX11.1.sdk -> MacOSX.sdk in rbconfig.rb
file copy ${worksrcpath}/rbconfig.rb ${worksrcpath}/rbconfig.rb.orig
reinplace -E -q {s|(/MacOSX)[0-9\.]+(\.sdk[\'\"]?[[:blank:]])|\1\2|g} \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- ${worksrcpath}/rbconfig.rb \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ${worksrcpath}/ruby-2.6.pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${worksrcpath}/rbconfig.rb \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${worksrcpath}/ruby-2.6.pc
</span> reinplace -E -q {s|(/MacOSX)[0-9\.]+(\.sdk[\'\"]?)$|\1\2|g} \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- ${worksrcpath}/rbconfig.rb \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ${worksrcpath}/ruby-2.6.pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${worksrcpath}/rbconfig.rb \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${worksrcpath}/ruby-2.6.pc
</span> }
}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -163,6 +172,21 @@ platform darwin {
</span> configure.cflags-append -std=c99
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Xcode gcc 4.2 building x86_64 assembler code passes "-arch i386" to the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # assembler, breaking x86_64 builds, unless we override it.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[string match *gcc-4.2 ${configure.compiler}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ && "x86_64" in [get_canonical_archs]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.env-append ASFLAGS=[get_canonical_archflags]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Building for 10.5 x86_64 fails if libunwind-headers is active.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # It's unknown why only this one case fails.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${os.major} == 9 && "x86_64" in [get_canonical_archs]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PortGroup conflicts_build 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ conflicts_build-append libunwind-headers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> if {${os.major} == 8} {
configure.cppflags-append -DCPU_SUBTYPE_MASK=0xff000000
}
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/ruby26/files/patch-c99check.diff b/lang/ruby26/files/patch-c99check.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..20feab7766c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/ruby26/files/patch-c99check.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- tool/transform_mjit_header.rb.orig 2021-07-07 03:38:58.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ tool/transform_mjit_header.rb 2021-08-17 16:03:15.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -176,7 +176,9 @@ module MJITHeader
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def self.conflicting_types?(code, cc, cflags)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_code(code) do |path|
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cmd = "#{cc} #{cflags} #{path}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- out = IO.popen(cmd, err: [:child, :out], &:read)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # As per gcc docs, set LC_ALL=C to avoid curly quotes in messages
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ cmd_env = {"LC_ALL" => "C"}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ out = IO.popen(cmd_env, cmd, err: [:child, :out], &:read)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ !$?.success? &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (out.match?(/error: conflicting types for '[^']+'/) ||
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ out.match?(/error: redefinition of parameter '[^']+'/))
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/ruby26/files/patch-osversions.diff b/lang/ruby26/files/patch-osversions.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..7750a85a75a
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/ruby26/files/patch-osversions.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,32 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ./dln.c.orig 2021-07-07 03:38:58.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ./dln.c 2021-08-17 19:39:02.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1347,8 +1347,7 @@ dln_load(const char *file)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (dln_incompatible_library_p(handle)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # if defined __APPLE__ && \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- defined(MAC_OS_X_VERSION_MIN_REQUIRED) && \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_11)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 101100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* dlclose() segfaults */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rb_fatal("%s - %s", incompatible, file);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ./error.c.orig 2021-07-07 03:38:58.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ./error.c 2021-08-17 19:39:02.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -478,7 +478,7 @@ preface_dump(FILE *out)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "-- Crash Report log information "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "--------------------------------------------\n"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ " See Crash Report log file under the one of following:\n"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# if MAC_OS_X_VERSION_MIN_REQUIRED < 1060
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ " * ~/Library/Logs/CrashReporter\n"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ " * /Library/Logs/CrashReporter\n"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -503,7 +503,7 @@ postscript_dump(FILE *out)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "[IMPORTANT]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /*" ------------------------------------------------"*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "\n""Don't forget to include the Crash Report log file under\n"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# if MAC_OS_X_VERSION_MIN_REQUIRED < 1060
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "CrashReporter or "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "DiagnosticReports directory in bug reports.\n"
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/ruby26/files/patch-tiger.diff b/lang/ruby26/files/patch-tiger.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..b27b338fdb2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/ruby26/files/patch-tiger.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,24 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ./signal.c.orig 2021-07-07 03:38:58.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ./signal.c 2021-09-15 19:38:08.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -862,7 +862,8 @@ check_stack_overflow(int sig, const uint
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const greg_t bp = mctx->gregs[REG_EBP];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # elif defined __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# if __DARWIN_UNIX03
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# if MAC_OS_X_VERSION_MAX_ALLOWED >= 1050
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # define MCTX_SS_REG(reg) __ss.__##reg
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # define MCTX_SS_REG(reg) ss.reg
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ./vm_dump.c.orig 2021-07-07 03:38:58.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ./vm_dump.c 2021-09-15 19:38:08.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -411,7 +411,8 @@ rb_vmdebug_thread_dump_state(VALUE self)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if defined __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# if __DARWIN_UNIX03
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# if MAC_OS_X_VERSION_MAX_ALLOWED >= 1050
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # define MCTX_SS_REG(reg) __ss.__##reg
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # define MCTX_SS_REG(reg) ss.reg
</span></pre><pre style='margin:0'>
</pre>