summaryrefslogtreecommitdiffstats
path: root/contrib/elftoolchain/libdwarf
diff options
context:
space:
mode:
authoremaste <emaste@FreeBSD.org>2015-04-01 01:08:01 +0000
committeremaste <emaste@FreeBSD.org>2015-04-01 01:08:01 +0000
commit55208361ba5f1ea64b978cfd570feefd302f879c (patch)
tree55f82032e95d8fb3fba2e48a25de3d257af7f7ed /contrib/elftoolchain/libdwarf
parentcb7d12714503777dbaaa780fca372adfad849d0d (diff)
downloadFreeBSD-src-55208361ba5f1ea64b978cfd570feefd302f879c.zip
FreeBSD-src-55208361ba5f1ea64b978cfd570feefd302f879c.tar.gz
Update elftoolchain to upstream revision 3179
Some notable changes: - libdwarf: Fixed DWARF4 line section - elfcopy: Implement --localize-hidden - nm: handle object name referenced by DW_AT_specification - elfcopy: Add --strip-dwo and --extract-dwo options for split DWARF - readelf: add remaining arm64 dynamic relocation names - nm: Avoid integer overflow in value comparison Relnotes: Yes Sponsored by: The FreeBSD Foundation
Diffstat (limited to 'contrib/elftoolchain/libdwarf')
-rw-r--r--contrib/elftoolchain/libdwarf/_libdwarf.h3
-rw-r--r--contrib/elftoolchain/libdwarf/libdwarf.h10
-rw-r--r--contrib/elftoolchain/libdwarf/libdwarf_lineno.c4
3 files changed, 12 insertions, 5 deletions
diff --git a/contrib/elftoolchain/libdwarf/_libdwarf.h b/contrib/elftoolchain/libdwarf/_libdwarf.h
index 06413be..e6eb496 100644
--- a/contrib/elftoolchain/libdwarf/_libdwarf.h
+++ b/contrib/elftoolchain/libdwarf/_libdwarf.h
@@ -24,7 +24,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: _libdwarf.h 3161 2015-02-15 21:43:36Z emaste $
+ * $Id: _libdwarf.h 3164 2015-02-19 01:20:12Z kaiwang27 $
*/
#ifndef __LIBDWARF_H_
@@ -190,6 +190,7 @@ struct _Dwarf_LineInfo {
Dwarf_Half li_version; /* Version of line info. */
Dwarf_Unsigned li_hdrlen; /* Length of line info header. */
Dwarf_Small li_minlen; /* Minimum instrutction length. */
+ Dwarf_Small li_maxop; /* Maximum operations per inst. */
Dwarf_Small li_defstmt; /* Default value of is_stmt. */
int8_t li_lbase; /* Line base for special opcode. */
Dwarf_Small li_lrange; /* Line range for special opcode. */
diff --git a/contrib/elftoolchain/libdwarf/libdwarf.h b/contrib/elftoolchain/libdwarf/libdwarf.h
index fdbcb4e..0cb8b1a 100644
--- a/contrib/elftoolchain/libdwarf/libdwarf.h
+++ b/contrib/elftoolchain/libdwarf/libdwarf.h
@@ -24,7 +24,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: libdwarf.h 3149 2015-02-15 19:00:06Z emaste $
+ * $Id: libdwarf.h 3174 2015-03-27 17:13:41Z emaste $
*/
#ifndef _LIBDWARF_H_
@@ -444,7 +444,9 @@ enum Dwarf_ISA {
};
/* Function prototype definitions. */
-__BEGIN_DECLS
+#ifdef __cplusplus
+extern "C" {
+#endif
Dwarf_P_Attribute dwarf_add_AT_comp_dir(Dwarf_P_Die, char *, Dwarf_Error *);
Dwarf_P_Attribute dwarf_add_AT_const_value_signedint(Dwarf_P_Die, Dwarf_Signed,
Dwarf_Error *);
@@ -831,6 +833,8 @@ int dwarf_whatattr(Dwarf_Attribute, Dwarf_Half *, Dwarf_Error *);
int dwarf_whatform(Dwarf_Attribute, Dwarf_Half *, Dwarf_Error *);
int dwarf_whatform_direct(Dwarf_Attribute, Dwarf_Half *,
Dwarf_Error *);
-__END_DECLS
+#ifdef __cplusplus
+}
+#endif
#endif /* !_LIBDWARF_H_ */
diff --git a/contrib/elftoolchain/libdwarf/libdwarf_lineno.c b/contrib/elftoolchain/libdwarf/libdwarf_lineno.c
index 63627f7..d0ff5f8 100644
--- a/contrib/elftoolchain/libdwarf/libdwarf_lineno.c
+++ b/contrib/elftoolchain/libdwarf/libdwarf_lineno.c
@@ -26,7 +26,7 @@
#include "_libdwarf.h"
-ELFTC_VCSID("$Id: libdwarf_lineno.c 3100 2014-10-25 20:34:29Z jkoshy $");
+ELFTC_VCSID("$Id: libdwarf_lineno.c 3164 2015-02-19 01:20:12Z kaiwang27 $");
static int
_dwarf_lineno_add_file(Dwarf_LineInfo li, uint8_t **p, const char *compdir,
@@ -315,6 +315,8 @@ _dwarf_lineno_init(Dwarf_Die die, uint64_t offset, Dwarf_Error *error)
li->li_hdrlen = dbg->read(ds->ds_data, &offset, dwarf_size);
hdroff = offset;
li->li_minlen = dbg->read(ds->ds_data, &offset, 1);
+ if (li->li_version == 4)
+ li->li_maxop = dbg->read(ds->ds_data, &offset, 1);
li->li_defstmt = dbg->read(ds->ds_data, &offset, 1);
li->li_lbase = dbg->read(ds->ds_data, &offset, 1);
li->li_lrange = dbg->read(ds->ds_data, &offset, 1);
OpenPOWER on IntegriCloud