Re: [patch 2/4] syscalls, x86: Add __NR_kcmp syscall v8

From: hpanvin@xxxxxxxxx
Date: Wed Feb 15 2012 - 01:58:47 EST


What? <linux/unistd.h> should be used, and it should handle the.inclusions.

Cyrill Gorcunov <gorcunov@xxxxxxxxxx> wrote:

>On Tue, Feb 14, 2012 at 03:13:12PM -0800, Andrew Morton wrote:
>...
>>
>> hm, what does all this stuff in the selftest makefile do?
>>
>> The selftests code has undergone some changes since you last looked.
>
>Hmm, thanks for pointing.
>
>> The rules are, roughly:
>>
>> - In tools/testing/selftests, a "make" will compile but not run all
>> selftest code.
>>
>> - In tools/testing/selftests, a "make run_tests" will compile all
>> selftest code (if needed) and will then run all the tests.
>>
>> If a test is not applicable (eg wrong architecture, kernel feature
>> not enabled, etc) then it should try to avoid breaking the build
>and,
>> when executed it should emit a diagnostic and then exit(0) (ie:
>> success) so as to avoid breaking the overall test run.
>>
>> IOW, the test should only fail if the feature is present but isn't
>> working correctly.
>>
>> Also, I hate with a passion Makefiles which hide the command lines
>from
>> me! So I nuked all that E and Q stuff.
>>
>
>make V=1 will show the command line, I tried to make the output to look
>the same as in case of building kernel.
>
>>
>> However that didn't work for me:
>>
>> akpm:/usr/src/25/tools/testing/selftests/kcmp> make
>> gcc -DCONFIG_X86_64 -D__x86_64__
>-I../../../../arch/x86/include/generated/ ...
>> kcmp_test.c: In function 'sys_kcmp':
>> kcmp_test.c:22: error: '__NR_kcmp' undeclared (first use in this
>function)
>...
>> How are we supposed to be picking up __NR_kcmp?
>>
>
>Initially I made it to look into arch/x86 directory and find __NR_kcmp
>definition there but then I realised (and someone pointed me as
>well) that headers should be taken from those which are generated
>by kernel, ie the result of 'make headers_install'. So if you run
>make headers_install then the test program should work. If this is
>wrong, I can fix it and make a patch on top.
>
>Ie instead of
>
>+#include <linux/unistd.h>
>
>there will be
>
>+#ifdef CONFIG_X86_64
>+#include <asm/unistd_64.h>
>+#else
>+#include <asm/unistd_32.h>
>+#endif
>
> Cyrill

--
Sent from my Android phone with K-9 Mail. Please excuse my brevity.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/