[Bug 212539] readelf -w consumes a lot of memory with GCC-compiled kernels
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Sat Nov 7 19:55:31 UTC 2020
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=212539
--- Comment #8 from commit-hook at FreeBSD.org ---
A commit references this bug:
Author: dim
Date: Sat Nov 7 19:55:07 UTC 2020
New revision: 367462
URL: https://svnweb.freebsd.org/changeset/base/367462
Log:
Sync up elftoolchain with head, except for the capsicum-related commits,
which are incompatible with stable/12.
MFC r345360 (by oshogbo):
strings: do not depend on stdin
Instead of depending on one stdin FILE structure and use freopen(3), pass to
the functions appropriate FILE structure.
Reviewed by: cem
Discussed with: emaste
Differential Revision: https://reviews.freebsd.org/D18037
MFC r345361 (by oshogbo):
strings: do not continue if getc or getcharacter returns EOF
Reported by: cem
MFC r345362 (by oshogbo):
Fix powerpc and arm builds after r345361.
Reported by: jenkins
MFC r345364 (by oshogbo):
In case of ENCODING_8BIT the EOF code will be pass to putchar.
EOF check should be done before (uint8_t)c > 127 test.
Reported by: cem
MFC r345431 (by oshogbo):
strings: return an error code and the char value separately
If we returning 32 bits value it's hard to distinguish if the returned value
is a valid one or if its an error (in case of EOF). For that reason separate
exit code of the function from the returned character.
Reported by: cem, se
MFC r346323 (by emaste):
readelf: speed up readelf -wo
Use an array instead of STAILQ, and sort at the end instead of while
adding new elements.
PR: 212539
Submitted by: Bora ?zarslan <borako.ozarslan at gmail.com>
Reviewed by: markj
Sponsored by: The FreeBSD Foundation
MFC r346327 (by emaste):
readelf: use size_t for object counts
PR: 212539
Reported by: cem
Sponsored by: The FreeBSD Foundation
MFC r348776 (by csjp):
Teach readelf about some OpenBSD ELF program headers
- Add constants for OpenBSD wxneeded, bootdata and randomize to the
FreeBSD elf_common.h file. This is the file that gets used by the
elftoolchain library.
- Update readelf and elfdump utilities to decode these program headers
if they are encountered.
Note: FreeBSD has it's own version of elfdump(1), which will be updated
in a subsequent commit. I am adding it here anyway because this diff is
going to be submitted upstream.
Discussed with: emaste
Reviewed by: imp
MFC afer: 2 weeks
Differential Revision: https://reviews.freebsd.org/D20548
M contrib/elftoolchain/elfdump/elfdump.c
M contrib/elftoolchain/readelf/readelf.c
M sys/sys/elf_common.h
MFC r349510 (by luporl):
[PowerPC64] readelf: print description for 'e_flags' in ELF header (ABI type)
This prints out description text with the meaning of 'Flags' value in
PowerPC64.
Example:
$ readelf -h ~/tmp/t1-Flag2
ELF Header:
Magic: 7f 45 4c 46 02 02 01 09 00 00 00 00 00 00 00 00
Class: ELF64
Data: 2's complement, big endian
Version: 1 (current)
OS/ABI: FreeBSD
ABI Version: 0
Type: EXEC (Executable file)
Machine: PowerPC 64-bit
Version: 0x1
Entry point address: 0x10010000
Start of program headers: 64 (bytes into file)
Start of section headers: 209368 (bytes into file)
Flags: 0x2, OpenPOWER ELF V2 ABI
Size of this header: 64 (bytes)
Size of program headers: 56 (bytes)
Number of program headers: 10
Size of section headers: 64 (bytes)
Number of section headers: 34
Section header string table index: 31
Submitted by: alfredo.junior_eldorado.org.br
Reviewed by: luporl
Differential Revision: https://reviews.freebsd.org/D20782
MFC r350511 (by emaste):
readelf: decode NT_GNU_PROPERTY_TYPE_0 / GNU_PROPERTY_X86_FEATURE_1_AND
These bits are used for Intel CET IBT/Shadow Stack.
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D20516
MFC r354544 (by emaste):
elfcopy/strip: Ensure sections have required alignment on output
Object files may specify insufficient alignment on certain sections, for
example due to a bug in NASM[1]. When we detect that case in elfcopy or
strip, emit a warning and increase the alignment to the minimum
required.
The NASM bug was fixed in 2015[2], but we might as well have this fixup
(and warning) in elfcopy in case we encounter such a file for any other
reason.
This might be reworked somewhat upstream - see ELF Tool Chain
ticket 485[3].
[1] https://bugzilla.nasm.us/show_bug.cgi?id=3392307
[2]
https://repo.or.cz/w/nasm.git/commit/1f0cb0f2c1ba632c0fab02424928cfb756a9160c
[3] https://sourceforge.net/p/elftoolchain/tickets/485/
PR: 198611
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D2292
MFC r357540 (by markj):
readelf: Fix a double close of the input file.
The caller of dump_object() is responsible for opening the file, let it
be responsible for closing too.
CID: 1411588
Sponsored by: The FreeBSD Foundation
MFC r357541 (by markj):
readelf: Fix the check for an error from realloc().
Use err() instead of errx() while here, since realloc() sets errno.
CID: 1401326
Sponsored by: The FreeBSD Foundation
MFC r358499 (by emaste):
readelf: add PROTMAX_DISABLE and STKGAP_DISABLE
From r349609 (PROTMAX_DISABLE) and r354790 (STKGAP_DISABLE). Commited
upstream (in a slightly different form) as r3831.
Sponsored by: The FreeBSD Foundation
MFC r358631 (by emaste):
Reserve WXNEEDED ELF feature control flag
This will be used to tag binaries that require W+X mappings, in advance
of the ability to prevent W^X in mmap/mprotect.
There is still some discussion about the flag's name, but the ABI won't
change even if the name does (as kib pointed out in the review).
Reviewed by: csjp, kib
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D23909
MFC r358637 (by emaste):
readelf: check note namesz and descsz
Previously corrupt note namesz or descsz (perhaps caused by readelf's
current lack of endian support for notes) resulted in a crash. Check
that namesz and descsz do not extend beyond the end of the buffer before
trying to access name and desc data.
Reported by: jhb
Sponsored by: The FreeBSD Foundation
MFC r358639 (by emaste):
readelf: simplify namesz / descsz checks
Sponsored by: The FreeBSD Foundation
MFC r358685 (by emaste):
libelf: rationalize error handling in ELF note conversion
Previously _libelf_cvt_NOTE_tom (to host) returned false if a note's
namesz + descsz exceeded the buffer size, while _libelf_cvt_NOTE_tof
(to file) silently truncated. Return false in the latter case too.
Sponsored by: The FreeBSD Foundation
MFC r358706 (by emaste):
readelf: add XEN_ELFNOTE_PHYS32_ENTRY note
See r336469 for details.
Sponsored by: The FreeBSD Foundation
MFC r358708 (by emaste):
readelf: decode and print Xen ELF note strings
Sponsored by: The FreeBSD Foundation
MFC r358713 (by emaste):
readelf: print GNU Build-ID
Sponsored by: The FreeBSD Foundation
MFC r359189 (by emaste):
readelf: simplify Xen string note printing
Reviewed by: markj
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D24140
MFC r361662 (by emaste):
readelf: add more DT_FLAGS_1 flags
Reference:
https://docs.oracle.com/cd/E36784_01/html/E36857/chapter6-42444.html
> DF_1_SINGLETON Singleton symbols exist.
> DF_1_STUB Object is a stub.
> DF_1_PIE Object is a position-independent executable.
Sponsored by: The FreeBSD Foundation
MFC r364517 (by kib):
Reserve FreeBSD ELF feature control bit LA48 to control VA layout on amd64.
Tested by: pho
Sponsored by: The FreeBSD Foundation
Differential revision: https://reviews.freebsd.org/D25273
MFC r365489 (by bdragon):
[PowerPC64LE] PPC64LE support for libelf.
Fix native detection when building on powerpc64le.
I will be submitting this and r361104 upstream shortly.
Sponsored by: Tag1 Consulting, Inc.
MFC r366977 (by emaste):
libelf: add compression header support
GNU and Oracle libelf implementations added support for section
compression, intended to reduce the size of DWARF debug info (which
might be an order of magnitude larger than the code).
There are two compressed ELF section formats:
1. Old GNU - sections are renmaed to start with 'z'. Section contains
a magic number, uncompressed size, and compressed data.
2. Oracle and New GNU - compressed sections use the SHF_COMPRESSED flag.
The compression header contains the compression type, uncompressed
size, and uncompressed alignment.
The second style is preferred and this change implements only that one.
Submitted by: Tiger Gao <tig at FreeBSDFoundation.org>
Reviewed by: markj
Relnotes: Yes
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D24566
MFC r367209 (by emaste):
readelf: Add -z decompression support
Compatible with GNU readelf, -z decompresses sections displayed by
-x or -p.
ELF Tool Chain ticket #555
https://sourceforge.net/p/elftoolchain/tickets/555/
Submitted by: Tiger Gao <tig at FreeBSDFoundation.org>
Reviewed by: markj
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D26909
MFC r367238 (by bdragon):
Fix 32-bit build after r367209
Fix build on systems with a 32-bit size_t.
Since it's being passed as a pointer, a 64-bit write to it will overflow.
MFC with: r367209
MFC r367322 (by dim):
Merge elftoolchain r3877 (by jkoshy):
Incorporate fixes from Dimitry Andric:
- Use a BUFFER_GROW() macro to avoid rounding errors in capacity
calculations.
- Fix a bug introduced in [r3531].
- Fix handling of nested template parameters.
Ticket: #581
This should fix a number of assertions on elftoolchain's cxxfilt, and
allow it to correctly demangle several names that it could not handle
before.
Obtained from: https://sourceforge.net/p/elftoolchain/code/3877/
PR: 250702
Changes:
_U stable/12/
stable/12/contrib/elftoolchain/elfcopy/sections.c
stable/12/contrib/elftoolchain/libelf/Version.map
stable/12/contrib/elftoolchain/libelf/_libelf.h
stable/12/contrib/elftoolchain/libelf/_libelf_config.h
stable/12/contrib/elftoolchain/libelf/gelf.3
stable/12/contrib/elftoolchain/libelf/gelf.h
stable/12/contrib/elftoolchain/libelf/gelf_chdr.c
stable/12/contrib/elftoolchain/libelf/gelf_getchdr.3
stable/12/contrib/elftoolchain/libelf/libelf.h
stable/12/contrib/elftoolchain/libelf/libelf_chdr.c
stable/12/contrib/elftoolchain/libelf/libelf_convert.m4
stable/12/contrib/elftoolchain/libelftc/_libelftc.h
stable/12/contrib/elftoolchain/libelftc/libelftc_dem_gnu3.c
stable/12/contrib/elftoolchain/libelftc/libelftc_vstr.c
stable/12/contrib/elftoolchain/readelf/readelf.1
stable/12/contrib/elftoolchain/readelf/readelf.c
stable/12/contrib/elftoolchain/strings/strings.c
stable/12/lib/libelf/Makefile
stable/12/sys/sys/elf_common.h
stable/12/usr.bin/elfctl/elfctl.c
stable/12/usr.bin/readelf/Makefile
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the freebsd-amd64
mailing list