Opened 12 years ago

Closed 12 years ago

#34056 closed defect (fixed)

cmake @2.8.7 cannot be built as an universal binary for ppc and intel

Reported by: weltall2@… Owned by: jeremyhu (Jeremy Huddleston Sequoia)
Priority: Normal Milestone:
Component: ports Version: 2.0.4
Keywords: Cc: cssdev
Port: cmake

Description (last modified by ryandesign (Ryan Carsten Schmidt))

Due to a recent change to the cmake ports it's not possible to build cmake anymore as an universal binary.

This is the main.log:

version:1
:error:main cmake cannot be installed for the configured universal_archs 'i386 ppc' because it only supports the arch(s) 'i386 x86_64'.
:debug:main invalid command name "::ui_init"
    while executing
"::ui_init any stdout"
    ("eval" body line 1)
    invoked from within
"eval ::ui_init $priority $prefix $channels($priority) $args"
    ("uplevel" body line 2)
    invoked from within
"uplevel 1 $body"
:error:main Unable to upgrade port: 1
:notice:main To report a bug, see <http://guide.macports.org/#project.tickets>

Analyzing the port file it seems now only ppc+ppc64 and i386+x86_64 universal binaries are supported while ppc+i386 is not supported anymore.

This seems to be caused by this change: r91563

I don't know where this time out specified in the commit log is happening as the commit doesn't give much information, but for sure removing that code results in a perfectly successful build on MacOSX Tiger of an universal ppc+i386 binary. Maybe it would be better to disable this build only for the MacOSX version with this "time out" problem?

Change History (7)

comment:1 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: jeremyhu@… added; css@… removed
Description: modified (diff)
Keywords: cmake removed
Owner: changed from macports-tickets@… to css@…

The "Dev timeout" referenced in the commit message refers to our usual 72-hour response waiting period; if a maintainer has not responded to an inquiry within that time period, other committers, in this case Jeremy, can go ahead with the proposed changes anyway.

I'm Cc'ing Jeremy to explain why this change was made.

comment:2 Changed 12 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Owner: changed from css@… to jeremyhu@…

It failed to build x86_64/i386/ppc universal for me on Leopard/intel. Since cmake is a build tool and not a library, and ppc is pretty close to EOL, I decided to adjust the supported_archs rather than dive into the issue. I don't remember the exact error.

Does it actually *build* i386/ppc for you on Tiger? If so, I'll take a closer look, but it seemed to me that it was just broken and nobody ever hit it because it was such an obscure configuration.

comment:3 Changed 12 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Cc: css@… added; jeremyhu@… removed

comment:4 Changed 12 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Ok, the change log points to why...

The issue is that the ppc slice failed to run on Leopard/intel due to Rosetta bugs. If it actually builds and runs for you on Tiger, then perhaps we can re-enable i386/ppc on Tiger, but please verify that it actually builds...

comment:5 Changed 12 years ago by weltall2@…

yes it built fine here on tiger after removing those lines. I could try again if it's needed (and add a log).

comment:6 Changed 12 years ago by jeremyhu (Jeremy Huddleston Sequoia)

No that's fine. The issue on Leopard was just that it would hang indefinitely when running the ppc code. The build system doesn't cross-compile well and uses rosetta to run ppc-built binaries on intel. My guess is that this just tickles a bug in Leopard's Rosetta which will never be fixed... I'll update the logic to only do that on Leopard and newer.

comment:7 Changed 12 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.