Opened 2 years ago

Closed 2 years ago

Last modified 2 years ago

#65638 closed defect (fixed)

libcxx: builds failing for 10.6, blocking downstream ports

Reported by: mascguy (Christopher Nielsen) Owned by: catap (Kirill A. Korinsky)
Priority: High Milestone:
Component: ports Version: 2.7.2
Keywords: leopard Cc:
Port: libcxx clang-11-bootstrap

Description

With the latest update to this port, it no longer builds on 10.6 (for either x32 or x64). This is, in turn, blocking downstream builds of many ports on the 10.6 buildbots.

On 10.6_x32, this is due to build dep clang-11-bootstrap:

Error: Cannot install libcxx for the archs 'i386 x86_64' because
Error: its dependency clang-11-bootstrap does not build for the required archs by default
Error: and does not have a universal variant.

On 10.6_x64, cc1plus is failing, due to the passed compilation arguments:

+ for FILE in '../src/*.cpp'
+ /usr/bin/g++-4.2 -c -g -O3 -arch i386 -arch ppc -I/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_lang_libcxx/libcxx/work/libcxxabi-5.0.1.src/include -I/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_lang_libcxx/libcxx/work/libcxx-5.0.1.src/include -Os -std=c++11 -stdlib=libc++ -nostdinc++ -fstrict-aliasing -Wstrict-aliasing=2 -Wsign-conversion -Wshadow -Wconversion -Wunused-variable -Wmissing-field-initializers -Wchar-subscripts -Wmismatched-tags -Wmissing-braces -Wshorten-64-to-32 -Wsign-compare -Wstrict-aliasing=2 -Wstrict-overflow=4 -Wunused-parameter -Wnewline-eof -D_LIBCPP_BUILDING_LIBRARY -I../include ../src/abort_message.cpp
cc1plus: error: unrecognized command line option "-Wsign-conversion"
cc1plus: error: unrecognized command line option "-Wmismatched-tags"
cc1plus: error: unrecognized command line option "-std=c++11"
cc1plus: error: unrecognized command line option "-stdlib=libc++"
cc1plus: error: unrecognized command line option "-Wsign-conversion"
cc1plus: error: unrecognized command line option "-Wmismatched-tags"
cc1plus: error: unrecognized command line option "-std=c++11"
cc1plus: error: unrecognized command line option "-stdlib=libc++"
lipo: can't figure out the architecture type of: libcxx/work/.tmp/ccugYcqV.out
make: *** [libcxx/work/libcxxabi-5.0.1.src/lib/libc++abi.dylib] Error 1

https://ports.macports.org/port/libcxx/details/

Change History (7)

comment:1 Changed 2 years ago by mascguy (Christopher Nielsen)

Priority: NormalHigh

Observers: Bumping priority to High, as this is a blocker for 10.6.

comment:2 Changed 2 years ago by mascguy (Christopher Nielsen)

Kirill, let me know if this is something you'll be able to look at ASAP.

If not, then no worries. But if we can't resolve within the next 24-48 hours, we might need to revert for now.

comment:3 Changed 2 years ago by catap (Kirill A. Korinsky)

Christopher, are you sure that this is real issue? Ken pointed that revbump aren't nessesary: https://github.com/macports/macports-ports/commit/4132bdcc10cdb21083e6ddcd4c672a5ee2b90b7b#comments

Anyway, if you can increase revision for this port => let do it to, it should make everything green and clean.

comment:4 Changed 2 years ago by mascguy (Christopher Nielsen)

Just queued rebuilds for both 10.6 buildbots, and they were skipped: Apparently they did build successfully in a subsequent attempt?

Given that, is there now a dependency cycle? I ask, as dependent ports all fail, with errors similar to the following:

--->  Dependencies to be installed: clang-11 libcxx libomp libxml2 icu libiconv xz gettext-runtime llvm-11 libedit ncurses xar go go-1.4 legacy-support
Error: The following dependencies were not installed because all of them have unmet dependencies (likely due to a dependency cycle): clang-11 libcxx libomp libxml2 icu libiconv xz gettext-runtime llvm-11 libedit ncurses xar go go-1.4 legacy-support

That's from today's build for fzf:

https://build.macports.org/builders/ports-10.6_i386-builder/builds/83659/steps/install-port/logs/stdio

But here's another example, for just:

--->  Dependencies to be installed: cargo curl brotli libcxx libidn2 gettext-runtime libiconv libunistring libpsl zstd lz4 xz libgit2 legacy-support libssh2 pcre2 libedit ncurses rust clang-11 libomp libxml2 icu llvm-11 xar ld64-274
Error: The following dependencies were not installed because all of them have unmet dependencies (likely due to a dependency cycle): cargo curl brotli libcxx libidn2 gettext-runtime libiconv libunistring libpsl zstd lz4 xz libgit2 legacy-support libssh2 pcre2 libedit ncurses rust clang-11 libomp libxml2 icu llvm-11 xar ld64-274

https://build.macports.org/builders/ports-10.6_i386-builder/builds/83660/steps/install-port/logs/stdio

comment:5 Changed 2 years ago by jmroot (Joshua Root)

See https://github.com/macports/macports-ports/commit/2a6125bbce37dabecf26246a253e79e9f58eb820#r80645543

There's a reason this wasn't openmaintainer, it's all very subtle and easy to break. Changes need to be tested to ensure bootstrapping from scratch works as well as upgrading in an existing installation.

comment:6 Changed 2 years ago by jmroot (Joshua Root)

Resolution: fixed
Status: assignedclosed

In 8a982260bf6777fb4babda065e7e45f7cb31ed45/macports-ports (master):

libcxx: fix dependencies

Closes: #65638

comment:7 Changed 2 years ago by catap (Kirill A. Korinsky)

In 1efa2accba823bad2f5d1ecf0699e6d815fd2ef0/macports-ports (master):

libcxx: cleanup dependency

Fixes: #65638

Note: See TracTickets for help on using tickets.