Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
26282fc
Import kdumpid
ptesarik Dec 19, 2024
e2f82e2
m4/tools.m4: Fix KDUMP_TOOL_KDUMPID macro with older autoconf
ptesarik Dec 22, 2024
e9b33d4
kdumpid: Fix printf format specifiers for Xen version number
ptesarik Dec 25, 2024
b669f15
kdumpid: Fix a 32-bit build error caused by max_pfn type mismatch
ptesarik Dec 25, 2024
c3b3367
kdumpid: Get rid of endian.h
ptesarik Dec 25, 2024
2cae683
Prepare release 0.5.5
ptesarik Dec 25, 2024
120d4f0
tools: kdumpid: include config.h before <dis-asm.h>
thesamesam Dec 26, 2024
c59ccc0
Always include addrxlat-priv.h (or config.h) where appropriate
thesamesam Dec 26, 2024
3796453
Always include testutil.h (or config.h) where appropriate
thesamesam Dec 26, 2024
c477f50
Merge pull request #84 from thesamesam/bfd-config
ptesarik Dec 26, 2024
3dffc5f
NEWS: Make heading for a post-0.5.5 release
ptesarik Dec 26, 2024
40c9ff9
Remove legacy Python bindings
ptesarik Dec 26, 2024
cc927b9
tests: Fix xlat-linux-x86_64-6.11-pti-user-ver with parallel runs
ptesarik Dec 27, 2024
b8bb215
README: Update information about Python bindings
ptesarik Dec 29, 2024
d5c1876
kdumpid: add libaddrxlat.la to LIBS
ptesarik Jan 1, 2025
7f70848
kdumpid: Unconditionally link with zlib
ptesarik Jan 1, 2025
23bac29
doc: Update Doxyfile to 1.12.0
ptesarik Jan 2, 2025
3fcff04
doc: Fix doxygen group closings
ptesarik Jan 2, 2025
ab42585
Merge remote-tracking branch 'origin/upstreams/develop' into merge
sebroy Aug 27, 2025
400f3ee
TOOL-28497 latest libkdumpfile upstream doesn't build
sebroy Aug 27, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,505 changes: 1,000 additions & 505 deletions Doxyfile

Large diffs are not rendered by default.

5 changes: 1 addition & 4 deletions Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,7 @@

ACLOCAL_AMFLAGS = -I m4

SUBDIRS = include src tests examples
if BUILD_PYTHON_EXT
SUBDIRS += python
endif
SUBDIRS = include src tests tools examples

dist_noinst_DATA = \
COPYING.GPLv2 \
Expand Down
5 changes: 5 additions & 0 deletions NEWS
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
next
----
* Remove legacy Python bindings. Use pykdumpfile instead.

