Replies: 7 comments 23 replies
-
fred has updated driverdriver.c somewhat already, here: https://github.com/devernay/macportsGCCfixup/blob/master/driverdriver.c |
Beta Was this translation helpful? Give feedback.
-
@devernay looping you in |
Beta Was this translation helpful? Give feedback.
-
I would add ppc64 to the list of Darwin10 – not necessarily for Darwin10 PPC (which at the moment looks like a lost case for ppc64), but at least for Darwin10 Intel, in order to cross-compile binaries that would run on 10.6 PPC as 32-bit and on 10.5 as 64-bit. @Blzut3 mentions he could cross-build ppc64 binaries.
But is should work with SDKROOT=macosx10.5 which contains ppc64 code. |
Beta Was this translation helpful? Give feedback.
-
For low-volume situations, just building manually and lipoing yourself is very practical, and much much simpler. I have done this many times too (and which is in fact exactly what I have recommended to barracuda a few times when he is very stuck trying to make something happen in MacPorts that just won't happen transparently because driverdriver.c doesn't exist for newer gccs at present). But for a high-volume distro like MacPorts that is up into the millions of universal builds of 20,000+ ports on many thousands of different systems, something more standardized is needed. The muniversal PortGroup basically mimics the manual build-separately-and-lipo workflow, and certainly works in some cases. It is not presently set up to use different compilers in different build folders, so breaks down with gcc cross-processor builds at present. Having one compiler driver that can build either the separate archs individually, or both archs at once transparently, becomes essential to making this manageable. And it is also how clang works, so all the tooling in MacPorts and all the experience of the members and the contributors is down that path. So for MacPorts, for them to make this work, they would need to resuscitate driverdriver.c. |
Beta Was this translation helpful? Give feedback.
-
I can also dig out my driverdriver.sh (although that has no support for arm64 at present) |
Beta Was this translation helpful? Give feedback.
-
for a powerful starting point, possibly easier, just the ability to support one multlib gcc building i386/x86_64 or ppc/ppc64 would go a very long way to getting us going. |
Beta Was this translation helpful? Give feedback.
-
for fun, here’s the last such script from libsdl that supported ppc: https://github.com/SDL-mirror/SDL_ttf/blob/cc835c11e199995f228b3cf0e3f4d0a2760f616d/gcc-fat.sh |
Beta Was this translation helpful? Give feedback.
-
We now have several scenarios in which a FAT (multiple architecture slices in a binary) build is relevant;
Three avenues I've partially explored:
A* Apple's driverdriver.c: sadly, this became incompatible with the GCC codebase around GCC-4.X when the handling of command line options was shifted to a new scheme.
B* Somewhere I have a "poor mans driver-driver" (basically a shell script that does the same kind of things).
C* I have also considered using the clang driver code but arranging for it to use GCC instances as the toolchains (this should be possible).
A needs a bit of a re-write and then a check on reintegration.
B is, obviously, slow but easy to hack on
C means dragging in a huge codebase, and maintaining something out-of-tree, since I don't see that being something upstream will want.
So they are all possible ..
Beta Was this translation helpful? Give feedback.
All reactions