#
785600d0 |
|
18-Mar-2024 |
John Baldwin <jhb@FreeBSD.org> |
kldxref: Properly handle reading strings near the end of an ELF file If a string is at or near the end of an input file and the amount of remaining data in the file is smaller than the maximum string size, the pread(2) system call would return a short read which is treated as an error. Instead, add a new helper function for reading a string which permits short reads so long as the data read from the file contains a terminated string. Reported by: jrtc27 Reviewed by: jrtc27 Sponsored by: University of Cambridge, Google, Inc. Differential Revision: https://reviews.freebsd.org/D44419
|
#
0d557cdf |
|
22-Dec-2023 |
John Baldwin <jhb@FreeBSD.org> |
kldxref: Simplify handling of ELF object files Unlike the backend for ELF DSOs, the object file backend allocated an aligned chunk of memory and read all of the in-memory sections from the file into this memory even though most of the file contents were never used. Instead, just track a set of virtual addresses (based at 0) that each loaded section would be loaded at and only read the necessary bits from the backing file when needed. Reviewed by: imp Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D43126
|
#
97530894 |
|
13-Dec-2023 |
Baptiste Daroussin <bapt@FreeBSD.org> |
kldxref: fix build on 32 bits arches
|
#
0299afdf |
|
12-Dec-2023 |
John Baldwin <jhb@FreeBSD.org> |
kldxref: Make use of libelf to be a portable cross tool This allows kldxref to operate on kernel objects from any architecture, not just the native architecture. In particular, this will permit generating linker.hints files as part of a cross-arch release build. - elf.c is a new file that includes various wrappers around libelf including routines to read ELF data structures such as program and section headers and ELF relocations into the "generic" forms described in <gelf.h>. This file also provides routines for converting a linker set into an array of addresses (GElf_Addr) as well as reading architecture-specific mod_* structures and converting them into "generic" Gmod_* forms where pointers are replaced with addresses. - The various architecture-specific reloc handlers now use GElf_* types for most values (including GElf_Rel and GElf_Rela for relocation structures) and use routines from <sys/endian.h> to read and write target values. A new linker set matches reloc handlers to specific ELF (class, encoding, machine) tuples. - The bits of kldxref.c that write out linker.hints now use the encoding (ELFDATA2[LM]SB) of the first file encountered in a directory to set the endianness of the output file. Input files with a different architecture in the same directory are skipped with a warning. In addition, the initial version record for the file must be deferred until the first record is finished since the architecture of the output file is not known until then. - Various places that used 'sizeof(void *)' throughout now use 'elf_pointer_size()' to determine the size of a pointer in the target architecture. Tested by: amd64 binary on both amd64 and i386 /boot/kernel Reviewed by: imp Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D42966
|
#
4a3cf5f3 |
|
12-Dec-2023 |
John Baldwin <jhb@FreeBSD.org> |
Stop #defining FREEBSD_ELF This was originally used (along with FREEBSD_AOUT) to prefer the use of ELF in various tools instead of a.out as part of the a.out to ELF transition in the 3.x days. The last use of it was removed from <link.h> in commit 66422f5b7a1a6055f0b2358268eb902aab6e2e3e back in 2002, but various files still #define it. Reviewed by: kevans, imp, emaste Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D42964
|
#
b3e76948 |
|
16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
Remove $FreeBSD$: two-line .h pattern Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/
|
#
e2d0802c |
|
17-Jan-2018 |
Ed Maste <emaste@FreeBSD.org> |
kldxref: improve style(9) Address style issues including some previously raised in D13923. - Use designated initializers for structs - Always use bracketed return style - No initialization in declarations - Align function prototype names - Remove old commented code/unused includes Submitted by: Mitchell Horne <mhorne063@gmail.com> Reviewed by: kib Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D13943
|
#
da67e6e6 |
|
16-Jan-2018 |
Ed Maste <emaste@FreeBSD.org> |
kldxref: handle modules with md_cval at the end of allocated sections Attempting to retrieve an md_cval string from a kernel module with kldxref would throw a offset error for modules created using lld, since this value would be placed at the end of all allocated sections. Add an ef_read_seg_string method to the ef interface, to allow reading strings of varying size without attempting to read beyond the segment's bounds. PR: 224875 Submitted by: Mitchell Horne <mhorne063@gmail.com> Reviewed by: cem, kib Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D13923
|
#
f68e716f |
|
02-Jan-2018 |
Ed Maste <emaste@FreeBSD.org> |
kldxref: correct function names in warning messages Sponsored by: The FreeBSD Foundation
|
#
df57947f |
|
18-Nov-2017 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
spdx: initial adoption of licensing ID tags. The Software Package Data Exchange (SPDX) group provides a specification to make it easier for automated tools to detect and summarize well known opensource licenses. We are gradually adopting the specification, noting that the tags are considered only advisory and do not, in any way, superceed or replace the license texts. Special thanks to Wind River for providing access to "The Duke of Highlander" tool: an older (2014) run over FreeBSD tree was useful as a starting point. Initially, only tag files that use BSD 4-Clause "Original" license. RelNotes: yes Differential Revision: https://reviews.freebsd.org/D13133
|
#
c84739b2 |
|
05-Jun-2013 |
Xin LI <delphij@FreeBSD.org> |
Use calloc(). MFC after: 2 weeks
|
#
ac8e1396 |
|
05-Jun-2013 |
Xin LI <delphij@FreeBSD.org> |
Remove unneeded reference to link.h (sys/link_elf.h). MFC after: 2 weeks
|
#
a7d5f7eb |
|
19-Oct-2010 |
Jamie Gritton <jamie@FreeBSD.org> |
A new jail(8) with a configuration file, to replace the work currently done by /etc/rc.d/jail.
|
#
fe0506d7 |
|
09-Mar-2010 |
Marcel Moolenaar <marcel@FreeBSD.org> |
Create the altix project branch. The altix project will add support for the SGI Altix 350 to FreeBSD/ia64. The hardware used for porting is a two-module system, consisting of a base compute module and a CPU expansion module. SGI's NUMAFlex architecture can be an excellent platform to test CPU affinity and NUMA-aware features in FreeBSD.
|
#
14560a36 |
|
06-Jan-2009 |
Luigi Rizzo <luigi@FreeBSD.org> |
fix a couple of innocuous compiler warnings MFC after: 3 days
|
#
d7f03759 |
|
19-Oct-2008 |
Ulf Lilleengen <lulf@FreeBSD.org> |
- Import the HEAD csup code which is the basis for the cvsmode work.
|
#
609c1c6c |
|
12-Jan-2006 |
Jason Evans <jasone@FreeBSD.org> |
Use posix_memalign() rather than assuming that malloc() provides adequate alignment. Approved by: markm (mentor)
|
#
757686b1 |
|
17-Dec-2005 |
Marcel Moolenaar <marcel@FreeBSD.org> |
Make our ELF64 type definitions match standards. In particular this means: o Remove Elf64_Quarter, o Redefine Elf64_Half to be 16-bit, o Redefine Elf64_Word to be 32-bit, o Add Elf64_Xword and Elf64_Sxword for 64-bit entities, o Use Elf_Size in MI code to abstract the difference between Elf32_Word and Elf64_Word. o Add Elf_Ssize as the signed counterpart of Elf_Size. MFC after: 2 weeks
|
#
9dba198b |
|
28-Aug-2004 |
Ian Dowse <iedowse@FreeBSD.org> |
Explicitly pass in the relocation base and data offset into ef_reloc() rather than relying on a trick that happens to work for the current relocation schemes. Also add some comments and improve variable naming.
|
#
27ed2177 |
|
27-Aug-2004 |
Ian Dowse <iedowse@FreeBSD.org> |
Use a temporary void * variable to work around a strict aliasing warning that gcc generates at -O2 and higher.
|
#
4a8b7e33 |
|
26-Aug-2004 |
Ian Dowse <iedowse@FreeBSD.org> |
Add support for reading ELF relocatable object file format modules.
|