summaryrefslogtreecommitdiffstats
path: root/contrib/libc++/src
diff options
context:
space:
mode:
authorkaiw <kaiw@FreeBSD.org>2014-01-28 21:38:54 +0000
committerkaiw <kaiw@FreeBSD.org>2014-01-28 21:38:54 +0000
commit111f1ca7f4b50535fbd5af9819b065c76285bab1 (patch)
tree9e4450607208d9ed78f150d3c094de96dbdc18f2 /contrib/libc++/src
parente7e77ae2a8358b6c03037744e0a975fa1f4a8470 (diff)
parent5586616ed8dcade1b1472715fe697a543075b152 (diff)
downloadFreeBSD-src-111f1ca7f4b50535fbd5af9819b065c76285bab1.zip
FreeBSD-src-111f1ca7f4b50535fbd5af9819b065c76285bab1.tar.gz
Merge from projects/elftoolchain: Upgrade libelf and libdwarf to newer
versions from elftoolchain upstream (r2974). Convert ctfconvert to use the APIs from the new libdwarf and make ctfconvert work with Clang 3.4. __FreeBSD_version is bumped to 1100006. A list of notable changes: [libelf] * The old libelf source code in lib/libelf has been removed. Instead, the new libelf is built from contrib/elftoolchain/libelf. * Manual pages are largely improved. * Internal implementation was refactored and improved for better correctness and portability. * Fixed a few memory leaks. * Extended with extension APIs `elf_open()` and `elf_openmemory()`. These APIs are similar to `elf_begin()` and `elf_memory()` respectively, except that they return an ELF descriptor of kind `ELF_K_NONE` instead of an error if the object being opened could not be parsed. * Implement support for translating sections of type ELF_T_VDEF and ELF_T_VNEED. * Improve `elf_update()` to check that the executable header, the program header table, section contents and the section header table do not overlap, and to ensure that gaps between extents are filled with the fill character specified by `elf_fill()`. * Allow `Elf_Data` descriptors to have types and alignments differing from their containing section. * Remove functionality controlled by `LIBELF_TEST_HOOKS`. * Support processing of BSD-flavor archives. * Add knowledge of section types `SHT_GNU_ATTRIBUTES` and `SHT_GNU_LIBLIST`. * Use elftoolchain style symbol versioning. * Shared library version is bumped. [libdwarf] * The old libdwarf source code in lib/libdwarf has been removed. Instead, the new libdwarf is built from contrib/elftoolchain/libdwarf. * Support full DWARF3 and partial DWARF4 parsing. * Support DWARF2 generation. * Support for DWARF line number, call frame, location expression, macro info and address ranges, among other things. * The APIs for the new libdwarf are mostly compatible with the widely used LGPL libdwarf. Some of the incompatible APIs from the old libdwarf are kept as its own extensions. All the APIs are documented. * Use elftoolchain style symbol versioning. * Shared library version is bumped. [ctfconvert] * Switch to the APIs from the new libdwarf. * Improve die_mem_offset() so that DW_AT_data_member_location attributes generated by Clang 3.4 can be handled properly. * Make use of DW_AT_byte_size attribute of the member DIE to calculate the bits occupied by the member's type, without actually resolving the type. This way ctfconvert can deal with the case that Clang 3.4 sometimes emits DIE for struct/union member before emitting the DIE for the type of that member. Obtained from: elftoolchain No objection: -toolchain mailing list
Diffstat (limited to 'contrib/libc++/src')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud