<pre style='margin:0'>
Perry E. Metzger (pmetzger) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/780393238ec4a8b9fd9a2e1cac273da012dd1616">https://github.com/macports/macports-ports/commit/780393238ec4a8b9fd9a2e1cac273da012dd1616</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 780393238ec iv: new port in devel
</span>780393238ec is described below
<span style='display:block; white-space:pre;color:#808000;'>commit 780393238ec4a8b9fd9a2e1cac273da012dd1616
</span>Author: Sergey Fedorov <vital.had@gmail.com>
AuthorDate: Sun Feb 4 04:49:22 2024 +0800
<span style='display:block; white-space:pre;color:#404040;'> iv: new port in devel
</span>---
devel/iv/Portfile | 97 ++++++++++++++
devel/iv/files/patch-do-not-fetch-tools.diff | 8 ++
devel/iv/files/patch-gc-arm64.diff | 193 +++++++++++++++++++++++++++
devel/iv/files/patch-lv5.diff | 21 +++
devel/iv/files/patch-static-liblv5.diff | 26 ++++
5 files changed, 345 insertions(+)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/iv/Portfile b/devel/iv/Portfile
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..f40c7a113dd
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/iv/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,97 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortSystem 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup cmake 1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup compiler_blacklist_versions 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup github 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.setup Constellation iv 64c3a9c7c517063f29d90d449180ea8f6f4d946f
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version 2015.03.24
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+categories devel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license BSD
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers {@barracuda156 gmail.com:vital.had} openmaintainer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description ${name} is ECMA262 5.1 lexer and parser and engine project
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long_description {*}${description} written in C++/JS.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums rmd160 8a5446eedf849aede8c7610fcdb39922f30805f6 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 f001266dd3a365e7ac3e7eb12fb77629177f58707d7e7e7a94a9de76d9c80b8c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 9268616
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.tarball_from archive
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles patch-lv5.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patch-do-not-fetch-tools.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# FIXME: building on aarch64 is fixed now, but binary still complains on launch:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://github.com/Constellation/iv/issues/107
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Also, ideally we would want to build against our boehmgc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# but as of now it fails with undefined symbols:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# GC_throw_bad_alloc() etc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://github.com/Constellation/iv/pull/109
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append patch-gc-arm64.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://github.com/Constellation/iv/pull/110
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append patch-static-liblv5.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace "s|__PREFIX__|${prefix}|" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${worksrcpath}/iv/lv5/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace "s|__ARCH__|${configure.build_arch}|" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${worksrcpath}/iv/lv5/CMakeLists.txt
</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 {${os.platform} eq "darwin" && ${os.major} < 14} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_build-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:git
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ git.cmd ${prefix}/bin/git
</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;'>+compiler.cxx_standard 2011
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.blacklist-append {clang}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DJIT=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DLTO=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${os.platform} eq "darwin" && ${os.major} > 21} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.cppflags-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -D_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION
</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;'>+# https://github.com/Constellation/iv/issues/104
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${configure.build_arch} in [list arm i386 ppc]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DM32=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[string match *gcc* ${configure.compiler}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.ldflags-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -latomic
</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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+platform powerpc {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DLTO=ON -DLTO=OFF
</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;'>+universal_variant no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ copy ${cmake.build_dir}/iv/lv5/lv5 ${destroot}${prefix}/bin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach f {iv/lv5/liblv5.a \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ iv/lv5/third_party/gc/libgc-lib.a \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ iv/lv5/third_party/gc/libgcmt-dll.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ iv/lv5/third_party/gc/libgcmt-lib.a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ iv/lv5/third_party/netlib_dtoa/libnetlib_dtoa.a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ iv/lv5/third_party/v8_dtoa/libv8_dtoa.a} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ copy ${cmake.build_dir}/${f} ${destroot}${prefix}/lib
</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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# FIXME: there is a failure in the second batch of tests on PowerPC:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://github.com/Constellation/iv/issues/106
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Note: use gdb-apple to debug, since native gdb is useless here due to:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://gcc-help.gcc.gnu.narkive.com/sI2gcsUK/what-does-dwarf-error-cannot-find-type-of-die-mean
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+test.run yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+test.cmd ${cmake.build_dir}/iv/lv5/third_party/gc/tests/gctest \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ && ${cmake.build_dir}/iv/test/iv_unit_tests \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ && ${cmake.build_dir}/iv/lv5/test/lv5_unit_tests
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+test.target
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/iv/files/patch-do-not-fetch-tools.diff b/devel/iv/files/patch-do-not-fetch-tools.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..4ead5e88c89
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/iv/files/patch-do-not-fetch-tools.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- CMakeLists.txt 2015-03-24 13:21:53.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ CMakeLists.txt 2023-12-21 17:19:07.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -167,4 +167,4 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ add_subdirectory(third_party/google-test)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ add_subdirectory(third_party/google-benchmark)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ add_subdirectory(iv)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-add_subdirectory(tools)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# add_subdirectory(tools)
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/iv/files/patch-gc-arm64.diff b/devel/iv/files/patch-gc-arm64.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..401129224cb
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/iv/files/patch-gc-arm64.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,193 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 2ffcdddf4a98c2d61a83e14d96a909ae99264fc9 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Sergey Fedorov <vital.had@gmail.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sun, 4 Feb 2024 01:58:18 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] gc: backport basic arm64 support for Darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/ivmai/bdwgc/commit/d5d091accae6046d2a5dadb283e110b31f4684bd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/ivmai/bdwgc/commit/0a8d46700a9d633ab8167c7781f314742630d186
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/ivmai/bdwgc/commit/02954567894bc270ffe7cb075448b56a706c9381
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+See: https://github.com/Constellation/iv/issues/107
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+darwin_stop_world.c: arm64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ iv/lv5/third_party/gc/darwin_stop_world.c | 48 ++++++++++++++++++-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../third_party/gc/include/private/gc_priv.h | 20 ++++----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .../third_party/gc/include/private/gcconfig.h | 29 ++++++++++-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ iv/lv5/third_party/gc/os_dep.c | 5 ++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 4 files changed, 91 insertions(+), 11 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git iv/lv5/third_party/gc/darwin_stop_world.c iv/lv5/third_party/gc/darwin_stop_world.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 14aa1d36..551eb898 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- iv/lv5/third_party/gc/darwin_stop_world.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ iv/lv5/third_party/gc/darwin_stop_world.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -53,13 +53,19 @@ GC_INNER ptr_t GC_FindTopOfStack(unsigned long stack_start)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ StackFrame *frame;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# ifdef POWERPC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# if defined(POWERPC) || defined(AARCH64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (stack_start == 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# ifdef POWERPC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # if CPP_WORDSZ == 32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ __asm__ __volatile__ ("lwz %0,0(r1)" : "=r" (frame));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ __asm__ __volatile__ ("ld %0,0(r1)" : "=r" (frame));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# elif defined(AARCH64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ volatile ptr_t sp_reg;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ __asm__ __volatile__ ("mov %0, x29\n" : "=r" (sp_reg));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ frame = (StackFrame *)sp_reg;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ GC_ASSERT(stack_start != 0); /* not implemented */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -248,6 +254,46 @@ STATIC ptr_t GC_stack_range_for(ptr_t *phi, thread_act_t thread, GC_thread p,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* GC_push_one(state.__pc); */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ GC_push_one(state.__cpsr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# elif defined(AARCH64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ lo = (void *)state.__sp;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# ifndef DARWIN_DONT_PARSE_STACK
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *phi = GC_FindTopOfStack(state.__sp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GC_push_one(state.__x[0]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GC_push_one(state.__x[1]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GC_push_one(state.__x[2]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GC_push_one(state.__x[3]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GC_push_one(state.__x[4]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GC_push_one(state.__x[5]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GC_push_one(state.__x[6]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GC_push_one(state.__x[7]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GC_push_one(state.__x[8]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GC_push_one(state.__x[9]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GC_push_one(state.__x[10]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GC_push_one(state.__x[11]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GC_push_one(state.__x[12]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GC_push_one(state.__x[13]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GC_push_one(state.__x[14]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GC_push_one(state.__x[15]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GC_push_one(state.__x[16]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GC_push_one(state.__x[17]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GC_push_one(state.__x[18]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GC_push_one(state.__x[19]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GC_push_one(state.__x[20]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GC_push_one(state.__x[21]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GC_push_one(state.__x[22]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GC_push_one(state.__x[23]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GC_push_one(state.__x[24]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GC_push_one(state.__x[25]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GC_push_one(state.__x[26]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GC_push_one(state.__x[27]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GC_push_one(state.__x[28]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GC_push_one(state.__fp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GC_push_one(state.__lr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* GC_push_one(state.__sp); */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* GC_push_one(state.__pc); */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* GC_push_one(state.__cpsr); */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # error FIXME for non-x86 || ppc || arm architectures
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git iv/lv5/third_party/gc/include/private/gc_priv.h iv/lv5/third_party/gc/include/private/gc_priv.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0ad92fc4..56fa0b71 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- iv/lv5/third_party/gc/include/private/gc_priv.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ iv/lv5/third_party/gc/include/private/gc_priv.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -587,16 +587,18 @@ GC_EXTERN GC_warn_proc GC_current_warn_proc;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # define GC_MACH_THREAD_STATE x86_THREAD_STATE64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # define GC_MACH_THREAD_STATE_COUNT x86_THREAD_STATE64_COUNT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# if defined(ARM32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# define GC_THREAD_STATE_T arm_thread_state_t
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# ifdef ARM_MACHINE_THREAD_STATE_COUNT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# define GC_MACH_THREAD_STATE ARM_MACHINE_THREAD_STATE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# define GC_MACH_THREAD_STATE_COUNT ARM_MACHINE_THREAD_STATE_COUNT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# error define GC_THREAD_STATE_T
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# elif defined(ARM32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define GC_THREAD_STATE_T arm_thread_state_t
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# ifdef ARM_MACHINE_THREAD_STATE_COUNT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define GC_MACH_THREAD_STATE ARM_MACHINE_THREAD_STATE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define GC_MACH_THREAD_STATE_COUNT ARM_MACHINE_THREAD_STATE_COUNT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# elif defined(AARCH64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define GC_THREAD_STATE_T arm_thread_state64_t
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define GC_MACH_THREAD_STATE ARM_THREAD_STATE64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define GC_MACH_THREAD_STATE_COUNT ARM_THREAD_STATE64_COUNT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# error define GC_THREAD_STATE_T
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # ifndef GC_MACH_THREAD_STATE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # define GC_MACH_THREAD_STATE MACHINE_THREAD_STATE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git iv/lv5/third_party/gc/include/private/gcconfig.h iv/lv5/third_party/gc/include/private/gcconfig.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c753cc2b..0df3551d 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- iv/lv5/third_party/gc/include/private/gcconfig.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ iv/lv5/third_party/gc/include/private/gcconfig.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -97,7 +97,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # if defined(__aarch64__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # define AARCH64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# if !defined(LINUX)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# if !defined(LINUX) && !defined(DARWIN)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # define NOSYS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # define mach_type_known
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -368,6 +368,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # define ARM32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # define mach_type_known
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # define DARWIN_DONT_PARSE_STACK
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# elif defined(__aarch64__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define AARCH64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define mach_type_known
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define DARWIN_DONT_PARSE_STACK
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # if defined(__rtems__) && (defined(i386) || defined(__i386__))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1998,6 +2002,29 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern char _end[];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # define DATAEND ((ptr_t)(&_end))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# ifdef DARWIN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* iOS */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define OS_TYPE "DARWIN"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# ifndef GC_DONT_REGISTER_MAIN_STATIC_DATA
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define DYNAMIC_LOADING
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define DATASTART ((ptr_t) get_etext())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define DATAEND ((ptr_t) get_end())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define STACKBOTTOM ((ptr_t) 0x16fdfffff)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# ifndef USE_MMAP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define USE_MMAP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define USE_MMAP_ANON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define MPROTECT_VDB
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# include <unistd.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define GETPAGESIZE() getpagesize()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* FIXME: There seems to be some issues with trylock hanging on */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* darwin. This should be looked into some more. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define NO_PTHREAD_TRYLOCK
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# ifndef NO_DYLD_BIND_FULLY_IMAGE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define NO_DYLD_BIND_FULLY_IMAGE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # ifdef NOSYS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* __data_start is usually defined in the target linker script. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern int __data_start[];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git iv/lv5/third_party/gc/os_dep.c iv/lv5/third_party/gc/os_dep.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 08c501df..2a124781 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- iv/lv5/third_party/gc/os_dep.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ iv/lv5/third_party/gc/os_dep.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4274,6 +4274,11 @@ STATIC kern_return_t GC_forward_exception(mach_port_t thread, mach_port_t task,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # define DARWIN_EXC_STATE_COUNT ARM_EXCEPTION_STATE_COUNT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # define DARWIN_EXC_STATE_T arm_exception_state_t
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # define DARWIN_EXC_STATE_DAR THREAD_FLD(far)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#elif defined(AARCH64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define DARWIN_EXC_STATE ARM_EXCEPTION_STATE64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define DARWIN_EXC_STATE_COUNT ARM_EXCEPTION_STATE64_COUNT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define DARWIN_EXC_STATE_T arm_exception_state64_t
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define DARWIN_EXC_STATE_DAR THREAD_FLD(far)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif defined(POWERPC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # if CPP_WORDSZ == 32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # define DARWIN_EXC_STATE PPC_EXCEPTION_STATE
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/iv/files/patch-lv5.diff b/devel/iv/files/patch-lv5.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..0286ec9da54
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/iv/files/patch-lv5.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,21 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- iv/lv5/CMakeLists.txt 2015-03-24 13:21:53.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ iv/lv5/CMakeLists.txt 2023-12-21 16:07:11.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3,7 +3,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # prelude
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ include(MergeStaticLibraries)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-set(CMAKE_OSX_ARCHITECTURES "x86_64")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set(CMAKE_OSX_ARCHITECTURES "__ARCH__")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ function(build_gc)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ add_subdirectory(third_party/gc)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -26,8 +26,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ third_party/v8_dtoa
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ third_party/gc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-link_directories_if_exists(/usr/local/lib)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-link_directories_if_exists(/opt/local/lib)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++link_directories_if_exists(__PREFIX__/lib)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ add_definitions("-DGC_NOT_DLL")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/iv/files/patch-static-liblv5.diff b/devel/iv/files/patch-static-liblv5.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..652355e9037
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/iv/files/patch-static-liblv5.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,26 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 9cd99f330a94e4cd68eeee53525f13d9b7b9648a Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Sergey Fedorov <vital.had@gmail.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sun, 4 Feb 2024 03:17:36 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 2/2] Fix static liblv5
</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;'>+ iv/lv5/CMakeLists.txt | 4 ++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 2 insertions(+), 2 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git iv/lv5/CMakeLists.txt iv/lv5/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e4ba404b..3c0b3e4f 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- iv/lv5/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ iv/lv5/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -72,10 +72,10 @@ add_library(liblv5 STATIC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ radio/core.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set_target_properties(liblv5 PROPERTIES PREFIX "")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-mz_merge_static_libraries(liblv5 ALL gc-lib v8_dtoa netlib_dtoa)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# mz_merge_static_libraries(liblv5 ALL gc-lib v8_dtoa netlib_dtoa)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ add_dependencies(liblv5 gc-lib v8_dtoa netlib_dtoa)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-set(LV5_LIBRARIES liblv5 ${IV_LIBRARIES})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set(LV5_LIBRARIES liblv5 gc-lib v8_dtoa netlib_dtoa ${IV_LIBRARIES})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # lv5 shell
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span></pre><pre style='margin:0'>
</pre>