diff -p -up gdb-6.8/gdb/configure.ac.orig gdb-6.8/gdb/configure.ac --- gdb-6.8/gdb/configure.ac.orig 2009-01-20 15:27:54.000000000 -0500 +++ gdb-6.8/gdb/configure.ac 2009-01-20 15:28:51.000000000 -0500 @@ -477,6 +477,60 @@ else fi fi +dnl Check for rpm version --akk +rpm_version="none" +SAVE_LIBS="$LIBS" +SAVE_CPPFLAGS="$CPPFLAGS" + +CPPFLAGS="$SAVE_CPPFLAGS -I/usr/include/rpm" +AC_CHECK_HEADER(rpmlib.h, rpm_header_ok=1, rpm_header_ok=0) + +dnl Check for rpm version --akk +AC_PATH_PROG(RPM_PATH,rpm,none) +if test "$RPM_PATH" = "none"; then + AC_MSG_ERROR([RPM executable was not found in your system]) +else + AC_DEFINE_UNQUOTED([HAVE_RPM],1,[Define if RPM backend is available]) + RPM_VERSION_RAW=`LANG= LC_ALL= $RPM_PATH --version | sed -r 's/(^RPM version )|(^rpm \(RPM\) )//'` +fi + +AC_MSG_CHECKING(for RPM version) +RPM_VERSION_MAJOR=`echo $RPM_VERSION_RAW | cut -d. -f1` +RPM_VERSION_MINOR=`echo $RPM_VERSION_RAW | cut -d. -f2` +RPM_VERSION_MICRO=`echo $RPM_VERSION_RAW | cut -d. -f3` +if test -z "$RPM_VERSION_MAJOR" -o -z "$RPM_VERSION_MINOR"; then + AC_MSG_ERROR([can't parse RPM version]) +fi +if test -z "$RPM_VERSION_MICRO"; then + RPM_VERSION_MICRO=0 +fi +AC_DEFINE_UNQUOTED([RPM_VERSION_MAJOR],$RPM_VERSION_MAJOR,[RPM major version]) +AC_DEFINE_UNQUOTED([RPM_VERSION_MINOR],$RPM_VERSION_MINOR,[RPM minor version]) +AC_DEFINE_UNQUOTED([RPM_VERSION_MICRO],$RPM_VERSION_MICRO,[RPM micro version]) +AC_DEFINE_UNQUOTED([RPM_VERSION], + [((RPM_VERSION_MAJOR<<16)|(RPM_VERSION_MINOR<<8)|RPM_VERSION_MICRO)], + [Define to the RPM version]) +AC_DEFINE_UNQUOTED([RPM_VERSION_RAW],"$RPM_VERSION_RAW",[RPM raw version]) +AC_MSG_RESULT($RPM_VERSION_RAW) + +dnl No pkgconfig, manually check for RPM libraries and headers +if test -z "$RPM_LIBS"; then + AC_CHECK_HEADERS(db1/db.h) + + if test $RPM_VERSION_MAJOR -lt 4; then + RPM_LIBS="-lrpm -lz -lbz2 -lpopt" + else + AC_CHECK_LIB(rpmdb,rpmdbOpen, + [RPMDBLIBS="-lrpmdb"], + [RPMDBLIBS="-ldb-3.1"], + [-lrpm -lrpmio -lz -lbz2 -lpopt]) + RPM_LIBS="-lrpm $RPMDBLIBS -lrpmio -lz -lbz2 -lpopt" + fi + AC_MSG_CHECKING(for RPM libraries) + AC_MSG_RESULT($RPM_LIBS) + AC_SUBST(RPM_LIBS) +fi + # ------------------------- # # Checks for header files. # # ------------------------- # diff -p -up gdb-6.8/gdb/symfile.c.orig gdb-6.8/gdb/symfile.c --- gdb-6.8/gdb/symfile.c.orig 2009-01-20 15:27:55.000000000 -0500 +++ gdb-6.8/gdb/symfile.c 2009-01-20 15:30:22.000000000 -0500 @@ -1756,10 +1756,14 @@ build_id_to_filename (struct build_id *b return retval; } +#if RPM_VERSION >= 0x050000 +#include <rpm/rpm4compat.h> +#else #include <rpm/rpmlib.h> #include <rpm/rpmts.h> -#include <rpm/rpmdb.h> #include <rpm/header.h> +#endif +#include <rpm/rpmdb.h> /* This MISSING_RPM_HASH tracker is used to collect all the missing rpm files and avoid their duplicities during a single inferior run. */