[PATCH] os: use libunwind to generate backtraces
Peter Hutterer
peter.hutterer at who-t.net
Mon Feb 25 14:04:32 PST 2013
On Mon, Feb 25, 2013 at 07:51:47PM +0100, Marcin Slusarz wrote:
> On Mon, Feb 25, 2013 at 04:17:28PM +1000, Peter Hutterer wrote:
> > On Sat, Feb 23, 2013 at 10:17:20PM +0100, Marcin Slusarz wrote:
> > > On Fri, Feb 22, 2013 at 09:02:39AM +1000, Peter Hutterer wrote:
> > > > On Thu, Feb 21, 2013 at 08:00:07AM +0100, Marcin Ślusarz wrote:
> > > > > 21 lut 2013 00:37, "Peter Hutterer" <peter.hutterer at who-t.net> napisał(a):
> > > > > > thanks for the changes but after applying this patch locally I do wonder:
> > > > > > how did you test this? i'm getting undefined references to the various
> > > > > > libunwind calls (_Ux86_64_getcontext, _Ux86_64_strerror,etc) for Xvfb,
> > > > > Xdmx, Xnext
> > > > > > and all the tests). This needs some more polishing.
> > > > >
> > > > > Try to do make clean before building.
> > > > > For some reason libos.la is not updated automatically.
> > > >
> > > > I did to a make distclean and it still won't work. did a fresh clone, and
> > > > I'm still getting
> > > >
> > > > CCLD Xvfb
> > > > ../../os/os.O: In function `xorg_backtrace':
> > > > /home/whot/xorg/xserver/os/backtrace.c:56: undefined reference to
> > > > `_Ux86_64_getcontext'
> > > > /home/whot/xorg/xserver/os/backtrace.c:58: undefined reference to
> > > > `_Ux86_64_strerror'
> > > > /home/whot/xorg/xserver/os/backtrace.c:63: undefined reference to
> > > > `_ULx86_64_init_local'
> > > > /home/whot/xorg/xserver/os/backtrace.c:65: undefined reference to
> > > > `_Ux86_64_strerror'
> > > > /home/whot/xorg/xserver/os/backtrace.c:72: undefined reference to
> > > > `_ULx86_64_step'
> > > > /home/whot/xorg/xserver/os/backtrace.c:74: undefined reference to
> > > > `_ULx86_64_get_proc_info'
> > > > /home/whot/xorg/xserver/os/backtrace.c:76: undefined reference to
> > > > `_Ux86_64_strerror'
> > > > /home/whot/xorg/xserver/os/backtrace.c:81: undefined reference to
> > > > `_ULx86_64_get_proc_name'
> > > > /home/whot/xorg/xserver/os/backtrace.c:84: undefined reference to
> > > > `_Ux86_64_strerror'
> > > > /home/whot/xorg/xserver/os/backtrace.c:100: undefined reference to
> > > > `_ULx86_64_step'
> > > > /home/whot/xorg/xserver/os/backtrace.c:102: undefined reference to
> > > > `_Ux86_64_strerror'
> > >
> > > It builds fine on Gentoo (~amd64) and Fedora 18, although Fedora 18 ships too
> > > old version of libunwind (no pkgconfig support), so I had to build it manually.
> > >
> > > What do I need to do to reproduce it? :)
> >
> > good question. I tried a scratch-build to make sure and that one failed as
> > well. So something isn't quite right, but I don't yet know what.
> >
> > http://koji.fedoraproject.org/koji/taskinfo?taskID=5051896
>
> Thank you! I think below patch will make it build.
>
> ---
> diff --git a/configure.ac b/configure.ac
> index 4a292da..597fd36 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -1344,7 +1344,7 @@ AC_DEFINE(BIGREQS, 1, [Support BigRequests extension])
>
> if test "x$SPECIAL_DTRACE_OBJECTS" = "xyes" ; then
> DIX_LIB='$(top_builddir)/dix/dix.O'
> - OS_LIB='$(top_builddir)/os/os.O $(SHA1_LIBS) $(DLOPEN_LIBS)'
> + OS_LIB='$(top_builddir)/os/os.O $(SHA1_LIBS) $(DLOPEN_LIBS) $(LIBUNWIND_LIBS)'
> else
> DIX_LIB='$(top_builddir)/dix/libdix.la'
> OS_LIB='$(top_builddir)/os/libos.la'
indeed it does work, thank you! squashed this in, your patch is in my next
branch.
Cheers,
Peter
More information about the xorg-devel
mailing list