bsd.port.mk would always find the executable (using which), even if
there wasn't an executable in the $PATH. I've modified bsd.port.mk to
look for the executable directly, and simplified the shell code
somewhat in the process. There may be a lurking bug in shell exit
status handling here.
Noted by matthew green <mrg@madrugada.eterna.com.au> and Chris
Demetriou <cgd@netbsd.org> (PR pkg/4337) but I was too stupid to
realise what was happening. That, and a copy of gmake in
/usr/local/bin.
- sys.mk:
add ${OBJC} and ${OBJCFLAGS} (equivalent to ${CC} and
${CFLAGS} respectively), and ${COMPILE.m} and ${LINK.m} rules
- bsd.sys.mk:
add .m, .m.o, and .m.ln rules (as per the C rules in sys.mk).
it's here, rather than in sys.mk, because `.m' isn't
exclusively used for Objective C files.
- bsd.lib.mk:
add .m.o, .m.po, .m.so, and .m.ln rules (as per C)
change KEYSYM_HOLE to KEYSYM_NOP most places in those tables.
Map the `R' function keys with KEYSYM_FUNC_R instead of the
arrow key strings so that numlock indirection works.
- Use the saved errno to print the error message if the vfork() fails.
- In the child, if the execl() fails, use warn()/_exit(), not err(),
as the latter is not safe in the presence of a Real vfork().
- at end of attach, explicitely select an existing drive. This fixes hangs
some users reported (such as the one reported in port-i386/4247).
- Some atapi cdrom drives (e.g. Nec 24x) don't enables their registers before
a controller reset is issued. The controller probe routine is changed as
follow: issue a controller reset. If fail, test atapi signature on slave.
If fail, wait 5s and retry a reset. If the second reset fail, return(0).
If the first reset succeed, test presence of a master drive:
atapi signature, and if this fail RO/RW registers test. If no master, test
atapi signature on slave. If no slave, return 0.
pread64(), pwrite(), pwrite64():
* The `offset' argument specifies an absolute offset within the file.
* After performing the read resp. write operation, restore the original
offset within the file.
Also, change the argument structure used by svr4_sys_prwite64() to
svr4_sys_pwrite64_args, instead of the 32-bit offset version.