Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#56519 closed defect (wontfix)

libcxx database corrupted, universal broken, weird circular dependency

Reported by: gaming-hacker (G Alexander) Owned by:
Priority: Normal Milestone:
Component: ports Version: 2.4.3
Keywords: Cc: jeremyhu (Jeremy Huddleston Sequoia)
Port: libcxx

Description (last modified by gaming-hacker (G Alexander))

All,

This port is really hosed, so far this update breaks any builds that uses are not built as universal. I have NO wish to support anything i386 whatsoever. my default is -universal in the macports conf file.

So I needed to update ghostscript.

UPgrading Port
--->  Computing dependencies for libcxx
Error: Cannot install libcxx for the archs 'i386 x86_64' because
Error: its dependency libxml2 only supports the arch 'x86_64'.

displaying ino on libcxx reveals

Full Name: libcxx @6.0.0+universal
libcxx @6.0.0_1 (lang)

The following ports are dependent on libcxx:
  clang-6.0
  cmake
  ld64-latest
    ld64
      gcc8
      libgcc-devel
        libgcc6
        py27-numpy
  llvm-6.0
    cctools
clang-6.0 depends on libcxx
cmake depends on libcxx
ld64-latest depends on libcxx
llvm-6.0 depends on libcxx
The following ports are currently installed:
  libcxx @5.0.1_2+universal (active)

the database display the new version but the old version is active. how this is possible, i have no idea.

i forced an upgrade to libxml2 by creating a revision 1 and resulting error is

UPgrading Port
--->  Computing dependencies for libcxx
Error: Cannot install libcxx for the archs 'i386 x86_64' because
Error: its dependency libxml2 only supports the arch 'x86_64'.
Error: Follow https://guide.macports.org/#project.tickets to report a bug.
[14:15][226]~/local/macports-ports

now i have to fix a lot of dependencies, zlib, xz, libffi, libedit, etc

There needs to be a fix so that if the default compiler already relies on libcxx, not to use that compiler; in my case clang6.0 and don't require universal.

Change History (6)

comment:1 Changed 3 years ago by gaming-hacker (G Alexander)

Description: modified (diff)

comment:2 Changed 3 years ago by kencu (Ken)

why are you trying to install libcxx @6 ??

That PR is just in the "take a look" phase, and may never be committed....how did you get at it?

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

BTW, one of the reasons we use the buildit script for libcxx is to avoid the circular dep on cmake...

comment:4 in reply to:  description Changed 3 years ago by ryandesign (Ryan Schmidt)

It's unclear what is happening here, and how much of it is due to modifications you've made to portfiles.

Could you tell us what version of macOS you're running?

Replying to gaming-hacker:

Error: Cannot install libcxx for the archs 'i386 x86_64' because
Error: its dependency libxml2 only supports the arch 'x86_64'.

This error message seems to be erroneous, because libxml2 has no arch restrictions; it builds on any arch. I suppose it could be caused by the circular dependency introduced by PR 1853. MacPorts behavior is undefined when a circular dependency exists, so anything could happen.

i forced an upgrade to libxml2 by creating a revision 1 and resulting error is

If you mean you edited the libxml2 portfile and increased its revision, you should not do that, because that would prevent you from receiving the "real" libxml2 @2.9.7_1 if and when we create it in the future. If you need to force a port to rebuild from source, the way to do that is e.g. sudo port -ns upgrade --force libxml2.

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

Resolution: wontfix
Status: newclosed

Yeah, this is exactly why we don't use cmake to build libcxx.

comment:6 Changed 3 years ago by mf2k (Frank Schima)

Keywords: libxml2 universal ghostscript removed
Note: See TracTickets for help on using tickets.