Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1550216 > unrolled thread
| Started by | Arnd Bergmann <arnd@arndb.de> |
|---|---|
| First post | 2017-01-03 22:40 +0100 |
| Last post | 2017-01-13 02:40 +0100 |
| Articles | 20 on this page of 38 — 11 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: [PATCH] uapi: use wildcards to list files Arnd Bergmann <arnd@arndb.de> - 2017-01-03 22:40 +0100
Re: [PATCH] uapi: use wildcards to list files Nicolas Dichtel <nicolas.dichtel@6wind.com> - 2017-01-04 10:10 +0100
[PATCH v2 5/7] Makefile.headersinst: cleanup input files Nicolas Dichtel <nicolas.dichtel@6wind.com> - 2017-01-06 10:50 +0100
[PATCH v2 6/7] Makefile.headersinst: remove destination-y option Nicolas Dichtel <nicolas.dichtel@6wind.com> - 2017-01-06 10:50 +0100
[PATCH v2 0/7] uapi: export all headers under uapi directories Nicolas Dichtel <nicolas.dichtel@6wind.com> - 2017-01-06 10:50 +0100
[PATCH v2 1/7] arm: put types.h in uapi Nicolas Dichtel <nicolas.dichtel@6wind.com> - 2017-01-06 10:50 +0100
Re: [PATCH v2 1/7] arm: put types.h in uapi Arnd Bergmann <arnd@arndb.de> - 2017-01-09 12:40 +0100
Re: [PATCH v2 1/7] arm: put types.h in uapi Russell King - ARM Linux <linux@armlinux.org.uk> - 2017-01-09 13:10 +0100
[PATCH v2 3/7] nios2: put setup.h in uapi Nicolas Dichtel <nicolas.dichtel@6wind.com> - 2017-01-06 10:50 +0100
Re: [PATCH v2 3/7] nios2: put setup.h in uapi Arnd Bergmann <arnd@arndb.de> - 2017-01-09 12:40 +0100
[PATCH v2 2/7] h8300: put bitsperlong.h in uapi Nicolas Dichtel <nicolas.dichtel@6wind.com> - 2017-01-06 10:50 +0100
Re: [PATCH v2 4/7] x86: put msr-index.h in uapi Borislav Petkov <bp@alien8.de> - 2017-01-06 13:20 +0100
Re: [PATCH v2 4/7] x86: put msr-index.h in uapi Andy Shevchenko <andy.shevchenko@gmail.com> - 2017-01-06 22:00 +0100
Re: [PATCH v2 0/7] uapi: export all headers under uapi directories Arnd Bergmann <arnd@arndb.de> - 2017-01-09 12:40 +0100
Re: [PATCH v2 0/7] uapi: export all headers under uapi directories Jesper Nilsson <jesper.nilsson@axis.com> - 2017-01-11 13:50 +0100
[PATCH v3 5/8] Makefile.headersinst: cleanup input files Nicolas Dichtel <nicolas.dichtel@6wind.com> - 2017-01-13 11:50 +0100
[PATCH v3 4/8] x86: stop exporting msr-index.h to userland Nicolas Dichtel <nicolas.dichtel@6wind.com> - 2017-01-13 11:50 +0100
(none) David Howells <dhowells@redhat.com> - 2017-01-13 16:50 +0100
Re: [PATCH v3 4/8] x86: stop exporting msr-index.h to userland Nicolas Dichtel <nicolas.dichtel@6wind.com> - 2017-01-13 17:10 +0100
Re: [PATCH v3 4/8] x86: stop exporting msr-index.h to userland Borislav Petkov <bp@alien8.de> - 2017-01-13 17:40 +0100
[PATCH v3 3/8] nios2: put setup.h in uapi Nicolas Dichtel <nicolas.dichtel@6wind.com> - 2017-01-13 11:50 +0100
Re: [PATCH v3 3/8] nios2: put setup.h in uapi Tobias Klauser <tklauser@distanz.ch> - 2017-01-13 12:00 +0100
[PATCH v3 1/8] arm: put types.h in uapi Nicolas Dichtel <nicolas.dichtel@6wind.com> - 2017-01-13 12:00 +0100
(none) David Howells <dhowells@redhat.com> - 2017-01-13 16:40 +0100
Re: [PATCH v3 1/8] arm: put types.h in uapi Nicolas Dichtel <nicolas.dichtel@6wind.com> - 2017-01-13 17:10 +0100
Re: [PATCH v3 1/8] arm: put types.h in uapi Russell King - ARM Linux <linux@armlinux.org.uk> - 2017-01-13 17:30 +0100
Re: [PATCH v3 1/8] arm: put types.h in uapi David Howells <dhowells@redhat.com> - 2017-01-13 17:40 +0100
Re: [PATCH v3 1/8] arm: put types.h in uapi Russell King - ARM Linux <linux@armlinux.org.uk> - 2017-01-13 18:10 +0100
[PATCH v3 6/8] Makefile.headersinst: remove destination-y option Nicolas Dichtel <nicolas.dichtel@6wind.com> - 2017-01-13 12:00 +0100
[PATCH v3 8/8] uapi: export all arch specifics directories Nicolas Dichtel <nicolas.dichtel@6wind.com> - 2017-01-13 12:00 +0100
[PATCH v3 2/8] h8300: put bitsperlong.h in uapi Nicolas Dichtel <nicolas.dichtel@6wind.com> - 2017-01-13 12:00 +0100
[PATCH v3 0/8] uapi: export all headers under uapi directories Nicolas Dichtel <nicolas.dichtel@6wind.com> - 2017-01-13 12:00 +0100
Re: [PATCH v2 7/7] uapi: export all headers under uapi directories Russell King - ARM Linux <linux@armlinux.org.uk> - 2017-01-09 13:10 +0100
Re: [PATCH v2 7/7] uapi: export all headers under uapi directories Christoph Hellwig <hch@infradead.org> - 2017-01-09 14:00 +0100
Re: [PATCH v2 7/7] uapi: export all headers under uapi directories Nicolas Dichtel <nicolas.dichtel@6wind.com> - 2017-01-12 17:00 +0100
Re: [PATCH v2 7/7] uapi: export all headers under uapi directories Jan Engelhardt <jengelh@inai.de> - 2017-01-12 17:40 +0100
Re: [PATCH v2 7/7] uapi: export all headers under uapi directories Nicolas Dichtel <nicolas.dichtel@6wind.com> - 2017-01-12 17:40 +0100
Re: [PATCH v2 7/7] uapi: export all headers under uapi directories Jeff Epler <jepler@unpythonic.net> - 2017-01-13 02:40 +0100
Page 1 of 2 [1] 2 Next page →
| From | Arnd Bergmann <arnd@arndb.de> |
|---|---|
| Date | 2017-01-03 22:40 +0100 |
| Subject | Re: [PATCH] uapi: use wildcards to list files |
| Message-ID | <sVEYi-3J6-27@gated-at.bofh.it> |
On Tuesday, January 3, 2017 3:35:44 PM CET Nicolas Dichtel wrote: > Regularly, when a new header is created in include/uapi/, the developer > forgets to add it in the corresponding Kbuild file. This error is usually > detected after the release is out. > > In fact, all headers under include/uapi/ should be exported, so let's > use wildcards. I think the idea makes a lot of sense: if a header is in uapi, we should really export it. However, using a wildcard expression seems a bit backwards here, I think we should make this implicit and not have the Kbuild file at all. The "header-y" syntax was originally added back when the uapi headers were mixed with the internal headers in the same directory. After David Howells introduced the separate directory for uapi, it has become a bit redundant. Can you try to modify scripts/Makefile.headersinst instead so we can simply remove the Kbuild files entirely? Arnd
[toc] | [next] | [standalone]
| From | Nicolas Dichtel <nicolas.dichtel@6wind.com> |
|---|---|
| Date | 2017-01-04 10:10 +0100 |
| Message-ID | <sVPK2-2AQ-37@gated-at.bofh.it> |
| In reply to | #1550216 |
Le 03/01/2017 à 22:37, Arnd Bergmann a écrit : > On Tuesday, January 3, 2017 3:35:44 PM CET Nicolas Dichtel wrote: >> Regularly, when a new header is created in include/uapi/, the developer >> forgets to add it in the corresponding Kbuild file. This error is usually >> detected after the release is out. >> >> In fact, all headers under include/uapi/ should be exported, so let's >> use wildcards. > > I think the idea makes a lot of sense: if a header is in uapi, we should > really export it. However, using a wildcard expression seems a bit > backwards here, I think we should make this implicit and not have the > Kbuild file at all. > > The "header-y" syntax was originally added back when the uapi headers > were mixed with the internal headers in the same directory. After > David Howells introduced the separate directory for uapi, it has > become a bit redundant. Ok, thank you for the explanation, I was wondering why those Kbuild files were needed. > > Can you try to modify scripts/Makefile.headersinst instead so we > can simply remove the Kbuild files entirely? I will try something. Regards, Nicolas
[toc] | [prev] | [next] | [standalone]
| From | Nicolas Dichtel <nicolas.dichtel@6wind.com> |
|---|---|
| Date | 2017-01-06 10:50 +0100 |
| Subject | [PATCH v2 5/7] Makefile.headersinst: cleanup input files |
| Message-ID | <sWzjP-8jC-1@gated-at.bofh.it> |
| In reply to | #1550542 |
After the last four patches, all exported headers are under uapi/, thus
input-files2 are not needed anymore.
The side effect is that input-files1-name is exactly header-y.
Note also that unput-files3-name is genhdr-y.
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
---
scripts/Makefile.headersinst | 34 +++++++++++-----------------------
1 file changed, 11 insertions(+), 23 deletions(-)
diff --git a/scripts/Makefile.headersinst b/scripts/Makefile.headersinst
index 1106d6ca3a38..3e20d03432d2 100644
--- a/scripts/Makefile.headersinst
+++ b/scripts/Makefile.headersinst
@@ -40,31 +40,20 @@ wrapper-files := $(filter $(header-y), $(generic-y))
srcdir := $(srctree)/$(obj)
gendir := $(objtree)/$(gen)
-oldsrcdir := $(srctree)/$(subst /uapi,,$(obj))
-
# all headers files for this dir
header-y := $(filter-out $(generic-y), $(header-y))
all-files := $(header-y) $(genhdr-y) $(wrapper-files)
output-files := $(addprefix $(installdir)/, $(all-files))
-input-files1 := $(foreach hdr, $(header-y), \
- $(if $(wildcard $(srcdir)/$(hdr)), \
- $(wildcard $(srcdir)/$(hdr))) \
- )
-input-files1-name := $(notdir $(input-files1))
-input-files2 := $(foreach hdr, $(header-y), \
- $(if $(wildcard $(srcdir)/$(hdr)),, \
- $(if $(wildcard $(oldsrcdir)/$(hdr)), \
- $(wildcard $(oldsrcdir)/$(hdr)), \
- $(error Missing UAPI file $(srcdir)/$(hdr))) \
- ))
-input-files2-name := $(notdir $(input-files2))
-input-files3 := $(foreach hdr, $(genhdr-y), \
- $(if $(wildcard $(gendir)/$(hdr)), \
- $(wildcard $(gendir)/$(hdr)), \
- $(error Missing generated UAPI file $(gendir)/$(hdr)) \
- ))
-input-files3-name := $(notdir $(input-files3))
+# Check that all expected files exist
+$(foreach hdr, $(header-y), \
+ $(if $(wildcard $(srcdir)/$(hdr)),, \
+ $(error Missing UAPI file $(srcdir)/$(hdr)) \
+ ))
+$(foreach hdr, $(genhdr-y), \
+ $(if $(wildcard $(gendir)/$(hdr)),, \
+ $(error Missing generated UAPI file $(gendir)/$(hdr)) \
+ ))
# Work out what needs to be removed
oldheaders := $(patsubst $(installdir)/%,%,$(wildcard $(installdir)/*.h))
@@ -78,9 +67,8 @@ printdir = $(patsubst $(INSTALL_HDR_PATH)/%/,%,$(dir $@))
quiet_cmd_install = INSTALL $(printdir) ($(words $(all-files))\
file$(if $(word 2, $(all-files)),s))
cmd_install = \
- $(CONFIG_SHELL) $< $(installdir) $(srcdir) $(input-files1-name); \
- $(CONFIG_SHELL) $< $(installdir) $(oldsrcdir) $(input-files2-name); \
- $(CONFIG_SHELL) $< $(installdir) $(gendir) $(input-files3-name); \
+ $(CONFIG_SHELL) $< $(installdir) $(srcdir) $(header-y); \
+ $(CONFIG_SHELL) $< $(installdir) $(gendir) $(genhdr-y); \
for F in $(wrapper-files); do \
echo "\#include <asm-generic/$$F>" > $(installdir)/$$F; \
done; \
--
2.8.1
[toc] | [prev] | [next] | [standalone]
| From | Nicolas Dichtel <nicolas.dichtel@6wind.com> |
|---|---|
| Date | 2017-01-06 10:50 +0100 |
| Subject | [PATCH v2 6/7] Makefile.headersinst: remove destination-y option |
| Message-ID | <sWzjP-8jC-5@gated-at.bofh.it> |
| In reply to | #1550542 |
This option was added in commit c7bb349e7c25 ("kbuild: introduce destination-y
for exported headers") but never used in-tree.
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
---
Documentation/kbuild/makefiles.txt | 23 ++++-------------------
scripts/Makefile.headersinst | 2 +-
2 files changed, 5 insertions(+), 20 deletions(-)
diff --git a/Documentation/kbuild/makefiles.txt b/Documentation/kbuild/makefiles.txt
index 9b9c4797fc55..37b525d329ae 100644
--- a/Documentation/kbuild/makefiles.txt
+++ b/Documentation/kbuild/makefiles.txt
@@ -46,9 +46,8 @@ This document describes the Linux kernel Makefiles.
=== 7 Kbuild syntax for exported headers
--- 7.1 header-y
--- 7.2 genhdr-y
- --- 7.3 destination-y
- --- 7.4 generic-y
- --- 7.5 generated-y
+ --- 7.3 generic-y
+ --- 7.4 generated-y
=== 8 Kbuild Variables
=== 9 Makefile language
@@ -1295,21 +1294,7 @@ See subsequent chapter for the syntax of the Kbuild file.
#include/linux/Kbuild
genhdr-y += version.h
- --- 7.3 destination-y
-
- When an architecture has a set of exported headers that needs to be
- exported to a different directory destination-y is used.
- destination-y specifies the destination directory for all exported
- headers in the file where it is present.
-
- Example:
- #arch/xtensa/platforms/s6105/include/platform/Kbuild
- destination-y := include/linux
-
- In the example above all exported headers in the Kbuild file
- will be located in the directory "include/linux" when exported.
-
- --- 7.4 generic-y
+ --- 7.3 generic-y
If an architecture uses a verbatim copy of a header from
include/asm-generic then this is listed in the file
@@ -1336,7 +1321,7 @@ See subsequent chapter for the syntax of the Kbuild file.
Example: termios.h
#include <asm-generic/termios.h>
- --- 7.5 generated-y
+ --- 7.4 generated-y
If an architecture generates other header files alongside generic-y
wrappers, and not included in genhdr-y, then generated-y specifies
diff --git a/scripts/Makefile.headersinst b/scripts/Makefile.headersinst
index 3e20d03432d2..876b42cfede4 100644
--- a/scripts/Makefile.headersinst
+++ b/scripts/Makefile.headersinst
@@ -14,7 +14,7 @@ kbuild-file := $(srctree)/$(obj)/Kbuild
include $(kbuild-file)
# called may set destination dir (when installing to asm/)
-_dst := $(if $(destination-y),$(destination-y),$(if $(dst),$(dst),$(obj)))
+_dst := $(if $(dst),$(dst),$(obj))
old-kbuild-file := $(srctree)/$(subst uapi/,,$(obj))/Kbuild
ifneq ($(wildcard $(old-kbuild-file)),)
--
2.8.1
[toc] | [prev] | [next] | [standalone]
| From | Nicolas Dichtel <nicolas.dichtel@6wind.com> |
|---|---|
| Date | 2017-01-06 10:50 +0100 |
| Subject | [PATCH v2 0/7] uapi: export all headers under uapi directories |
| Message-ID | <sWzjP-8jC-3@gated-at.bofh.it> |
| In reply to | #1550542 |
Here is the v2 of this series. The first 5 patches are just cleanup: some exported headers were still under a non-uapi directory. The patch 6 was spotted by code review: there is no in-tree user of this functionality. The last patch remove the use of header-y. Now all files under an uapi directory are exported. asm is a bit special, most of architectures export asm/<arch>/include/uapi/asm only, but there is two exceptions: - cris which exports arch/cris/include/uapi/arch-v[10|32]; - tile which exports arch/tile/include/uapi/arch. Because I don't know if the output of 'make headers_install_all' can be changed, I introduce subdir-y in Kbuild file. The headers_install_all target copies all asm/<arch>/include/uapi/asm to usr/include/asm-<arch> but arch/cris/include/uapi/arch-v[10|32] and arch/tile/include/uapi/arch are not prefixed (they are put asis in usr/include/). If it's acceptable to modify the output of 'make headers_install_all' to export asm headers in usr/include/asm-<arch>/asm, then I could remove this new subdir-y and exports everything under arch/<arch>/include/uapi/. Note also that exported files for asm are a mix of files listed by: - include/uapi/asm-generic/Kbuild.asm; - arch/x86/include/uapi/asm/Kbuild; - arch/x86/include/asm/Kbuild. This complicates a lot the processing (arch/x86/include/asm/Kbuild is also used by scripts/Makefile.asm-generic). This series has been tested with a 'make headers_install' on x86 and a 'make headers_install_all'. I've checked the result of both commands. This patch is built against linus tree. I don't know if it should be made against antoher tree. Comments are welcomed, Nicolas
[toc] | [prev] | [next] | [standalone]
| From | Nicolas Dichtel <nicolas.dichtel@6wind.com> |
|---|---|
| Date | 2017-01-06 10:50 +0100 |
| Subject | [PATCH v2 1/7] arm: put types.h in uapi |
| Message-ID | <sWzjP-8jC-7@gated-at.bofh.it> |
| In reply to | #1552645 |
This header file is exported, thus move it to uapi. Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com> --- arch/arm/include/asm/types.h | 36 +---------------------------------- arch/arm/include/uapi/asm/types.h | 40 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 35 deletions(-) create mode 100644 arch/arm/include/uapi/asm/types.h diff --git a/arch/arm/include/asm/types.h b/arch/arm/include/asm/types.h index a53cdb8f068c..c48fee3d7b3b 100644 --- a/arch/arm/include/asm/types.h +++ b/arch/arm/include/asm/types.h @@ -1,40 +1,6 @@ #ifndef _ASM_TYPES_H #define _ASM_TYPES_H -#include <asm-generic/int-ll64.h> - -/* - * The C99 types uintXX_t that are usually defined in 'stdint.h' are not as - * unambiguous on ARM as you would expect. For the types below, there is a - * difference on ARM between GCC built for bare metal ARM, GCC built for glibc - * and the kernel itself, which results in build errors if you try to build with - * -ffreestanding and include 'stdint.h' (such as when you include 'arm_neon.h' - * in order to use NEON intrinsics) - * - * As the typedefs for these types in 'stdint.h' are based on builtin defines - * supplied by GCC, we can tweak these to align with the kernel's idea of those - * types, so 'linux/types.h' and 'stdint.h' can be safely included from the same - * source file (provided that -ffreestanding is used). - * - * int32_t uint32_t uintptr_t - * bare metal GCC long unsigned long unsigned int - * glibc GCC int unsigned int unsigned int - * kernel int unsigned int unsigned long - */ - -#ifdef __INT32_TYPE__ -#undef __INT32_TYPE__ -#define __INT32_TYPE__ int -#endif - -#ifdef __UINT32_TYPE__ -#undef __UINT32_TYPE__ -#define __UINT32_TYPE__ unsigned int -#endif - -#ifdef __UINTPTR_TYPE__ -#undef __UINTPTR_TYPE__ -#define __UINTPTR_TYPE__ unsigned long -#endif +#include <uapi/asm/types.h> #endif /* _ASM_TYPES_H */ diff --git a/arch/arm/include/uapi/asm/types.h b/arch/arm/include/uapi/asm/types.h new file mode 100644 index 000000000000..9435a42f575e --- /dev/null +++ b/arch/arm/include/uapi/asm/types.h @@ -0,0 +1,40 @@ +#ifndef _UAPI_ASM_TYPES_H +#define _UAPI_ASM_TYPES_H + +#include <asm-generic/int-ll64.h> + +/* + * The C99 types uintXX_t that are usually defined in 'stdint.h' are not as + * unambiguous on ARM as you would expect. For the types below, there is a + * difference on ARM between GCC built for bare metal ARM, GCC built for glibc + * and the kernel itself, which results in build errors if you try to build with + * -ffreestanding and include 'stdint.h' (such as when you include 'arm_neon.h' + * in order to use NEON intrinsics) + * + * As the typedefs for these types in 'stdint.h' are based on builtin defines + * supplied by GCC, we can tweak these to align with the kernel's idea of those + * types, so 'linux/types.h' and 'stdint.h' can be safely included from the same + * source file (provided that -ffreestanding is used). + * + * int32_t uint32_t uintptr_t + * bare metal GCC long unsigned long unsigned int + * glibc GCC int unsigned int unsigned int + * kernel int unsigned int unsigned long + */ + +#ifdef __INT32_TYPE__ +#undef __INT32_TYPE__ +#define __INT32_TYPE__ int +#endif + +#ifdef __UINT32_TYPE__ +#undef __UINT32_TYPE__ +#define __UINT32_TYPE__ unsigned int +#endif + +#ifdef __UINTPTR_TYPE__ +#undef __UINTPTR_TYPE__ +#define __UINTPTR_TYPE__ unsigned long +#endif + +#endif /* _UAPI_ASM_TYPES_H */ -- 2.8.1
[toc] | [prev] | [next] | [standalone]
| From | Arnd Bergmann <arnd@arndb.de> |
|---|---|
| Date | 2017-01-09 12:40 +0100 |
| Subject | Re: [PATCH v2 1/7] arm: put types.h in uapi |
| Message-ID | <sXGsV-3Bn-7@gated-at.bofh.it> |
| In reply to | #1552646 |
On Friday, January 6, 2017 10:43:53 AM CET Nicolas Dichtel wrote: > > diff --git a/arch/arm/include/asm/types.h b/arch/arm/include/asm/types.h > index a53cdb8f068c..c48fee3d7b3b 100644 > --- a/arch/arm/include/asm/types.h > +++ b/arch/arm/include/asm/types.h > @@ -1,40 +1,6 @@ > #ifndef _ASM_TYPES_H > #define _ASM_TYPES_H > > -#include <asm-generic/int-ll64.h> ... > -#define __UINTPTR_TYPE__ unsigned long > -#endif > +#include <uapi/asm/types.h> > > #endif /* _ASM_TYPES_H */ > Moving the file is correct as far as I can tell, but the extra #include is not necessary here, as the kernel will automatically search both arch/arm/include/ and arch/arm/include/uapi/. The same applies to patches 2 and 4. Arnd
[toc] | [prev] | [next] | [standalone]
| From | Russell King - ARM Linux <linux@armlinux.org.uk> |
|---|---|
| Date | 2017-01-09 13:10 +0100 |
| Subject | Re: [PATCH v2 1/7] arm: put types.h in uapi |
| Message-ID | <sXGVX-40B-3@gated-at.bofh.it> |
| In reply to | #1554235 |
On Mon, Jan 09, 2017 at 12:33:02PM +0100, Arnd Bergmann wrote: > On Friday, January 6, 2017 10:43:53 AM CET Nicolas Dichtel wrote: > > > > diff --git a/arch/arm/include/asm/types.h b/arch/arm/include/asm/types.h > > index a53cdb8f068c..c48fee3d7b3b 100644 > > --- a/arch/arm/include/asm/types.h > > +++ b/arch/arm/include/asm/types.h > > @@ -1,40 +1,6 @@ > > #ifndef _ASM_TYPES_H > > #define _ASM_TYPES_H > > > > -#include <asm-generic/int-ll64.h> > ... > > -#define __UINTPTR_TYPE__ unsigned long > > -#endif > > +#include <uapi/asm/types.h> > > > > #endif /* _ASM_TYPES_H */ > > > > Moving the file is correct as far as I can tell, but the extra > #include is not necessary here, as the kernel will automatically > search both arch/arm/include/ and arch/arm/include/uapi/. Indeed, I'd like to see the include/asm file gone. -- RMK's Patch system: http://www.armlinux.org.uk/developer/patches/ FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up according to speedtest.net.
[toc] | [prev] | [next] | [standalone]
| From | Nicolas Dichtel <nicolas.dichtel@6wind.com> |
|---|---|
| Date | 2017-01-06 10:50 +0100 |
| Subject | [PATCH v2 3/7] nios2: put setup.h in uapi |
| Message-ID | <sWzjP-8jC-25@gated-at.bofh.it> |
| In reply to | #1552645 |
This header file is exported, thus move it to uapi. Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com> --- arch/nios2/include/asm/setup.h | 2 +- arch/nios2/include/uapi/asm/setup.h | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 arch/nios2/include/uapi/asm/setup.h diff --git a/arch/nios2/include/asm/setup.h b/arch/nios2/include/asm/setup.h index dcbf8cf1a344..d49e9e91bf55 100644 --- a/arch/nios2/include/asm/setup.h +++ b/arch/nios2/include/asm/setup.h @@ -19,7 +19,7 @@ #ifndef _ASM_NIOS2_SETUP_H #define _ASM_NIOS2_SETUP_H -#include <asm-generic/setup.h> +#include <uapi/asm/setup.h> #ifndef __ASSEMBLY__ #ifdef __KERNEL__ diff --git a/arch/nios2/include/uapi/asm/setup.h b/arch/nios2/include/uapi/asm/setup.h new file mode 100644 index 000000000000..8d8285997ba8 --- /dev/null +++ b/arch/nios2/include/uapi/asm/setup.h @@ -0,0 +1,6 @@ +#ifndef _UAPI_ASM_NIOS2_SETUP_H +#define _UAPI_ASM_NIOS2_SETUP_H + +#include <asm-generic/setup.h> + +#endif /* _UAPI_ASM_NIOS2_SETUP_H */ -- 2.8.1
[toc] | [prev] | [next] | [standalone]
| From | Arnd Bergmann <arnd@arndb.de> |
|---|---|
| Date | 2017-01-09 12:40 +0100 |
| Subject | Re: [PATCH v2 3/7] nios2: put setup.h in uapi |
| Message-ID | <sXGsV-3Bn-25@gated-at.bofh.it> |
| In reply to | #1552652 |
On Friday, January 6, 2017 10:43:55 AM CET Nicolas Dichtel wrote: > diff --git a/arch/nios2/include/uapi/asm/setup.h b/arch/nios2/include/uapi/asm/setup.h > new file mode 100644 > index 000000000000..8d8285997ba8 > --- /dev/null > +++ b/arch/nios2/include/uapi/asm/setup.h > @@ -0,0 +1,6 @@ > +#ifndef _UAPI_ASM_NIOS2_SETUP_H > +#define _UAPI_ASM_NIOS2_SETUP_H > + > +#include <asm-generic/setup.h> > + > +#endif /* _UAPI_ASM_NIOS2_SETUP_H */ > This one is only a redirect to an asm-generic header, so it can be removed completely and replaced with a line in the arch/nios2/include/uapi/asm/ file: generic-y += setup.h Arnd
[toc] | [prev] | [next] | [standalone]
| From | Nicolas Dichtel <nicolas.dichtel@6wind.com> |
|---|---|
| Date | 2017-01-06 10:50 +0100 |
| Subject | [PATCH v2 2/7] h8300: put bitsperlong.h in uapi |
| Message-ID | <sWzjP-8jC-27@gated-at.bofh.it> |
| In reply to | #1552645 |
This header file is exported, thus move it to uapi. Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com> --- arch/h8300/include/asm/bitsperlong.h | 10 +--------- arch/h8300/include/uapi/asm/bitsperlong.h | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 9 deletions(-) create mode 100644 arch/h8300/include/uapi/asm/bitsperlong.h diff --git a/arch/h8300/include/asm/bitsperlong.h b/arch/h8300/include/asm/bitsperlong.h index e140e46729ac..c0a8e2ee531e 100644 --- a/arch/h8300/include/asm/bitsperlong.h +++ b/arch/h8300/include/asm/bitsperlong.h @@ -1,14 +1,6 @@ #ifndef __ASM_H8300_BITS_PER_LONG #define __ASM_H8300_BITS_PER_LONG -#include <asm-generic/bitsperlong.h> - -#if !defined(__ASSEMBLY__) -/* h8300-unknown-linux required long */ -#define __kernel_size_t __kernel_size_t -typedef unsigned long __kernel_size_t; -typedef long __kernel_ssize_t; -typedef long __kernel_ptrdiff_t; -#endif +#include <uapi/asm/bitsperlong.h> #endif /* __ASM_H8300_BITS_PER_LONG */ diff --git a/arch/h8300/include/uapi/asm/bitsperlong.h b/arch/h8300/include/uapi/asm/bitsperlong.h new file mode 100644 index 000000000000..e56cf72369b6 --- /dev/null +++ b/arch/h8300/include/uapi/asm/bitsperlong.h @@ -0,0 +1,14 @@ +#ifndef _UAPI_ASM_H8300_BITS_PER_LONG +#define _UAPI_ASM_H8300_BITS_PER_LONG + +#include <asm-generic/bitsperlong.h> + +#if !defined(__ASSEMBLY__) +/* h8300-unknown-linux required long */ +#define __kernel_size_t __kernel_size_t +typedef unsigned long __kernel_size_t; +typedef long __kernel_ssize_t; +typedef long __kernel_ptrdiff_t; +#endif + +#endif /* _UAPI_ASM_H8300_BITS_PER_LONG */ -- 2.8.1
[toc] | [prev] | [next] | [standalone]
| From | Borislav Petkov <bp@alien8.de> |
|---|---|
| Date | 2017-01-06 13:20 +0100 |
| Subject | Re: [PATCH v2 4/7] x86: put msr-index.h in uapi |
| Message-ID | <sWBF0-1NR-25@gated-at.bofh.it> |
| In reply to | #1552645 |
On Fri, Jan 06, 2017 at 10:43:56AM +0100, Nicolas Dichtel wrote:
> This header file is exported, thus move it to uapi.
It should rather not be exported - please remove it from
arch/x86/include/uapi/asm/Kbuild instead.
Thanks.
--
Regards/Gruss,
Boris.
Good mailing practices for 400: avoid top-posting and trim the reply.
[toc] | [prev] | [next] | [standalone]
| From | Andy Shevchenko <andy.shevchenko@gmail.com> |
|---|---|
| Date | 2017-01-06 22:00 +0100 |
| Subject | Re: [PATCH v2 4/7] x86: put msr-index.h in uapi |
| Message-ID | <sWJMe-7eR-51@gated-at.bofh.it> |
| In reply to | #1552645 |
On Fri, Jan 6, 2017 at 11:43 AM, Nicolas Dichtel <nicolas.dichtel@6wind.com> wrote: > This header file is exported, thus move it to uapi. Just hint for the future: -M (move) -C (copy) -D (delete) [though this is NOT for applying] -- With Best Regards, Andy Shevchenko
[toc] | [prev] | [next] | [standalone]
| From | Arnd Bergmann <arnd@arndb.de> |
|---|---|
| Date | 2017-01-09 12:40 +0100 |
| Subject | Re: [PATCH v2 0/7] uapi: export all headers under uapi directories |
| Message-ID | <sXGsV-3Bn-3@gated-at.bofh.it> |
| In reply to | #1552645 |
On Friday, January 6, 2017 10:43:52 AM CET Nicolas Dichtel wrote: > Here is the v2 of this series. The first 5 patches are just cleanup: some > exported headers were still under a non-uapi directory. Since this is meant as a cleanup, I commented on this to point out a cleaner way to do the same. > The patch 6 was spotted by code review: there is no in-tree user of this > functionality. > The last patch remove the use of header-y. Now all files under an uapi > directory are exported. Very nice! > asm is a bit special, most of architectures export asm/<arch>/include/uapi/asm > only, but there is two exceptions: > - cris which exports arch/cris/include/uapi/arch-v[10|32]; This is interesting, though not your problem. Maybe someone who understands cris better can comment on this: How is the decision made about which of the arch/user.h headers gets used? I couldn't find that in the sources, but it appears to be based on kernel compile-time settings, which is wrong for user space header files that should be independent of the kernel config. > - tile which exports arch/tile/include/uapi/arch. > Because I don't know if the output of 'make headers_install_all' can be changed, > I introduce subdir-y in Kbuild file. The headers_install_all target copies all > asm/<arch>/include/uapi/asm to usr/include/asm-<arch> but > arch/cris/include/uapi/arch-v[10|32] and arch/tile/include/uapi/arch are not > prefixed (they are put asis in usr/include/). If it's acceptable to modify the > output of 'make headers_install_all' to export asm headers in > usr/include/asm-<arch>/asm, then I could remove this new subdir-y and exports > everything under arch/<arch>/include/uapi/. I don't know if anyone still uses "make headers_install_all", I suspect distros these days all use "make headers_install", so it probably doesn't matter much. In case of cris, it should be easy enough to move all the contents of the uapi/arch-*/*.h headers into the respective uapi/asm/*.h headers, they only seem to be referenced from there. For tile, I suspect that would not work as the arch/*.h headers are apparently defined as interfaces for both user space and kernel. > Note also that exported files for asm are a mix of files listed by: > - include/uapi/asm-generic/Kbuild.asm; > - arch/x86/include/uapi/asm/Kbuild; > - arch/x86/include/asm/Kbuild. > This complicates a lot the processing (arch/x86/include/asm/Kbuild is also > used by scripts/Makefile.asm-generic). > > This series has been tested with a 'make headers_install' on x86 and a > 'make headers_install_all'. I've checked the result of both commands. > > This patch is built against linus tree. I don't know if it should be > made against antoher tree. The series should probably get merged through the kbuild tree, but testing it on mainline is fine here. Arnd
[toc] | [prev] | [next] | [standalone]
| From | Jesper Nilsson <jesper.nilsson@axis.com> |
|---|---|
| Date | 2017-01-11 13:50 +0100 |
| Subject | Re: [PATCH v2 0/7] uapi: export all headers under uapi directories |
| Message-ID | <sYqvM-6ZO-17@gated-at.bofh.it> |
| In reply to | #1554233 |
On Mon, Jan 09, 2017 at 12:33:58PM +0100, Arnd Bergmann wrote:
> On Friday, January 6, 2017 10:43:52 AM CET Nicolas Dichtel wrote:
> > Here is the v2 of this series. The first 5 patches are just cleanup: some
> > exported headers were still under a non-uapi directory.
>
> Since this is meant as a cleanup, I commented on this to point out a cleaner
> way to do the same.
>
> > The patch 6 was spotted by code review: there is no in-tree user of this
> > functionality.
> > The last patch remove the use of header-y. Now all files under an uapi
> > directory are exported.
>
> Very nice!
>
> > asm is a bit special, most of architectures export asm/<arch>/include/uapi/asm
> > only, but there is two exceptions:
> > - cris which exports arch/cris/include/uapi/arch-v[10|32];
>
> This is interesting, though not your problem. Maybe someone who understands
> cris better can comment on this: How is the decision made about which of
> the arch/user.h headers gets used? I couldn't find that in the sources,
> but it appears to be based on kernel compile-time settings, which is
> wrong for user space header files that should be independent of the kernel
> config.
I believe it's since the CRISv10 and CRISv32 are very different beasts,
and that is selected via kernel config...
This part of the CRIS port has been transformed a couple of times from
the original layout without uapi, and there's still some legacy silliness,
where some files might have been exported but never used from userspace
except for some corner cases.
> > - tile which exports arch/tile/include/uapi/arch.
> > Because I don't know if the output of 'make headers_install_all' can be changed,
> > I introduce subdir-y in Kbuild file. The headers_install_all target copies all
> > asm/<arch>/include/uapi/asm to usr/include/asm-<arch> but
> > arch/cris/include/uapi/arch-v[10|32] and arch/tile/include/uapi/arch are not
> > prefixed (they are put asis in usr/include/). If it's acceptable to modify the
> > output of 'make headers_install_all' to export asm headers in
> > usr/include/asm-<arch>/asm, then I could remove this new subdir-y and exports
> > everything under arch/<arch>/include/uapi/.
>
> I don't know if anyone still uses "make headers_install_all", I suspect
> distros these days all use "make headers_install", so it probably
> doesn't matter much.
>
> In case of cris, it should be easy enough to move all the contents of the
> uapi/arch-*/*.h headers into the respective uapi/asm/*.h headers, they
> only seem to be referenced from there.
This would seem to be a reasonable change.
> For tile, I suspect that would not work as the arch/*.h headers are
> apparently defined as interfaces for both user space and kernel.
>
> > Note also that exported files for asm are a mix of files listed by:
> > - include/uapi/asm-generic/Kbuild.asm;
> > - arch/x86/include/uapi/asm/Kbuild;
> > - arch/x86/include/asm/Kbuild.
> > This complicates a lot the processing (arch/x86/include/asm/Kbuild is also
> > used by scripts/Makefile.asm-generic).
> >
> > This series has been tested with a 'make headers_install' on x86 and a
> > 'make headers_install_all'. I've checked the result of both commands.
> >
> > This patch is built against linus tree. I don't know if it should be
> > made against antoher tree.
>
> The series should probably get merged through the kbuild tree, but testing
> it on mainline is fine here.
>
> Arnd
/^JN - Jesper Nilsson
--
Jesper Nilsson -- jesper.nilsson@axis.com
[toc] | [prev] | [next] | [standalone]
| From | Nicolas Dichtel <nicolas.dichtel@6wind.com> |
|---|---|
| Date | 2017-01-13 11:50 +0100 |
| Subject | [PATCH v3 5/8] Makefile.headersinst: cleanup input files |
| Message-ID | <sZ7AJ-8dm-5@gated-at.bofh.it> |
| In reply to | #1554233 |
After the last four patches, all exported headers are under uapi/, thus
input-files2 are not needed anymore.
The side effect is that input-files1-name is exactly header-y.
Note also that input-files3-name is genhdr-y.
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
---
scripts/Makefile.headersinst | 34 +++++++++++-----------------------
1 file changed, 11 insertions(+), 23 deletions(-)
diff --git a/scripts/Makefile.headersinst b/scripts/Makefile.headersinst
index 1106d6ca3a38..3e20d03432d2 100644
--- a/scripts/Makefile.headersinst
+++ b/scripts/Makefile.headersinst
@@ -40,31 +40,20 @@ wrapper-files := $(filter $(header-y), $(generic-y))
srcdir := $(srctree)/$(obj)
gendir := $(objtree)/$(gen)
-oldsrcdir := $(srctree)/$(subst /uapi,,$(obj))
-
# all headers files for this dir
header-y := $(filter-out $(generic-y), $(header-y))
all-files := $(header-y) $(genhdr-y) $(wrapper-files)
output-files := $(addprefix $(installdir)/, $(all-files))
-input-files1 := $(foreach hdr, $(header-y), \
- $(if $(wildcard $(srcdir)/$(hdr)), \
- $(wildcard $(srcdir)/$(hdr))) \
- )
-input-files1-name := $(notdir $(input-files1))
-input-files2 := $(foreach hdr, $(header-y), \
- $(if $(wildcard $(srcdir)/$(hdr)),, \
- $(if $(wildcard $(oldsrcdir)/$(hdr)), \
- $(wildcard $(oldsrcdir)/$(hdr)), \
- $(error Missing UAPI file $(srcdir)/$(hdr))) \
- ))
-input-files2-name := $(notdir $(input-files2))
-input-files3 := $(foreach hdr, $(genhdr-y), \
- $(if $(wildcard $(gendir)/$(hdr)), \
- $(wildcard $(gendir)/$(hdr)), \
- $(error Missing generated UAPI file $(gendir)/$(hdr)) \
- ))
-input-files3-name := $(notdir $(input-files3))
+# Check that all expected files exist
+$(foreach hdr, $(header-y), \
+ $(if $(wildcard $(srcdir)/$(hdr)),, \
+ $(error Missing UAPI file $(srcdir)/$(hdr)) \
+ ))
+$(foreach hdr, $(genhdr-y), \
+ $(if $(wildcard $(gendir)/$(hdr)),, \
+ $(error Missing generated UAPI file $(gendir)/$(hdr)) \
+ ))
# Work out what needs to be removed
oldheaders := $(patsubst $(installdir)/%,%,$(wildcard $(installdir)/*.h))
@@ -78,9 +67,8 @@ printdir = $(patsubst $(INSTALL_HDR_PATH)/%/,%,$(dir $@))
quiet_cmd_install = INSTALL $(printdir) ($(words $(all-files))\
file$(if $(word 2, $(all-files)),s))
cmd_install = \
- $(CONFIG_SHELL) $< $(installdir) $(srcdir) $(input-files1-name); \
- $(CONFIG_SHELL) $< $(installdir) $(oldsrcdir) $(input-files2-name); \
- $(CONFIG_SHELL) $< $(installdir) $(gendir) $(input-files3-name); \
+ $(CONFIG_SHELL) $< $(installdir) $(srcdir) $(header-y); \
+ $(CONFIG_SHELL) $< $(installdir) $(gendir) $(genhdr-y); \
for F in $(wrapper-files); do \
echo "\#include <asm-generic/$$F>" > $(installdir)/$$F; \
done; \
--
2.8.1
[toc] | [prev] | [next] | [standalone]
| From | Nicolas Dichtel <nicolas.dichtel@6wind.com> |
|---|---|
| Date | 2017-01-13 11:50 +0100 |
| Subject | [PATCH v3 4/8] x86: stop exporting msr-index.h to userland |
| Message-ID | <sZ7AJ-8dm-13@gated-at.bofh.it> |
| In reply to | #1554233 |
Suggested-by: Borislav Petkov <bp@alien8.de> Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com> --- arch/x86/include/uapi/asm/Kbuild | 1 - 1 file changed, 1 deletion(-) diff --git a/arch/x86/include/uapi/asm/Kbuild b/arch/x86/include/uapi/asm/Kbuild index 3dec769cadf7..1c532b3f18ea 100644 --- a/arch/x86/include/uapi/asm/Kbuild +++ b/arch/x86/include/uapi/asm/Kbuild @@ -27,7 +27,6 @@ header-y += ldt.h header-y += mce.h header-y += mman.h header-y += msgbuf.h -header-y += msr-index.h header-y += msr.h header-y += mtrr.h header-y += param.h -- 2.8.1
[toc] | [prev] | [next] | [standalone]
| From | David Howells <dhowells@redhat.com> |
|---|---|
| Date | 2017-01-13 16:50 +0100 |
| Subject | (none) |
| Message-ID | <sZch4-2CA-13@gated-at.bofh.it> |
| In reply to | #1558200 |
> -header-y += msr-index.h I see it on my desktop as /usr/include/asm/msr-index.h and it's been there at least four years - and as such it's part of the UAPI. I don't think you can remove it unless you can guarantee there are no userspace users. David
[toc] | [prev] | [next] | [standalone]
| From | Nicolas Dichtel <nicolas.dichtel@6wind.com> |
|---|---|
| Date | 2017-01-13 17:10 +0100 |
| Subject | Re: [PATCH v3 4/8] x86: stop exporting msr-index.h to userland |
| Message-ID | <sZcAq-2YI-39@gated-at.bofh.it> |
| In reply to | #1558514 |
Le 13/01/2017 à 16:43, David Howells a écrit : >> -header-y += msr-index.h > > I see it on my desktop as /usr/include/asm/msr-index.h and it's been there at > least four years - and as such it's part of the UAPI. I don't think you can > remove it unless you can guarantee there are no userspace users. I keep it in the v2 of the series, but the maintainer, Borislav Petkov, asks me to un-export it. I will follow the maintainer decision. Regards, Nicolas
[toc] | [prev] | [next] | [standalone]
| From | Borislav Petkov <bp@alien8.de> |
|---|---|
| Date | 2017-01-13 17:40 +0100 |
| Subject | Re: [PATCH v3 4/8] x86: stop exporting msr-index.h to userland |
| Message-ID | <sZd3t-389-41@gated-at.bofh.it> |
| In reply to | #1558545 |
On Fri, Jan 13, 2017 at 05:08:34PM +0100, Nicolas Dichtel wrote:
> Le 13/01/2017 à 16:43, David Howells a écrit :
> >> -header-y += msr-index.h
> >
> > I see it on my desktop as /usr/include/asm/msr-index.h and it's been there at
> > least four years - and as such it's part of the UAPI. I don't think you can
> > remove it unless you can guarantee there are no userspace users.
> I keep it in the v2 of the series, but the maintainer, Borislav Petkov, asks me
> to un-export it.
>
> I will follow the maintainer decision.
I'm not the maintainer. I simply think that exporting that file was
wrong because it if we change something in it, we will break userspace.
And that should not happen - if userspace needs MSRs, it should do its
own defines.
--
Regards/Gruss,
Boris.
Good mailing practices for 400: avoid top-posting and trim the reply.
[toc] | [prev] | [next] | [standalone]
Page 1 of 2 [1] 2 Next page →
Back to top | Article view | linux.kernel
csiph-web