tech-toolchain archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: On upgrading elftoolchain in src/



cz> - Is there any need today to install elfdefinitions.h in /usr/include?
cz>   What will use it that does not work today (elftoolchain already uses
cz>   its own copy)?

Upstream <libelf.h> uses elfdefinitions.h, as does the rest of the
upstream toolchain (i.e. elfcopy, strings, size, strip, nm, etc).

LibELF-using programs (say in pkgsrc) that are being compiled on NetBSD
would also end up using these symbols.

cz> - The elf stuff that is used by the kernel needs to live in sys/ so
cz>   the kernel will never be able to use elfdefinitions.h (in case in
cz>   the long term we wanted to delete exec_elf.h to avoid duplicated
cz>   definitions).

Noted.

I plan to change upstream so that the file can be placed under <sys/>.

cz> - It is nice and convenient to define the constants as macros together
cz>   with string explanations but readability suffers. If that was a private
cz>   header, that would be a good solution but for system headers brevity
cz>   and clarity trumps convenience IMHO (and most things will not need
cz>   the string explanations which can be accessed using library functions).

Yes.

There is also a subtle portability issue with the way I am using
enumerations which was brought to my attention, and which I intend to fix.

This is that the C standard defines enumerations as having a type of
'int'.  But some values within these enumerations could be larger than
INT_MAX on some platforms, triggering implementation-dependent behavior on
the part of the C compiler.  This may not matter in practice for CLang &
GCC but I would prefer to be ISO C compliant to the extent possible.

So I plan to change the header to use plain '#define's.  The string
constants will be moved somewhere else, say to libelftc (a helper library
used by the rest of Elftoolchain code).

cz> - the elf headers (both the existing one and elfdefinitions.h are too
cz>   long and could be functionally split).

Noted.  Would this be a readability issue or a potential compilation
speed issue?

If the latter it would be easy enough to wrap specific classes of symbols
in #ifdef blocks if needed.

cz> - and yes it sucks not to have a portable elf header across OS's so if
cz>   yours becomes a standard that would be a welcome change... Talking from
cz>   experience (/usr/src/external/bsd/file/dist/src/readelf.h)

Agreed, more compatibility across the BSDs would be a good thing.

Regards,
Joseph Koshy


Home | Main Index | Thread Index | Old Index