Bug#285654: further information on G_BREAKPOINT problem
Anand Kumria
Anand Kumria <wildfire@progsoc.uts.edu.au>,
285654-quiet@bugs.debian.org
Wed, 15 Dec 2004 04:07:25 +1100
Hi,
My package, gtk-gnutella, uses G_BREAKPOINT. This is defined as (in
/usr/include/glib-2.0/glib/gbacktrace.h):
/* Hacker macro to place breakpoints for selected machines.
* Actual use is strongly discouraged of course ;)
*/
#if (defined (__i386__) || defined (__x86_64__)) && defined (__GNUC__) && __GNUC__ >= 2
# define G_BREAKPOINT() G_STMT_START{ __asm__ __volatile__ ("int $03"); }G_STMT_END
#elif defined (_MSC_VER) && defined (_M_IX86)
# define G_BREAKPOINT() G_STMT_START{ __asm int 3h }G_STMT_END
#elif defined (__alpha__) && !defined(__osf__) && defined (__GNUC__) && __GNUC__ >= 2
# define G_BREAKPOINT() G_STMT_START{ __asm__ __volatile__ ("bpt"); }G_STMT_END
#else /* !__i386__ && !__alpha__ */
# define G_BREAKPOINT() G_STMT_START{ raise (SIGTRAP); }G_STMT_END
#endif /* __i386__ */
Which means gtk-gnutella fails to build on a number of architectures.
For example, <URL: http://buildd.debian.org/fetch.php?&pkg=gtk-gnutella&ver=0.95-1&arch=powerpc&stamp=1102775797&file=log&as=raw> and search for SIGTRAP.
That last line should be:
# define G_BREAKPOINT() G_STMT_START{ #include <signal.h> raise (SIGTRAP); }G_STMT_END
Thanks,
Anand
--
linux.conf.au 2005 - http://lca2005.linux.org.au/ - Birthplace of Tux
April 18th to 23rd - http://lca2005.linux.org.au/ - LINUX
Canberra, Australia - http://lca2005.linux.org.au/ - Get bitten!