Support for unreleased beta apple operating systems (was Support for ancient machines and operating systems)

Ken Cunningham ken.cunningham.webuse at gmail.com
Tue Jan 9 04:31:05 UTC 2024


I think you just don't realize the wreckage you've done.

Here is one of hundreds of your typical commits, although this is a simpler one than most, to be honest.

The commit below has no purpose other than to allow the port to build as PPC on 10.6. And as that is really only of interest on 10.6-for-PPC, it is specifically for that. You say you want to support "Rosetta" but nobody builds for PPC on 10.6.

Here, you've reordered a few instructions, and blocked out some code from running on PPC (presumably because the instructions don't exist on 10.6-for-PPC so it wouldn't compile). 

However, this changes the code. And it's not simple code, it is complicated code. Does this change the function of the code? Would it still work properly on 10.6 Intel? Does it work at all on 10.6 for PPC? Who can tell? I certainly don't think you have the experience to know. I can't eyeball it as being fine.

It used to say:

tcmalloc_zone.version = 6;
tcmalloc_zone.free_definite_size = &mz_free_definite_size;
tcmalloc_zone.memalign = &mz_memalign;
tcmalloc_introspection.zone_locked = &mi_zone_locked;

and now it says (I think) on Intel:

tcmalloc_zone.version = 6;
tcmalloc_zone.memalign = &mz_memalign;
tcmalloc_zone.free_definite_size = &mz_free_definite_size;
tcmalloc_introspection.zone_locked = &mi_zone_locked;

and on 10.6-PPC you just get this:

tcmalloc_zone.version = 6;
tcmalloc_zone.memalign = &mz_memalign;

Does reordering those statements change the function? Does it work at all with the two statements removed? It would take me considerable reading to find out. It took me 10 minutes just to figure out what your patch did.

And now there it sits in the ports tree, a useless MacPorts-only patch, just waiting to break something. Some poor sot might bring an issue to upstream about this, having no idea that this is not even upstream's code any more.

And there are HUNDREDS of these all throughout the codebase that need to be all stripped out.

This is unfortunately a huge mess now.

K




https://github.com/macports/macports-ports/commit/418232ebb3d0e68579364c6246de4464f8f494c9

======
--- src/libc_override_osx.h.orig 2021-12-13 14:28:06.000000000 +0800
+++ src/libc_override_osx.h 2023-01-19 20:14:36.000000000 +0800
@@ -276,9 +276,11 @@
MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
// Switch to version 6 on OSX 10.6 to support memalign.
tcmalloc_zone.version = 6;
- tcmalloc_zone.free_definite_size = &mz_free_definite_size;
tcmalloc_zone.memalign = &mz_memalign;
+#ifndef __POWERPC__
+ tcmalloc_zone.free_definite_size = &mz_free_definite_size;
tcmalloc_introspection.zone_locked = &mi_zone_locked;
+#endif

// Request the default purgable zone to force its creation. The
// current default zone is registered with the purgable zone for
=========



> On Jan 8, 2024, at 9:50 AM, Sergey Fedorov <vital.had at gmail.com> wrote:
> 
> Here we go again.
> 
> 1. To begin with, nobody is submitting 10A190-specific fixes to Macports. They are sitting in my local repo. Please, do not mislead people who are unaware of the matter.
> 
> 2. Standard 10.6.8 release from Apple does support building and running ppc binaries via Rosetta. Nothing unreleased or, as you [mis]frame, “stolen”.
> While I think your opposition is completely unjustified, there has been no demands or even active discussion about supporting pre-released builds on 10.6. The point is supporting officially released 10.6.8.
> 
> 3. If anyone did wonder, the whole issue with 10A190 is literally ~20 ports altogether, and those fixes amount to a few lines of code to adjust a few assumptions re SDK. Despite it being portrayed as something like half of the Macports tree is broken and needs tailored hacks which gonna break everything. This is nowhere the case.
> However, as I said above, nobody demanded 10A190 being supported in the master. Nobody commits 10A190-specific fixups.
> 
> 4. > “The problem was that there were many fragile and sharply increasing *specific* workarounds added into the ports tree solely to support running this PowerPC beta on MacPorts”.
> 
> This accusation keeps being repeated, but it is simply not true. You will not be able to show multiple specific workarounds for 10A190 in Macports master. They are not there.
> There were a few specific fixes for standard 10.6.8 Rosetta, largely because the makefile build system misdetects the arch. They are not numerous either, and verily not sharply increasing.
> 
> It will be great not to keep repeating false statements targeting those who are unaware of the facts.
> 



More information about the macports-dev mailing list