GCC compiled with --enable-libstdcxx-time considered possible
I was trying to compile supercollider from git on CRUX Linux. [ 18%] Building CXX object server/scsynth/CMakeFiles/libscsynth.dir/SC_ComPort.cpp.o In file included from /home/phil/ports/supercollider/supercollider/external_libraries/boost/boost/interprocess/detail/managed_open_or_create_impl.hpp:15:0, from /home/phil/ports/supercollider/supercollider/external_libraries/boost/boost/interprocess/managed_shared_memory.hpp:22, from /home/phil/ports/supercollider/supercollider/server/scsynth/../../common/server_shm.hpp:29, from /home/phil/ports/supercollider/supercollider/server/scsynth/SC_HiddenWorld.h:37, from /home/phil/ports/supercollider/supercollider/server/scsynth/SC_ComPort.cpp:22: /home/phil/ports/supercollider/supercollider/external_libraries/boost/boost/interprocess/detail/os_thread_functions.hpp: In function 'int boost::interprocess::ipcdetail::thread_launch(boost::interprocess::ipcdetail::OS_thread_t&, F)': /home/phil/ports/supercollider/supercollider/external_libraries/boost/boost/interprocess/detail/os_thread_functions.hpp:554:36: warning: 'auto_ptr' is deprecated (declared at /usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.4/../../../../include/c++/4.7.4/backward/auto_ptr.h:87) [-Wdeprecated-declarations] /home/phil/ports/supercollider/supercollider/server/scsynth/SC_ComPort.cpp: In member function 'void scsynth::SC_TcpConnection::start()': /home/phil/ports/supercollider/supercollider/server/scsynth/SC_ComPort.cpp:314:4: error: 'sleep_for' is not a member of 'this_thread' make[2]: *** [server/scsynth/CMakeFiles/libscsynth.dir/SC_ComPort.cpp.o] Error 1 make[1]: *** [server/scsynth/CMakeFiles/libscsynth.dir/all] Error 2 make: *** [all] Error 2 =======> ERROR: Building '/home/phil/ports/supercollider/supercollider#20140621-1.pkg.tar.gz' failed. I solved the issue by re-compiling gcc with --enable-libstdcxx-time. Now SC compiles beautifully. (I shed a single tear.) SuperCollider is not the only package affected by this issue; I have heard of others as well. At least it's common enough that this exists: http://stackoverflow.com/questions/12523122/what-is-glibcxx-use-nanosleep-al... I am submitting this so that our trusty developers can consider including this option in the Pkgfile for the current version of GCC in [core]. I am not sure if the option will cause other breakage (though it hasn't for me so far), but it seems like it may solve some problems. BTW, I am led to understand that version 4.9.0 of GCC doesn't have this issue. It automatically enables nanosleep and sched_yield on platforms known to support them (like x86_64, for example :) Submitted for consideration. I have no investment in either outcome, though I would prefer not to have to maintain my own personal port of GCC. Thanks for listening.
On Thu, Jun 26, 2014 at 04:31:13PM -0700, Phil Thomson wrote:
I was trying to compile supercollider from git on CRUX Linux.
[ 18%] Building CXX object server/scsynth/CMakeFiles/libscsynth.dir/SC_ComPort.cpp.o In file included from /home/phil/ports/supercollider/supercollider/external_libraries/boost/boost/interprocess/detail/managed_open_or_create_impl.hpp:15:0, from /home/phil/ports/supercollider/supercollider/external_libraries/boost/boost/interprocess/managed_shared_memory.hpp:22, from /home/phil/ports/supercollider/supercollider/server/scsynth/../../common/server_shm.hpp:29, from /home/phil/ports/supercollider/supercollider/server/scsynth/SC_HiddenWorld.h:37, from /home/phil/ports/supercollider/supercollider/server/scsynth/SC_ComPort.cpp:22: /home/phil/ports/supercollider/supercollider/external_libraries/boost/boost/interprocess/detail/os_thread_functions.hpp: In function 'int boost::interprocess::ipcdetail::thread_launch(boost::interprocess::ipcdetail::OS_thread_t&, F)': /home/phil/ports/supercollider/supercollider/external_libraries/boost/boost/interprocess/detail/os_thread_functions.hpp:554:36: warning: 'auto_ptr' is deprecated (declared at /usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.4/../../../../include/c++/4.7.4/backward/auto_ptr.h:87) [-Wdeprecated-declarations] /home/phil/ports/supercollider/supercollider/server/scsynth/SC_ComPort.cpp: In member function 'void scsynth::SC_TcpConnection::start()': /home/phil/ports/supercollider/supercollider/server/scsynth/SC_ComPort.cpp:314:4: error: 'sleep_for' is not a member of 'this_thread' make[2]: *** [server/scsynth/CMakeFiles/libscsynth.dir/SC_ComPort.cpp.o] Error 1 make[1]: *** [server/scsynth/CMakeFiles/libscsynth.dir/all] Error 2 make: *** [all] Error 2 =======> ERROR: Building '/home/phil/ports/supercollider/supercollider#20140621-1.pkg.tar.gz' failed.
I solved the issue by re-compiling gcc with --enable-libstdcxx-time. Now SC compiles beautifully. (I shed a single tear.) SuperCollider is not the only package affected by this issue; I have heard of others as well. At least it's common enough that this exists: http://stackoverflow.com/questions/12523122/what-is-glibcxx-use-nanosleep-al...
I am submitting this so that our trusty developers can consider including this option in the Pkgfile for the current version of GCC in [core]. I am not sure if the option will cause other breakage (though it hasn't for me so far), but it seems like it may solve some problems.
BTW, I am led to understand that version 4.9.0 of GCC doesn't have this issue. It automatically enables nanosleep and sched_yield on platforms known to support them (like x86_64, for example :)
Submitted for consideration. I have no investment in either outcome, though I would prefer not to have to maintain my own personal port of GCC. Thanks for listening.
Interesting find. I assume you are using crux 3.0 and not any of the 3.1-rc's? I just tried building supercollider with the 3.1 toolchain and it seems to build just fine. 3.1-rc3 can be found here if you like to test: http://jaeger.morpheus.net/linux/crux/files/rc/ -- Fredrik Rinnestam
On Fri, 27 Jun 2014 14:06:05 +0200 Fredrik Rinnestam <fredrik@rinnestam.se> wrote:
On Thu, Jun 26, 2014 at 04:31:13PM -0700, Phil Thomson wrote:
I was trying to compile supercollider from git on CRUX Linux.
[ 18%] Building CXX object server/scsynth/CMakeFiles/libscsynth.dir/SC_ComPort.cpp.o In file included from /home/phil/ports/supercollider/supercollider/external_libraries/boost/boost/interprocess/detail/managed_open_or_create_impl.hpp:15:0, from /home/phil/ports/supercollider/supercollider/external_libraries/boost/boost/interprocess/managed_shared_memory.hpp:22, from /home/phil/ports/supercollider/supercollider/server/scsynth/../../common/server_shm.hpp:29, from /home/phil/ports/supercollider/supercollider/server/scsynth/SC_HiddenWorld.h:37, from /home/phil/ports/supercollider/supercollider/server/scsynth/SC_ComPort.cpp:22: /home/phil/ports/supercollider/supercollider/external_libraries/boost/boost/interprocess/detail/os_thread_functions.hpp: In function 'int boost::interprocess::ipcdetail::thread_launch(boost::interprocess::ipcdetail::OS_thread_t&, F)': /home/phil/ports/supercollider/supercollider/external_libraries/boost/boost/interprocess/detail/os_thread_functions.hpp:554:36: warning: 'auto_ptr' is deprecated (declared at /usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.4/../../../../include/c++/4.7.4/backward/auto_ptr.h:87) [-Wdeprecated-declarations] /home/phil/ports/supercollider/supercollider/server/scsynth/SC_ComPort.cpp: In member function 'void scsynth::SC_TcpConnection::start()': /home/phil/ports/supercollider/supercollider/server/scsynth/SC_ComPort.cpp:314:4: error: 'sleep_for' is not a member of 'this_thread' make[2]: *** [server/scsynth/CMakeFiles/libscsynth.dir/SC_ComPort.cpp.o] Error 1 make[1]: *** [server/scsynth/CMakeFiles/libscsynth.dir/all] Error 2 make: *** [all] Error 2 =======> ERROR: Building '/home/phil/ports/supercollider/supercollider#20140621-1.pkg.tar.gz' failed.
I solved the issue by re-compiling gcc with --enable-libstdcxx-time. Now SC compiles beautifully. (I shed a single tear.) SuperCollider is not the only package affected by this issue; I have heard of others as well. At least it's common enough that this exists: http://stackoverflow.com/questions/12523122/what-is-glibcxx-use-nanosleep-al...
I am submitting this so that our trusty developers can consider including this option in the Pkgfile for the current version of GCC in [core]. I am not sure if the option will cause other breakage (though it hasn't for me so far), but it seems like it may solve some problems.
BTW, I am led to understand that version 4.9.0 of GCC doesn't have this issue. It automatically enables nanosleep and sched_yield on platforms known to support them (like x86_64, for example :)
Submitted for consideration. I have no investment in either outcome, though I would prefer not to have to maintain my own personal port of GCC. Thanks for listening.
Interesting find. I assume you are using crux 3.0 and not any of the 3.1-rc's? I just tried building supercollider with the 3.1 toolchain and it seems to build just fine. 3.1-rc3 can be found here if you like to test: http://jaeger.morpheus.net/linux/crux/files/rc/
--
Fredrik Rinnestam _______________________________________________ CRUX mailing list CRUX@lists.crux.nu http://lists.crux.nu/mailman/listinfo/crux
Yes, 3.0. How stable are the RC's? I might try one out at some point...
On 28/06/14 11:41, Phil Thomson wrote:
On Fri, 27 Jun 2014 14:06:05 +0200 Fredrik Rinnestam <fredrik@rinnestam.se> wrote:
On Thu, Jun 26, 2014 at 04:31:13PM -0700, Phil Thomson wrote:
I was trying to compile supercollider from git on CRUX Linux.
[ 18%] Building CXX object server/scsynth/CMakeFiles/libscsynth.dir/SC_ComPort.cpp.o In file included from /home/phil/ports/supercollider/supercollider/external_libraries/boost/boost/interprocess/detail/managed_open_or_create_impl.hpp:15:0, from /home/phil/ports/supercollider/supercollider/external_libraries/boost/boost/interprocess/managed_shared_memory.hpp:22, from /home/phil/ports/supercollider/supercollider/server/scsynth/../../common/server_shm.hpp:29, from /home/phil/ports/supercollider/supercollider/server/scsynth/SC_HiddenWorld.h:37, from /home/phil/ports/supercollider/supercollider/server/scsynth/SC_ComPort.cpp:22: /home/phil/ports/supercollider/supercollider/external_libraries/boost/boost/interprocess/detail/os_thread_functions.hpp: In function 'int boost::interprocess::ipcdetail::thread_launch(boost::interprocess::ipcdetail::OS_thread_t&, F)': /home/phil/ports/supercollider/supercollider/external_libraries/boost/boost/interprocess/detail/os_thread_functions.hpp:554:36: warning: 'auto_ptr' is deprecated (declared at /usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.4/../../../../include/c++/4.7.4/backward/auto_ptr.h:87) [-Wdeprecated-declarations] /home/phil/ports/supercollider/supercollider/server/scsynth/SC_ComPort.cpp: In member function 'void scsynth::SC_TcpConnection::start()': /home/phil/ports/supercollider/supercollider/server/scsynth/SC_ComPort.cpp:314:4: error: 'sleep_for' is not a member of 'this_thread' make[2]: *** [server/scsynth/CMakeFiles/libscsynth.dir/SC_ComPort.cpp.o] Error 1 make[1]: *** [server/scsynth/CMakeFiles/libscsynth.dir/all] Error 2 make: *** [all] Error 2 =======> ERROR: Building '/home/phil/ports/supercollider/supercollider#20140621-1.pkg.tar.gz' failed.
I solved the issue by re-compiling gcc with --enable-libstdcxx-time. Now SC compiles beautifully. (I shed a single tear.) SuperCollider is not the only package affected by this issue; I have heard of others as well. At least it's common enough that this exists: http://stackoverflow.com/questions/12523122/what-is-glibcxx-use-nanosleep-al...
I am submitting this so that our trusty developers can consider including this option in the Pkgfile for the current version of GCC in [core]. I am not sure if the option will cause other breakage (though it hasn't for me so far), but it seems like it may solve some problems.
BTW, I am led to understand that version 4.9.0 of GCC doesn't have this issue. It automatically enables nanosleep and sched_yield on platforms known to support them (like x86_64, for example :)
Submitted for consideration. I have no investment in either outcome, though I would prefer not to have to maintain my own personal port of GCC. Thanks for listening. Interesting find. I assume you are using crux 3.0 and not any of the 3.1-rc's? I just tried building supercollider with the 3.1 toolchain and it seems to build just fine. 3.1-rc3 can be found here if you like to test: http://jaeger.morpheus.net/linux/crux/files/rc/
--
Fredrik Rinnestam _______________________________________________ CRUX mailing list CRUX@lists.crux.nu http://lists.crux.nu/mailman/listinfo/crux Yes, 3.0.
How stable are the RC's? I might try one out at some point... _______________________________________________ CRUX mailing list CRUX@lists.crux.nu http://lists.crux.nu/mailman/listinfo/crux
I hit the same issue with webkit and talked about this to the rest of the devs awhile ago. The consensus was we will leave crux 3.0 gcc as is and as you are aware the gcc version in crux 3.1 is capable of working. CRUX is working fine on a number of machines. 5 of mine are on CRUX 3.1 now with no issues. Feel free to upgrade to CRUX 3.1 and report anything back. Danny Romster @ freenode
participants (3)
-
Danny Rawlins
-
Fredrik Rinnestam
-
Phil Thomson