# HG changeset patch # User John W. Eaton # Date 1385344486 18000 # Node ID f82fd6854dbf57ca32947d6b3bb355c7bfb97b33 # Parent 8dd4275381474c6d9e354f592528605cc0eec935 use gnulib sigemptyset and sigaddset in thread_manager class * thread-manager.cc (block_or_unblock_signal): Use gnulib sigemptyset and sigaddset functions. diff -r 8dd427538147 -r f82fd6854dbf libgui/src/thread-manager.cc --- a/libgui/src/thread-manager.cc Sun Nov 24 22:06:20 2013 +0100 +++ b/libgui/src/thread-manager.cc Sun Nov 24 20:54:46 2013 -0500 @@ -87,6 +87,18 @@ : rep (octave_thread_manager::create_rep ()) { } +// The following is a workaround for an apparent bug in GCC 4.1.2 and +// possibly earlier versions. See Octave bug report #30685 for details. +#if defined (__GNUC__) +# if ! (__GNUC__ > 4 \ + || (__GNUC__ == 4 && (__GNUC_MINOR__ > 1 \ + || (__GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ > 2)))) +# undef GNULIB_NAMESPACE +# define GNULIB_NAMESPACE +# warning "disabling GNULIB_NAMESPACE for signal functions -- consider upgrading to a current version of GCC" +# endif +#endif + static void block_or_unblock_signal (int how, int sig) { @@ -100,9 +112,9 @@ sigset_t signal_mask; - sigemptyset (&signal_mask); + GNULIB_NAMESPACE::sigemptyset (&signal_mask); - sigaddset (&signal_mask, sig); + GNULIB_NAMESPACE::sigaddset (&signal_mask, sig); pthread_sigmask (how, &signal_mask, 0); #endif