Bug 1018549

Summary: needless libunwind dependency
Product: [Fedora] Fedora Reporter: Jan Kratochvil <jan.kratochvil>
Component: xorg-x11-serverAssignee: X/OpenGL Maintenance List <xgl-maint>
Status: CLOSED WONTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: mjw, peter.hutterer, xgl-maint
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 1018550 (view as bug list) Environment:
Last Closed: 2014-03-21 01:58:18 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1018550    

Description Jan Kratochvil 2013-10-13 07:35:41 UTC
I have found Fedora xorg-x11-server depends on libunwind.  There is a longterm plan to obsolete libunwind from Fedora by new elfutils unwinder.  But xorg-x11-server does not even need any external (non-glibc) unwinder.

According to
        http://pkgs.fedoraproject.org/cgit/xorg-x11-server.git/tree/0001-os-use-libunwind-to-generate-backtraces.patch

you do only self-backtrace (called local unwinding by libunwind).  glibc
backtrace() can do the same.  According to the sample backtrace in the patch
above the backtrace addresses there are the same in before/after cases,
libunwind only adds resolving of address -> symbol name there, IIUC.

address -> symbol name resolving can be done with RH-supported elfutils
package, a simple self-backtrace with symbol resolving is for example:
       	http://people.redhat.com/jkratoch/backtracei.c

Comment 1 Peter Hutterer 2013-10-22 05:11:07 UTC
moved upstream https://bugs.freedesktop.org/show_bug.cgi?id=70746

Comment 2 Peter Hutterer 2014-03-21 01:58:18 UTC
Discussion from upstream ended with:
"That is without fork()+exec() libunwind is currently the best there is for
xserver."
http://lists.x.org/archives/xorg-devel/2013-October/038475.html

Closing this for now