<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/7b5bdea94420f3212dfd1e7c8050d4efc189256b">https://github.com/macports/macports-ports/commit/7b5bdea94420f3212dfd1e7c8050d4efc189256b</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 7b5bdea94420f3212dfd1e7c8050d4efc189256b
</span>Author: barracuda156 <vital.had@gmail.com>
AuthorDate: Tue Feb 6 11:36:25 2024 +0800

<span style='display:block; white-space:pre;color:#404040;'>    fpc: add support for PowerPC
</span>---
 lang/fpc/Portfile                 | 94 +++++++++++++++++++++++++++++++++++----
 lang/fpc/files/patch-powerpc.diff | 63 ++++++++++++++++++++++++++
 2 files changed, 148 insertions(+), 9 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/fpc/Portfile b/lang/fpc/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 1565abed95f..7b7115f6b27 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/fpc/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/fpc/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7,7 +7,9 @@ version             3.2.2
</span> categories          lang pascal
 platforms           macosx
 license             {GPL-2 LGPL-2}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-maintainers         {@kamischi web.de:karl-michael.schindler} openmaintainer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers         {@kamischi web.de:karl-michael.schindler} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    {@barracuda156 gmail.com:vital.had} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    openmaintainer
</span> description         Free Pascal, an open source Pascal and Object Pascal compiler.
 long_description    Free Pascal is a 32, 64 and 16 bit professional Pascal compiler. \
                     It can target many processor architectures: Intel x86 (including 8086), \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -15,22 +17,39 @@ long_description    Free Pascal is a 32, 64 and 16 bit professional Pascal compi
</span>                     Supported operating systems include Linux, FreeBSD, Mac OS X/iOS/iPhoneSimulator/Darwin, \
                     Win32, Win64, WinCE and Android.
 homepage            https://www.freepascal.org
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# TODO: add support for i386
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+supported_archs     x86_64 arm64 ppc ppc64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Bootstrap compiler version
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set boot_v          3.0.4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> master_sites        sourceforge:freepascal:main \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    ftp://ftp.freepascal.org/pub/fpc/dist/3.0.4/bootstrap/:bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    https://downloads.freepascal.org/fpc/dist/${boot_v}/bootstrap/:bootstrap \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    https://downloads.freepascal.org/fpc/dist/${boot_v}/powerpc-macosx/:bootstrap
</span> 
 set src             ${name}build-${version}.tar.gz
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# the 3.0.4 bootstrap compiler
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set pp              x86_64-macosx-10.9-ppcx64.tar.bz2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-distfiles           ${src}:main ${pp}:bootstrap
</span> checksums           ${src} \
                     rmd160  3106b4aff1adc4cd08dfdd39cc3ef4e800888255 \
                     sha256  85ef993043bb83f999e2212f1bca766eb71f6f973d362e2290475dbaaf50161f \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    size    84195619 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    84195619
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# PowerPC compiler is only available as a dmg
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${configure.build_arch} in [list ppc ppc64]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set pp          fpc-${boot_v}.powerpc-macosx.dmg
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    checksums-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    ${pp} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    rmd160  c1dbe7fb71382a69146023b2cdac768e05fea8e3 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  587a6ae199d2fb992794c6b4ff9a7aa0c4646687ed5bbab5a6c96bdc322ba53c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    98748823
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set pp          x86_64-macosx-10.9-ppcx64.tar.bz2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    checksums-append \
</span>                     ${pp} \
                     rmd160  7c5327aa6f4fd8616d78bc4f708463b9fb3e8844 \
                     sha256  0515ad4251c51fa7e5c0ff9b1d90ea50f41530b56276cc72b73798fae437b3b4 \
                     size    1556308
