pothosware / homebrew-pothos

Homebrew formulas for Pothos and SoapySDR
https://github.com/pothosware/homebrew-pothos/wiki
MIT License
62 stars 17 forks source link

Build fails on Big Sur #50

Closed NeuroForLunch closed 3 years ago

NeuroForLunch commented 3 years ago
› brew install pothosaudio --head                                          
Updating Homebrew...
==> Installing pothosaudio from pothosware/pothos
==> Cloning https://github.com/pothosware/PothosAudio.git
Cloning into '/Users/NeuroForLunch/Library/Caches/Homebrew/pothosaudio--git'...
==> Checking out branch master
Already on 'master'
Your branch is up to date with 'origin/master'.
==> cmake ..
==> make install
Last 15 lines from /Users/NeuroForLunch/Library/Logs/Homebrew/pothosaudio/02.make:
make[2]: *** Waiting for unfinished jobs....
[ 62%] Building CXX object CMakeFiles/AudioSupport.dir/AudioSink.cpp.o
[ 62%] Building CXX object CMakeFiles/AudioSupport.dir/AudioSource.cpp.o
[ 62%] Building CXX object CMakeFiles/AudioSupport.dir/AudioBlock.cpp.o
[ 62%] Building CXX object CMakeFiles/AudioSupport.dir/AudioSupportDocs.cpp.o
[ 75%] Building CXX object CMakeFiles/AudioSupport.dir/Version.cpp.o
/usr/local/Homebrew/Library/Homebrew/shims/mac/super/clang++ -DAudioSupport_EXPORTS -DMIN_FRAMES_BLOCKING=1024 -DPOCO_ENABLE_CPP11 -DPOCO_ENABLE_CPP14 -DPOCO_HAVE_IPv6 -DPOCO_NO_STAT64 -DPOCO_OS_FAMILY_UNIX -DXML_DTD -I/usr/local/Cellar/portaudio/19.7.0/include -I/usr/local/include/nlohmann -DNDEBUG -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -fPIC -std=gnu++14 -MD -MT CMakeFiles/AudioSupport.dir/AudioSink.cpp.o -MF CMakeFiles/AudioSupport.dir/AudioSink.cpp.o.d -o CMakeFiles/AudioSupport.dir/AudioSink.cpp.o -c /tmp/pothosaudio-20210502-11137-1w4jg7r/AudioSink.cpp
[ 87%] Building CXX object CMakeFiles/AudioSupport.dir/AudioInfo.cpp.o
/usr/local/Homebrew/Library/Homebrew/shims/mac/super/clang++ -DAudioSupport_EXPORTS -DMIN_FRAMES_BLOCKING=1024 -DPOCO_ENABLE_CPP11 -DPOCO_ENABLE_CPP14 -DPOCO_HAVE_IPv6 -DPOCO_NO_STAT64 -DPOCO_OS_FAMILY_UNIX -DXML_DTD -I/usr/local/Cellar/portaudio/19.7.0/include -I/usr/local/include/nlohmann -DNDEBUG -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -fPIC -std=gnu++14 -MD -MT CMakeFiles/AudioSupport.dir/AudioSupportDocs.cpp.o -MF CMakeFiles/AudioSupport.dir/AudioSupportDocs.cpp.o.d -o CMakeFiles/AudioSupport.dir/AudioSupportDocs.cpp.o -c /tmp/pothosaudio-20210502-11137-1w4jg7r/build/AudioSupportDocs.cpp
/usr/local/Homebrew/Library/Homebrew/shims/mac/super/clang++ -DAudioSupport_EXPORTS -DMIN_FRAMES_BLOCKING=1024 -DPOCO_ENABLE_CPP11 -DPOCO_ENABLE_CPP14 -DPOCO_HAVE_IPv6 -DPOCO_NO_STAT64 -DPOCO_OS_FAMILY_UNIX -DXML_DTD -I/usr/local/Cellar/portaudio/19.7.0/include -I/usr/local/include/nlohmann -DNDEBUG -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -fPIC -std=gnu++14 -MD -MT CMakeFiles/AudioSupport.dir/Version.cpp.o -MF CMakeFiles/AudioSupport.dir/Version.cpp.o.d -o CMakeFiles/AudioSupport.dir/Version.cpp.o -c /tmp/pothosaudio-20210502-11137-1w4jg7r/build/Version.cpp
/usr/local/Homebrew/Library/Homebrew/shims/mac/super/clang++ -DAudioSupport_EXPORTS -DMIN_FRAMES_BLOCKING=1024 -DPOCO_ENABLE_CPP11 -DPOCO_ENABLE_CPP14 -DPOCO_HAVE_IPv6 -DPOCO_NO_STAT64 -DPOCO_OS_FAMILY_UNIX -DXML_DTD -I/usr/local/Cellar/portaudio/19.7.0/include -I/usr/local/include/nlohmann -DNDEBUG -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -fPIC -std=gnu++14 -MD -MT CMakeFiles/AudioSupport.dir/AudioInfo.cpp.o -MF CMakeFiles/AudioSupport.dir/AudioInfo.cpp.o.d -o CMakeFiles/AudioSupport.dir/AudioInfo.cpp.o -c /tmp/pothosaudio-20210502-11137-1w4jg7r/AudioInfo.cpp
/usr/local/Homebrew/Library/Homebrew/shims/mac/super/clang++ -DAudioSupport_EXPORTS -DMIN_FRAMES_BLOCKING=1024 -DPOCO_ENABLE_CPP11 -DPOCO_ENABLE_CPP14 -DPOCO_HAVE_IPv6 -DPOCO_NO_STAT64 -DPOCO_OS_FAMILY_UNIX -DXML_DTD -I/usr/local/Cellar/portaudio/19.7.0/include -I/usr/local/include/nlohmann -DNDEBUG -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -fPIC -std=gnu++14 -MD -MT CMakeFiles/AudioSupport.dir/AudioSource.cpp.o -MF CMakeFiles/AudioSupport.dir/AudioSource.cpp.o.d -o CMakeFiles/AudioSupport.dir/AudioSource.cpp.o -c /tmp/pothosaudio-20210502-11137-1w4jg7r/AudioSource.cpp
/usr/local/Homebrew/Library/Homebrew/shims/mac/super/clang++ -DAudioSupport_EXPORTS -DMIN_FRAMES_BLOCKING=1024 -DPOCO_ENABLE_CPP11 -DPOCO_ENABLE_CPP14 -DPOCO_HAVE_IPv6 -DPOCO_NO_STAT64 -DPOCO_OS_FAMILY_UNIX -DXML_DTD -I/usr/local/Cellar/portaudio/19.7.0/include -I/usr/local/include/nlohmann -DNDEBUG -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -fPIC -std=gnu++14 -MD -MT CMakeFiles/AudioSupport.dir/AudioBlock.cpp.o -MF CMakeFiles/AudioSupport.dir/AudioBlock.cpp.o.d -o CMakeFiles/AudioSupport.dir/AudioBlock.cpp.o -c /tmp/pothosaudio-20210502-11137-1w4jg7r/AudioBlock.cpp
make[1]: *** [CMakeFiles/AudioSupport.dir/all] Error 2
make: *** [all] Error 2

