Обсуждение: Makefile support for Mac OS X Fat Binaries?
would the community accept a patch that would allow the making of 4-way fat binaries on Mac OS X 10.5+? (Obviously for 8.4+). I'm thinking about attempting it for an inside project here at work, but was wondering if there was community interest? Thanks! -- Larry Rosenman http://www.lerctr.org/~ler Phone: +1 512-248-2683 E-Mail: ler@lerctr.org US Mail: 430 Valona Loop, Round Rock, TX 78681-3893
Larry Rosenman <ler@lerctr.org> writes: > would the community accept a patch that would allow the making of 4-way fat > binaries on Mac OS X 10.5+? (Obviously for 8.4+). Depends on how big and ugly it is, I think. If you can do it just by hacking CFLAGS and friends, sure; if it's as invasive as the Windows build machinery, definitely not; in between, we'd have to see it. regards, tom lane
On Mon, 21 Jan 2008, Tom Lane wrote: > Larry Rosenman <ler@lerctr.org> writes: >> would the community accept a patch that would allow the making of 4-way fat >> binaries on Mac OS X 10.5+? (Obviously for 8.4+). > > Depends on how big and ugly it is, I think. If you can do it just by > hacking CFLAGS and friends, sure; if it's as invasive as the Windows > build machinery, definitely not; in between, we'd have to see it. I know I'm going to have to make a few lipo runs, and shell for-loops to make the different SUBSYS.o's. (ld by itself won't do it). I'll see how grotty it is, but I don't think it will be nearly as bad as the Windows machinery. > > regards, tom lane > -- Larry Rosenman http://www.lerctr.org/~ler Phone: +1 512-248-2683 E-Mail: ler@lerctr.org US Mail: 430 Valona Loop, Round Rock, TX 78681-3893
"Tom Lane" <tgl@sss.pgh.pa.us> writes: > Larry Rosenman <ler@lerctr.org> writes: >> would the community accept a patch that would allow the making of 4-way fat >> binaries on Mac OS X 10.5+? (Obviously for 8.4+). > > Depends on how big and ugly it is, I think. If you can do it just by > hacking CFLAGS and friends, sure; if it's as invasive as the Windows > build machinery, definitely not; in between, we'd have to see it. We've been through this once already. You can't do it (cleanly) with just Makefile hackery. The architectures have different endianness and possibly other ABI differences. To handle that cleanly you have to run configure once for each architecture and build each architecture with the appropriate config.h. -- Gregory Stark EnterpriseDB http://www.enterprisedb.com Ask me about EnterpriseDB's On-Demand Production Tuning
On Tue, 22 Jan 2008, Gregory Stark wrote: > > "Tom Lane" <tgl@sss.pgh.pa.us> writes: > >> Larry Rosenman <ler@lerctr.org> writes: >>> would the community accept a patch that would allow the making of 4-way fat >>> binaries on Mac OS X 10.5+? (Obviously for 8.4+). >> >> Depends on how big and ugly it is, I think. If you can do it just by >> hacking CFLAGS and friends, sure; if it's as invasive as the Windows >> build machinery, definitely not; in between, we'd have to see it. > > We've been through this once already. You can't do it (cleanly) with just > Makefile hackery. The architectures have different endianness and possibly > other ABI differences. To handle that cleanly you have to run configure once > for each architecture and build each architecture with the appropriate > config.h. > Could we then combine the executables into one 4-way fat binary ? I'll see what I come up with. > -- Larry Rosenman http://www.lerctr.org/~ler Phone: +1 512-248-2683 E-Mail: ler@lerctr.org US Mail: 430 Valona Loop, Round Rock, TX 78681-3893
Larry Rosenman <ler@lerctr.org> writes: > On Tue, 22 Jan 2008, Gregory Stark wrote: >> We've been through this once already. You can't do it (cleanly) with just >> Makefile hackery. The architectures have different endianness and possibly >> other ABI differences. To handle that cleanly you have to run configure once >> for each architecture and build each architecture with the appropriate >> config.h. >> > Could we then combine the executables into one 4-way fat binary ? Maybe you need to be thinking about a script that is "outside" the build system: run the configure/make/make install process 4 times, then combine the results. You could use the fact that some file is not the same in all 4 install trees as the trigger driving a combination process. (Shades of multilib RPMs ...) regards, tom lane