This wiki page documents various issues encountered while keeping our code base portable.
This make ruleset handles include files. It is not present in all the operating systems we are interested in.
bsd.inc.mkin NetBSD and in the pmake package in Ubuntu GNU/Linux.
bsd.incs.mkwhich is not compatible with
We use a wrapper trunk/mk/elftoolchain.inc.mk, to work around these differences.
isdigit(3)is a macro that expands inline to an array access. The compiler will warn if a
charsized quantity is passed in as a parameter to
mktemphas a bug (589408) that affects trunk/common/native-elf-format. Changeset [r1124] has a work-around.
mmap()API. We fall back to a combination of
write()for this case. See: ticket [#366].
Elf64_Halftype as being 4 bytes wide. This is at variance with the ELF ABI definition for 64-bit platforms, and breaks assumptions in our libelf library about structure layout. On 64-bit platforms, NetBSD 5 defines a (non-standard) Elf64_Quarter type that is 2 bytes wide. Reducing our reliance on system headers (see [#265]) could be a possible solution to deal with such issues.
-ooption. This causes the generated header file to have a different name than the standard "y.tab.h". See [r999] for the current solution to this issue.