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.

Last edited 7 years ago by jeremyhu (Jeremy Huddleston Sequoia) (previous) (diff)

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.