- move the per-ABI subdir list into compatsubdir.mk. use the new
MAKEDIRTARGETENV support to force a new objdir for compat library builds,
and simply traverse over the normal src path once for each ABI to be
built. this eliminates all the shadow Makefile's for every library, and
allows multiple compat ABIs to be built for a single platform, such as
both o32 and n64 for mips64's default n32.
- compat/Makefile is merely a subdir provider now, and takes the real
information from archdirs.mk
of ABIs to target. for amd64 and sparc64, we use the old i386 and sparc
subdirectories. for mips64, we build both o32 and n64 libraries.
these files are not yet used, but will be shortly.
for mips64 to build this with MLIBDIR set to o32
- make mips64 ldd call elf32_compat_ldd as well
- make mips64 elf64 set MLIBDIR to 64
- don't need ld.elf_so's Makefile.ld32 files anymore (they are going away
soon anyway)
tested on amd64 and sparc64, and an earlier version tested on mips64.
For each syscall, add a flag for the return value or an argument indicating
that it is a 64-bit argument. Also include the number of 64-bit arguments.
In theory this could get most of the code in compat/netbsd32/netbsd32_netbsd.c
but not at the moment due to multiply defined structures.
open files is rather gross - the poll map isn't required to be dense.
Instead limit to a much larger value (1000 + dt_nfiles) so that user
programs cannot allocate indefinite sized blocks of kvm.
If the limit is exceeded, then return EINVAL instead of silently truncating
the list.
(The silent truncation in select isn't quite as bad - although even there
any high bits that are set ought to generate an EBADF response.)
Move the code that converts ERESTART and EWOULDBLOCK into common code.
Effectively fixes PR/17507 since the new limit is unlikely to be detected.
in libs built with binutils >=2.19. This is a less error-prone
method than the previous where components had to be tagged in the
Makefile as modules (and if they weren't, things broke. and vice
versa).
struct timeval passed to todr_gettime(9) and todr_settime(9).
We no longer have an ancient and volatile struct timeval `time'
global since we have switched to MI timercounter(9) on all port.
XXX1: some of these RTC drivers still assume 32bit time_t
XXX2: some of these should be rewritten to use todr_[gs]ettime_ymdhms()
XXX3: todr(9) man page doesn't mention todr_[gs]ettime_ymdhms()
struct timeval passed to todr_gettime(9) and todr_settime(9).
We no longer have an ancient and volatile struct timeval `time'
global since we have switched to MI timercounter(9) on all port.
XXX1: some of these RTC drivers still assume 32bit time_t
XXX2: some of these should be rewritten to use todr_[gs]ettime_ymdhms()
XXX3: todr(9) man page doesn't mention todr_[gs]ettime_ymdhms()