8sa1-binutils-gdb/libctf
Nick Alcock 601e455b75 libctf, archive: stop ctf_arc_bufopen triggering crazy unmaps
The archive machinery mmap()s its archives when possible: so it arranges
to do appropriately-sized unmaps by recording the unmap length in the
ctfa_magic value and unmapping that.

This brilliant (horrible) trick works less well when ctf_arc_bufopen is
called with an existing buffer (which might be a readonly mapping).
ctf_arc_bufopen always returns a ctf_archive_t wrapper, so record in
there the necessity to not unmap anything when a bufopen'ed archive is
closed again.

libctf/
	* ctf-impl.h (struct ctf_archive_internal)
	<ctfi_unmap_on_close>: New.
	(ctf_new_archive_internal): Adjust.
	* ctf-archive.c (ctf_new_archive_internal): Likewise.
	Initialize ctfi_unmap_on_close.  Adjust error path.
	(ctf_arc_bufopen): Adjust ctf_new_archive_internal call
	(unmap_on_close is 0).
	(ctf_arc_close): Only unmap if ctfi_unmap_on_close.
	* ctf-open-bfd.c (ctf_fdopen): Adjust.
2020-07-22 17:57:33 +01:00
..
.gitignore libctf: restructure error handling to reduce relocations 2020-07-22 17:57:20 +01:00
aclocal.m4 libctf: support platforms with separate libintl 2020-06-26 15:56:39 +01:00
ChangeLog libctf, archive: stop ctf_arc_bufopen triggering crazy unmaps 2020-07-22 17:57:33 +01:00
config.h.in libctf: support platforms with separate libintl 2020-06-26 15:56:39 +01:00
configure libctf: support platforms with separate libintl 2020-06-26 15:56:39 +01:00
configure.ac libctf: support platforms with separate libintl 2020-06-26 15:56:39 +01:00
ctf-archive.c libctf, archive: stop ctf_arc_bufopen triggering crazy unmaps 2020-07-22 17:57:33 +01:00
ctf-create.c libctf, types: support slices of anything terminating in an int 2020-07-22 17:57:31 +01:00
ctf-decl.c Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ctf-decls.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ctf-dump.c Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ctf-endian.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ctf-error.c libctf: restructure error handling to reduce relocations 2020-07-22 17:57:20 +01:00
ctf-hash.c Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ctf-impl.h libctf, archive: stop ctf_arc_bufopen triggering crazy unmaps 2020-07-22 17:57:33 +01:00
ctf-labels.c Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ctf-link.c Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ctf-lookup.c Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ctf-open-bfd.c libctf, archive: stop ctf_arc_bufopen triggering crazy unmaps 2020-07-22 17:57:33 +01:00
ctf-open.c libctf, open: drop unnecessary historical wart around forwards 2020-07-22 17:57:26 +01:00
ctf-qsort_r.c Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ctf-string.c Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ctf-subr.c Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
ctf-types.c libctf, types: ints, floats and typedefs with no name are invalid 2020-07-22 17:57:32 +01:00
ctf-util.c Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
elf.h Update year range in copyright notice of binutils files 2020-01-01 18:42:54 +10:30
libctf.ver libctf, binutils: support CTF archives like objdump 2020-06-26 15:56:39 +01:00
Makefile.am libctf: restructure error handling to reduce relocations 2020-07-22 17:57:20 +01:00
Makefile.in libctf: restructure error handling to reduce relocations 2020-07-22 17:57:20 +01:00
mkerrors.sed libctf: restructure error handling to reduce relocations 2020-07-22 17:57:20 +01:00
swap.h libctf, elfcpp, gold: do not assume that <byteswap.h> contains bswap_* 2020-06-26 15:56:39 +01:00