Opened 2 years ago
Closed 15 months ago
#66378 closed defect (worksforme)
llvm-13 +universal build fails due to architecture of /opt/local/lib/libstdc++.6.dylib
Reported by: | barracuda156 | Owned by: | catap (Kirill A. Korinsky) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.8.0 |
Keywords: | mountainlion | Cc: | |
Port: | llvm-13 |
Description
:info:build [ 92%] Linking CXX shared module ../../LLVMHello.dylib :info:build cd /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_llvm-13/llvm-13/work/build/lib/Transforms/Hello && /opt/local/bin/cmake -E cmake_link_script CMakeFiles/LLVMHello.dir/link.txt --verbose=ON :info:build /opt/local/bin/clang++-mp-11 -pipe -Os -DNDEBUG -D__DISABLE_MP_LEGACY_SUPPORT_SYSCONF_WRAP__=1 -D__DISABLE_MP_LEGACY_SUPPORT_REALPATH_WRAP__=1 -isystem/opt/local/include/LegacySupport -I/opt/local/include -stdlib=libc++ -fPIC -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -O3 -DNDEBUG -arch x86_64 -arch i386 -mmacosx-version-min=10.8 -bundle -Wl,-headerpad_max_install_names -Wl,-dead_strip -Wl,-exported_symbols_list,"/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_llvm-13/llvm-13/work/build/lib/Transforms/Hello/LLVMHello.exports" -L/opt/local/lib -Wl,-headerpad_max_install_names /opt/local/lib/libMacportsLegacySupport.a -Wl,-flat_namespace -Wl,-undefined -Wl,suppress -o ../../LLVMHello.dylib CMakeFiles/LLVMHello.dir/Hello.cpp.o -Wl,-rpath,@loader_path/../lib ../../libLLVM.dylib :info:build ld: in '/opt/local/lib/libstdc++.6.dylib', file was built for x86_64 which is not the architecture being linked (i386): /opt/local/lib/libstdc++.6.dylib for architecture i386 :info:build clang: error: linker command failed with exit code 1 (use -v to see invocation) :info:build make[2]: *** [lib/LLVMHello.dylib] Error 1 :info:build make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_llvm-13/llvm-13/work/build' :info:build make[1]: *** [lib/Transforms/Hello/CMakeFiles/LLVMHello.dir/all] Error 2 :info:build make[1]: *** Waiting for unfinished jobs.... :info:build [ 92%] Linking CXX executable ../../bin/llvm-config :info:build cd /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_llvm-13/llvm-13/work/build/tools/llvm-config && /opt/local/bin/cmake -E cmake_link_script CMakeFiles/llvm-config.dir/link.txt --verbose=ON :info:build /opt/local/bin/clang++-mp-11 -pipe -Os -DNDEBUG -D__DISABLE_MP_LEGACY_SUPPORT_SYSCONF_WRAP__=1 -D__DISABLE_MP_LEGACY_SUPPORT_REALPATH_WRAP__=1 -isystem/opt/local/include/LegacySupport -I/opt/local/include -stdlib=libc++ -fPIC -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -O3 -DNDEBUG -arch x86_64 -arch i386 -mmacosx-version-min=10.8 -Wl,-search_paths_first -Wl,-headerpad_max_install_names -L/opt/local/lib -Wl,-headerpad_max_install_names /opt/local/lib/libMacportsLegacySupport.a -Wl,-dead_strip "CMakeFiles/llvm-config.dir/llvm-config.cpp.o" -o ../../bin/llvm-config -Wl,-rpath,@loader_path/../lib ../../lib/libLLVM.dylib :info:build make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_llvm-13/llvm-13/work/build' :info:build [ 92%] Built target llvm-config :info:build [ 92%] Linking CXX executable ../../bin/llvm-ar :info:build cd /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_llvm-13/llvm-13/work/build/tools/llvm-ar && /opt/local/bin/cmake -E cmake_link_script CMakeFiles/llvm-ar.dir/link.txt --verbose=ON :info:build /opt/local/bin/clang++-mp-11 -pipe -Os -DNDEBUG -D__DISABLE_MP_LEGACY_SUPPORT_SYSCONF_WRAP__=1 -D__DISABLE_MP_LEGACY_SUPPORT_REALPATH_WRAP__=1 -isystem/opt/local/include/LegacySupport -I/opt/local/include -stdlib=libc++ -fPIC -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -O3 -DNDEBUG -arch x86_64 -arch i386 -mmacosx-version-min=10.8 -Wl,-search_paths_first -Wl,-headerpad_max_install_names -L/opt/local/lib -Wl,-headerpad_max_install_names /opt/local/lib/libMacportsLegacySupport.a -Wl,-dead_strip "CMakeFiles/llvm-ar.dir/llvm-ar.cpp.o" -o ../../bin/llvm-ar -Wl,-rpath,@loader_path/../lib ../../lib/libLLVM.dylib :info:build make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_llvm-13/llvm-13/work/build' :info:build [ 92%] Built target llvm-ar :info:build [ 92%] Linking CXX shared library ../../lib/libLTO.dylib :info:build cd /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_llvm-13/llvm-13/work/build/tools/lto && /opt/local/bin/cmake -E cmake_link_script CMakeFiles/LTO.dir/link.txt --verbose=ON :info:build /opt/local/bin/clang++-mp-11 -pipe -Os -DNDEBUG -D__DISABLE_MP_LEGACY_SUPPORT_SYSCONF_WRAP__=1 -D__DISABLE_MP_LEGACY_SUPPORT_REALPATH_WRAP__=1 -isystem/opt/local/include/LegacySupport -I/opt/local/include -stdlib=libc++ -fPIC -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -O3 -DNDEBUG -arch x86_64 -arch i386 -mmacosx-version-min=10.8 -dynamiclib -Wl,-headerpad_max_install_names -Wl,-dead_strip -Wl,-exported_symbols_list,"/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_llvm-13/llvm-13/work/build/tools/lto/LTO.exports" -compatibility_version 1 -current_version 13.0.1 -L/opt/local/lib -Wl,-headerpad_max_install_names /opt/local/lib/libMacportsLegacySupport.a -o ../../lib/libLTO.dylib -install_name @rpath/libLTO.dylib CMakeFiles/LTO.dir/LTODisassembler.cpp.o CMakeFiles/LTO.dir/lto.cpp.o -Wl,-rpath,@loader_path/../lib ../../lib/libLLVM.dylib :info:build make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_llvm-13/llvm-13/work/build' :info:build [ 92%] Built target LTO :info:build make[1]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_llvm-13/llvm-13/work/build' :info:build make: *** [all] Error 2 :info:build make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_llvm-13/llvm-13/work/build' :info:build Command failed: cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_llvm-13/llvm-13/work/build" && /usr/bin/make -j4 -w all VERBOSE=ON :info:build Exit code: 2 :error:build Failed to build llvm-13: command execution failed :debug:build Error code: CHILDSTATUS 2667 2
Attachments (1)
Change History (10)
Changed 2 years ago by barracuda156
Attachment: | llvm13.log added |
---|
comment:1 follow-up: 2 Changed 2 years ago by kencu (Ken)
comment:2 Changed 2 years ago by barracuda156
Replying to kencu:
So the proximate cause is that
/opt/local/lib/libstdc++.6.dylib
needs to be universal, and it is not universal, so the link fails.However, the real cause is less clear, as that file
/opt/local/lib/libstdc++.6.dylib
should not be called in to link code when-stdlib=libc++
, which it appears to be.So where is that coming from? Are you using absolutely stock toolchains here, or are you using some alternative toolchain like the one from Iain's repo we recently added for testing with? I could imagine that some part of libtapi or ld64-something might be possibly calling in
/opt/local/lib/libstdc++.6.dylib
...
On 10.8.5 everything is stock. And no darwin-xtools
are not being used (not even installed there).
comment:3 follow-up: 4 Changed 2 years ago by kencu (Ken)
OK, then install libgcc as universal and see if it works then. If it does, that proves the point.
Then to figure out why it is being called at all. At the moment, I cannot see why it would be. There are 100,000 possible factors, which is why we insist on having one supported system variation if people want help with tickets.
If it was me, I might try deactivating libgccN and see if any of the toolchain components complain.
comment:4 Changed 2 years ago by barracuda156
Replying to kencu:
OK, then install libgcc as universal and see if it works then. If it does, that proves the point.
Took forever to build it as universal, but you are absolutely right: once I installed libgcc12
and libgcc
as universal, llvm-13 +universal
installed fine. I just resumed the build, and it went through completion.
10:~ svacchanda$ port -v installed libgcc12 The following ports are currently installed: libgcc12 @12.2.0_0+stdlib_flag requested_variants='' platform='darwin 12' archs='x86_64' date='2022-10-21T13:53:56+0800' libgcc12 @12.2.0_2+stdlib_flag+universal (active) requested_variants='+universal' platform='darwin 12' archs='i386 x86_64' date='2022-12-01T05:05:43+0800' 10:~ svacchanda$ port -v installed llvm-13 The following ports are currently installed: llvm-13 @13.0.1_2+universal (active) requested_variants='+universal' platform='darwin 12' archs='i386 x86_64' date='2022-12-01T06:55:59+0800'
comment:5 follow-up: 6 Changed 2 years ago by kencu (Ken)
still no idea why, though.
"If it was me, I might try deactivating libgccN and see if any of the toolchain components complain."
comment:6 follow-up: 8 Changed 2 years ago by barracuda156
Replying to kencu:
still no idea why, though.
"If it was me, I might try deactivating libgccN and see if any of the toolchain components complain."
Not today though. It is another multi-hour endeavor.
comment:7 Changed 2 years ago by kencu (Ken)
Summary: | llvm-13 fails to build as +universal on 10.8.5 → llvm-13 +universal build fails due to architecture of /opt/local/lib/libstdc++.6.dylib |
---|
comment:8 Changed 2 years ago by kencu (Ken)
Replying to barracuda156:
Not today though. It is another multi-hour endeavor.
actually, 10 seconds is all it takes, no multi-hour endeavours needed:
sudo port -v deactivate libgcc12
see if any toolchain parts are listed as going to be broken by this.
Then after you see that, say "N" and everything stays like it was.
eg:
$ sudo port -v deactivate libgcc12 Note: It is not recommended to uninstall/deactivate a port that has dependents as it breaks the dependents. The following ports will break: libgcc @6.0_0 Continue? [y/N]: n ---> Cleaning libgcc12 ---> Removing work directory for libgcc12 }}
comment:9 Changed 15 months ago by kencu (Ken)
Resolution: | → worksforme |
---|---|
Status: | assigned → closed |
whatever was going on here is not a general problem
So the proximate cause is that
/opt/local/lib/libstdc++.6.dylib
needs to be universal, and it is not universal, so the link fails.However, the real cause is less clear, as that file
/opt/local/lib/libstdc++.6.dylib
should not be called in to link code when-stdlib=libc++
, which it appears to be.So where is that coming from? Are you using absolutely stock toolchains here, or are you using some alternative toolchain like the one from Iain's repo we recently added for testing with? I could imagine that some part of libtapi or ld64-something might be possibly calling in
/opt/local/lib/libstdc++.6.dylib
...