Each strace port relies heavily on port-specific headers:
	- errnoent.h - map error number to error name like strerror()
	- ioctlent.h - map ioctl number to symbolic define
	- signalent.h - map signal number to signal name like strsignal()
	- syscallent.h - map syscall number to name and function signature

Since generating these headers from scratch (or even just updating them) can be
a big pain, there are a few scripts to help automate the process.  Since each
port organizes their kernel sources differently, there may be a specific script
for your kernel.

We will use the Linux kernel (2.6.20+) as an example below (the Blackfin
architecture to be specific).  Hopefully, it'll be obvious how to swap out a
different system or architecture as your circumstances apply.

ksrc=/usr/src/linux
asrc=$ksrc/arch/blackfin/include

To use the errnoent.sh script, give it all the headers that might contain
appropriate errno values.  Excessive headers are not a problem.  The resulting
output should be directly usable without modification.
	sh ./errnoent.sh \
		$ksrc/include/linux/*errno*.h \
		$ksrc/include/asm-generic/*errno*.h \
		$asrc/asm/*errno*.h \
		> errnoent.h

To use the ioctls_gen.sh script, give it all the base include directories.  The
script will crawl all the headers and try to discover appropriate ioctls.
Unlike the other scripts, this one creates files for further processing.  This
is because ioctls tend to have a lot of define indirection, and the ioctlent0.h
header needs to be fully expanded into numeric form and sorted properly.  So
first we process all of the ioctls with the ioctls_gen.sh into ioctls_inc.h and
ioctls_arch.h, and then we compile them into ioctlsort.c.  The resulting
output, while directly usable, only contains definitions that match exactly the
current kernel version that the script ran against.  That means older/newer
ioctl defines that might be present in the existing ioctlent0.h header will be
lost if things are copied directly.  A little creative use of `diff` and manual
merging should be used to produce the final ioctlent0.h header.
	sh ./maint/ioctls_gen.sh $ksrc/include $asrc
	gcc -Wall -I. ioctlsort.c -o ioctlsort
	./ioctlsort > ioctlent0.h

To use the signalent.sh script, give it all the headers that might contain
appropriate signal values.  Excessive headers are not a problem.  The resulting
output should be directly usable without modification.
	sh ./signalent.sh \
		$asrc/asm/signal.h \
		> signalent.h

To use the syscallent.sh script, give it the header with the list of your
system call numbers.  The resulting output is useful as a template for creating
a proper header as it can really only detect the system call number and its
name.  It has no way of knowing the number of arguments or strace flags for
decoding them (yet?).
	sh ./syscallent.sh \
		$asrc/asm/unistd.h \
		> syscallent.h
