Fixes a FIXME relating to a missing elf (libdw) symbol check.
PATCH 1/1 Fixes a FIXME relating to a missing elf (libdw) symbol check.
Hello,
I was trying to build pahole using git HEAD using the latest Ubuntu (7.10) and noticied that there is a missing check of a symbol and a FIXME tag pointing that. The attached patch adds a cmake configure (config.h) file and checks the symbol (dwfl_module_build_id).
commit b83136498ac3511f1b014527d3f0fc9c50fad8ea
Author: Felipe Kellermann <felipek-F9QBgdt/[email protected]> Date: Thu Jan 31 20:18:52 2008 -0200
[DWARVES] Fixes a FIXME relating to a missing elf (libdw) symbol check.
Signed-off-by Felipe Kellermann <felipek-F9QBgdt/[email protected]>
cmake/modules/FindDWARF.cmake +5 -0
@@ -5,6 +5,7 @@ # DWARF_LIBRARIES - List of libraries when using elf utils. # DWARF_FOUND - True if fdo found. +INCLUDE(CheckLibraryExists) if (DWARF_INCLUDE_DIR AND LIBDW_INCLUDE_DIR AND DWARF_LIBRARY AND ELF_LIBRARY) # Already in cache, be silent
@@ -42,6 +43,9 @@ find_library(EBL_LIBRARY if (DWARF_INCLUDE_DIR AND LIBDW_INCLUDE_DIR AND DWARF_LIBRARY AND ELF_LIBRARY AND EBL_LIBRARY) set(DWARF_FOUND TRUE) set(DWARF_LIBRARIES ${DWARF_LIBRARY} ${ELF_LIBRARY} ${EBL_LIBRARY}) + + set(CMAKE_REQUIRED_LIBRARIES ${DWARF_LIBRARIES}) + check_library_exists(elf dwfl_module_build_id "" HAVE_DWFL_MODULE_BUILD_ID) else (DWARF_INCLUDE_DIR AND LIBDW_INCLUDE_DIR AND DWARF_LIBRARY AND ELF_LIBRARY AND EBL_LIBRARY) set(DWARF_FOUND FALSE) set(DWARF_LIBRARIES)
@@ -77,3 +81,4 @@ endif (DWARF_FOUND) mark_as_advanced(DWARF_INCLUDE_DIR LIBDW_INCLUDE_DIR DWARF_LIBRARY ELF_LIBRARY EBL_LIBRARY) include_directories(${DWARF_INCLUDE_DIR} ${LIBDW_INCLUDE_DIR}) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_SOURCE_DIR}/config.h)
config.h.cmake new file +9 -0
@@ -0,0 +1,9 @@ +/* + Copyright (C) 2007 Arnaldo Carvalho de Melo <[email protected]> + + This program is free software; you can redistribute it and/or modify it + under the terms of version 2 of the GNU General Public License as + published by the Free Software Foundation. +*/ + +#cmakedefine HAVE_DWFL_MODULE_BUILD_ID
dwarves.c +3 -5
@@ -24,6 +24,7 @@#include <string.h> #include <unistd.h> +#include "config.h" #include "list.h" #include "dwarves.h" #include "dutil.h"
@@ -3486,11 +3487,8 @@ static int cus__load_module(Dwfl_Module *mod, void **userdata __unused,size_t cuhl;GElf_Addr vaddr;const unsigned char *build_id =NULL ; -/* -* FIXME: check how to do this properly using cmake to test for -* the existence of dwfl_module_build_id in the elfutils libraries. -*/ -#if 1 + +#if HAVE_DWFL_MODULE_BUILD_ID int build_id_len =dwfl_module_build_id (mod, &build_id, &vaddr);#else int build_id_len =0 ;
Signature · 3 lines
-- Felipe "FK" Kellermann felipek-F9QBgdt/[email protected]