Opened 9 years ago
Closed 5 years ago
#48009 closed defect (fixed)
volk @20150521_0 Undefined symbols for architecture x86_64
Reported by: | jpdevillers@… | Owned by: | michaelld (Michael Dickens) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.3.3 |
Keywords: | Cc: | fluzzygib@…, w3sz73@… | |
Port: | volk |
Description
- Xcode 4.6.3
When trying to upgrade Volk, I get the following error:
:info:build Undefined symbols for architecture x86_64: :info:build "___cpuid_count", referenced from: :info:build _i_can_has_avx2 in volk_cpu.c.o :info:build ld: symbol(s) not found for architecture x86_64 :info:build clang: error: linker command failed with exit code 1 (use -v to see invocation)
Attachments (4)
Change History (29)
comment:1 Changed 9 years ago by mf2k (Frank Schima)
Owner: | changed from macports-tickets@… to michaelld@… |
---|---|
Port: | volk added; Volk removed |
Changed 9 years ago by jpdevillers@…
comment:3 Changed 9 years ago by jpdevillers@…
The only way it would compile was using configure.compiler=macports-gcc-4.7
comment:4 Changed 9 years ago by michaelld (Michael Dickens)
I'm running 10.8 also, but using the latest (or very recent) Xcode (AppleClang 5.1.0.5030040) & Volk builds fine for me. I believe that the older Clang (AppleClang 4.2.0.4250028) has some issues with what it #define's that make it looks like GCC & hence this issue. The code in issue should correctly distinguish between GCC and non-GCC via defined macros. Is there any way you can update Xcode to a newer version?
comment:5 Changed 9 years ago by michaelld (Michael Dickens)
Cc: | fluzzygib@… added |
---|
Has duplicate #48261.
comment:6 Changed 9 years ago by daniel@…
I have the same problem on OS X Lion (Darwin 11.4.2), where Xcode 4.6.3 is the latest version; see XcodeVersionInfo. My workaround was to build variant +cxx11 which also blacklists clang and then builds with gcc49.
The solution going forward will likely be to blacklist all "old" clang versions (<5.0 from your experience).
comment:7 Changed 8 years ago by w3sz73@…
Volk fails to build for me with the "ld: symbol(s) not found for architecture x86_64" error with OS X El Capitan 10.11.6 with XCode 7.3.1 with command line tools 7.3.1 (7D1014) when using: clang gcc5 gcc4.9 gcc4.8 gcc4.7
I will attach a copy of the log file for gcc5.
comment:8 Changed 8 years ago by w3sz73@…
Cc: | w3sz73@… added |
---|
Log files are similar when other compilers listed are used. The"ld: symbol(s) not found for architecture x86_64" error is consistent across compiler versions.
comment:9 Changed 8 years ago by michaelld (Michael Dickens)
Can you do the following:
sudo port clean volk sudo port selfupdate sudo port install volk
and see if that works. The log file for GCC5 is not unsurprising given that you're building on a setup (OS X 10.11) that required Clang's libc++. Clang should work for building Volk on any 10.9 or newer setup. Older Clang and some older GCCs have issues building Volk.
comment:10 Changed 8 years ago by w3sz73@…
I get the same result after doing as suggested. I posted the log file for this most recent attempt as main.3.log.
I don't know if the following info is diagnostically helpful:
Typing in the terminal window "clang --version" gives:
Apple clang version 2.1 (tags/Apple/clang-163.7.1) (based on LLVM 3.0svn) Target: x86_64-apple-darwin15.6.0 Thread model: posix
which would be a problem as its an old version of clang, but according to the log for this most recent attempt:
:info:configure -- The C compiler identification is AppleClang 7.3.0.7030031 :info:configure -- The CXX compiler identification is AppleClang 7.3.0.7030031
which should be OK as its a newer version of clang.
Also, the log notes this potential issue which I did not fix:
:info:configure CMake Warning at /opt/local/share/cmake-3.6/Modules/Platform/Darwin.cmake:197 (message): :info:configure The SDK Library/Frameworks path :info:configure :info:configure //Library/Frameworks :info:configure :info:configure is not set up correctly on this system. This is known to occur when :info:configure installing Xcode 3.2.6: :info:configure :info:configure http://bugs.python.org/issue14018 :info:configure :info:configure The problem may cause build errors that report missing system frameworks. :info:configure Fix your SDK symlinks to resolve this issue and avoid this warning.
comment:11 Changed 8 years ago by michaelld (Michael Dickens)
If you're running OS X 10.11, then there should not be any Xcode oriented stuff in /Library/Frameworks/. At all. Nothing. Some other stuff is normal. What does
ls -lAF /Library/Frameworks
return for you?
comment:12 Changed 8 years ago by w3sz73@…
Here is what I have:
ls -lAF /Library/Frameworks total 48 lrwxr-xr-x 1 root wheel 71 Oct 21 2015 AEProfiling.framework@ -> ../../Applications/Motion.app/Contents/Frameworks/AEProfiling.framework lrwxr-xr-x 1 root wheel 74 Oct 21 2015 AERegistration.framework@ -> ../../Applications/Motion.app/Contents/Frameworks/AERegistration.framework lrwxr-xr-x 1 root wheel 74 Oct 21 2015 AudioMixEngine.framework@ -> ../../Applications/Motion.app/Contents/Frameworks/AudioMixEngine.framework drwxr-xr-x 5 root admin 170 Jan 24 2010 DivX Toolkit.framework/ drwxrwxrwx 5 73w3sz admin 170 Jun 12 2009 EWSMac.framework/ lrwxr-xr-x 1 root wheel 19 Mar 26 2011 Frameworks@ -> /Library/Frameworks drwxrwxr-x 8 root admin 272 Jun 26 2009 HPDeviceModel.framework/ drwxrwxr-x 6 root admin 204 Jun 26 2009 HPPml.framework/ drwxrwxr-x 7 root admin 238 Jun 26 2009 HPServicesInterface.framework/ lrwxrwxr-x 1 root admin 54 Sep 10 2010 HPSmartPrint.framework@ -> /Library/Printers/hp/Frameworks/HPSmartPrint.framework drwxrwxr-x 6 73w3sz admin 204 Dec 15 2009 Jackmp.framework/ drwxrwxr-x 6 73w3sz admin 204 Dec 15 2009 Jackservermp.framework/ lrwxr-xr-x 1 root wheel 60 Oct 21 2015 NyxAudioAnalysis.framework@ -> /System/Library/PrivateFrameworks/NyxAudioAnalysis.framework drwxrwxr-x 6 73w3sz admin 204 Aug 5 2010 Panda.framework/ drwxr-xr-x 5 root wheel 170 Oct 21 2015 PluginManager.framework/ drwxrwxr-x 6 root wheel 204 Oct 24 2012 SRFrameBufferConnection.framework/ drwxr-xr-x@ 6 73w3sz admin 204 Jun 18 2005 XOSL.framework/ drwxr-xr-x 8 root wheel 272 Jul 7 04:55 iTunesLibrary.framework/
comment:13 Changed 8 years ago by michaelld (Michael Dickens)
OK; you can get rid of the CMake Warning, by doing the following:
cd /Library/Frameworks sudo rm Frameworks
comment:14 Changed 8 years ago by michaelld (Michael Dickens)
As for the primary issue, the errors are now such as:
:info:build Undefined symbols for architecture x86_64: :info:build "boost::filesystem::detail::status_api(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, boost::system::error_code&)", referenced from: :info:build boost::enable_if<boost::filesystem::is_basic_path<boost::filesystem::basic_path<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, boost::filesystem::path_traits> >, bool>::type boost::filesystem::exists<boost::filesystem::basic_path<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, boost::filesystem::path_traits> >(boost::filesystem::basic_path<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, boost::filesystem::path_traits> const&) in volk_profile.cc.o ...
which implies to me that Boost is not properly installed. What does "port installed boost" return?
comment:15 Changed 8 years ago by w3sz73@…
Here is what I get:
$ port installed boost The following ports are currently installed: boost @1.59.0_2+no_single+no_static+python27 (active) boost @1.59.0_2+no_single+no_static+python27+universal
comment:16 Changed 8 years ago by michaelld (Michael Dickens)
OK. what does "ls -lAF /opt/local/var/macports/software/boost/" return?
comment:17 Changed 8 years ago by w3sz73@…
Here is what I get:
ls -lAF /opt/local/var/macports/software/boost/ total 192752 -rw-r--r-- 1 macports admin 52269304 Jul 17 14:12 boost-1.59.0_2+no_single+no_static+python27+universal.darwin_15.i386-x86_64.tbz2 -rw-r--r-- 1 macports admin 46412730 Jul 17 14:12 boost-1.59.0_2+no_single+no_static+python27.darwin_15.x86_64.tbz2
comment:20 Changed 8 years ago by michaelld (Michael Dickens)
OK; good. What happens with the following:
sudo port activate boost @1.59.0_2+no_single+no_static+python27+universal sudo port clean volk sudo port install volk
Changed 8 years ago by w3sz73@…
Attachment: | main.4.log added |
---|
volk log using clang, boost1.59+universal, python27
comment:21 Changed 8 years ago by w3sz73@…
Thanks again for the quick responses!
There is a similar result. I put newest log at main.4.log Still getting the error of the form:
:info:build Undefined symbols for architecture x86_64: :info:build "boost::filesystem::detail::status_api(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, boost::system::error_code&)", referenced from: :info:build boost::enable_if<boost::filesystem::is_basic_path<boost::filesystem::basic_path<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, boost::filesystem::path_traits> >, bool>::type
comment:22 Changed 8 years ago by michaelld (Michael Dickens)
OK. Looking more carefully at the log file, I see:
:info:build In file included from /opt/local/include/boost_1_43_0/boost/program_options.hpp:15:
If you do
port contents boost | grep "include/boost_1_43_0"
you should get back nothing.
Likewise, if you do:
port provides /opt/local/include/boost_1_43_0/boost/program_options.hpp
it should return something like that this file "is not provided by a MacPorts port".
If both of the above are true, then I'd recommend removing that directory:
cd /opt/local/include sudo rm -rf boost_1_43_0
as it looks like cruft left behind by some previous install somehow.
After removing it, you'll want to "clean volk" and then try again.
comment:23 Changed 8 years ago by w3sz73@…
You are a master :)
That did the trick and volk is now installed without error.
Thank you VERY much for your help and I VERY much appreciate that you took the time to get this working for me even though it ended up not being a volk bug but rather a problem with junk left behind on my machine by a previous install.
Thanks again and have a great week!!
comment:24 Changed 8 years ago by michaelld (Michael Dickens)
NP. Glad that worked. I wish the rest of this ticket were as simple as your issue ...
comment:25 Changed 5 years ago by michaelld (Michael Dickens)
Resolution: | → fixed |
---|---|
Status: | new → closed |
I strongly believe this issue is no longer relevant, so I'm closing this ticket. If it still is an issue, please reopen and provide a build log and/or other compelling information to help me debug it.
In the future, please Cc the port maintainers (
port info --maintainers volk
), if any. Please attach the complete main.log file after runningport clean
on the port