[PATCH v3 4/8] x86: stop exporting msr-index.h to userland
Suggested-by: Borislav Petkov Signed-off-by: Nicolas Dichtel --- 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 ___ linux-snps-arc mailing list linux-snps-arc@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-snps-arc
[PATCH v3 0/8] uapi: export all headers under uapi directories
Here is the v3 of this series. The first 5 patches are just cleanup: some exported headers were still under a non-uapi directory or (x86 case) were wrongly exported. The patch 6 was spotted by code review: there is no in-tree user of this functionality. Patches 7 and 8 remove the need to list explicitly headers. Now all files under an uapi directory are exported. 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. If I must rebase it against the kbuild tree, just tell me ;-) v2 -> v3: - patch #1: remove arch/arm/include/asm/types.h - patch #2: remove arch/h8300/include/asm/bitsperlong.h - patch #3: remove arch/nios2/include/uapi/asm/setup.h - patch #4: don't export msr-index.h - patch #5: fix a typo: s/unput-files3-name/input-files3-name - patch #6: no change - patch #7: fix include/uapi/asm-generic/Kbuild.asm by introducing mandatory-y - add patch #8 v1 -> v2: - add patch #1 to #6 - patch #7: remove use of header-y Comments are welcomed, Nicolas ___ linux-snps-arc mailing list linux-snps-arc@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-snps-arc
[PATCH v3 8/8] uapi: export all arch specifics directories
This patch removes the need of subdir-y. Now all files/directories under arch//include/uapi/ are exported. The only change for userland is the layout of the command 'make headers_install_all': directories asm- are replaced by arch-/. Those new directories contains all files/directories of the specified arch. Note that only cris and tile have more directories than only asm: - arch-v[10|32] for cris; - arch for tile. Signed-off-by: Nicolas Dichtel --- Documentation/kbuild/makefiles.txt | 15 +-- Makefile | 4 ++-- arch/cris/include/uapi/asm/Kbuild | 3 --- arch/tile/include/uapi/asm/Kbuild | 2 -- scripts/Makefile.headersinst | 3 +-- 5 files changed, 4 insertions(+), 23 deletions(-) diff --git a/Documentation/kbuild/makefiles.txt b/Documentation/kbuild/makefiles.txt index 51c072049e45..87a3d7d86776 100644 --- a/Documentation/kbuild/makefiles.txt +++ b/Documentation/kbuild/makefiles.txt @@ -48,7 +48,6 @@ This document describes the Linux kernel Makefiles. --- 7.2 genhdr-y --- 7.3 generic-y --- 7.4 generated-y - --- 7.5 subdir-y === 8 Kbuild Variables === 9 Makefile language @@ -1264,7 +1263,7 @@ The pre-processing does: - drop all sections that are kernel internal (guarded by ifdef __KERNEL__) All headers under include/uapi/, include/generated/uapi/, -arch//include/uapi/asm/ and arch//include/generated/uapi/asm/ +arch//include/uapi/ and arch//include/generated/uapi/ are exported. A Kbuild file may be defined under arch//include/uapi/asm/ and @@ -1331,18 +1330,6 @@ See subsequent chapter for the syntax of the Kbuild file. #arch/x86/include/asm/Kbuild generated-y += syscalls_32.h - --- 7.5 subdir-y - - subdir-y may be used to specify a subdirectory to be exported. - - Example: - #arch/cris/include/uapi/asm/Kbuild - subdir-y += ../arch-v10/arch/ - subdir-y += ../arch-v32/arch/ - - The convention is to list one subdir per line and - preferably in alphabetic order. - === 8 Kbuild Variables The top Makefile exports the following variables: diff --git a/Makefile b/Makefile index 5f1a84735ff6..a35098157b69 100644 --- a/Makefile +++ b/Makefile @@ -1126,7 +1126,7 @@ firmware_install: export INSTALL_HDR_PATH = $(objtree)/usr # If we do an all arch process set dst to asm-$(hdr-arch) -hdr-dst = $(if $(KBUILD_HEADERS), dst=include/asm-$(hdr-arch), dst=include/asm) +hdr-dst = $(if $(KBUILD_HEADERS), dst=include/arch-$(hdr-arch), dst=include) PHONY += archheaders archheaders: @@ -1147,7 +1147,7 @@ headers_install: __headers $(if $(wildcard $(srctree)/arch/$(hdr-arch)/include/uapi/asm/Kbuild),, \ $(error Headers not exportable for the $(SRCARCH) architecture)) $(Q)$(MAKE) $(hdr-inst)=include/uapi - $(Q)$(MAKE) $(hdr-inst)=arch/$(hdr-arch)/include/uapi/asm $(hdr-dst) + $(Q)$(MAKE) $(hdr-inst)=arch/$(hdr-arch)/include/uapi $(hdr-dst) PHONY += headers_check_all headers_check_all: headers_install_all diff --git a/arch/cris/include/uapi/asm/Kbuild b/arch/cris/include/uapi/asm/Kbuild index d0c5471856e0..b15bf6bc0e94 100644 --- a/arch/cris/include/uapi/asm/Kbuild +++ b/arch/cris/include/uapi/asm/Kbuild @@ -1,5 +1,2 @@ # UAPI Header export list include include/uapi/asm-generic/Kbuild.asm - -subdir-y += ../arch-v10/arch/ -subdir-y += ../arch-v32/arch/ diff --git a/arch/tile/include/uapi/asm/Kbuild b/arch/tile/include/uapi/asm/Kbuild index e0a50111e07f..0c74c3c5ebfa 100644 --- a/arch/tile/include/uapi/asm/Kbuild +++ b/arch/tile/include/uapi/asm/Kbuild @@ -2,5 +2,3 @@ include include/uapi/asm-generic/Kbuild.asm generic-y += ucontext.h - -subdir-y += ../arch diff --git a/scripts/Makefile.headersinst b/scripts/Makefile.headersinst index 16ac3e71050e..cafaca2d9a23 100644 --- a/scripts/Makefile.headersinst +++ b/scripts/Makefile.headersinst @@ -2,7 +2,7 @@ # Installing headers # # All headers under include/uapi, include/generated/uapi, -# arch//include/uapi/asm and arch//include/generated/uapi/asm are +# arch//include/uapi and arch//include/generated/uapi are # exported. # They are preprocessed to remove __KERNEL__ section of the file. # @@ -28,7 +28,6 @@ include scripts/Kbuild.include installdir:= $(INSTALL_HDR_PATH)/$(subst uapi/,,$(_dst)) subdirs := $(patsubst $(srctree)/$(obj)/%/.,%,$(wildcard $(srctree)/$(obj)/*/.)) -subdirs += $(subdir-y) header-files := $(notdir $(wildcard $(srctree)/$(obj)/*.h)) header-files += $(notdir $(wildcard $(srctree)/$(obj)/*.agh)) genhdr-files := $(notdir $(wildcard $(srctree)/$(gen)/*.h)) -- 2.8.1 ___ linux-snps-arc mailing list linux-snps-arc@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-snps-arc
[PATCH v3 7/8] uapi: export all headers under uapi directories
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 uapi directories should be exported, thus it's useless to have an exhaustive list. After this patch, the following files, which were not exported, are now exported (with make headers_install_all): asm-unicore32/shmparam.h asm-unicore32/ucontext.h asm-hexagon/shmparam.h asm-mips/ucontext.h asm-mips/hwcap.h asm-mips/reg.h drm/vgem_drm.h drm/armada_drm.h drm/omap_drm.h drm/etnaviv_drm.h asm-tile/shmparam.h asm-blackfin/shmparam.h asm-blackfin/ucontext.h asm-powerpc/perf_regs.h rdma/qedr-abi.h asm-parisc/kvm_para.h asm-openrisc/shmparam.h .install asm-nios2/kvm_para.h asm-nios2/ucontext.h asm-sh/kvm_para.h asm-sh/ucontext.h asm-xtensa/kvm_para.h asm-avr32/kvm_para.h asm-m32r/kvm_para.h asm-h8300/shmparam.h asm-h8300/ucontext.h asm-metag/kvm_para.h asm-metag/shmparam.h asm-metag/ucontext.h asm-m68k/kvm_para.h asm-m68k/shmparam.h linux/bcache.h linux/kvm.h linux/kvm_para.h linux/kfd_ioctl.h linux/cryptouser.h linux/kcm.h linux/kcov.h linux/seg6_iptunnel.h linux/stm.h linux/genwqe linux/genwqe/.install linux/genwqe/genwqe_card.h linux/genwqe/..install.cmd linux/seg6.h linux/cifs linux/cifs/.install linux/cifs/cifs_mount.h linux/cifs/..install.cmd linux/auto_dev-ioctl.h linux/userio.h linux/pr.h linux/wil6210_uapi.h linux/a.out.h linux/nilfs2_ondisk.h linux/hash_info.h linux/seg6_genl.h linux/seg6_hmac.h linux/batman_adv.h linux/nsfs.h linux/qrtr.h linux/btrfs_tree.h linux/coresight-stm.h linux/dma-buf.h linux/module.h linux/lightnvm.h linux/nilfs2_api.h asm-cris/kvm_para.h asm-arc/kvm_para.h asm-arc/ucontext.h ..install.cmd asm-c6x/shmparam.h asm-c6x/ucontext.h Thanks to Julien Floret for the tip to get all subdirs with a pure makefile command. For the record, note that exported files for asm directories are a mix of files listed by: - include/uapi/asm-generic/Kbuild.asm; - arch//include/uapi/asm/Kbuild; - arch//include/asm/Kbuild. Signed-off-by: Nicolas Dichtel Acked-by: Daniel Vetter Acked-by: Russell King Acked-by: Mark Salter --- Documentation/kbuild/makefiles.txt | 55 ++-- arch/alpha/include/uapi/asm/Kbuild | 41 --- arch/arc/include/uapi/asm/Kbuild| 3 - arch/arm/include/uapi/asm/Kbuild| 17 - arch/arm64/include/uapi/asm/Kbuild | 18 -- arch/avr32/include/uapi/asm/Kbuild | 20 -- arch/blackfin/include/uapi/asm/Kbuild | 17 - arch/c6x/include/uapi/asm/Kbuild| 8 - arch/cris/include/uapi/arch-v10/arch/Kbuild | 5 - arch/cris/include/uapi/arch-v32/arch/Kbuild | 3 - arch/cris/include/uapi/asm/Kbuild | 43 +-- arch/frv/include/uapi/asm/Kbuild| 33 -- arch/h8300/include/uapi/asm/Kbuild | 28 -- arch/hexagon/include/asm/Kbuild | 3 - arch/hexagon/include/uapi/asm/Kbuild| 13 - arch/ia64/include/uapi/asm/Kbuild | 45 --- arch/m32r/include/uapi/asm/Kbuild | 31 -- arch/m68k/include/uapi/asm/Kbuild | 24 -- arch/metag/include/uapi/asm/Kbuild | 8 - arch/microblaze/include/uapi/asm/Kbuild | 32 -- arch/mips/include/uapi/asm/Kbuild | 37 --- arch/mn10300/include/uapi/asm/Kbuild| 32 -- arch/nios2/include/uapi/asm/Kbuild | 3 +- arch/openrisc/include/asm/Kbuild| 3 - arch/openrisc/include/uapi/asm/Kbuild | 8 - arch/parisc/include/uapi/asm/Kbuild | 28 -- arch/powerpc/include/uapi/asm/Kbuild| 45 --- arch/s390/include/uapi/asm/Kbuild | 52 --- arch/score/include/asm/Kbuild | 4 - arch/score/include/uapi/asm/Kbuild | 32 -- arch/sh/include/uapi/asm/Kbuild | 23 -- arch/sparc/include/uapi/asm/Kbuild | 48 --- arch/tile/include/asm/Kbuild| 3 - arch/tile/include/uapi/arch/Kbuild | 17 - arch/tile/include/uapi/asm/Kbuild | 19 +- arch/unicore32/include/uapi/asm/Kbuild | 6 - arch/x86/include/uapi/asm/Kbuild| 58 arch/xtensa/include/uapi/asm/Kbuild | 23 -- include/Kbuild | 2 - include/asm-generic/Kbuild.asm | 1 - include/scsi/fc/Kbuild | 0 include/uapi/Kbuild | 15 - include/uapi/asm-generic/Kbuild | 36 --- include/uapi/asm-generic/Kbuild.asm | 62 ++-- include/uapi/drm/Kbuild | 22 -- include/uapi/linux/Kbuild | 483 include/uapi/linux/android/Kbuild | 2 - include/uapi/linux/byteorder/Kbuild | 3 - include/uapi/linux/caif/Kbuild | 3 - include/uapi/linux/can/Kbuild | 6 - include/uapi/linux/dvb/Kbuild | 9 - include/uapi/linux/hdlc/Kbuild |
[PATCH v3 6/8] Makefile.headersinst: remove destination-y option
This option was added in commit c7bb349e7c25 ("kbuild: introduce destination-y for exported headers") but never used in-tree. Signed-off-by: Nicolas Dichtel --- 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 - --- 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 ___ linux-snps-arc mailing list linux-snps-arc@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-snps-arc
[PATCH v3 5/8] Makefile.headersinst: cleanup input files
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 --- 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 " > $(installdir)/$$F;\ done; \ -- 2.8.1 ___ linux-snps-arc mailing list linux-snps-arc@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-snps-arc
[PATCH v3 1/8] arm: put types.h in uapi
This header file is exported, thus move it to uapi. Signed-off-by: Nicolas Dichtel --- arch/arm/include/asm/types.h | 40 --- arch/arm/include/uapi/asm/types.h | 40 +++ 2 files changed, 40 insertions(+), 40 deletions(-) delete mode 100644 arch/arm/include/asm/types.h 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 deleted file mode 100644 index a53cdb8f068c.. --- a/arch/arm/include/asm/types.h +++ /dev/null @@ -1,40 +0,0 @@ -#ifndef _ASM_TYPES_H -#define _ASM_TYPES_H - -#include - -/* - * 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 longunsigned 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 /* _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 ..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 + +/* + * 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 longunsigned 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 ___ linux-snps-arc mailing list linux-snps-arc@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-snps-arc
[PATCH v3 3/8] nios2: put setup.h in uapi
This header file is exported, but from a userland pov, it's just a wrapper to asm-generic/setup.h. Signed-off-by: Nicolas Dichtel --- arch/nios2/include/uapi/asm/Kbuild | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/nios2/include/uapi/asm/Kbuild b/arch/nios2/include/uapi/asm/Kbuild index e0bb972a50d7..69c965304146 100644 --- a/arch/nios2/include/uapi/asm/Kbuild +++ b/arch/nios2/include/uapi/asm/Kbuild @@ -2,4 +2,5 @@ include include/uapi/asm-generic/Kbuild.asm header-y += elf.h +generic-y += setup.h generic-y += ucontext.h -- 2.8.1 ___ linux-snps-arc mailing list linux-snps-arc@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-snps-arc
[PATCH v3 2/8] h8300: put bitsperlong.h in uapi
This header file is exported, thus move it to uapi. Signed-off-by: Nicolas Dichtel --- arch/h8300/include/asm/bitsperlong.h | 14 -- arch/h8300/include/uapi/asm/bitsperlong.h | 14 ++ 2 files changed, 14 insertions(+), 14 deletions(-) delete mode 100644 arch/h8300/include/asm/bitsperlong.h 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 deleted file mode 100644 index e140e46729ac.. --- a/arch/h8300/include/asm/bitsperlong.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef __ASM_H8300_BITS_PER_LONG -#define __ASM_H8300_BITS_PER_LONG - -#include - -#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 /* __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 ..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 + +#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 ___ linux-snps-arc mailing list linux-snps-arc@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-snps-arc
Re: [PATCH v3 3/8] nios2: put setup.h in uapi
On 2017-01-13 at 11:46:41 +0100, Nicolas Dichtel wrote: > This header file is exported, but from a userland pov, it's just a wrapper > to asm-generic/setup.h. > > Signed-off-by: Nicolas Dichtel Reviewed-by: Tobias Klauser ___ linux-snps-arc mailing list linux-snps-arc@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-snps-arc
Re: [uclibc-ng-devel] ARC uClibc-ng testsuite runs empty ?
Hi Waldemar, I have looked into the OpenADK uclibc-tests segmentation fault at hand. Although, I haven't fully tested the patch I think it is a fix for the issue. Considering how long I took to look into this problem, I decided to provide you a patch immediately for you to try it. BTW, in my case, it fails a little further, but because of some undefined references. Maybe it is not really a problem on the toolchain. Best regards, Cupertino On 01/11/2017 11:40 PM, Waldemar Brodkorb wrote: > Hi, > Vineet Gupta wrote, > >> On 01/11/2017 12:48 PM, Waldemar Brodkorb wrote: >>> I reported the issue to Alexey last year. >>> We added your binutils maintainer to the thread. >>> Yesterday he had again time to reproduce the problem, but there was >>> some missing information I gave him yesterday. >>> >>> So may be you can help with this? >> It is beyond my area of expertise and Cuper is looking into it, it is in good >> hands already ;-) >> >> OTOH the reason I was dabbling into this was to track down tst-getpid2 >> failure on >> ARC as reported in last known reports. >> >> It seems glibc dropped this test and added a new one instead. See commit >> 0cb313f7cb0e41 ("Fix clone (CLONE_VM) pid/tid reset (BZ#19957)") >> >> I tried copying over tst-clone2 into uClibc (with a hdr include adjustment), >> but >> it seems to runtime fail for me very early (atleast in nSIM). >> >> | [ARCLinux]# ./tst-clone2 >> | child pid (62) != received pid/tid (0/1606237724) >> | parent pid (61) != received pid/tid (0/1606237724) >> | [ARCLinux]# random: crng init done >> | echo $? >> | 2 >> >> Can you please double check this for other targets ! > I have yesterday seen this commit > c579f48edba88380635ab98cb612030e3ed8691e in glibc and would > like to follow here and remove any PID/TID caching. > > Afterwards I can take a look into 0cb313f7cb0e41. > >>> It is really blocking any complete regression testing :( >> I know sucks, lets hope Cuper nails it down quickly. > That would be really cool. > > best regards > Waldemar > diff --git a/bfd/elf32-arc.c b/bfd/elf32-arc.c index fba58cb..d99da93 100644 --- a/bfd/elf32-arc.c +++ b/bfd/elf32-arc.c @@ -70,13 +70,7 @@ name_for_global_symbol (struct elf_link_hash_entry *h) struct dynamic_sections { bfd_boolean initialized; - asection * sgot; - asection * srelgot; - asection * sgotplt; - asection * srelgotplt; asection * sdyn; - asection * splt; - asection * srelplt; }; enum dyn_section_types @@ -1578,13 +1572,7 @@ arc_create_dynamic_sections (bfd * abfd, struct bfd_link_info *info) struct dynamic_sections ds = { .initialized = FALSE, - .sgot = NULL, - .srelgot = NULL, - .sgotplt = NULL, - .srelgotplt = NULL, .sdyn = NULL, - .splt = NULL, - .srelplt = NULL }; htab = elf_hash_table (info); @@ -1592,7 +1580,7 @@ arc_create_dynamic_sections (bfd * abfd, struct bfd_link_info *info) /* Create dynamic sections for relocatable executables so that we can copy relocations. */ - if (! htab->dynamic_sections_created && bfd_link_pic (info)) + if (! htab->dynamic_sections_created) { if (! _bfd_elf_link_create_dynamic_sections (abfd, info)) BFD_ASSERT (0); @@ -1600,18 +1588,6 @@ arc_create_dynamic_sections (bfd * abfd, struct bfd_link_info *info) dynobj = (elf_hash_table (info))->dynobj; - if (dynobj) -{ - ds.sgot = htab->sgot; - ds.srelgot = htab->srelgot; - - ds.sgotplt = bfd_get_section_by_name (dynobj, ".got.plt"); - ds.srelgotplt = ds.srelplt; - - ds.splt = bfd_get_section_by_name (dynobj, ".plt"); - ds.srelplt = bfd_get_section_by_name (dynobj, ".rela.plt"); -} - if (htab->dynamic_sections_created) { ds.sdyn = bfd_get_section_by_name (dynobj, ".dynamic"); @@ -1634,10 +1610,20 @@ elf_arc_check_relocs (bfd * abfd, const Elf_Internal_Rela * rel_end; bfd *dynobj; asection * sreloc = NULL; + struct elf_link_hash_table * htab = elf_hash_table (info); if (bfd_link_relocatable (info)) return TRUE; + if (htab->dynobj == NULL) +htab->dynobj = abfd; + + if (! htab->dynamic_sections_created) +{ + if (! _bfd_elf_link_create_dynamic_sections (abfd, info)) + return FALSE; +} + dynobj = (elf_hash_table (info))->dynobj; symtab_hdr = &((elf_tdata (abfd))->symtab_hdr); sym_hashes = elf_sym_hashes (abfd); @@ -1659,15 +1645,6 @@ elf_arc_check_relocs (bfd * abfd, } howto = arc_elf_howto (r_type); - if (dynobj == NULL - && (is_reloc_for_GOT (howto) == TRUE - || is_reloc_for_TLS (howto) == TRUE)) - { - dynobj = elf_hash_table (info)->dynobj = abfd; - if (! _bfd_elf_create_got_section (abfd, info)) - return FALSE; - } - /* Load symbol information. */ r_symndx = ELF32_R_SYM (rel->r_info); if (r_symndx < symtab_hdr->sh_info) /* Is a local symbol. */ ___ linux-snps-
Re: [PATCH v3 1/8] arm: put types.h in uapi
Please, do not remove the email subject when you reply. I restore it to ease the thread follow-up. Le 13/01/2017 à 16:36, David Howells a écrit : > Nicolas Dichtel wrote: > >> This header file is exported, thus move it to uapi. > > Exported how? It is listed in include/uapi/asm-generic/Kbuild.asm, which is included by arch/arm/include/uapi/asm/Kbuild. You can also have a look at patch #5 to see why it was exported even if it was not in an uapi directory. Regards, Nicolas ___ linux-snps-arc mailing list linux-snps-arc@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-snps-arc
Re: [PATCH v3 4/8] x86: stop exporting msr-index.h to userland
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 ___ linux-snps-arc mailing list linux-snps-arc@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-snps-arc
Re: [PATCH v3 1/8] arm: put types.h in uapi
On Fri, Jan 13, 2017 at 05:01:01PM +0100, Nicolas Dichtel wrote: > Please, do not remove the email subject when you reply. I restore it to > ease the thread follow-up. I mentioned it to David, and he says it's because the long list of recipients is breaking his mailer. I've already posed the question about whether that's exploitable! > Le 13/01/2017 à 16:36, David Howells a écrit : > > Nicolas Dichtel wrote: > > > >> This header file is exported, thus move it to uapi. > > > > Exported how? > > It is listed in include/uapi/asm-generic/Kbuild.asm, which is included by > arch/arm/include/uapi/asm/Kbuild. We really should not be installing non-uapi header files to userland under _any_ circumstance - this to me sounds like a bug in kbuild. The assumption is that headers outside of uapi directories are not part of the user visible API, and so can be freely modified - which in the presence of this bug is untrue. However, as it's happening, and this header has been there since 2013 (commit 09096f6a0ee2 - "ARM: 7822/1: add workaround for ambiguous C99 stdint.h types") it's now well and truely part of the user API whether we intended it to be or not, so your patch looks to me like the correct thing to do. I think it needs further evaluation to make sure kbuild isn't going to do something else silly, like subsitute include/asm-generic/types.h for the now missing arch/arm/include/asm/types.h I wonder how many more headers are unintentionally exported. ... what a mess. :( -- 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. ___ linux-snps-arc mailing list linux-snps-arc@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-snps-arc
Re: [PATCH v3 4/8] x86: stop exporting msr-index.h to userland
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. ___ linux-snps-arc mailing list linux-snps-arc@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-snps-arc
Re: [PATCH v3 1/8] arm: put types.h in uapi
On Fri, Jan 13, 2017 at 11:46:39AM +0100, Nicolas Dichtel wrote: > This header file is exported, thus move it to uapi. I'm taking this patch, but with the following commit log: Due to the way kbuild works, this header was unintentionally exported back in 2013 when it was created, despite it not being in a uapi/ directory. This is very non-intuitive behaviour by Kbuild. However, we've had this include exported to userland for almost four years, and searching google for "ARM types.h __UINTPTR_TYPE__" gives no hint that anyone has complained about it. So, let's make it officially exported in this state. If anyone has any objections, they better shout sooner rather than later. > > Signed-off-by: Nicolas Dichtel > --- > arch/arm/include/asm/types.h | 40 > --- > arch/arm/include/uapi/asm/types.h | 40 > +++ > 2 files changed, 40 insertions(+), 40 deletions(-) > delete mode 100644 arch/arm/include/asm/types.h > 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 > deleted file mode 100644 > index a53cdb8f068c.. > --- a/arch/arm/include/asm/types.h > +++ /dev/null > @@ -1,40 +0,0 @@ > -#ifndef _ASM_TYPES_H > -#define _ASM_TYPES_H > - > -#include > - > -/* > - * 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 longunsigned 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 /* _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 ..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 > + > +/* > + * 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 longunsigned 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 > -- 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. ___ linux-snps-arc mailing list linux-snps-arc@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-snps-arc