now and not NetBSD-*-arm32. Changes include one or more of:
- Change MACHINE_ARCH == arm32 to also match arm
- Where ONLY_FOR_PLATFORM includes NetBSD-*-arm32, add NetBSD-*-arm
- Where BROKEN or worked around for arm gcc bugs, set USE_GCC3
The last may shake out a few more broken packages the next bulk build.
patch file.
Use the new CONFIG_SUB_OVERRIDE and CONFIG_GUESS_OVERRIDE mechanisms.
Recognise netbsdelf on i386 platforms - more mods will be necessary for
different platforms.
foo-* to foo-[0-9]*. This is to cause the dependencies to match only the
packages whose base package name is "foo", and not those named "foo-bar".
A concrete example is p5-Net-* matching p5-Net-DNS as well as p5-Net. Also
change dependency examples in Packages.txt to reflect this.
out of date - it was based on a.out OBJECT_FMT, and added entries in the
generated PLISTs to reflect the symlinks that ELF packages uses. It also
tried to be clever, and removed and recreated any symbolic links that were
created, which has resulted in some fun, especially with packages which
use dlopen(3) to load modules. Some recent changes to our ld.so to bring
it more into line with other Operating Systems also exposed some cracks.
+ Modify bsd.pkg.mk and its shared object handling, so that PLISTs now contain
the ELF symlinks.
+ Don't mess about with file system entries when handling shared objects in
bsd.pkg.mk, since it's likely that libtool and the BSD *.mk processing will
have got it right, and have a much better idea than we do.
+ Modify PLISTs to contain "ELF symlinks"
+ On a.out platforms, delete any "ELF symlinks" from the generated PLISTs
+ On ELF platforms, no extra processing needs to be done in bsd.pkg.mk
+ Modify print-PLIST target in bsd.pkg.mk to add dummy symlink entries on
a.out platforms
+ Update the documentation in Packages.txt
With many thanks to Thomas Klausner for keeping me honest with this.
running threaded binaries if SIGCHLD was set to SIG_IGN. What happens is
that pthreads uses either sigaction() or signal() to set up signals when
switching thread state. It used HAVE_SYSCALL_SIGACTION to decide which to
use. But, while we have a FUNCTION called sigaction(), the syscall is
__sigaction14, which caused HAVE_SYSCALL_SIGACTION to not be defined.
This would have been ok if the pthread kernel didn't assume signal would
return 0 for success and non-zero for failure. Signal() returns the
previous handler. SIG_IGN != 0, so pthreads thought the call failed.
Resulting in a call to abort().