--- compiler/systems/t_darwin.pas	2021-04-10 19:02:51.000000000 +0800
+++ compiler/systems/t_darwin.pas	2024-01-30 20:32:02.000000000 +0800
@@ -174,6 +174,10 @@
                       if (target_info.system in [system_i386_darwin,system_x86_64_darwin]) and
                          (CompareVersionStrings(MacOSXVersionMin,'10.6')>=0) then
                         exit('crt1.10.6.o');
+                      { follow gcc: use crt1.10.5.o when building for ppc }
+                      if (target_info.system in [system_powerpc_darwin]) and
+                         (CompareVersionStrings(MacOSXVersionMin,'10.6')>=0) then
+                        exit('crt1.10.5.o');
                       if CompareVersionStrings(MacOSXVersionMin,'10.5')>=0 then
                         exit('crt1.10.5.o');
                     end;
@@ -228,10 +232,11 @@
                   system_i386_darwin,
                   system_x86_64_darwin:
                     begin
-                      { < 10.6: bundle1.o
-                        >= 10.6: nothing }
-                      if CompareVersionStrings(MacOSXVersionMin,'10.6')>=0 then
-                        exit('');
+                      { x86: 10.6: nothing
+                        otherwise: bundle1.o }
+                      if (target_info.system in [system_i386_darwin,system_x86_64_darwin]) and
+                         (CompareVersionStrings(MacOSXVersionMin,'10.6')>=0) then
+                        exit('');
                     end;
                   system_arm_ios,
                   system_aarch64_ios:
@@ -263,12 +268,16 @@
                   system_i386_darwin,
                   system_x86_64_darwin:
                     begin
-                      { >= 10.6: nothing
-                        = 10.5: dylib1.10.5.o
+                      { x86: >= 10.6: nothing
+                        Rosetta and 10.5: dylib1.10.5.o
                         < 10.5: dylib1.o
                       }
-                      if CompareVersionStrings(MacOSXVersionMin,'10.6')>=0 then
+                      if (target_info.system in [system_i386_darwin,system_x86_64_darwin]) and
+                         (CompareVersionStrings(MacOSXVersionMin,'10.6')>=0) then
                         exit('');
+                      if (target_info.system in [system_powerpc_darwin]) and
+                         (CompareVersionStrings(MacOSXVersionMin,'10.6')>=0) then
+                        exit('dylib1.10.5.o');
                       if CompareVersionStrings(MacOSXVersionMin,'10.5')>=0 then
                         exit('dylib1.10.5.o');
                     end;

--- compiler/options.pas	2021-05-01 22:09:57.000000000 +0800
+++ compiler/options.pas	2024-01-30 21:22:26.000000000 +0800
@@ -956,8 +956,8 @@
   case target_info.system of
     system_powerpc_darwin:
       begin
-        set_system_compvar('MAC_OS_X_VERSION_MIN_REQUIRED','1030');
-        MacOSXVersionMin:='10.3.0';
+        set_system_compvar('MAC_OS_X_VERSION_MIN_REQUIRED','1040');
+        MacOSXVersionMin:='10.4.0';
       end;
     system_powerpc64_darwin:
       begin
