diff --git a/README.md b/README.md index ecf0bb8..ef504b5 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,13 @@ # libunwind +libunwind implements a portable and efficient C programming interface (API) to determine the call-chain of a program. The API additionally provides the means to manipulate the preserved (callee-saved) state of each call-frame and to resume execution at any point in the call-chain (non-local goto). The API supports both local (same-process) and remote (across-process) operation. As such, the API is useful in a number of applications. Some examples include: + +* exception handling +The libunwind API makes it trivial to implement the stack-manipulation aspects of exception handling. +* debuggers +The libunwind API makes it trivial for debuggers to generate the call-chain (backtrace) of the threads in a running program. +* introspection +It is often useful for a running thread to determine its call-chain. For example, this is useful to display error messages (to show how the error came about) and for performance monitoring/analysis. +* efficient setjmp() +With libunwind, it is possible to implement an extremely efficient version of setjmp(). Effectively, the only context that needs to be saved consists of the stack-pointer(s). + diff --git a/libunwind.spec b/libunwind.spec new file mode 100644 index 0000000..eed18dc --- /dev/null +++ b/libunwind.spec @@ -0,0 +1,131 @@ +Name: libunwind +Version: 1.1 +Release: 1mamba +Summary: A portable and efficient C programming interface (API) to determine the call-chain of a program +Group: System/Libraries +Vendor: openmamba +Distribution: openmamba +Packager: Silvan Calarco +URL: http://www.nongnu.org/libunwind/ +Source: http://download.savannah.gnu.org/releases/libunwind/libunwind-%{version}.tar.gz +License: GPL +## AUTOBUILDREQ-BEGIN +BuildRequires: glibc-devel +## AUTOBUILDREQ-END +BuildRoot: %{_tmppath}/%{name}-%{version}-root + +%description +libunwind implements a portable and efficient C programming interface (API) to determine the call-chain of a program. The API additionally provides the means to manipulate the preserved (callee-saved) state of each call-frame and to resume execution at any point in the call-chain (non-local goto). The API supports both local (same-process) and remote (across-process) operation. As such, the API is useful in a number of applications. Some examples include: + +* exception handling +The libunwind API makes it trivial to implement the stack-manipulation aspects of exception handling. +* debuggers +The libunwind API makes it trivial for debuggers to generate the call-chain (backtrace) of the threads in a running program. +* introspection +It is often useful for a running thread to determine its call-chain. For example, this is useful to display error messages (to show how the error came about) and for performance monitoring/analysis. +* efficient setjmp() +With libunwind, it is possible to implement an extremely efficient version of setjmp(). Effectively, the only context that needs to be saved consists of the stack-pointer(s). + +%package devel +Group: Development/Libraries +Summary: Static libraries and headers for %{name} +Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} + +%description devel +libunwind implements a portable and efficient C programming interface (API) to determine the call-chain of a program. The API additionally provides the means to manipulate the preserved (callee-saved) state of each call-frame and to resume execution at any point in the call-chain (non-local goto). The API supports both local (same-process) and remote (across-process) operation. As such, the API is useful in a number of applications. Some examples include: + +* exception handling +The libunwind API makes it trivial to implement the stack-manipulation aspects of exception handling. +* debuggers +The libunwind API makes it trivial for debuggers to generate the call-chain (backtrace) of the threads in a running program. +* introspection +It is often useful for a running thread to determine its call-chain. For example, this is useful to display error messages (to show how the error came about) and for performance monitoring/analysis. +* efficient setjmp() +With libunwind, it is possible to implement an extremely efficient version of setjmp(). Effectively, the only context that needs to be saved consists of the stack-pointer(s). + +This package contains static libraries and header files need for development. + +%prep +%setup -q + +%build +%configure \ + CFLAGS="%{optflags} -DAO_USE_PTHREAD_DEFS=1" \ + LDFLAGS="-latomic_ops" + +%make + +%install +[ "%{buildroot}" != / ] && rm -rf "%{buildroot}" +%makeinstall + +%clean +[ "%{buildroot}" != / ] && rm -rf "%{buildroot}" + +%post -p /sbin/ldconfig +%postun -p /sbin/ldconfig + +%files +%defattr(-,root,root) +%{_libdir}/libunwind.so.* +%{_libdir}/libunwind-coredump.so.* +%{_libdir}/libunwind-ptrace.so.* +%{_libdir}/libunwind-setjmp.so.* +%ifarch %{ix86} +%{_libdir}/libunwind-x86.so.* +%endif +%ifarch x86_64 +%{_libdir}/libunwind-x86_64.so.* +%endif +%ifarch arm +%{_libdir}/libunwind-arm.so.* +%endif +%doc AUTHORS COPYING + +%files devel +%defattr(-,root,root) +%{_includedir}/libunwind*.h +%{_includedir}/unwind*.h +%{_libdir}/libunwind.a +%{_libdir}/libunwind.la +%{_libdir}/libunwind.so +%{_libdir}/libunwind-coredump.a +%{_libdir}/libunwind-coredump.la +%{_libdir}/libunwind-coredump.so +%{_libdir}/libunwind-generic.a +%{_libdir}/libunwind-generic.so +%{_libdir}/libunwind-ptrace.a +%{_libdir}/libunwind-ptrace.la +%{_libdir}/libunwind-ptrace.so +%{_libdir}/libunwind-setjmp.a +%{_libdir}/libunwind-setjmp.la +%{_libdir}/libunwind-setjmp.so +%ifarch %{ix86} +%{_libdir}/libunwind-x86.a +%{_libdir}/libunwind-x86.la +%{_libdir}/libunwind-x86.so +%endif +%ifarch x86_64 +%{_libdir}/libunwind-x86_64.a +%{_libdir}/libunwind-x86_64.la +%{_libdir}/libunwind-x86_64.so +%endif +%ifarch arm +%{_libdir}/libunwind-arm.a +%{_libdir}/libunwind-arm.la +%{_libdir}/libunwind-arm.so +%endif +%{_libdir}/pkgconfig/libunwind-coredump.pc +%{_libdir}/pkgconfig/libunwind-generic.pc +%{_libdir}/pkgconfig/libunwind-ptrace.pc +%{_libdir}/pkgconfig/libunwind-setjmp.pc +%{_libdir}/pkgconfig/libunwind.pc +%{_mandir}/man3/* +#%doc ChangeLog LICENSE NEWS README TODO + +%changelog +* Tue Oct 23 2012 Automatic Build System 1.1-1mamba +- automatic version update by autodist + +* Sat Nov 05 2011 Silvan Calarco 1.0.1-1mamba +- package created by autospec