Fix UCONTEXT detection on ppc_linux26 via include order
authorRuss Allbery <rra@stanford.edu>
Tue, 20 Apr 2010 05:01:27 +0000 (22:01 -0700)
committerDerrick Brashear <shadow@dementia.org>
Wed, 21 Apr 2010 23:09:04 +0000 (16:09 -0700)
commit54226e9ad45003f4f54b1a7ba2b13003dcf1edb7
tree78d3c9f0160dd096c9ff70a2ed5e0f26e16e60fa
parent80f05473428969ff71d1791cda8cb09d30223724
Fix UCONTEXT detection on ppc_linux26 via include order

param.linux26.h defines USE_UCONTEXT for all Linux platforms for
glibc 2.4 and higher, but it does this by testing __GLIBC__ and
__GLIBC_MINOR__.  These are defined by features.h, which is included
by any system header.  At least one system header must be included
before those are defined.  lwp/process.c was including <afsconfig.h>
and <afs/param.h> before any other headers, leading to those macros
being undefined.  Most of the Linux architectures either have their
own implementation or were explicitly defining USE_UCONTEXT in the
per-architecture param file, but ppc_linux26 was relying on the
default.

Fix this by reordering the includes to include the various system
headers before <afs/param.h> and add a comment explaining why.

This previously worked in earlier versions because the old
param.ppc_linux26.h file included <afs/afs_sysnames.h>, which
included "stds.h", which included a system header prior to the check
for ucontext.  The new generic param file reverses that order.

Change-Id: I214e54f684afdef07e6e2dec5b6e6e4d255ab4ec
Reviewed-on: http://gerrit.openafs.org/1791
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
src/lwp/process.c