<span style='display:block; white-space:pre;background:#ffe0e0;'>-supported_archs     x86_64 arm64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+distfiles           ${src}:main ${pp}:bootstrap
</span> 
 # doesn't install shared libraries
 installs_libs       no
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -233,7 +252,20 @@ if {${subport} eq "${name}"} {
</span> 
     installs_libs       yes
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    extract.only-append ${pp}
</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;'>+        post-extract {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            xinstall -d ${workpath}/tmp/boot
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            system "hdiutil attach ${distpath}/${pp} -private -nobrowse -mountpoint ${workpath}/tmp/boot"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            copy ${workpath}/tmp/boot/${name}-${boot_v}.powerpc-macosx.pkg ${workpath}/pkg
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            system "hdiutil detach ${workpath}/tmp/boot -force"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            delete -force ${workpath}/tmp/boot
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            system -W ${workpath} "gunzip -d pkg/Contents/Archive.pax.gz"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            system -W ${workpath}/pkg "pax -r < Contents/Archive.pax"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            copy ${workpath}/pkg/usr/local/lib/${name}/${boot_v}/${bootstrapCompiler} ${workpath}
</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;'>+        extract.only-append ${pp}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span> 
     post-patch {
         # adjust the path "codfilepath" for plex from /usr/local to MacPort's prefix.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -254,6 +286,16 @@ if {${subport} eq "${name}"} {
</span>             set cpuTarget aarch64
             set compiler ppca64
         }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        ppc {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set bootstrapCompiler ppcppc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set cpuTarget powerpc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set compiler ppcppc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ppc64 {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set bootstrapCompiler ppcppc64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set cpuTarget powerpc64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set compiler ppcppc64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span>         default {
             set bootstrapCompiler unsupported
             set cpuTarget unsupported
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -266,6 +308,35 @@ if {${subport} eq "${name}"} {
</span>             set otherOptions "-WM11.0 -XR${configure.sdkroot}"
         } elseif {${os.major} >= 13} { # 10.9, Mavericks
             set otherOptions "-WM10.9"
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        } elseif {${configure.build_arch} in [list ppc ppc64]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # Relevant only for macOS PowerPC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            patchfiles-append patch-powerpc.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # On Tiger building is trivial
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {${os.major} == 8} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set otherOptions "-WM10.4"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                # At the moment linking fails for pas2js on 10.5 and 10.6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                # with the system or cctools ld. ld_classic works,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                # but it does not link against 10.5+ SDK. Therefore,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                # use 10.4 SDK for all PowerPC. See:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                # https://gitlab.com/freepascal.org/fpc/source/-/issues/40625
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                macosx_deployment_target 10.4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set tiger_sdkpath ${developer_dir}/SDKs/MacOSX10.4u.sdk
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                if {![file exists $tiger_sdkpath]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    pre-fetch {ui_error "Building ${name} @${version} requires 10.4 SDK"}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                # We use symlinks to needed tools, but make sure those
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                # have not been created already:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set binutils_path ${workpath}/bin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                pre-build {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    if {![file exists $binutils_path]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        xinstall -m 0755 -d ${workpath}/bin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        ln -s /usr/bin/as ${workpath}/bin/as
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        ln -s /usr/bin/ld_classic ${workpath}/bin/ld
</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;'>+                set otherOptions "-WM${macosx_deployment_target} -XR${tiger_sdkpath} -Fl=/usr/lib -FD${binutils_path}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            }
</span>         } else   {
             set otherOptions ""
         }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -313,11 +384,16 @@ if {${subport} eq "${name}"} {
</span> 
         # remove the -WM option for older systems or update it as needed
         if {${os.platform} eq "darwin"} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            if       {${os.major} < 11}   { # 10.7, Lion
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {${configure.build_arch} in [list ppc ppc64]} { # macOS PowerPC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                reinplace "s|-WM10.9|-WM10.4|g" ${destroot}${fpcbasepath}/etc/fpc.cfg
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            } elseif {${os.major} < 11}   { # 10.7, Lion
</span>                 reinplace "s|-WM10.9||g" ${destroot}${fpcbasepath}/etc/fpc.cfg
             } elseif {${os.major} >=  20} { # 11, Big Sur
                 reinplace "s|-WM10.9|-WM11.0|g" ${destroot}${fpcbasepath}/etc/fpc.cfg
             }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {${os.major} < 13} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                reinplace "s|/Applications/Xcode.app/Contents/Developer||g" ${destroot}${fpcbasepath}/etc/fpc.cfg
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            }
</span>         }
 
         # set prefix of search path for qt4pas
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/fpc/files/patch-powerpc.diff b/lang/fpc/files/patch-powerpc.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..cd781f37391
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/fpc/files/patch-powerpc.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,63 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- compiler/systems/t_darwin.pas  2021-04-10 19:02:51.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ compiler/systems/t_darwin.pas  2024-01-30 20:32:02.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -174,6 +174,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                       if (target_info.system in [system_i386_darwin,system_x86_64_darwin]) and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                          (CompareVersionStrings(MacOSXVersionMin,'10.6')>=0) then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                         exit('crt1.10.6.o');
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                      { follow gcc: use crt1.10.5.o when building for ppc }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                      if (target_info.system in [system_powerpc_darwin]) and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                         (CompareVersionStrings(MacOSXVersionMin,'10.6')>=0) then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                        exit('crt1.10.5.o');
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                       if CompareVersionStrings(MacOSXVersionMin,'10.5')>=0 then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                         exit('crt1.10.5.o');
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     end;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -228,10 +232,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   system_i386_darwin,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   system_x86_64_darwin:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     begin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                      { < 10.6: bundle1.o
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                        >= 10.6: nothing }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                      if CompareVersionStrings(MacOSXVersionMin,'10.6')>=0 then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                        exit('');
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                      { x86: 10.6: nothing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                        otherwise: bundle1.o }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                      if (target_info.system in [system_i386_darwin,system_x86_64_darwin]) and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                         (CompareVersionStrings(MacOSXVersionMin,'10.6')>=0) then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                        exit('');
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     end;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   system_arm_ios,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   system_aarch64_ios:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -263,12 +268,16 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   system_i386_darwin,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   system_x86_64_darwin:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     begin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                      { >= 10.6: nothing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                        = 10.5: dylib1.10.5.o
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                      { x86: >= 10.6: nothing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                        Rosetta and 10.5: dylib1.10.5.o
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                         < 10.5: dylib1.o
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                       }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                      if CompareVersionStrings(MacOSXVersionMin,'10.6')>=0 then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                      if (target_info.system in [system_i386_darwin,system_x86_64_darwin]) and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                         (CompareVersionStrings(MacOSXVersionMin,'10.6')>=0) then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                         exit('');
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                      if (target_info.system in [system_powerpc_darwin]) and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                         (CompareVersionStrings(MacOSXVersionMin,'10.6')>=0) then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                        exit('dylib1.10.5.o');
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                       if CompareVersionStrings(MacOSXVersionMin,'10.5')>=0 then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                         exit('dylib1.10.5.o');
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     end;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- compiler/options.pas   2021-05-01 22:09:57.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ compiler/options.pas   2024-01-30 21:22:26.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -956,8 +956,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   case target_info.system of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     system_powerpc_darwin:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       begin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        set_system_compvar('MAC_OS_X_VERSION_MIN_REQUIRED','1030');
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        MacOSXVersionMin:='10.3.0';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        set_system_compvar('MAC_OS_X_VERSION_MIN_REQUIRED','1040');
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        MacOSXVersionMin:='10.4.0';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       end;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     system_powerpc64_darwin:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       begin
</span></pre><pre style='margin:0'>

</pre>