Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#34413 closed defect (fixed)

circular dependency between cctools and llvm-2.9

Reported by: ryandesign (Ryan Carsten Schmidt) Owned by: jeremyhu (Jeremy Huddleston Sequoia)
Priority: Normal Milestone:
Component: ports Version: 2.0.4
Keywords: tiger Cc: p3k (Tobi Schäfer), ultrajoe@…
Port: cctools, llvm-2.9

Description

cctools depends on llvm-2.9 and llvm-2.9 depends on cctools.

The gcc4x ports depend on cctools, so I can't install or upgrade any gcc4x port.

Change History (13)

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

Install cctools without llvm first...

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

I guess we'll need to make a +bootstrap variant for cctools on Tiger as well...

comment:3 Changed 12 years ago by p3k (Tobi Schäfer)

Cc: interface@… added

Cc Me!

comment:4 Changed 12 years ago by ultrajoe@…

apple-gcc42 is also affected by this loop.

comment:5 Changed 12 years ago by ultrajoe@…

Cc: ultrajoe@… added

Cc Me!

comment:6 in reply to:  4 ; Changed 12 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Replying to ultrajoe@…:

apple-gcc42 is also affected by this loop.

Can you please clarify. As I see it, you should be able to install on Tiger using the following order:

apple-gcc42+bootstrap
ld64
cctools
apple-gcc42
llvm-3.0
ld64+llvm30
cctools+llvm30

comment:7 Changed 12 years ago by ultrajoe@…

Will try that when I get home.

If you simply port upgrade outdated, though, the port command will eventually error out because of the loop. I have cctools and ld64 installed, but not any version of llvm.

comment:8 in reply to:  6 ; Changed 12 years ago by ultrajoe@…

Replying to jeremyhu@…:

Replying to ultrajoe@…:

apple-gcc42 is also affected by this loop.

Can you please clarify. As I see it, you should be able to install on Tiger using the following order:

apple-gcc42+bootstrap
ld64
cctools
apple-gcc42
llvm-3.0
ld64+llvm30
cctools+llvm30

Still building, as apple-gcc42 takes over 6 hours to build on my ancient PowerMac.

I did find out that the initial install/upgrade of ld64 must be the -llvm29 "variant," lest the lack of llvm anywhere on Tiger causes an issue. (I might be done by now had I known that.)

comment:9 in reply to:  8 ; Changed 12 years ago by ultrajoe@…

Replying to ultrajoe@…:

I did find out that the initial install/upgrade of ld64 must be the -llvm29 "variant," lest the lack of llvm anywhere on Tiger causes an issue. (I might be done by now had I known that.)

Ergo -llvm29 = +bootstrap, to get back to the original problem report.

comment:10 in reply to:  9 ; Changed 12 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Resolution: fixed
Status: newclosed

Replying to ultrajoe@…:

Replying to ultrajoe@…:

I did find out that the initial install/upgrade of ld64 must be the -llvm29 "variant," lest the lack of llvm anywhere on Tiger causes an issue. (I might be done by now had I known that.)

Right, this is why on Tiger, ld64 does not set +llvmXX as a default variant and includes this comment:

# We don't set llvmXX as the default variant on Tiger because it would introduce a
# dependency cycle as llvm requires apple-gcc42 and ld64 to build correctly.  Users
# wanting LTO support in ld64 on Tiger can install the +llvm variant after llvm
# has been installed.

Ergo -llvm29 = +bootstrap, to get back to the original problem report.

Huh?

Anyways, r93318

comment:11 in reply to:  10 Changed 12 years ago by ultrajoe@…

Replying to jeremyhu@…:

Replying to ultrajoe@…:

Replying to ultrajoe@…:

I did find out that the initial install/upgrade of ld64 must be the -llvm29 "variant," lest the lack of llvm anywhere on Tiger causes an issue. (I might be done by now had I known that.)

Right, this is why on Tiger, ld64 does not set +llvmXX as a default variant and includes this comment:

# We don't set llvmXX as the default variant on Tiger because it would introduce a
# dependency cycle as llvm requires apple-gcc42 and ld64 to build correctly.  Users
# wanting LTO support in ld64 on Tiger can install the +llvm variant after llvm
# has been installed.

Ergo -llvm29 = +bootstrap, to get back to the original problem report.

Huh?

I'm saying the same thing. When I tried reloading ld64, per your instructions in comment 6, it bailed out because it couldn't find llvm-2.9. I see the code & comment in the Portfile, but my configuration didn't seem to care. I had to port install ld64 -llvm29 (i.e., forcibly disable +llvm29) to get it to build on Tiger PPC. That sounded like the +bootstrap idea you had in comment 2.

Anyways, r93318

After fighting the 2.10 mess (#34463) and this, perhaps I should just backtrack to the previously installed & activated versions of everything and wait a few weeks or months or more to risk any further upgrades on my old Sawtooth G4.

comment:12 Changed 12 years ago by ultrajoe@…

I'm a dummy. I just perused my bash history, and discovered it wasn't ld64 that I had to build with -llvm29, but cctools!!!

Sorry for the confusion.

comment:13 in reply to:  12 Changed 12 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Replying to ultrajoe@…:

After fighting the 2.10 mess (#34463) and this, perhaps I should just backtrack to the previously installed & activated versions of everything and wait a few weeks or months or more to risk any further upgrades on my old Sawtooth G4.

It's highly unlikely that things will magically start working for such a dated config. Issues do not go away on their own. You are one of 3 people that report bugs on Tiger/ppc, and the other 2 don't use it as a primary machine. If you care about Tiger/ppc, you need to at minimum report and track down issues.

Replying to ultrajoe@…:

I'm a dummy. I just perused my bash history, and discovered it wasn't ld64 that I had to build with -llvm29, but cctools!!!

Sorry for the confusion.

No worries. Then this should definitely be tackled by r93318 which does the same thing for cctools that we were doing on ld64 (namely turning off llvm by default on Tiger)

Note: See TracTickets for help on using tickets.