Generate stub header files for h/*.h files included in libuafs
authorRuss Allbery <rra@stanford.edu>
Tue, 23 Aug 2011 19:50:55 +0000 (12:50 -0700)
committerDerrick Brashear <shadow@dementix.org>
Mon, 5 Sep 2011 13:06:58 +0000 (06:06 -0700)
commit1d6593e952ce82c778b1cd6e40c6e22ec756daf1
treef60abdc10203a0181f95ba2469260eb8f5f4760a
parent0f4dfaed6b25ae4282298cc2ba4908ce9f36f043
Generate stub header files for h/*.h files included in libuafs

Previously, the libuafs build created a symlink from h to
/usr/include/sys so that files included under h/* by kernel source
files could be found in the normal system header location.  However,
this assumption about the system header location is no longer valid.
Debian and Ubuntu systems with multiarch have arch-specific include
paths so that the same host can be used to build 32-bit and 64-bit
binaries with different system headers, and those include paths are
automatically searched by the compiler.  This means some standard
headers are no longer found directly in /usr/include/sys but are
instead found in /usr/include/<arch>/sys.

Using a stripped-down version of similar code for building the kernel
module on Linux, create an h directory containing stub header files
that just include the relevant system <sys/*.h> header file instead.
This allows the compiler to implement its normal internal header
search algorithm.

Also remove all the other symlinks, such as sys, netinet, etc., that
just pointed to the same directories under /usr/include.  We can assume
the normal compiler search algorithm will find these headers without
requiring this assistance.

Change-Id: Ie19d12e3d3f0068c88d0a9c83f6a96d51baee018
Reviewed-on: http://gerrit.openafs.org/5305
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
src/libuafs/Makefile.common.in
src/libuafs/make_h_tree.pl [new file with mode: 0755]