If reporting this issue please do so at (not Homebrew/brew or Homebrew/core):
  https://github.com/pothosware/homebrew-pothos/issues

These open issues may also help:
brew install pothosaudio fails (Catalina 10.15.6) https://github.com/pothosware/homebrew-pothos/issues/44
Please create pull requests instead of asking for help on Homebrew's GitHub,
Twitter or any other official channels.
NeuroForLunch commented 3 years ago

brew install pothoscomms brew install pothossoapy < only one that doesn't fail brew install pothosflow brew install pothosplotters brew install pothoswidgets

All these fail with:

make
install

make: *** No rule to make target `install'.  Stop.

brew install pothospython fails with

      PyObjectRef::~PyObjectRef() in PythonProxy.cpp.o
      PyObjectRef::operator=(PyObjectRef const&) in PythonHandle.cpp.o
      getErrorString() in PythonHandle.cpp.o
      PyObjectRef::~PyObjectRef() in PythonHandle.cpp.o
      PyObjectRef::~PyObjectRef() in PythonConvert.cpp.o
  "__Py_NoneStruct", referenced from:
      PythonProxyHandle::call(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Pothos::Proxy const*, unsigned long) in PythonHandle.cpp.o
      convertNullToPyNone(std::__1::shared_ptr<Pothos::ProxyEnvironment>, Pothos::NullObject const&) in PythonConvert.cpp.o
  "__Py_TrueStruct", referenced from:
      convertPyBoolToBool(Pothos::Proxy const&) in PythonConvert.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [libPythonSupport.so] Error 1
make[1]: *** [CMakeFiles/PythonSupport.dir/all] Error 2
make: *** [all] Error 2
JuliDi commented 3 years ago

Same issue here

ld: unknown option: --no-undefined
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [lib/libPothos.0.8.0.dylib] Error 1
make[1]: *** [lib/CMakeFiles/Pothos.dir/all] Error 2
make: *** [all] Error 2

Any fix for this?

guruofquality commented 3 years ago

@ncorgan https://github.com/pothosware/PothosCore/commit/5ed07e6bc93c5c429ae07a626e92f7e5a73ed3b4

This change makes clang on apple get into this CMAKE_COMPILER_IS_GNUCXX statement, but the linker args arent supported. Maybe this would fix it -Wl,--no-undefined -> -Wl,-undefined,error

steinmb commented 3 years ago

MacOS 12

==> Reinstalling pothosware/pothos/soapyuhd
==> cmake .. -DUHD_ROOT='.'
==> make install
Last 15 lines from ~/Library/Logs/Homebrew/soapyuhd/02.make:
    res_source_info src_info{res_source_info::USER, instance};
                    ^
/usr/local/include/uhd/rfnoc/res_source_info.hpp:29:5: note: 'res_source_info' has been explicitly marked deleted here
    res_source_info() = delete;
    ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make[2]: *** [CMakeFiles/uhdSupport.dir/SoapyUHDDevice.cpp.o] Error 1
make[1]: *** [CMakeFiles/uhdSupport.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 80%] Linking CXX shared module libsoapySupport.so
/usr/local/Cellar/cmake/3.21.4/bin/cmake -E cmake_link_script CMakeFiles/soapySupport.dir/link.txt --verbose=1
/usr/local/Homebrew/Library/Homebrew/shims/mac/super/clang++ -O3 -DNDEBUG -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk -bundle -Wl,-headerpad_max_install_names -o libsoapySupport.so CMakeFiles/soapySupport.dir/UHDSoapyDevice.cpp.o  /usr/local/lib/libuhd.dylib /usr/local/lib/libSoapySDR.0.8.1.dylib /usr/local/lib/libboost_thread-mt.dylib /usr/local/lib/libboost_system-mt.dylib -pthread -flat_namespace
[ 80%] Built target soapySupport
make: *** [all] Error 2

If reporting this issue please do so at (not Homebrew/brew or Homebrew/core):
  https://github.com/pothosware/homebrew-pothos/issues

These open issues may also help:
No 'make install' when trying to install soapyuhd on Catalina 10.15.7 https://github.com/pothosware/homebrew-pothos/issues/46
ncorgan commented 3 years ago

@steinmb Could you please provide the full log file at ~/Library/Logs/Homebrew/soapyuhd/02.make?

@mbr0wn This last comment looks like a UHD issue, since we don't reference RFNoC directly. The homebrew package uses v4.1.0.4. This output is limited, but does this look familiar? If not, I'll open a UHD issue once I get more information.

steinmb commented 3 years ago

Full log of failed build

ncorgan commented 3 years ago

@mbr0wn Disregard.

@guruofquality This looks like a mismatch between UHD being C++14 and SoapyUHD being C++11. For some reason, I'm not running into it with Clang and the same versions of everything on Ubuntu.

guruofquality commented 3 years ago

@guruofquality This looks like a mismatch between UHD being C++14 and SoapyUHD being C++11. For some reason, I'm not running into it with Clang and the same versions of everything on Ubuntu.

If im reading this right, If uhd headers are going to require c++14 support, sounds like SoapyUHD should just also require c++14 flags

guruofquality commented 3 years ago

If im reading this right, If uhd headers are going to require c++14 support, sounds like SoapyUHD should just also require c++14 flags

Well, I might take that back, the project should be using the package file from UHD find_package(UHD NO_MODULE). I cant tell from the log though. I might suggest that either uhd cmake development files are missing from the uhd recipe, or uhd cmake development files are not setting a required flag needed because of C++ language features in the public headers. Thoughts?

guruofquality commented 3 years ago

https://github.com/pothosware/SoapyUHD/commit/1f7b6fa245f782e5d18453f5cbc6d9f27e6b26df