<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>