#
ad491491 |
| 01-Apr-2024 |
riastradh <riastradh@NetBSD.org> |
elftoolchain: Be consistent about which ELF header files we use.
1. For tools that use elftoolchain: always use elftoolchain's elfdefinitions.h. Don't even think about looking at the host's s
elftoolchain: Be consistent about which ELF header files we use.
1. For tools that use elftoolchain: always use elftoolchain's elfdefinitions.h. Don't even think about looking at the host's sys/exec_elf.h, which makes no sense and should never happen.
(ELF tools that don't use elftoolchain, like m68k-elf2coff, continue to use nbincludes/sys/exec_elf.h. But no more nbincludes hacks in elftoolchain.)
2. For kernel components (solaris, zfs, dtrace): always use sys/exec_elf.h, even in Solaris components via sys/elf.h. elfdefinitions.h is not wired up in the kernel build at all.
3. For most userland components that involve libelf: use elfdefinitions.h via libelf header files (libelf.h, gelf.h).
libdtrace in particular requires _all_ R_* reloc type definitions, but sys/exec_elf.h brings in only the _current machine's_ R_* reloc type definitions. (While here: Use uintptr_t instead of Elf_Addr for pointer-to-integer cast, since Elf_Addr is MD and provided only by sys/exec_elf.h, not by elfdefinitions.h.)
And most userland components using libelf don't rely on any properties of the current machine from sys/exec_elf.h, so they can use libelf's elfdefinition.h.
Exceptions:
- dtrace drti.c relies on link.h -> link_elf.h -> sys/exec_elf.h, but it also relies on sys/dtrace.h -> sys/elf.h -> elfdefinitions.h like other userland components using sys/elf.h.
- kdump-ioctl.c uses sys/exec_elf.h directly and sys/dtrace.h -> sys/elf.h -> elfdefinitions like other userland components using sys/elf.h.
- t_ptrace_wait.c (via t_ptrace_core_wait.h) uses libelf to parse core files, but relies on sys/exec_elf.h for struct netbsd_elfcore_procinfo.
None of these exceptions needs all R_* reloc type definitions, so as a workaround, we can just suppress libelf's elfdefinitions.h by defining _SYS_ELFDEFINITIONS_H_ and use sys/exec_elf.h in these exceptions.
And undo the whole BUILTIN_ELF_HEADERS mistake. This was:
- half bogus workarounds for missing build_install dependencies in tools/Makefile, which are no longer missing now, and - half futile attempt to use src/sys/sys/exec_elf.h via nbincludes in tools involving libelf instead of libelf's elfdefinitions.h, which collides.
Longer-term, we may wish to unify sys/exec_elf.h and libelf's elfdefinitions.h, so we don't have to play these games.
But at least now the games are limited to three .c files (one of which is generated by Makefile.ioctl-c), rather than haphazardly applied tree-wide by monstrous kludges in widely used .h files with broken hackarounds to get the tools build lurching to completion.
show more ...
|
#
6969f6c5 |
| 18-Apr-2022 |
jkoshy <jkoshy@NetBSD.org> |
Update 'tools/ctf{merge,convert}' to use the new build locations for 'libelf' and 'libdwarf'.
|
#
bf711337 |
| 01-May-2018 |
christos <christos@NetBSD.org> |
Create a new bsd.hostinit.mk file and put the build definitions for all host programs there; make all Makefiles that use bsd.hostprog.mk include it. Namely turn off MKREPRO and don't make lint, man p
Create a new bsd.hostinit.mk file and put the build definitions for all host programs there; make all Makefiles that use bsd.hostprog.mk include it. Namely turn off MKREPRO and don't make lint, man pages, info files etc. Remove the Makefile.inc files that contained these same settings, and remove the settings from Makefile.host
show more ...
|
#
c0d10d8e |
| 01-May-2018 |
christos <christos@NetBSD.org> |
Centralize NOMAN handling.
|
#
b2a8932d |
| 01-May-2018 |
christos <christos@NetBSD.org> |
PR/53238: Robert Elz: Disable MKREPRO in tools; the host compiler might not support the necessary options. This is done thusly:
1. Set MKREPRO=no in Makefile.host. This handles all the Makefiles tha
PR/53238: Robert Elz: Disable MKREPRO in tools; the host compiler might not support the necessary options. This is done thusly:
1. Set MKREPRO=no in Makefile.host. This handles all the Makefiles that use it and don't include bsd.own.mk. 2. Create Makefile.inc and set MKREPRO=no in it. Change the Makefiles that include bsd.own.mk, to include bsd.init.mk which includes Makefile.inc first. This will also allow us to control other tools options from a single location if we need to.
XXX: pullup-8
show more ...
|
#
3c3d44a7 |
| 27-Jan-2016 |
christos <christos@NetBSD.org> |
use HOST_CFLAGS for -pthread
|
#
e93985e2 |
| 27-Jan-2016 |
christos <christos@NetBSD.org> |
use -pthread for more portability
|
#
c20b6706 |
| 09-Mar-2014 |
christos <christos@NetBSD.org> |
switch to the new libelf and libdwarf
|
#
33d53fbd |
| 27-Jan-2013 |
riastradh <riastradh@NetBSD.org> |
Set NOMAN before including <bsd.own.mk> to really fix PR 47500.
(Hi, christos.)
|
#
136bcc39 |
| 24-Jan-2013 |
christos <christos@NetBSD.org> |
Pr/47500: Henning Petersen: Don't install man pages for tools
|
#
59292318 |
| 19-Jun-2010 |
riz <riz@NetBSD.org> |
Rename Makefile.disklabel to Makefile.nbincludes, as this file has been used by more than disklabel for years. New name suggestion from mrg@ .
|
#
ec591d7f |
| 24-Feb-2010 |
darran <darran@NetBSD.org> |
DTrace: add CTF tools to the toolchain (not built yet).
|