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.mk
in NetBSD and in the pmake package in Ubuntu GNU/Linux. bsd.incs.mk
which is not compatible with bsd.inc.mk
. We use a wrapper trunk/mk/elftoolchain.inc.mk, to work around these differences.
char
sized values. isdigit(3)
is a macro that expands inline to an array access. The compiler will warn if a char
sized quantity is passed in as a parameter to isdigit()
. mktemp
has 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 read()
/write()
for this case. See: ticket [#366]. Elf64_Half
type 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. -o
option. 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.
Commit: [r1124]
Commit: [r999]
Tickets: #265
Tickets: #366
Wiki: BuildAutomation
Wiki: BuildingFromSource
Wiki: Home