2006-09-20 12:49:47

by Martin Michlmayr

[permalink] [raw]
Subject: AUDIT=y build failure on ARM

I get the build failure below with AUDIT=y on ARM. The problem is
that lib/audit.c includes asm-generic/audit_dir_write.h which lists a
number of syscalls that are not defined on ARM (and some other platforms).

What's the right fix for this? I don't think I saw this problem with
2.6.18-rc7 but on the other hand I cannot see any relevant changes
since then.

The failure is:

CC lib/audit.o
In file included from lib/audit.c:7:
include/asm-generic/audit_dir_write.h:9: error: '__NR_mkdirat' undeclared here (not in a function)
include/asm-generic/audit_dir_write.h:10: error: '__NR_mknodat' undeclared here (not in a function)
include/asm-generic/audit_dir_write.h:11: error: '__NR_unlinkat' undeclared here (not in a function)
include/asm-generic/audit_dir_write.h:12: error: '__NR_renameat' undeclared here (not in a function)
include/asm-generic/audit_dir_write.h:13: error: '__NR_linkat' undeclared here (not in a function)
include/asm-generic/audit_dir_write.h:14: error: '__NR_symlinkat' undeclared here (not in a function)
...
In file included from lib/audit.c:22:
include/asm-generic/audit_change_attr.h:12: error: '__NR_fchownat' undeclared here (not in a function)
include/asm-generic/audit_change_attr.h:12: error: initializer element is not constant
include/asm-generic/audit_change_attr.h:12: error: (near initialization for 'chattr_class[11]')
include/asm-generic/audit_change_attr.h:13: error: '__NR_fchmodat' undeclared here (not in a function)
include/asm-generic/audit_change_attr.h:13: error: initializer element is not constant
include/asm-generic/audit_change_attr.h:13: error: (near initialization for 'chattr_class[12]')
lib/audit.c: In function 'audit_classify_syscall':
lib/audit.c:31: error: '__NR_openat' undeclared (first use in this function)
lib/audit.c:31: error: (Each undeclared identifier is reported only once
lib/audit.c:31: error: for each function it appears in.)
make[5]: *** [lib/audit.o] Error 1

--
Martin Michlmayr
http://www.cyrius.com/


2006-09-21 11:45:08

by Valdis Klētnieks

[permalink] [raw]
Subject: Re: AUDIT=y build failure on ARM

On Wed, 20 Sep 2006 14:49:08 +0200, Martin Michlmayr said:
> I get the build failure below with AUDIT=y on ARM. The problem is
> that lib/audit.c includes asm-generic/audit_dir_write.h which lists a
> number of syscalls that are not defined on ARM (and some other platforms).

And somebody (I forget who) was complaining that some debugging tool was only available
on the x86/sparc/ppc families of CPUs, and didn't like Alan Cox's suggestion
that they go add it.

Given that missing an entire class of syscall (the *at flavors) on an
architecture isn't a deterrent to inclusion, Alan's response was totally
on-target....

(I'm presuming the usual reason for such missing syscalls is that nobody
has bothered trying to run software that uses a *at call on an ARM, so
nobody's bothered wiring them up and thereby increasing the kernel image
size on a platform where it's likely to be *very* important?)


Attachments:
(No filename) (226.00 B)

2006-09-21 16:25:51

by Russell King

[permalink] [raw]
Subject: Re: AUDIT=y build failure on ARM

On Thu, Sep 21, 2006 at 07:44:16AM -0400, [email protected] wrote:
> On Wed, 20 Sep 2006 14:49:08 +0200, Martin Michlmayr said:
> > I get the build failure below with AUDIT=y on ARM. The problem is
> > that lib/audit.c includes asm-generic/audit_dir_write.h which lists a
> > number of syscalls that are not defined on ARM (and some other platforms).
>
> And somebody (I forget who) was complaining that some debugging tool was only available
> on the x86/sparc/ppc families of CPUs, and didn't like Alan Cox's suggestion
> that they go add it.
>
> Given that missing an entire class of syscall (the *at flavors) on an
> architecture isn't a deterrent to inclusion, Alan's response was totally
> on-target....
>
> (I'm presuming the usual reason for such missing syscalls is that nobody
> has bothered trying to run software that uses a *at call on an ARM, so
> nobody's bothered wiring them up and thereby increasing the kernel image
> size on a platform where it's likely to be *very* important?)

They probably should be wired up, but TBH I _always_ miss the addition
of such things. I don't remember there being any notification to arch
maintainers that something was due to be done.

--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 Serial core