rhbz #909481. When a compression library wasn't installed libdwfl would not try the next compression library for opening a file. Only try to open a file with a compression library if it is actually used. Also disable tests that depend on a particular compression library (run-readelf-s.sh and run-dwflsyms.sh) if that library isn't installed.
Signed-off-by: Mark Wielaard <[email protected]> --- libdwfl/ChangeLog | 5 +++++ libdwfl/open.c | 8 ++++++++ tests/ChangeLog | 7 +++++++ tests/Makefile.am | 8 ++++++-- 4 files changed, 26 insertions(+), 2 deletions(-) diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog index 1311dea..21a6f0a 100644 --- a/libdwfl/ChangeLog +++ b/libdwfl/ChangeLog @@ -1,3 +1,8 @@ +2013-02-22 Mark Wielaard <[email protected]> + + * open.c (decompress): Only call __libdw_[gunzip|bunzip2|unlzma] + when ZLIB, BZLIB or LZMA are configured. + 2013-02-10 Mark Wielaard <[email protected]> * argp-std.c (parse_opt): Use opt->core and opt->e explicitly in diff --git a/libdwfl/open.c b/libdwfl/open.c index 7dd5b52..4ee22de 100644 --- a/libdwfl/open.c +++ b/libdwfl/open.c @@ -60,12 +60,20 @@ decompress (int fd __attribute__ ((unused)), Elf **elf) if (mapped_size == 0) return error; +#if USE_ZLIB error = __libdw_gunzip (fd, offset, mapped, mapped_size, &buffer, &size); +#endif + +#if USE_BZLIB if (error == DWFL_E_BADELF) error = __libdw_bunzip2 (fd, offset, mapped, mapped_size, &buffer, &size); +#endif + +#if USE_LZMA if (error == DWFL_E_BADELF) error = __libdw_unlzma (fd, offset, mapped, mapped_size, &buffer, &size); #endif +#endif if (error == DWFL_E_NOERROR) { diff --git a/tests/ChangeLog b/tests/ChangeLog index c1e0ef9..102fdc1 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,10 @@ +2013-02-22 Mark Wielaard <[email protected]> + + * Makefile.am (check_PROGRAMS): Remove dwflsyms. + (TESTS): Remove run-readelf-s.sh and run-dwflsyms.sh. + (LZMA): Add dwflsyms to check_PROGRAMS, add run-readelf-s.sh and + run-dwflsyms.sh to TESTS. + 2013-02-15 Mark Wielaard <[email protected]> * testfile-dwzstr.bz2: New testfile. diff --git a/tests/Makefile.am b/tests/Makefile.am index 44b4e61..0b1a6af 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -51,7 +51,7 @@ check_PROGRAMS = arextract arsymtest newfile saridx scnnames sectiondump \ dwfl-bug-getmodules dwarf-getmacros addrcfi \ test-flag-nobits dwarf-getstring rerequest_tag \ alldts md5-sha1-test typeiter low_high_pc \ - test-elf_cntl_gelf_getshdr dwflsyms + test-elf_cntl_gelf_getshdr asm_TESTS = asm-tst1 asm-tst2 asm-tst3 asm-tst4 asm-tst5 \ asm-tst6 asm-tst7 asm-tst8 asm-tst9 @@ -83,7 +83,6 @@ TESTS = run-arextract.sh run-arsymtest.sh newfile test-nlist \ run-test-flag-nobits.sh run-prelink-addr-test.sh \ run-dwarf-getstring.sh run-rerequest_tag.sh run-typeiter.sh \ run-readelf-d.sh run-readelf-gdb_index.sh run-unstrip-n.sh \ - run-readelf-s.sh run-dwflsyms.sh \ run-low_high_pc.sh run-macro-test.sh run-elf_cntl_gelf_getshdr.sh \ run-test-archive64.sh run-readelf-vmcoreinfo.sh \ run-readelf-mixed-corenote.sh @@ -93,6 +92,11 @@ check_PROGRAMS += msg_tst md5-sha1-test TESTS += msg_tst md5-sha1-test endif +if LZMA +check_PROGRAMS += dwflsyms +TESTS += run-readelf-s.sh run-dwflsyms.sh +endif + if HAVE_LIBASM check_PROGRAMS += $(asm_TESTS) TESTS += $(asm_TESTS) -- 1.7.1 _______________________________________________ elfutils-devel mailing list [email protected] https://lists.fedorahosted.org/mailman/listinfo/elfutils-devel
