The NetBSD Project

CVS log for src/tools/elftoolchain/libdwarf/Makefile

[BACK] Up to [cvs.NetBSD.org] / src / tools / elftoolchain / libdwarf

Request diff between arbitrary revisions


Keyword substitution: kv
Default branch: MAIN


Revision 1.7: download - view: text, markup, annotated - select for diffs
Mon Apr 1 18:33:23 2024 UTC (9 months, 2 weeks ago) by riastradh
Branches: MAIN
CVS tags: perseant-exfatfs-base-20240630, perseant-exfatfs-base, perseant-exfatfs, HEAD
Diff to: previous 1.6: preferred, colored
Changes since revision 1.6: +2 -3 lines
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.

Revision 1.6: download - view: text, markup, annotated - select for diffs
Sat Mar 30 22:39:53 2024 UTC (9 months, 2 weeks ago) by riastradh
Branches: MAIN
Diff to: previous 1.5: preferred, colored
Changes since revision 1.5: +2 -1 lines
tools/elftoolchain: Build with BUILTIN_ELF_HEADERS again.

The header file dependency that motivated disabling this should be
resolved now.

Revision 1.5: download - view: text, markup, annotated - select for diffs
Wed Mar 27 21:54:43 2024 UTC (9 months, 2 weeks ago) by christos
Branches: MAIN
Diff to: previous 1.4: preferred, colored
Changes since revision 1.4: +1 -3 lines
Remove dependency to elfdefinitions.h, this is a mess, since it needs
${TOOL_M4} which might not be available yet.

Revision 1.4: download - view: text, markup, annotated - select for diffs
Tue Mar 26 16:48:34 2024 UTC (9 months, 3 weeks ago) by christos
Branches: MAIN
Diff to: previous 1.3: preferred, colored
Changes since revision 1.3: +2 -1 lines
- fix nbincludes so that it can be included from any level
- add elftoolchain/common to the list of headers to be build before depend
- make libdwarf build the includes since it needs <sys/elfdefinitions.h>
  which does not exist on non-netbsd systems.

Revision 1.3: download - view: text, markup, annotated - select for diffs
Sun Mar 3 17:37:58 2024 UTC (10 months, 1 week ago) by christos
Branches: MAIN
Diff to: previous 1.2: preferred, colored
Changes since revision 1.2: +2 -1 lines
changes for r4037

Revision 1.2: download - view: text, markup, annotated - select for diffs
Sun May 1 17:25:19 2022 UTC (2 years, 8 months ago) by jkoshy
Branches: MAIN
CVS tags: netbsd-10-base, netbsd-10-1-RELEASE, netbsd-10-0-RELEASE, netbsd-10-0-RC6, netbsd-10-0-RC5, netbsd-10-0-RC4, netbsd-10-0-RC3, netbsd-10-0-RC2, netbsd-10-0-RC1, netbsd-10
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +4 -1 lines
Make the generated <sys/elfdefinitions.h> file visible when compiling
libdwarf.

Revision 1.1: download - view: text, markup, annotated - select for diffs
Mon Apr 18 14:11:43 2022 UTC (2 years, 8 months ago) by jkoshy
Branches: MAIN
Build 'libelf' and 'libdwarf' under 'tools/elftoolchain', after
'tools/elftoolchain/common' has been built.

This change aligns the 'tools' build with the regular build.

Subsequent commits will change 'tools/libctf' and
'tools/cft{merge,convert}' to use the new build paths.

Diff request

This form allows you to request diffs between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.

Log view options

CVSweb <webmaster@jp.NetBSD.org>