<pre style='margin:0'>
Christopher Nielsen (mascguy) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/e556b8b8b372d8d78aaad5d7ecaba720a39e2b4b">https://github.com/macports/macports-ports/commit/e556b8b8b372d8d78aaad5d7ecaba720a39e2b4b</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit e556b8b8b372d8d78aaad5d7ecaba720a39e2b4b
</span>Author: Sergey Fedorov <barracuda@macos-powerpc.org>
AuthorDate: Tue Jul 2 19:41:22 2024 +0800
<span style='display:block; white-space:pre;color:#404040;'> mozjs60: fix conditions for legacy systems patches
</span>---
lang/mozjs60/Portfile | 71 +++++++++++++++++++++++++++++----------------------
1 file changed, 40 insertions(+), 31 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/mozjs60/Portfile b/lang/mozjs60/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 19a08d81527..7cd17820a79 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/mozjs60/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/mozjs60/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -114,15 +114,50 @@ if {${universal_possible} && [variant_isset universal]} {
</span> }
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# Now for 10.4/10.5...
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if { ${os.platform} eq "darwin" && ${os.major} < 10 } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if { [string match *gcc* ${configure.compiler}] && ${configure.cxx_stdlib} ne "libc++" } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patch-libatomic.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patch-no-libc++.diff
</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" && ${configure.build_arch} in [list ppc ppc64] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # The C API is littered with bools and references to bools, so we need to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # make sure clients (including gjs and policykit) also use the magic flag.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # We do this via pkg-config and js-config; note that with this approach
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # there is some danger that distinct compilation units within the same
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # project may end up with different bool sizes (for example, if a project's
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Makefile only applies the result of `pkg-config --cflags` to source files
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # that actually consume <jsapi.h>), so some care is needed when compiling
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # against this library. The benefit of this approach is that projects using
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # pkg-config don't need to remember this flag, and well-designed projects
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # can "contain" one-byte bools and not have to expose them downstream.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patch-config-powerpc.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patch-powerpc.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Make structs size-compatible with Intel (fixes several static_asserts)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.cxxflags-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -mone-byte-bool
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ notes-append "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ In order to run on PowerPC, ${name} has been compiled with the special
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ compiler flag, -mone-byte-bool. Most users are unaffected; however, if you
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ are a software developer compiling against the SpiderMonkey C API (jsapi.h),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ you will need to add this compiler flag to your own projects, or prepare to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ encounter unexpected program behavior. The flag will be added automatically
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ to projects that use pkg-config or js-config."
</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;'>+# Now for 10.4/10.5 and Rosetta
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if { ${os.platform} eq "darwin" && ${os.major} < 10 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ || (${os.major} == 10 && ${configure.build_arch} eq "ppc") } {
</span>
patchfiles-append \
patch-malloc_default_purgeable_zone.diff \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- patch-no-libc++.diff \
</span> patch-js-shell.diff \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- patch-libatomic.diff \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- patch-powerpc.diff \
</span> patch-pthread_setname_np.diff
post-configure {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -145,32 +180,6 @@ if { ${os.platform} eq "darwin" && ${os.major} < 10 } {
</span> # disable ICU until someone wants to sort it out.
configure.args-append --without-intl-api
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[string match *gcc* ${configure.compiler}] && ${os.arch} eq "powerpc" } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Make structs size-compatible with Intel (fixes several static_asserts)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.cxxflags-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- -mone-byte-bool
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # The C API is littered with bools and references to bools, so we need to
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # make sure clients (including gjs and policykit) also use the magic flag.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # We do this via pkg-config and js-config; note that with this approach
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # there is some danger that distinct compilation units within the same
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # project may end up with different bool sizes (for example, if a project's
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Makefile only applies the result of `pkg-config --cflags` to source files
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # that actually consume <jsapi.h>), so some care is needed when compiling
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # against this library. The benefit of this approach is that projects using
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # pkg-config don't need to remember this flag, and well-designed projects
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # can "contain" one-byte bools and not have to expose them downstream.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- patchfiles-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- patch-config-powerpc.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- notes-append "
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- In order to run on PowerPC, ${name} has been compiled with the special
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- compiler flag, -mone-byte-bool. Most users are unaffected; however, if you
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- are a software developer compiling against the SpiderMonkey C API (jsapi.h),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- you will need to add this compiler flag to your own projects, or prepare to
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- encounter unexpected program behavior. The flag will be added automatically
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- to projects that use pkg-config or js-config."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span> }
livecheck.type none
</pre><pre style='margin:0'>
</pre>