Opened 7 years ago

Closed 7 years ago

Last modified 7 years ago

#53144 closed defect (fixed)

libmacho @895 fails to build because GCC is not universal variant

Reported by: ballapete (Peter "Pete" Dyballa) Owned by: jeremyhu (Jeremy Huddleston Sequoia)
Priority: Normal Milestone:
Component: ports Version:
Keywords: tiger, universal Cc: jeremyhu@…, ballapete (Peter "Pete" Dyballa), ryandesign (Ryan Carsten Schmidt)
Port: libmacho

Description

That's my assumption…

Installed are

  apple-gcc42 @5666.3_15+gpl3 (active)
  libmacho @886_0 (active)

Their variants are

apple-gcc42 has the variants:
   bootstrap: Variant to break a dependency cycle on Tiger by first building an apple-gcc42 using host ld and cctools
   gpl3: Merge in changes from gcc-4.2.4
   universal: Build for multiple architectures
libmacho has the variants:
[+]universal: Build for multiple architectures

The error is:

:info:build gcc-apple-4.2: error trying to exec '/opt/local/bin/i686-apple-darwin8-gcc-apple-4.2.4': execvp: No such file or directory

opt/local/bin/i686-apple-darwin8-gcc-apple-4.2.4 exists on my Leopard system…

Change History (9)

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

Owner: set to jeremyhu
Resolution: fixed
Status: newclosed

In 41e0ae1c/macports-ports:

{apple,llvm}-gcc42: Default to +universal

The build system basically conflates CHOST and CTARGET. This is
the simplest fix, and given the very deprecated nature of these
ports, it's not worth a deeper fix.

Fixes #53144

Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@…>

comment:2 in reply to:  1 ; Changed 7 years ago by ballapete (Peter "Pete" Dyballa)

Replying to jeremyhu:

In 41e0ae1c/macports-ports:

{apple,llvm}-gcc42: Default to +universal

The build system basically conflates CHOST and CTARGET. This is
the simplest fix, and given the very deprecated nature of these
ports, it's not worth a deeper fix.

Fixes #53144

Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@…>

What does that mean? I have no idea what a CHOST and a CTARGET could be…

Fixes https://trac.macports.org/ticket/53144

I seem to have a problem seeing the fix…

comment:3 in reply to:  2 Changed 7 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Replying to ballapete:

Replying to jeremyhu:

In 41e0ae1c/macports-ports:

{apple,llvm}-gcc42: Default to +universal

The build system basically conflates CHOST and CTARGET. This is
the simplest fix, and given the very deprecated nature of these
ports, it's not worth a deeper fix.

Fixes #53144

Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@…>

What does that mean? I have no idea what a CHOST and a CTARGET could be…

That's the change log from the commit. It's not instructions for you.

CBUILD is the architecture of the system that is building the executable CHOST is the architecture that the build executable will run on CTARGET is the architecture that the build executable will generate code for

Fixes https://trac.macports.org/ticket/53144

I seem to have a problem seeing the fix…

Just reinstall it +universal.

Version 0, edited 7 years ago by jeremyhu (Jeremy Huddleston Sequoia) (next)

comment:4 Changed 7 years ago by ballapete (Peter "Pete" Dyballa)

Error: apple-gcc42 cannot be installed for the configured universal_archs 'i386 ppc' because it only supports the arch(s) 'ppc ppc64'.

That's the report from trying to install apple-gcc42 as universal. This variant is listed among the port's variants.

New bug report on apple-gcc42?

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

No, that's a limitation that won't be fixed.

You want to set universal_archs to i386 x86_64 when installing apple-gcc42.

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

Specifically, note this comment in the Portfile:

# Building universal with a ppc slice doesn't work (Tried on Leopard)
if {${build_arch} eq "i386" || ${build_arch} eq "x86_64"} {
    supported_archs i386 x86_64
} elseif {${build_arch} eq "ppc" || ${build_arch} eq "ppc64"} {
    supported_archs ppc ppc64
}

If you have a patch, we'll certainly take it, but it's not worth the time to invest in adding support to that old port.

comment:7 Changed 7 years ago by kencu (Ken)

I installed libmacho on Tiger by disabling the default universal variant in the libmacho Portfile.

$ port -v installed | grep libmacho
  libmacho @886_0 platform='darwin 8' archs='ppc'
  libmacho @895_0 (active) platform='darwin 8' archs='ppc'
  libmacho-headers @877.5_0 platform='darwin 8' archs='noarch'
  libmacho-headers @886_0 platform='darwin 8' archs='noarch'
  libmacho-headers @895_0 (active) platform='darwin 8' archs='noarch'

comment:8 in reply to:  5 Changed 7 years ago by ryandesign (Ryan Carsten Schmidt)

Replying to jeremyhu:

No, that's a limitation that won't be fixed.

You want to set universal_archs to i386 x86_64 when installing apple-gcc42.

This change prevents all ports using apple-gcc42 (which includes most ports on Tiger, since it is the default compiler there) from working with the default MacPorts configuration of universal_archs on Tiger and Leopard (i.e. "i386 ppc").

For example, here is such a failure on the buildbot: https://build.macports.org/builders/ports-10.5_ppc_legacy-builder/builds/14391

comment:9 Changed 7 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: ryandesign added
Note: See TracTickets for help on using tickets.