#48857: gcc ports: support compiling multiple archs (universal) using the Apple GCC driver ---------------------------------+------------------------------------- Reporter: frederic.devernay@… | Owner: macports-tickets@… Type: enhancement | Status: new Priority: Normal | Milestone: Component: ports | Version: 2.3.3 Keywords: | Port: gcc46 gcc47 gcc48 gcc49 ---------------------------------+------------------------------------- Apple's gcc, llvm-gcc and clang have a nice feature, which is taht multiple archs can be specified on the same command-line (e.g. "-arch i386 -arch x86_64"). GNU's gcc, as installed by the gcc ports in MacPorts, doesn't have this feature, and thus most ports (actuall all non-muniversal ports) cannot be built universal using gcc. With the following enhancements, *all* ports could be built universal using a modern GNU gcc (with proper OpenMP support etc.) Actually, what apple did was to write a simple wrapper that calls gcc twice, and then lipo to merge the two objects. That driver can be compiled with modern gcc versions, and works very well. It's a single C file, called driverdriver.c, and can be found at: http://www.opensource.apple.com/source/gcc/gcc-5666.3/driverdriver.c?txt John Bower manage to modify and build that driver for GNU GCC, as installed by macports: http://thecoderslife.blogspot.fr/2015/07/building-with-gcc-46-and- xcode-4.html That blog article is about gcc 4.6, but I tested it with GCC 4.8 (built with +universal) and it works very well. I now have to binaries (gcc-mp and g++-mp) that behave exactly like Apple's GCC. His source code can be found at: https://github.com/jhnbwrs/macportsGCCfixup He added also building and installing configurations for Xcode, but we don't really need these (although that would be a bonus). The main improvement would be the driver. -- Ticket URL: <https://trac.macports.org/ticket/48857> MacPorts <https://www.macports.org/> Ports system for OS X