0.5.5
-----
* Incompatible API changes:
- kdump_get_typed_attr(): parameters and type mismatch behaviour
- kdump_attr_ref_get(): result must be discarded
Expand All @@ -8,6 +12,7 @@ next
* Parse QEMU CPU state ELF notes.
* Use kernel page tables when initializing X86-64 Linux with PTI from
CR3 register value.
* Include the kdumpid utility.
* Fix direct mapping if LDT PTI remapping is used in Linux on X86-64.
* Minor cache improvements and a NULL-pointer dereference fix.
* Fix test suite for 32-bit architectures.
Expand Down
9 changes: 7 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,12 @@ To compile this package, you'll need the following:
* [GCC](http://gcc.gnu.org/). The source uses a few construct specific
to GCC (such as variable attributes). Porting should be easy, though.

If you want to build kdumpid, you'll also need:

* [BFD](http://www.gnu.org/software/binutils/). Any version with
disassemblers for x86, ppc and s390 will do. This usually comes with
the distro packaged as binutils-devel or similar.

To create documentation files, you'll need:

* [Doxygen](http://www.doxygen.org/). Usually packaged as doxygen.
Expand Down Expand Up @@ -50,8 +56,7 @@ To generate the `configure` script, run
Python
------

This repository contains some manually written Python bindings. These are now
deprecated in favour of a fresh rewrite using CFFI. See
There are official Python bindings for `libkdumpfile`; see
[pykdumpfile](https://github.com/ptesarik/pykdumpfile).

Making Releases
Expand Down
15 changes: 11 additions & 4 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,14 @@ dnl along with this program. If not, see <http://www.gnu.org/licenses/>.
dnl Package release versioning
m4_define([pkg_major_version], [0])
m4_define([pkg_minor_version], [5])
m4_define([pkg_micro_version], [4])
m4_define([pkg_micro_version], [5])
m4_define([pkg_version],
[pkg_major_version.pkg_minor_version.pkg_micro_version])

dnl FIXME: kdumpid has a different versioning scheme
m4_define([kdumpid_major_version], [1])
m4_define([kdumpid_minor_version], [7])

AC_INIT([libkdumpfile],[pkg_version],[[email protected]])

AC_CONFIG_SRCDIR([src/kdumpfile/diskdump.c])
Expand Down Expand Up @@ -101,8 +105,10 @@ AC_ARG_ENABLE(debug,
AS_IF([test "x$enable_debug" = xyes],
[AC_DEFINE(ENABLE_DEBUG, 1, Define to enable extra debugging features)])

dnl check for Python
kdump_PYTHON([2.7.0])
dnl check whether to build optional tools
AC_SUBST(KDUMPID_VER_MAJOR, kdumpid_major_version)
AC_SUBST(KDUMPID_VER_MINOR, kdumpid_minor_version)
KDUMP_TOOL_KDUMPID

AC_CONFIG_FILES([
Makefile
Expand All @@ -112,8 +118,9 @@ AC_CONFIG_FILES([
src/Makefile
src/addrxlat/Makefile
src/kdumpfile/Makefile
python/Makefile
tests/Makefile
tools/Makefile
tools/kdumpid/Makefile
libaddrxlat.pc
libkdumpfile.pc
include/libkdumpfile/kdumpfile.h
Expand Down
1 change: 1 addition & 0 deletions debian/control
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ Maintainer: Delphix Engineering <[email protected]>
Standards-Version: 4.1.2
Build-Depends: autoconf,
automake,
binutils-dev,
dh-python,
liblzo2-dev,
libsnappy1v5,
Expand Down
2 changes: 1 addition & 1 deletion include/libkdumpfile/addrxlat.h.in
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ typedef uint_fast64_t addrxlat_pte_t;
#define ADDRXLAT_PRIuPTE PRIuFAST64 /**< Decimal PTE */
#define ADDRXLAT_PRIxPTE PRIxFAST64 /**< Lowercase hex PTE */
#define ADDRXLAT_PRIXPTE PRIXFAST64 /**< Uppercase hex PTE */
/* @} */
/** @} */

/** Address spaces
*
Expand Down
8 changes: 4 additions & 4 deletions include/libkdumpfile/kdumpfile.h.in
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ typedef uint_fast64_t kdump_num_t;
#define KDUMP_PRIuNUM PRIuFAST64 /**< Decimal @c kdump_num_t */
#define KDUMP_PRIxNUM PRIxFAST64 /**< Lowercase hex @c kdump_num_t */
#define KDUMP_PRIXNUM PRIXFAST64 /**< Uppercase hex @c kdump_num_t */
/* @} */
/** @} */

/** Type of a physical or virtual address.
*
Expand Down Expand Up @@ -118,7 +118,7 @@ typedef kdump_addr_t kdump_vaddr_t;
#define KDUMP_PRIuADDR ADDRXLAT_PRIuADDR /**< Decimal address */
#define KDUMP_PRIxADDR ADDRXLAT_PRIxADDR /**< Lowercase hex address */
#define KDUMP_PRIXADDR ADDRXLAT_PRIXADDR /**< Uppercase hex address */
/* @} */
/** @} */

/** Representation of a dump file.
*
Expand Down Expand Up @@ -217,7 +217,7 @@ enum kdump_clone_bits {
*/
/** Do not share address translation. */
#define KDUMP_CLONE_XLAT (1UL << KDUMP_CLONE_BIT_XLAT)
/* @} */
/** @} */

/** Clone a dump file object.
* @param orig Original dump file object.
Expand Down Expand Up @@ -1034,7 +1034,7 @@ void kdump_attr_iter_end(kdump_ctx_t *ctx, kdump_attr_iter_t *iter);
#define KDUMP_ARCH_S390 "s390" /**< IBM z/Architecture, 31-bit */
#define KDUMP_ARCH_S390X "s390x" /**< IBM z/Architecture, 64-bit */
#define KDUMP_ARCH_X86_64 "x86_64" /**< AMD64, Intel 64 */
/* @} */
/** @} */

/** Byte order attribute.
* @sa kdump_byte_order_t
Expand Down
42 changes: 0 additions & 42 deletions m4/python.m4

This file was deleted.

100 changes: 100 additions & 0 deletions m4/tools.m4
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
# KDUMP_TRY_LINK(LIBRARIES)
# ---------------------------------------------------------
# Try to link the existing test source file with additional
# libraries.
# Set kdump_res to "yes" on success, else set it to "no".
# Standard error output is saved to conftest.linkerr.
AC_DEFUN([KDUMP_TRY_LINK],[dnl
kdump_save_LIBS="$LIBS"
kdump_save_ac_link="$ac_link"
LIBS="$1 $LIBS"
ac_link="$ac_link 2>conftest.linkerr"
AC_LINK_IFELSE([], kdump_res=yes, [kdump_res=no
$2])
LIBS="$kdump_save_LIBS"
ac_link="$kdump_save_ac_link"
])# KDUMP_TRY_LINK

AC_DEFUN([KDUMP_REPORT_LINKERR],[dnl
AS_ECHO("$as_me:$LINENO: all linker errors") >&AS_MESSAGE_LOG_FD
cat conftest.linkerr >&AS_MESSAGE_LOG_FD
])# KDUMP_REPORT_LINKERR

AC_DEFUN([KDUMP_TRY_LINK_UNDEF],[dnl
kdump_save_LDFLAGS="$LDFLAGS"
LDFLAGS="-z undefs $2 $LDFLAGS"
KDUMP_TRY_LINK($1, KDUMP_REPORT_LINKERR)
LDFLAGS="$kdump_save_LDFLAGS"
])# KDUMP_TRY_LINK_UNDEF

AC_DEFUN([KDUMP_DIS_ASM_CHECK_UNDEF],[dnl
AC_REQUIRE([AC_PROG_EGREP])dnl
AC_MSG_CHECKING([whether disassembler requires $1])
KDUMP_TRY_LINK($DIS_ASM_LIBS)
AS_ECHO("$as_me:$LINENO: matching linker errors") >&AS_MESSAGE_LOG_FD
AS_IF([$EGREP "@<:@^A-Za-z0-9_@:>@($2)" conftest.linkerr >&AS_MESSAGE_LOG_FD],
[AC_MSG_RESULT(yes)
DIS_ASM_LIBS="$DIS_ASM_LIBS $1"
KDUMP_TRY_LINK_UNDEF($DIS_ASM_LIBS)
AS_IF([test yes != "$kdump_res"],
[AC_MSG_FAILURE([Link fails with $1])])],
[AC_MSG_RESULT(no)])dnl
])# KDUMP_DIS_ASM_CHECK_UNDEF

AC_DEFUN([KDUMP_DIS_ASM_LIBS],[dnl determine disassembler libraries
DIS_ASM_LIBS=-lopcodes
AC_LANG_CONFTEST([AC_LANG_PROGRAM(
[#include <dis-asm.h>],
[disassembler(bfd_arch_i386, FALSE, bfd_mach_x86_64, NULL);])])
dnl ignore undefined symbols from missing linker dependencies
AC_MSG_CHECKING([for disassembler in $DIS_ASM_LIBS])
KDUMP_TRY_LINK_UNDEF($DIS_ASM_LIBS, [-Wl,--require-defined=disassembler])
AC_MSG_RESULT($kdump_res)
AS_IF([test yes = "$kdump_res"], [dnl
KDUMP_DIS_ASM_CHECK_UNDEF(-lbfd, bfd_)
KDUMP_DIS_ASM_CHECK_UNDEF(-lsframe, sframe_)
KDUMP_DIS_ASM_CHECK_UNDEF(-liberty, htab_create|splay_tree_new)
KDUMP_DIS_ASM_CHECK_UNDEF(-lz, inflate)
KDUMP_DIS_ASM_CHECK_UNDEF(-lzstd, ZSTD_)
KDUMP_DIS_ASM_CHECK_UNDEF(-ldl, dlopen)
AS_IF([test yes != "$kdump_res"],
[KDUMP_REPORT_LINKERR]
[AC_MSG_FAILURE([Tried everything, still cannot link disassembler.])])
AC_SUBST(DIS_ASM_LIBS)
])dnl
])# KDUMP_DIS_ASM_LIBS

AC_DEFUN([KDUMP_DIS_ASM],[dnl determine disassembler options
AC_CHECK_HEADERS(dis-asm.h, [],
[AC_MSG_ERROR([Disassembler headers not found])])
AC_MSG_CHECKING([whether disassembler supports syntax highlighting])
AC_COMPILE_IFELSE([AC_LANG_SOURCE([
#include <dis-asm.h>
void fn(struct disassemble_info *info, void *stream,
fprintf_ftype fprintf_func, fprintf_styled_ftype fprintf_styled_func)
{
init_disassemble_info(info, stream, fprintf_func, fprintf_styled_func);
}
])],
[dnl
AC_MSG_RESULT(yes)
AC_DEFINE(DIS_ASM_STYLED_PRINTF, [1],
[Define if init_disassemble_info() has a printf_styled_func parameter])],
[AC_MSG_RESULT(no)])
KDUMP_DIS_ASM_LIBS
])# KDUMP_DIS_ASM

AC_DEFUN([KDUMP_TOOL_KDUMPID],[dnl enable/disable kdumpid build
AC_ARG_ENABLE(kdumpid,
[AS_HELP_STRING(--disable-kdumpid,
[do not build kdumpid])],
[],
[enable_kdumpid=yes])
AS_IF([test no != "$enable_kdumpid"], [dnl
KDUMP_DIS_ASM
AS_IF([test yes != "$kdump_res"],
[AC_MSG_FAILURE(
[disassembler test failed (--disable-kdumpid to disable)])]
)])
AM_CONDITIONAL(BUILD_KDUMPID, [test yes = "$enable_kdumpid"])
])# KDUMP_TOOL_KDUMPID
9 changes: 0 additions & 9 deletions python/.gitignore

This file was deleted.

Loading
Loading