diff options
author | wiz <wiz@pkgsrc.org> | 2022-03-19 08:47:25 +0000 |
---|---|---|
committer | wiz <wiz@pkgsrc.org> | 2022-03-19 08:47:25 +0000 |
commit | e5787666d06963505833be5ccc1ac19e04fd135a (patch) | |
tree | eb6cf07eee60b6a2f2de541b72365fba48a525b5 /devel | |
parent | 922980015602e320b0752190e15098a583d00756 (diff) | |
download | pkgsrc-e5787666d06963505833be5ccc1ac19e04fd135a.tar.gz |
libdwarf: update to 0.3.4.
2021-07-15:
libdwarf, dwarfdump, etc all now use a semantic version
number rather than a date string. As of today the
current version is "0.1.1".
2021-02-15:
dwarfdump given -ku now prints brief lists counting
the uses of every TAG, ATtribute, and FORM,
a concise summary of the basic building blocks of DWARF.
2021-01-23:
dwarfdump now reports and checks-for-sensible-values
the expression block offsets that DW_OP_bra and
DW_OP_skip use. If an expression does not use either of
those operators dwarfdump does not report the individual DW_OP
expression offsets.
2020-12-23:
dwarfdump --print-macinfo now follows DW_MACRO_imports
and does several additional checks on .debug_macro section
data. --check-macros skips printing most entries but does
all that and reports even more about that section. Since
.debug_macro does not reproduce all macro operations in
the original source the MACRONOTEs printed are indications
of things to consider, not errors.
2020-11-21:
dwarfdump now prints DWARF expression operators each on
its own line. This makes viewing DWARF expressions much
nicer given the increased use of much longer expressions.
Those expression operators that reference DIES are now
followed, verified, and the target DW_TAG and DW_AT_name
are printed. A new dwarfdump.conf command 'option:' lets
one specify option: --format-expr-ops-joined in case you
want the old style DWARF expression operators-on-one-line.
Where the DWARF DIE children nest > nine-deep dwarfdump
switches from indentation by spaces to a nest-level number.
2020-09-08:
libdwarf/dwarfdump work well with DWARF4 and DWARF5,
including DWP files.
2020-07-08:
libdwarf now reads .debug_gnu_pubtypes & pubnames
(non-standard but gcc creates them in DWARF5) via a small
number of new functions and dwarfdump --print-debug-gnu
prints both sections. Verifying the .debug_info offsets
is not yet done.
2020-06-29:
Dwarfdump now dumps DWARF5 .debug_rnglists and
.debug_loclists. To handle DWARF5 there are a small
number of new functions. All existing functions are
still supported, but to read DWARF5 some small changes
are required. In libdwarf see libdwarf2.1.pdf and also
see libdwarf/ChangeLog for details.
2020-05-23:
dwarfdump now takes much less malloc() to work, as
measured by valgrind --tool=massif and massif-visualizer.
A dwarfdump run that did 2.2Gib of malloc/free before the
changes now does 1.4GiB.
2020-05-19:
libdwarf and dwarfdump now support DWARF5 .debug_rnglists.
The new interfaces are documented in libdwarf/libdwarf2.1.pdf.
The new option to dwarfdump is "--print-raw-rnglists".
2019-11-04:
The code (dwarfdump/libdwarf), regressiontests,
and readelfobj directories and all their tests
are known to work on Linux(Ubuntu on x86_64 and i686),
FreeBSD, MacOS Catalina (with Apple Command Line Tools),
and IBM s390 (Big Endian!) running Ubuntu Linux.
On Windows-MinGW the full regression tests
have not been tested, but 'make check' works
for dwarfdump/libdwarf (the current dwarfdump
make check actually does run dwarfdump and
checks that dwarfdump basically works).
2019-04-16:
Now a --disable-libelf configure/build of libdwarf/dwarfdump
can read elf, mach-o DSYM, and PE executable/dll object files.
Such a build will not need or use libelf or elf.h .
The dwarfdump options that display Elf section headers
or relocation record data are not available in a
--disable-libelf build.
Nor is dwarfdump's support of reading archive files
available in a --disable-libelf build.
This libdwarf detects corrupt Elf object files much sooner
than before, but does not explain what the corruption
really is. Use GNU readelf (or readelfobj, a project
on sourceforge) to get more detail about the problems found.
See https://www.prevanders.net/dwarf.html for the git clone
command for readelfobj.
With --disable-libelf the --enable-dwarfgen option
does not work: the dwarfgen build will fail.
2019-02-18:
For building on machines without a usable elf.h or libelf
but possibly with a libelf.h visible, --disable-libelf
ensures the build won't use libelf or elf.h anywhere.
-lz will be done if zlib.h is visible, independent of
libelf, libelf.h, and elf.h
2019-02-08:
If one has a standard Bourne shell (sh) available
(such as sh on MacOS and sh in MinGW on Windows)
one may be able to build libdwarf and dwarfdump natively
and they can read Mach-o dSYM and PE object files
to access DWARF information.
This has NOT been tested under MacOS, so will likely
fail on MacOS.
No elf.h, libelf.h or zlib.h should be present.
For example, the following
is known to work under MinGW and this general plan
applies to all builds including all builds with elf.h
and libelf:
mkdir test
cd test
#(copy the source tree into test, if from git
#the name of the top level will likely be 'code')
cd code
sh -x scripts/FIX-CONFIGURE-TIMES
cd ..
mkdir bld
cd bld
../code/configure (choose your preferred options here)
make
2019-01-15:
The pre-build dwarf_names.[hc] and the tag related
files are now part of the standard build so there is
no longer any two-stage aspect of the build.
The build simply compiles files in the distribution.
If you use git to access the source be sure to
sh scripts/FIX-CONFIGURE-TIMES
to adjust the file timestamps as having timestamps
in the right relationships is vital and git
does not maintain timestamps.
The script is always safe to run. It takes about 30 seconds.
2018-12-22:
The complicated process of building certain .c and .h
files has been relegated to the few people updating
files libdwarf/libdwarf.h.in, libdwarf/dwarf_errmsg_list.h,
dwarfdump/tag_attr_ext.list,dwarfdump/tag_attr.list,
dwarfdump/tag_tree_ext.list, and dwarfdump/tag_tree.list.
For everyone else the build is simply compiling
the .c and .h files in the distribution. Simpler.
sh scripts/buildstandardsource.sh
creates these files.
2018-10-22:
dwarfdump can now dump mach-o (MacOS) dSYM dwarf.
All the usual libdwarf interfaces work.
A new libdwarf initialization call dwarf_init_path()
may be convenient for you to use.
2018-08-05:
dwarfdump.conf is now installed by make install
in <install prefix>/shared/libdwarf/dwarfdump .
Any dwarfdump.conf or .dwarfdump.conf in your
$HOME directory will be found before the
one in shared. The file is only opened when
one wants a more accurate register naming in frame
reports (the default is just to name things r54
etc, choosing the right abi with -x abi=<something>
can be helpful at times).
2018-06-24:
The configure has been completely rewritten to follow
current standards and practices. For simple builds
the standard
./configure
make
works as always, but the generated libdwarf.a appears
in libdwarf/.libs/libdwarf.a , as does the shared object
if "./configure --enable-shared" is used.
To build dwarfgen one adds the configure option --enable-dwarfgen
instead of using 'make all'.
To build the example code one adds the configure option
--enable-dwarfexample instead of using 'make all'.
"mkdir /tmp/bld ; cd /tmp/bld ; <sourcebase>/configure"
continues to work, as does configure --host=<name> .
2018-06-14:
A small simplification of build options simplifies building
across different environments. If your environment needs
to use the non-standard elf_open() call instead of unix/linux open()
then do <path>/configure --enable-elf-open which sets
HAVE_ELF_OPEN in config.h.
2018-03-27:
All the DWARF5 FORMs appear to be dealt with.
It's now possible to cross-compile libdwarf and dwarfdump.
See the README.
2016-11-30:
An alternative build mechanism using cmake is now in the source tree.
The builds for product testing continue to be done using configure && make.
Diffstat (limited to 'devel')
-rw-r--r-- | devel/libdwarf/Makefile | 24 | ||||
-rw-r--r-- | devel/libdwarf/PLIST | 15 | ||||
-rw-r--r-- | devel/libdwarf/distinfo | 8 |
3 files changed, 16 insertions, 31 deletions
diff --git a/devel/libdwarf/Makefile b/devel/libdwarf/Makefile index 639798637bc..e9e081c3e80 100644 --- a/devel/libdwarf/Makefile +++ b/devel/libdwarf/Makefile @@ -1,33 +1,21 @@ -# $NetBSD: Makefile,v 1.2 2016/12/11 21:34:26 kamil Exp $ +# $NetBSD: Makefile,v 1.3 2022/03/19 08:47:25 wiz Exp $ -DISTNAME= libdwarf-20161124 +DISTNAME= libdwarf-0.3.4 CATEGORIES= devel MASTER_SITES= https://www.prevanders.net/ +EXTRACT_SUFX= .tar.xz MAINTAINER= pkgsrc-users@NetBSD.org HOMEPAGE= https://www.prevanders.net/dwarf.html COMMENT= Tools for parsing DWARF debug information LICENSE= gnu-lgpl-v2.1 AND gnu-gpl-v2 -WRKSRC= ${WRKDIR}/dwarf-${PKGVERSION_NOREV} GNU_CONFIGURE= yes USE_LANGUAGES= c c++ +USE_LIBTOOL= yes -CONFIGURE_ARGS+= --enable-shared - -MAKE_JOBS_SAFE= no +PKGCONFIG_OVERRIDE+= libdwarf.pc.in -INSTALLATION_DIRS+= bin lib include ${PKGMANDIR}/man1 share/doc/libdwarf - -do-install: - ${INSTALL_PROGRAM} ${WRKSRC}/dwarfdump/dwarfdump ${DESTDIR}${PREFIX}/bin - ${INSTALL_MAN} ${WRKSRC}/dwarfdump/dwarfdump.1 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1 - ${INSTALL_LIB} ${WRKSRC}/libdwarf/libdwarf.a ${DESTDIR}${PREFIX}/lib - ${INSTALL_LIB} ${WRKSRC}/libdwarf/libdwarf.so ${DESTDIR}${PREFIX}/lib - ${INSTALL_LIB} ${WRKSRC}/libdwarf/libdwarf.so.1 ${DESTDIR}${PREFIX}/lib - ${INSTALL_DATA} ${WRKSRC}/libdwarf/dwarf.h ${DESTDIR}${PREFIX}/include - ${INSTALL_DATA} ${WRKSRC}/libdwarf/libdwarf.h ${DESTDIR}${PREFIX}/include - ${INSTALL_DATA} ${WRKSRC}/libdwarf/*.pdf ${DESTDIR}${PREFIX}/share/doc/libdwarf +CONFIGURE_ARGS+= --enable-shared -.include "../../devel/libelf/buildlink3.mk" .include "../../mk/bsd.pkg.mk" diff --git a/devel/libdwarf/PLIST b/devel/libdwarf/PLIST index 286a6ffc82d..eb27c9c1ef3 100644 --- a/devel/libdwarf/PLIST +++ b/devel/libdwarf/PLIST @@ -1,11 +1,8 @@ -@comment $NetBSD: PLIST,v 1.2 2016/12/11 21:34:26 kamil Exp $ +@comment $NetBSD: PLIST,v 1.3 2022/03/19 08:47:25 wiz Exp $ bin/dwarfdump -include/dwarf.h -include/libdwarf.h -lib/libdwarf.a -lib/libdwarf.so -lib/libdwarf.so.1 +include/libdwarf-0/dwarf.h +include/libdwarf-0/libdwarf.h +lib/libdwarf.la +lib/pkgconfig/libdwarf.pc man/man1/dwarfdump.1 -share/doc/libdwarf/libdwarf2.1.pdf -share/doc/libdwarf/libdwarf2p.1.pdf -share/doc/libdwarf/mips_extensions.pdf +share/dwarfdump/dwarfdump.conf diff --git a/devel/libdwarf/distinfo b/devel/libdwarf/distinfo index e0794d4b5cb..c6ba15a346a 100644 --- a/devel/libdwarf/distinfo +++ b/devel/libdwarf/distinfo @@ -1,5 +1,5 @@ -$NetBSD: distinfo,v 1.4 2021/10/26 10:15:18 nia Exp $ +$NetBSD: distinfo,v 1.5 2022/03/19 08:47:25 wiz Exp $ -BLAKE2s (libdwarf-20161124.tar.gz) = 407b6f6c56f94244df51c07384279843f1ad1174941ab1d0c511b771564105e6 -SHA512 (libdwarf-20161124.tar.gz) = 38e480bce5ae8273fd585ec1d8ba94dc3e865a0ef3fcfcf38b5d92fa1ce41f8b8c95a7cf8a6e69e7c6f638a3cc56ebbfb37b6317047309725fa17e7929096799 -Size (libdwarf-20161124.tar.gz) = 1732155 bytes +BLAKE2s (libdwarf-0.3.4.tar.xz) = 5711d9fe2daf02830930c8b58f684eca28b08e348fa57d1d9946182a3da0d13e +SHA512 (libdwarf-0.3.4.tar.xz) = 6957e6c696428b7e59c57e48279528ff602c49ab9833e56a4722f173240eb1373ddd20f5c9dae7c25cc64e6c2131d3b7b5abcf3c12614b88858bdc353a441359 +Size (libdwarf-0.3.4.tar.xz) = 2345036 bytes |