Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#36637 closed defect (invalid)

GDB port is incompatible with GCC

Reported by: david.krauss@… Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version: 2.1.2
Keywords: Cc: ryandesign (Ryan Carsten Schmidt), blair (Blair Zajac)
Port: gdb

Description

Installing gcc47 first installs cctools (which builds Clang; surprising since I'm already running Mountain Lion with Clang 3.1). This includes cctools-headers, which is marked as incompatible with GDB.

Attempting to install GDB prompts me to deactivate cctools-headers. Attempting to do that prompts me to uninstall cctools. Attempting that prompts to uninstall gcc47 and libstdcxx.

Rebuilding GCC (and perhaps Clang too?) would take a long time, and it seems unbelievable that is the right approach.

Change History (4)

comment:1 Changed 12 years ago by blair (Blair Zajac)

Did you do a 'port deactivate cctools-headers' or a 'port uninstall cctools-headers'? In my experience, the first doesn't ask you to uninstall and dependent ports.

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

Milestone: MacPorts Future
Resolution: invalid
Status: newclosed

gdb is not incompatible with gcc; gdb merely has a build-time conflict with cctools-headers:

$ sudo port install gdb
--->  Computing dependencies for gdb
--->  Fetching distfiles for gdb
--->  Verifying checksum(s) for gdb
--->  Extracting gdb
--->  Configuring gdb
Error: gdb cannot be built while cctools-headers is active.
Error: Please deactivate cctools-headers and try again.
Error: You can reactivate cctools-headers again later.
Error: org.macports.configure for port gdb returned: cctools-headers is active

Do what it says: deactivate cctools-headers, then install gdb, then re-activate cctools-headers.

This will fail of course:

$ sudo port deactivate cctools-headers
--->  Deactivating cctools-headers @829_0
--->  Unable to deactivate cctools-headers @829_0, the following ports depend on it:
--->  	cctools @829_2+llvm31

For the purposes of installing gdb, we don't care about cctools, and we're going to re-activate cctools-headers again as soon as we're done installing gdb, so it's fine to force the deactivation to make this work:

$ sudo port -f deactivate cctools-headers
--->  Deactivating cctools-headers @829_0
--->  Unable to deactivate cctools-headers @829_0, the following ports depend on it:
--->  	cctools @829_2+llvm31
Warning: Deactivate forced.  Proceeding despite dependencies.
$ sudo port install gdb
...
$ sudo port activate cctools-headers
--->  Activating cctools-headers @829_0
--->  Cleaning cctools-headers

comment:3 Changed 12 years ago by david.krauss@…

OK, thanks, I did "port help deactivate" looking for a force option but didn't look at the manpage. That did the trick!

It might be helpful (and more similar to other tools with "help" commands) to mention options that apply to a command.

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

"port help deactivate" does mention options that apply only to the deactivate command, but does not mention global options like "-f" that apply in many situations.

Note: See TracTickets for help on using tickets.