Opened 16 years ago

Closed 16 years ago

Last modified 15 years ago

#18214 closed enhancement (fixed)

muniversal portgroup uses host core2-apple-darwin

Reported by: ryandesign (Ryan Carsten Schmidt) Owned by: MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Priority: Normal Milestone:
Component: ports Version: 1.7.0
Keywords: universal Cc:
Port:

Description

When building universal on a PowerPC Mac, the muniversal portgroup uses the host core2-apple-darwin to build the Intel parts, but at least on my Power Mac G4 with Mac OS X 10.4.11 and Xcode 2.5, it doesn't know any such host. Here is the output I get from cairo @1.8.6_3:

universal: Running configure for architecture ppc
universal: Running configure for architecture i386
Error: Target org.macports.configure returned: configure failure: shell command " cd "/mp/var/macports/build/_Volumes_data_macports_ports_graphics_cairo/work/i386" && ./configure --prefix=/mp --disable-glitz --disable-xcb --enable-ft --enable-pdf --enable-png --enable-ps --enable-svg --enable-xlib --enable-xlib-xrender --with-x --disable-dependency-tracking --enable-quartz --enable-quartz-font --enable-quartz-image --host=core2-apple-darwin " returned error 1
Command output: configure: WARNING: If you wanted to set the --build type, don't use --host.
    If a cross compiler is detected then cross compile mode will be used.
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... build/install-sh -c -d
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for core2-apple-darwin-strip... no
checking for strip... strip
checking build system type... powerpc-apple-darwin8.11.0
checking host system type... Invalid configuration `core2-apple-darwin': machine `core2-apple' not recognized
configure: error: /bin/sh build/config.sub core2-apple-darwin failed

Error: Status 1 encountered during processing.

I get the same output from libiconv @1.12_2 if I use the original patch that was in #18190.

I had never heard of "core2-apple-darwin" before seeing it in the muniversal portgroup code, and searching Google, there are no hits for "core2-apple-darwin" except as part of the muniversal portgroup. Shouldn't it be "i686-apple-darwin" for which Google has thousands of results? If I change core2-apple-darwin to i686-apple-darwin in the muniversal portgroup, then I can build libiconv universal (2-way 32-bit) without needing to set merger_host in the libiconv portfile. Maybe that doesn't properly take 64-bit into account. So the portgroup should set host to i686-apple-darwin or x86_64-apple-darwin accordingly. All I know is "locate i686-apple-darwin" and "locate x86_64-apple-darwin" return plenty of results on my Power Mac whereas "locate core2-apple-darwin" returns none.

Change History (4)

comment:1 Changed 16 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Keywords: universal added
Status: newassigned
Type: defectenhancement

Since merger_host can always be set to override the default, the basic question seems to be:
what is the best default value for host on each architecture?

muniversal only sets the host value during PowerPC/Intel cross-compilation.

I see now that core2-apple-darwin was a bad default choice.
Almost every port will reject it.
gmp, however, uses it to create a better build than the more generic i386-apple-darwin.

In r46000, I changed the default host value for the different architectures to:

powerpc-apple-darwin
powerpc64-apple-darwin
i386-apple-darwin
x86_64-apple-darwin

Thanks for pointing this out.
Does this change satisfy your concerns?

comment:2 in reply to:  1 Changed 16 years ago by ryandesign (Ryan Carsten Schmidt)

Replying to mcalhoun@…:

Does this change satisfy your concerns?

It looks good, thanks. I'll test it soon.

comment:3 Changed 16 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Resolution: fixed
Status: assignedclosed

comment:4 Changed 15 years ago by jmroot (Joshua Root)

Component: baseports
Milestone: MacPorts Future
Note: See TracTickets for help on using tickets.