mirror of
https://github.com/adulau/aha.git
synced 2024-12-27 11:16:11 +00:00
Merge branch 'for-33' of git://repo.or.cz/linux-kbuild
* 'for-33' of git://repo.or.cz/linux-kbuild: (29 commits) net: fix for utsrelease.h moving to generated gen_init_cpio: fixed fwrite warning kbuild: fix make clean after mismerge kbuild: generate modules.builtin genksyms: properly consider EXPORT_UNUSED_SYMBOL{,_GPL}() score: add asm/asm-offsets.h wrapper unifdef: update to upstream revision 1.190 kbuild: specify absolute paths for cscope kbuild: create include/generated in silentoldconfig scripts/package: deb-pkg: use fakeroot if available scripts/package: add KBUILD_PKG_ROOTCMD variable scripts/package: tar-pkg: use tar --owner=root Kbuild: clean up marker net: add net_tstamp.h to headers_install kbuild: move utsrelease.h to include/generated kbuild: move autoconf.h to include/generated drop explicit include of autoconf.h kbuild: move compile.h to include/generated kbuild: drop include/asm kbuild: do not check for include/asm-$ARCH ... Fixed non-conflicting clean merge of modpost.c as per comments from Stephen Rothwell (modpost.c had grown an include of linux/autoconf.h that needed to be changed to generated/autoconf.h)
This commit is contained in:
commit
5a865c0606
90 changed files with 577 additions and 422 deletions
7
.gitignore
vendored
7
.gitignore
vendored
|
@ -22,6 +22,7 @@
|
||||||
*.lst
|
*.lst
|
||||||
*.symtypes
|
*.symtypes
|
||||||
*.order
|
*.order
|
||||||
|
modules.builtin
|
||||||
*.elf
|
*.elf
|
||||||
*.bin
|
*.bin
|
||||||
*.gz
|
*.gz
|
||||||
|
@ -45,14 +46,8 @@ Module.symvers
|
||||||
#
|
#
|
||||||
# Generated include files
|
# Generated include files
|
||||||
#
|
#
|
||||||
include/asm
|
|
||||||
include/asm-*/asm-offsets.h
|
|
||||||
include/config
|
include/config
|
||||||
include/linux/autoconf.h
|
|
||||||
include/linux/compile.h
|
|
||||||
include/linux/version.h
|
include/linux/version.h
|
||||||
include/linux/utsrelease.h
|
|
||||||
include/linux/bounds.h
|
|
||||||
include/generated
|
include/generated
|
||||||
|
|
||||||
# stgit generated dirs
|
# stgit generated dirs
|
||||||
|
|
|
@ -103,6 +103,7 @@ gconf
|
||||||
gen-devlist
|
gen-devlist
|
||||||
gen_crc32table
|
gen_crc32table
|
||||||
gen_init_cpio
|
gen_init_cpio
|
||||||
|
generated
|
||||||
genheaders
|
genheaders
|
||||||
genksyms
|
genksyms
|
||||||
*_gray256.c
|
*_gray256.c
|
||||||
|
|
|
@ -1,3 +1,17 @@
|
||||||
|
Output files
|
||||||
|
|
||||||
|
modules.order
|
||||||
|
--------------------------------------------------
|
||||||
|
This file records the order in which modules appear in Makefiles. This
|
||||||
|
is used by modprobe to deterministically resolve aliases that match
|
||||||
|
multiple modules.
|
||||||
|
|
||||||
|
modules.builtin
|
||||||
|
--------------------------------------------------
|
||||||
|
This file lists all modules that are built into the kernel. This is used
|
||||||
|
by modprobe to not fail when trying to load something builtin.
|
||||||
|
|
||||||
|
|
||||||
Environment variables
|
Environment variables
|
||||||
|
|
||||||
KCPPFLAGS
|
KCPPFLAGS
|
||||||
|
|
|
@ -103,10 +103,16 @@ KCONFIG_AUTOCONFIG
|
||||||
This environment variable can be set to specify the path & name of the
|
This environment variable can be set to specify the path & name of the
|
||||||
"auto.conf" file. Its default value is "include/config/auto.conf".
|
"auto.conf" file. Its default value is "include/config/auto.conf".
|
||||||
|
|
||||||
|
KCONFIG_TRISTATE
|
||||||
|
--------------------------------------------------
|
||||||
|
This environment variable can be set to specify the path & name of the
|
||||||
|
"tristate.conf" file. Its default value is "include/config/tristate.conf".
|
||||||
|
|
||||||
KCONFIG_AUTOHEADER
|
KCONFIG_AUTOHEADER
|
||||||
--------------------------------------------------
|
--------------------------------------------------
|
||||||
This environment variable can be set to specify the path & name of the
|
This environment variable can be set to specify the path & name of the
|
||||||
"autoconf.h" (header) file. Its default value is "include/linux/autoconf.h".
|
"autoconf.h" (header) file.
|
||||||
|
Its default value is "include/generated/autoconf.h".
|
||||||
|
|
||||||
|
|
||||||
======================================================================
|
======================================================================
|
||||||
|
|
4
Kbuild
4
Kbuild
|
@ -8,7 +8,7 @@
|
||||||
#####
|
#####
|
||||||
# 1) Generate bounds.h
|
# 1) Generate bounds.h
|
||||||
|
|
||||||
bounds-file := include/linux/bounds.h
|
bounds-file := include/generated/bounds.h
|
||||||
|
|
||||||
always := $(bounds-file)
|
always := $(bounds-file)
|
||||||
targets := $(bounds-file) kernel/bounds.s
|
targets := $(bounds-file) kernel/bounds.s
|
||||||
|
@ -43,7 +43,7 @@ $(obj)/$(bounds-file): kernel/bounds.s Kbuild
|
||||||
# 2) Generate asm-offsets.h
|
# 2) Generate asm-offsets.h
|
||||||
#
|
#
|
||||||
|
|
||||||
offsets-file := include/asm/asm-offsets.h
|
offsets-file := include/generated/asm-offsets.h
|
||||||
|
|
||||||
always += $(offsets-file)
|
always += $(offsets-file)
|
||||||
targets += $(offsets-file)
|
targets += $(offsets-file)
|
||||||
|
|
|
@ -5434,6 +5434,12 @@ F: drivers/uwb/*
|
||||||
F: include/linux/uwb.h
|
F: include/linux/uwb.h
|
||||||
F: include/linux/uwb/
|
F: include/linux/uwb/
|
||||||
|
|
||||||
|
UNIFDEF
|
||||||
|
M: Tony Finch <dot@dotat.at>
|
||||||
|
W: http://dotat.at/prog/unifdef
|
||||||
|
S: Maintained
|
||||||
|
F: scripts/unifdef.c
|
||||||
|
|
||||||
UNIFORM CDROM DRIVER
|
UNIFORM CDROM DRIVER
|
||||||
M: Jens Axboe <axboe@kernel.dk>
|
M: Jens Axboe <axboe@kernel.dk>
|
||||||
W: http://www.kernel.dk
|
W: http://www.kernel.dk
|
||||||
|
|
96
Makefile
96
Makefile
|
@ -334,10 +334,9 @@ CFLAGS_GCOV = -fprofile-arcs -ftest-coverage
|
||||||
|
|
||||||
# Use LINUXINCLUDE when you must reference the include/ directory.
|
# Use LINUXINCLUDE when you must reference the include/ directory.
|
||||||
# Needed to be compatible with the O= option
|
# Needed to be compatible with the O= option
|
||||||
LINUXINCLUDE := -Iinclude \
|
LINUXINCLUDE := -I$(srctree)/arch/$(hdr-arch)/include -Iinclude \
|
||||||
$(if $(KBUILD_SRC),-Iinclude2 -I$(srctree)/include) \
|
$(if $(KBUILD_SRC), -I$(srctree)/include) \
|
||||||
-I$(srctree)/arch/$(hdr-arch)/include \
|
-include include/generated/autoconf.h
|
||||||
-include include/linux/autoconf.h
|
|
||||||
|
|
||||||
KBUILD_CPPFLAGS := -D__KERNEL__
|
KBUILD_CPPFLAGS := -D__KERNEL__
|
||||||
|
|
||||||
|
@ -465,7 +464,7 @@ ifeq ($(KBUILD_EXTMOD),)
|
||||||
# Carefully list dependencies so we do not try to build scripts twice
|
# Carefully list dependencies so we do not try to build scripts twice
|
||||||
# in parallel
|
# in parallel
|
||||||
PHONY += scripts
|
PHONY += scripts
|
||||||
scripts: scripts_basic include/config/auto.conf
|
scripts: scripts_basic include/config/auto.conf include/config/tristate.conf
|
||||||
$(Q)$(MAKE) $(build)=$(@)
|
$(Q)$(MAKE) $(build)=$(@)
|
||||||
|
|
||||||
# Objects we will link into vmlinux / subdirs we need to visit
|
# Objects we will link into vmlinux / subdirs we need to visit
|
||||||
|
@ -492,18 +491,18 @@ $(KCONFIG_CONFIG) include/config/auto.conf.cmd: ;
|
||||||
# with it and forgot to run make oldconfig.
|
# with it and forgot to run make oldconfig.
|
||||||
# if auto.conf.cmd is missing then we are probably in a cleaned tree so
|
# if auto.conf.cmd is missing then we are probably in a cleaned tree so
|
||||||
# we execute the config step to be sure to catch updated Kconfig files
|
# we execute the config step to be sure to catch updated Kconfig files
|
||||||
include/config/auto.conf: $(KCONFIG_CONFIG) include/config/auto.conf.cmd
|
include/config/%.conf: $(KCONFIG_CONFIG) include/config/auto.conf.cmd
|
||||||
$(Q)$(MAKE) -f $(srctree)/Makefile silentoldconfig
|
$(Q)$(MAKE) -f $(srctree)/Makefile silentoldconfig
|
||||||
else
|
else
|
||||||
# external modules needs include/linux/autoconf.h and include/config/auto.conf
|
# external modules needs include/generated/autoconf.h and include/config/auto.conf
|
||||||
# but do not care if they are up-to-date. Use auto.conf to trigger the test
|
# but do not care if they are up-to-date. Use auto.conf to trigger the test
|
||||||
PHONY += include/config/auto.conf
|
PHONY += include/config/auto.conf
|
||||||
|
|
||||||
include/config/auto.conf:
|
include/config/auto.conf:
|
||||||
$(Q)test -e include/linux/autoconf.h -a -e $@ || ( \
|
$(Q)test -e include/generated/autoconf.h -a -e $@ || ( \
|
||||||
echo; \
|
echo; \
|
||||||
echo " ERROR: Kernel configuration is invalid."; \
|
echo " ERROR: Kernel configuration is invalid."; \
|
||||||
echo " include/linux/autoconf.h or $@ are missing."; \
|
echo " include/generated/autoconf.h or $@ are missing.";\
|
||||||
echo " Run 'make oldconfig && make prepare' on kernel src to fix it."; \
|
echo " Run 'make oldconfig && make prepare' on kernel src to fix it."; \
|
||||||
echo; \
|
echo; \
|
||||||
/bin/false)
|
/bin/false)
|
||||||
|
@ -877,6 +876,9 @@ $(sort $(vmlinux-init) $(vmlinux-main)) $(vmlinux-lds): $(vmlinux-dirs) ;
|
||||||
PHONY += $(vmlinux-dirs)
|
PHONY += $(vmlinux-dirs)
|
||||||
$(vmlinux-dirs): prepare scripts
|
$(vmlinux-dirs): prepare scripts
|
||||||
$(Q)$(MAKE) $(build)=$@
|
$(Q)$(MAKE) $(build)=$@
|
||||||
|
ifdef CONFIG_MODULES
|
||||||
|
$(Q)$(MAKE) $(modbuiltin)=$@
|
||||||
|
endif
|
||||||
|
|
||||||
# Build the kernel release string
|
# Build the kernel release string
|
||||||
#
|
#
|
||||||
|
@ -955,7 +957,6 @@ PHONY += prepare archprepare prepare0 prepare1 prepare2 prepare3
|
||||||
# prepare3 is used to check if we are building in a separate output directory,
|
# prepare3 is used to check if we are building in a separate output directory,
|
||||||
# and if so do:
|
# and if so do:
|
||||||
# 1) Check that make has not been executed in the kernel src $(srctree)
|
# 1) Check that make has not been executed in the kernel src $(srctree)
|
||||||
# 2) Create the include2 directory, used for the second asm symlink
|
|
||||||
prepare3: include/config/kernel.release
|
prepare3: include/config/kernel.release
|
||||||
ifneq ($(KBUILD_SRC),)
|
ifneq ($(KBUILD_SRC),)
|
||||||
@$(kecho) ' Using $(srctree) as source for kernel'
|
@$(kecho) ' Using $(srctree) as source for kernel'
|
||||||
|
@ -964,17 +965,13 @@ ifneq ($(KBUILD_SRC),)
|
||||||
echo " in the '$(srctree)' directory.";\
|
echo " in the '$(srctree)' directory.";\
|
||||||
/bin/false; \
|
/bin/false; \
|
||||||
fi;
|
fi;
|
||||||
$(Q)if [ ! -d include2 ]; then \
|
|
||||||
mkdir -p include2; \
|
|
||||||
ln -fsn $(srctree)/include/asm-$(SRCARCH) include2/asm; \
|
|
||||||
fi
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# prepare2 creates a makefile if using a separate output directory
|
# prepare2 creates a makefile if using a separate output directory
|
||||||
prepare2: prepare3 outputmakefile
|
prepare2: prepare3 outputmakefile
|
||||||
|
|
||||||
prepare1: prepare2 include/linux/version.h include/linux/utsrelease.h \
|
prepare1: prepare2 include/linux/version.h include/generated/utsrelease.h \
|
||||||
include/asm include/config/auto.conf
|
include/config/auto.conf
|
||||||
$(cmd_crmodverdir)
|
$(cmd_crmodverdir)
|
||||||
|
|
||||||
archprepare: prepare1 scripts_basic
|
archprepare: prepare1 scripts_basic
|
||||||
|
@ -986,42 +983,6 @@ prepare0: archprepare FORCE
|
||||||
# All the preparing..
|
# All the preparing..
|
||||||
prepare: prepare0
|
prepare: prepare0
|
||||||
|
|
||||||
# The asm symlink changes when $(ARCH) changes.
|
|
||||||
# Detect this and ask user to run make mrproper
|
|
||||||
# If asm is a stale symlink (point to dir that does not exist) remove it
|
|
||||||
define check-symlink
|
|
||||||
set -e; \
|
|
||||||
if [ -L include/asm ]; then \
|
|
||||||
asmlink=`readlink include/asm | cut -d '-' -f 2`; \
|
|
||||||
if [ "$$asmlink" != "$(SRCARCH)" ]; then \
|
|
||||||
echo "ERROR: the symlink $@ points to asm-$$asmlink but asm-$(SRCARCH) was expected"; \
|
|
||||||
echo " set ARCH or save .config and run 'make mrproper' to fix it"; \
|
|
||||||
exit 1; \
|
|
||||||
fi; \
|
|
||||||
test -e $$asmlink || rm include/asm; \
|
|
||||||
elif [ -d include/asm ]; then \
|
|
||||||
echo "ERROR: $@ is a directory but a symlink was expected";\
|
|
||||||
exit 1; \
|
|
||||||
fi
|
|
||||||
endef
|
|
||||||
|
|
||||||
# We create the target directory of the symlink if it does
|
|
||||||
# not exist so the test in check-symlink works and we have a
|
|
||||||
# directory for generated filesas used by some architectures.
|
|
||||||
define create-symlink
|
|
||||||
if [ ! -L include/asm ]; then \
|
|
||||||
$(kecho) ' SYMLINK $@ -> include/asm-$(SRCARCH)'; \
|
|
||||||
if [ ! -d include/asm-$(SRCARCH) ]; then \
|
|
||||||
mkdir -p include/asm-$(SRCARCH); \
|
|
||||||
fi; \
|
|
||||||
ln -fsn asm-$(SRCARCH) $@; \
|
|
||||||
fi
|
|
||||||
endef
|
|
||||||
|
|
||||||
include/asm: FORCE
|
|
||||||
$(Q)$(check-symlink)
|
|
||||||
$(Q)$(create-symlink)
|
|
||||||
|
|
||||||
# Generate some files
|
# Generate some files
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -1046,7 +1007,7 @@ endef
|
||||||
include/linux/version.h: $(srctree)/Makefile FORCE
|
include/linux/version.h: $(srctree)/Makefile FORCE
|
||||||
$(call filechk,version.h)
|
$(call filechk,version.h)
|
||||||
|
|
||||||
include/linux/utsrelease.h: include/config/kernel.release FORCE
|
include/generated/utsrelease.h: include/config/kernel.release FORCE
|
||||||
$(call filechk,utsrelease.h)
|
$(call filechk,utsrelease.h)
|
||||||
|
|
||||||
PHONY += headerdep
|
PHONY += headerdep
|
||||||
|
@ -1076,11 +1037,6 @@ firmware_install: FORCE
|
||||||
export INSTALL_HDR_PATH = $(objtree)/usr
|
export INSTALL_HDR_PATH = $(objtree)/usr
|
||||||
|
|
||||||
hdr-inst := -rR -f $(srctree)/scripts/Makefile.headersinst obj
|
hdr-inst := -rR -f $(srctree)/scripts/Makefile.headersinst obj
|
||||||
# Find out where the Kbuild file is located to support
|
|
||||||
# arch/$(ARCH)/include/asm
|
|
||||||
hdr-dir = $(strip \
|
|
||||||
$(if $(wildcard $(srctree)/arch/$(hdr-arch)/include/asm/Kbuild), \
|
|
||||||
arch/$(hdr-arch)/include/asm, include/asm-$(hdr-arch)))
|
|
||||||
|
|
||||||
# If we do an all arch process set dst to asm-$(hdr-arch)
|
# 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/asm-$(hdr-arch), dst=include/asm)
|
||||||
|
@ -1095,10 +1051,10 @@ headers_install_all:
|
||||||
|
|
||||||
PHONY += headers_install
|
PHONY += headers_install
|
||||||
headers_install: __headers
|
headers_install: __headers
|
||||||
$(if $(wildcard $(srctree)/$(hdr-dir)/Kbuild),, \
|
$(if $(wildcard $(srctree)/arch/$(hdr-arch)/include/asm/Kbuild),, \
|
||||||
$(error Headers not exportable for the $(SRCARCH) architecture))
|
$(error Headers not exportable for the $(SRCARCH) architecture))
|
||||||
$(Q)$(MAKE) $(hdr-inst)=include
|
$(Q)$(MAKE) $(hdr-inst)=include
|
||||||
$(Q)$(MAKE) $(hdr-inst)=$(hdr-dir) $(hdr-dst)
|
$(Q)$(MAKE) $(hdr-inst)=arch/$(hdr-arch)/include/asm $(hdr-dst)
|
||||||
|
|
||||||
PHONY += headers_check_all
|
PHONY += headers_check_all
|
||||||
headers_check_all: headers_install_all
|
headers_check_all: headers_install_all
|
||||||
|
@ -1107,7 +1063,7 @@ headers_check_all: headers_install_all
|
||||||
PHONY += headers_check
|
PHONY += headers_check
|
||||||
headers_check: headers_install
|
headers_check: headers_install
|
||||||
$(Q)$(MAKE) $(hdr-inst)=include HDRCHECK=1
|
$(Q)$(MAKE) $(hdr-inst)=include HDRCHECK=1
|
||||||
$(Q)$(MAKE) $(hdr-inst)=$(hdr-dir) $(hdr-dst) HDRCHECK=1
|
$(Q)$(MAKE) $(hdr-inst)=arch/$(hdr-arch)/include/asm $(hdr-dst) HDRCHECK=1
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Modules
|
# Modules
|
||||||
|
@ -1127,6 +1083,7 @@ all: modules
|
||||||
PHONY += modules
|
PHONY += modules
|
||||||
modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux)
|
modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux)
|
||||||
$(Q)$(AWK) '!x[$$0]++' $(vmlinux-dirs:%=$(objtree)/%/modules.order) > $(objtree)/modules.order
|
$(Q)$(AWK) '!x[$$0]++' $(vmlinux-dirs:%=$(objtree)/%/modules.order) > $(objtree)/modules.order
|
||||||
|
$(Q)$(AWK) '!x[$$0]++' $(vmlinux-dirs:%=$(objtree)/%/modules.builtin) > $(objtree)/modules.builtin
|
||||||
@$(kecho) ' Building modules, stage 2.';
|
@$(kecho) ' Building modules, stage 2.';
|
||||||
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
|
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
|
||||||
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.fwinst obj=firmware __fw_modbuild
|
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.fwinst obj=firmware __fw_modbuild
|
||||||
|
@ -1156,6 +1113,7 @@ _modinst_:
|
||||||
ln -s $(objtree) $(MODLIB)/build ; \
|
ln -s $(objtree) $(MODLIB)/build ; \
|
||||||
fi
|
fi
|
||||||
@cp -f $(objtree)/modules.order $(MODLIB)/
|
@cp -f $(objtree)/modules.order $(MODLIB)/
|
||||||
|
@cp -f $(objtree)/modules.builtin $(MODLIB)/
|
||||||
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modinst
|
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modinst
|
||||||
|
|
||||||
# This depmod is only for convenience to give the initial
|
# This depmod is only for convenience to give the initial
|
||||||
|
@ -1194,12 +1152,10 @@ CLEAN_FILES += vmlinux System.map \
|
||||||
.tmp_kallsyms* .tmp_version .tmp_vmlinux* .tmp_System.map
|
.tmp_kallsyms* .tmp_version .tmp_vmlinux* .tmp_System.map
|
||||||
|
|
||||||
# Directories & files removed with 'make mrproper'
|
# Directories & files removed with 'make mrproper'
|
||||||
MRPROPER_DIRS += include/config include2 usr/include include/generated
|
MRPROPER_DIRS += include/config usr/include include/generated
|
||||||
MRPROPER_FILES += .config .config.old include/asm .version .old_version \
|
MRPROPER_FILES += .config .config.old .version .old_version \
|
||||||
include/linux/autoconf.h include/linux/version.h \
|
include/linux/version.h \
|
||||||
include/linux/utsrelease.h \
|
Module.symvers tags TAGS cscope*
|
||||||
include/linux/bounds.h include/asm*/asm-offsets.h \
|
|
||||||
Module.symvers Module.markers tags TAGS cscope*
|
|
||||||
|
|
||||||
# clean - Delete most, but leave enough to build external modules
|
# clean - Delete most, but leave enough to build external modules
|
||||||
#
|
#
|
||||||
|
@ -1218,7 +1174,7 @@ clean: archclean $(clean-dirs)
|
||||||
\( -name '*.[oas]' -o -name '*.ko' -o -name '.*.cmd' \
|
\( -name '*.[oas]' -o -name '*.ko' -o -name '.*.cmd' \
|
||||||
-o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \
|
-o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \
|
||||||
-o -name '*.symtypes' -o -name 'modules.order' \
|
-o -name '*.symtypes' -o -name 'modules.order' \
|
||||||
-o -name 'Module.markers' -o -name '.tmp_*.o.*' \
|
-o -name modules.builtin -o -name '.tmp_*.o.*' \
|
||||||
-o -name '*.gcno' \) -type f -print | xargs rm -f
|
-o -name '*.gcno' \) -type f -print | xargs rm -f
|
||||||
|
|
||||||
# mrproper - Delete all generated files, including .config
|
# mrproper - Delete all generated files, including .config
|
||||||
|
@ -1416,8 +1372,8 @@ $(clean-dirs):
|
||||||
|
|
||||||
clean: rm-dirs := $(MODVERDIR)
|
clean: rm-dirs := $(MODVERDIR)
|
||||||
clean: rm-files := $(KBUILD_EXTMOD)/Module.symvers \
|
clean: rm-files := $(KBUILD_EXTMOD)/Module.symvers \
|
||||||
$(KBUILD_EXTMOD)/Module.markers \
|
$(KBUILD_EXTMOD)/modules.order \
|
||||||
$(KBUILD_EXTMOD)/modules.order
|
$(KBUILD_EXTMOD)/modules.builtin
|
||||||
clean: $(clean-dirs)
|
clean: $(clean-dirs)
|
||||||
$(call cmd,rmdirs)
|
$(call cmd,rmdirs)
|
||||||
$(call cmd,rmfiles)
|
$(call cmd,rmfiles)
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
*/
|
*/
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/string.h>
|
#include <linux/string.h>
|
||||||
#include <linux/utsrelease.h>
|
#include <generated/utsrelease.h>
|
||||||
#include <linux/mm.h>
|
#include <linux/mm.h>
|
||||||
|
|
||||||
#include <asm/system.h>
|
#include <asm/system.h>
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
*/
|
*/
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/string.h>
|
#include <linux/string.h>
|
||||||
#include <linux/utsrelease.h>
|
#include <generated/utsrelease.h>
|
||||||
#include <linux/mm.h>
|
#include <linux/mm.h>
|
||||||
|
|
||||||
#include <asm/system.h>
|
#include <asm/system.h>
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
*/
|
*/
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/string.h>
|
#include <linux/string.h>
|
||||||
#include <linux/utsrelease.h>
|
#include <generated/utsrelease.h>
|
||||||
#include <linux/mm.h>
|
#include <linux/mm.h>
|
||||||
|
|
||||||
#include <asm/system.h>
|
#include <asm/system.h>
|
||||||
|
|
1
arch/alpha/include/asm/asm-offsets.h
Normal file
1
arch/alpha/include/asm/asm-offsets.h
Normal file
|
@ -0,0 +1 @@
|
||||||
|
#include <generated/asm-offsets.h>
|
|
@ -242,15 +242,8 @@ all: $(KBUILD_IMAGE)
|
||||||
|
|
||||||
boot := arch/arm/boot
|
boot := arch/arm/boot
|
||||||
|
|
||||||
# Update machine arch and proc symlinks if something which affects
|
archprepare:
|
||||||
# them changed. We use .arch to indicate when they were updated
|
$(Q)$(MAKE) $(build)=arch/arm/tools include/generated/mach-types.h
|
||||||
# last, otherwise make uses the target directory mtime.
|
|
||||||
|
|
||||||
archprepare: maketools
|
|
||||||
|
|
||||||
PHONY += maketools FORCE
|
|
||||||
maketools: include/linux/version.h FORCE
|
|
||||||
$(Q)$(MAKE) $(build)=arch/arm/tools include/asm-arm/mach-types.h
|
|
||||||
|
|
||||||
# Convert bzImage to zImage
|
# Convert bzImage to zImage
|
||||||
bzImage: zImage
|
bzImage: zImage
|
||||||
|
@ -261,9 +254,6 @@ zImage Image xipImage bootpImage uImage: vmlinux
|
||||||
zinstall install: vmlinux
|
zinstall install: vmlinux
|
||||||
$(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $@
|
$(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $@
|
||||||
|
|
||||||
CLEAN_FILES += include/asm-arm/mach-types.h \
|
|
||||||
include/asm-arm/arch include/asm-arm/.arch
|
|
||||||
|
|
||||||
# We use MRPROPER_FILES and CLEAN_FILES now
|
# We use MRPROPER_FILES and CLEAN_FILES now
|
||||||
archclean:
|
archclean:
|
||||||
$(Q)$(MAKE) $(clean)=$(boot)
|
$(Q)$(MAKE) $(clean)=$(boot)
|
||||||
|
|
1
arch/arm/include/asm/asm-offsets.h
Normal file
1
arch/arm/include/asm/asm-offsets.h
Normal file
|
@ -0,0 +1 @@
|
||||||
|
#include <generated/asm-offsets.h>
|
1
arch/arm/include/asm/mach-types.h
Normal file
1
arch/arm/include/asm/mach-types.h
Normal file
|
@ -0,0 +1 @@
|
||||||
|
#include <generated/mach-types.h>
|
|
@ -4,7 +4,7 @@
|
||||||
# Copyright (C) 2001 Russell King
|
# Copyright (C) 2001 Russell King
|
||||||
#
|
#
|
||||||
|
|
||||||
include/asm-arm/mach-types.h: $(src)/gen-mach-types $(src)/mach-types
|
include/generated/mach-types.h: $(src)/gen-mach-types $(src)/mach-types
|
||||||
@echo ' Generating $@'
|
@echo ' Generating $@'
|
||||||
@mkdir -p $(dir $@)
|
@mkdir -p $(dir $@)
|
||||||
$(Q)$(AWK) -f $^ > $@ || { rm -f $@; /bin/false; }
|
$(Q)$(AWK) -f $^ > $@ || { rm -f $@; /bin/false; }
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#!/bin/awk
|
#!/bin/awk
|
||||||
#
|
#
|
||||||
# Awk script to generate include/asm-arm/mach-types.h
|
# Awk script to generate include/generated/mach-types.h
|
||||||
#
|
#
|
||||||
BEGIN { nr = 0 }
|
BEGIN { nr = 0 }
|
||||||
/^#/ { next }
|
/^#/ { next }
|
||||||
|
|
1
arch/avr32/include/asm/asm-offsets.h
Normal file
1
arch/avr32/include/asm/asm-offsets.h
Normal file
|
@ -0,0 +1 @@
|
||||||
|
#include <generated/asm-offsets.h>
|
1
arch/blackfin/include/asm/asm-offsets.h
Normal file
1
arch/blackfin/include/asm/asm-offsets.h
Normal file
|
@ -0,0 +1 @@
|
||||||
|
#include <generated/asm-offsets.h>
|
|
@ -10,7 +10,6 @@
|
||||||
* The macros found in mmu_defs_asm.h uses the ## concatenation operator, so
|
* The macros found in mmu_defs_asm.h uses the ## concatenation operator, so
|
||||||
* -traditional must not be used when assembling this file.
|
* -traditional must not be used when assembling this file.
|
||||||
*/
|
*/
|
||||||
#include <linux/autoconf.h>
|
|
||||||
#include <arch/memmap.h>
|
#include <arch/memmap.h>
|
||||||
#include <hwregs/reg_rdwr.h>
|
#include <hwregs/reg_rdwr.h>
|
||||||
#include <hwregs/intr_vect.h>
|
#include <hwregs/intr_vect.h>
|
||||||
|
|
1
arch/cris/include/asm/asm-offsets.h
Normal file
1
arch/cris/include/asm/asm-offsets.h
Normal file
|
@ -0,0 +1 @@
|
||||||
|
#include <generated/asm-offsets.h>
|
|
@ -1,6 +1,5 @@
|
||||||
#include <linux/sched.h>
|
#include <linux/sched.h>
|
||||||
#include <asm/thread_info.h>
|
#include <asm/thread_info.h>
|
||||||
#include <linux/autoconf.h>
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Generate definitions needed by assembly language modules.
|
* Generate definitions needed by assembly language modules.
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
* the kernel has booted.
|
* the kernel has booted.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/autoconf.h>
|
|
||||||
#include <asm-generic/vmlinux.lds.h>
|
#include <asm-generic/vmlinux.lds.h>
|
||||||
#include <asm/page.h>
|
#include <asm/page.h>
|
||||||
|
|
||||||
|
|
1
arch/frv/include/asm/asm-offsets.h
Normal file
1
arch/frv/include/asm/asm-offsets.h
Normal file
|
@ -0,0 +1 @@
|
||||||
|
#include <generated/asm-offsets.h>
|
|
@ -10,7 +10,7 @@
|
||||||
* 2 of the License, or (at your option) any later version.
|
* 2 of the License, or (at your option) any later version.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/utsrelease.h>
|
#include <generated/utsrelease.h>
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/sched.h>
|
#include <linux/sched.h>
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
|
|
1
arch/h8300/include/asm/asm-offsets.h
Normal file
1
arch/h8300/include/asm/asm-offsets.h
Normal file
|
@ -0,0 +1 @@
|
||||||
|
#include <generated/asm-offsets.h>
|
|
@ -103,4 +103,4 @@ archprepare: make_nr_irqs_h FORCE
|
||||||
PHONY += make_nr_irqs_h FORCE
|
PHONY += make_nr_irqs_h FORCE
|
||||||
|
|
||||||
make_nr_irqs_h: FORCE
|
make_nr_irqs_h: FORCE
|
||||||
$(Q)$(MAKE) $(build)=arch/ia64/kernel include/asm-ia64/nr-irqs.h
|
$(Q)$(MAKE) $(build)=arch/ia64/kernel include/generated/nr-irqs.h
|
||||||
|
|
1
arch/ia64/include/asm/asm-offsets.h
Normal file
1
arch/ia64/include/asm/asm-offsets.h
Normal file
|
@ -0,0 +1 @@
|
||||||
|
#include <generated/asm-offsets.h>
|
|
@ -13,7 +13,7 @@
|
||||||
|
|
||||||
#include <linux/types.h>
|
#include <linux/types.h>
|
||||||
#include <linux/cpumask.h>
|
#include <linux/cpumask.h>
|
||||||
#include <asm-ia64/nr-irqs.h>
|
#include <generated/nr-irqs.h>
|
||||||
|
|
||||||
static __inline__ int
|
static __inline__ int
|
||||||
irq_canonicalize (int irq)
|
irq_canonicalize (int irq)
|
||||||
|
|
|
@ -81,17 +81,14 @@ define cmd_nr_irqs
|
||||||
endef
|
endef
|
||||||
|
|
||||||
# We use internal kbuild rules to avoid the "is up to date" message from make
|
# We use internal kbuild rules to avoid the "is up to date" message from make
|
||||||
arch/$(SRCARCH)/kernel/nr-irqs.s: $(srctree)/arch/$(SRCARCH)/kernel/nr-irqs.c \
|
arch/$(SRCARCH)/kernel/nr-irqs.s: arch/$(SRCARCH)/kernel/nr-irqs.c
|
||||||
$(wildcard $(srctree)/include/asm-ia64/*/irq.h)
|
|
||||||
$(Q)mkdir -p $(dir $@)
|
$(Q)mkdir -p $(dir $@)
|
||||||
$(call if_changed_dep,cc_s_c)
|
$(call if_changed_dep,cc_s_c)
|
||||||
|
|
||||||
include/asm-ia64/nr-irqs.h: arch/$(SRCARCH)/kernel/nr-irqs.s
|
include/generated/nr-irqs.h: arch/$(SRCARCH)/kernel/nr-irqs.s
|
||||||
$(Q)mkdir -p $(dir $@)
|
$(Q)mkdir -p $(dir $@)
|
||||||
$(call cmd,nr_irqs)
|
$(call cmd,nr_irqs)
|
||||||
|
|
||||||
clean-files += $(objtree)/include/asm-ia64/nr-irqs.h
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# native ivt.S, entry.S and fsys.S
|
# native ivt.S, entry.S and fsys.S
|
||||||
#
|
#
|
||||||
|
|
|
@ -22,7 +22,6 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/autoconf.h>
|
|
||||||
#include <linux/kvm_host.h>
|
#include <linux/kvm_host.h>
|
||||||
#include <linux/kbuild.h>
|
#include <linux/kbuild.h>
|
||||||
|
|
||||||
|
|
1
arch/m68k/include/asm/asm-offsets.h
Normal file
1
arch/m68k/include/asm/asm-offsets.h
Normal file
|
@ -0,0 +1 @@
|
||||||
|
#include <generated/asm-offsets.h>
|
|
@ -196,7 +196,7 @@
|
||||||
* for them and trying to understand what they mean.
|
* for them and trying to understand what they mean.
|
||||||
*
|
*
|
||||||
* CONFIG_xxx: These are the obvious machine configuration defines created
|
* CONFIG_xxx: These are the obvious machine configuration defines created
|
||||||
* during configuration. These are defined in include/linux/autoconf.h.
|
* during configuration. These are defined in autoconf.h.
|
||||||
*
|
*
|
||||||
* CONSOLE: There is support for head.S console in this file. This
|
* CONSOLE: There is support for head.S console in this file. This
|
||||||
* console can talk to a Mac frame buffer, but could easily be extrapolated
|
* console can talk to a Mac frame buffer, but could easily be extrapolated
|
||||||
|
|
1
arch/microblaze/include/asm/asm-offsets.h
Normal file
1
arch/microblaze/include/asm/asm-offsets.h
Normal file
|
@ -0,0 +1 @@
|
||||||
|
#include <generated/asm-offsets.h>
|
1
arch/mips/include/asm/asm-offsets.h
Normal file
1
arch/mips/include/asm/asm-offsets.h
Normal file
|
@ -0,0 +1 @@
|
||||||
|
#include <generated/asm-offsets.h>
|
1
arch/mn10300/include/asm/asm-offsets.h
Normal file
1
arch/mn10300/include/asm/asm-offsets.h
Normal file
|
@ -0,0 +1 @@
|
||||||
|
#include <generated/asm-offsets.h>
|
1
arch/parisc/include/asm/asm-offsets.h
Normal file
1
arch/parisc/include/asm/asm-offsets.h
Normal file
|
@ -0,0 +1 @@
|
||||||
|
#include <generated/asm-offsets.h>
|
1
arch/powerpc/include/asm/asm-offsets.h
Normal file
1
arch/powerpc/include/asm/asm-offsets.h
Normal file
|
@ -0,0 +1 @@
|
||||||
|
#include <generated/asm-offsets.h>
|
|
@ -10,7 +10,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
#include <linux/utsrelease.h>
|
#include <generated/utsrelease.h>
|
||||||
#include <linux/pci.h>
|
#include <linux/pci.h>
|
||||||
#include <linux/of.h>
|
#include <linux/of.h>
|
||||||
#include <asm/prom.h>
|
#include <asm/prom.h>
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
|
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/seq_file.h>
|
#include <linux/seq_file.h>
|
||||||
#include <linux/utsrelease.h>
|
#include <generated/utsrelease.h>
|
||||||
|
|
||||||
#include <asm/machdep.h>
|
#include <asm/machdep.h>
|
||||||
#include <asm/cputable.h>
|
#include <asm/cputable.h>
|
||||||
|
|
|
@ -13,10 +13,8 @@ SPU_CC := $(SPU_CROSS)gcc
|
||||||
SPU_AS := $(SPU_CROSS)gcc
|
SPU_AS := $(SPU_CROSS)gcc
|
||||||
SPU_LD := $(SPU_CROSS)ld
|
SPU_LD := $(SPU_CROSS)ld
|
||||||
SPU_OBJCOPY := $(SPU_CROSS)objcopy
|
SPU_OBJCOPY := $(SPU_CROSS)objcopy
|
||||||
SPU_CFLAGS := -O2 -Wall -I$(srctree)/include \
|
SPU_CFLAGS := -O2 -Wall -I$(srctree)/include -D__KERNEL__
|
||||||
-I$(objtree)/include2 -D__KERNEL__
|
SPU_AFLAGS := -c -D__ASSEMBLY__ -I$(srctree)/include -D__KERNEL__
|
||||||
SPU_AFLAGS := -c -D__ASSEMBLY__ -I$(srctree)/include \
|
|
||||||
-I$(objtree)/include2 -D__KERNEL__
|
|
||||||
SPU_LDFLAGS := -N -Ttext=0x0
|
SPU_LDFLAGS := -N -Ttext=0x0
|
||||||
|
|
||||||
$(obj)/switch.o: $(obj)/spu_save_dump.h $(obj)/spu_restore_dump.h
|
$(obj)/switch.o: $(obj)/spu_save_dump.h $(obj)/spu_restore_dump.h
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
#include <linux/reboot.h>
|
#include <linux/reboot.h>
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
#include <linux/pci.h>
|
#include <linux/pci.h>
|
||||||
#include <linux/utsrelease.h>
|
#include <generated/utsrelease.h>
|
||||||
#include <linux/adb.h>
|
#include <linux/adb.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/string.h>
|
#include <linux/string.h>
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
#include <linux/utsrelease.h>
|
#include <generated/utsrelease.h>
|
||||||
#include <asm/sections.h>
|
#include <asm/sections.h>
|
||||||
#include <asm/prom.h>
|
#include <asm/prom.h>
|
||||||
#include <asm/page.h>
|
#include <asm/page.h>
|
||||||
|
|
1
arch/s390/include/asm/asm-offsets.h
Normal file
1
arch/s390/include/asm/asm-offsets.h
Normal file
|
@ -0,0 +1 @@
|
||||||
|
#include <generated/asm-offsets.h>
|
1
arch/score/include/asm/asm-offsets.h
Normal file
1
arch/score/include/asm/asm-offsets.h
Normal file
|
@ -0,0 +1 @@
|
||||||
|
#include <generated/asm-offsets.h>
|
|
@ -205,10 +205,7 @@ libs-$(CONFIG_SUPERH64) := arch/sh/lib64/ $(libs-y)
|
||||||
|
|
||||||
BOOT_TARGETS = uImage uImage.bz2 uImage.gz uImage.lzma uImage.srec uImage.bin \
|
BOOT_TARGETS = uImage uImage.bz2 uImage.gz uImage.lzma uImage.srec uImage.bin \
|
||||||
zImage vmlinux.srec romImage
|
zImage vmlinux.srec romImage
|
||||||
PHONY += maketools $(BOOT_TARGETS) FORCE
|
PHONY += $(BOOT_TARGETS)
|
||||||
|
|
||||||
maketools: include/linux/version.h FORCE
|
|
||||||
$(Q)$(MAKE) $(build)=arch/sh/tools include/asm-sh/machtypes.h
|
|
||||||
|
|
||||||
all: $(KBUILD_IMAGE)
|
all: $(KBUILD_IMAGE)
|
||||||
|
|
||||||
|
@ -217,7 +214,8 @@ $(BOOT_TARGETS): vmlinux
|
||||||
|
|
||||||
compressed: zImage
|
compressed: zImage
|
||||||
|
|
||||||
archprepare: maketools
|
archprepare:
|
||||||
|
$(Q)$(MAKE) $(build)=arch/sh/tools include/generated/machtypes.h
|
||||||
|
|
||||||
archclean:
|
archclean:
|
||||||
$(Q)$(MAKE) $(clean)=$(boot)
|
$(Q)$(MAKE) $(clean)=$(boot)
|
||||||
|
@ -234,5 +232,3 @@ define archhelp
|
||||||
@echo ' uImage.bz2 - Kernel-only image for U-Boot (bzip2)'
|
@echo ' uImage.bz2 - Kernel-only image for U-Boot (bzip2)'
|
||||||
@echo ' uImage.lzma - Kernel-only image for U-Boot (lzma)'
|
@echo ' uImage.lzma - Kernel-only image for U-Boot (lzma)'
|
||||||
endef
|
endef
|
||||||
|
|
||||||
CLEAN_FILES += include/asm-sh/machtypes.h
|
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
#include <mach/lboxre2.h>
|
#include <mach/lboxre2.h>
|
||||||
#include <mach/r2d.h>
|
#include <mach/r2d.h>
|
||||||
#include "pci-sh4.h"
|
#include "pci-sh4.h"
|
||||||
#include <asm/machtypes.h>
|
#include <generated/machtypes.h>
|
||||||
|
|
||||||
#define PCIMCR_MRSET_OFF 0xBFFFFFFF
|
#define PCIMCR_MRSET_OFF 0xBFFFFFFF
|
||||||
#define PCIMCR_RFSH_OFF 0xFFFFFFFB
|
#define PCIMCR_RFSH_OFF 0xFFFFFFFB
|
||||||
|
|
1
arch/sh/include/asm/.gitignore
vendored
1
arch/sh/include/asm/.gitignore
vendored
|
@ -1 +0,0 @@
|
||||||
machtypes.h
|
|
1
arch/sh/include/asm/asm-offsets.h
Normal file
1
arch/sh/include/asm/asm-offsets.h
Normal file
|
@ -0,0 +1 @@
|
||||||
|
#include <generated/asm-offsets.h>
|
|
@ -12,7 +12,7 @@
|
||||||
|
|
||||||
#include <linux/types.h>
|
#include <linux/types.h>
|
||||||
#include <linux/time.h>
|
#include <linux/time.h>
|
||||||
#include <asm/machtypes.h>
|
#include <generated/machtypes.h>
|
||||||
|
|
||||||
struct sh_machine_vector {
|
struct sh_machine_vector {
|
||||||
void (*mv_setup)(char **cmdline_p);
|
void (*mv_setup)(char **cmdline_p);
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
# Shamelessly cloned from ARM.
|
# Shamelessly cloned from ARM.
|
||||||
#
|
#
|
||||||
|
|
||||||
include/asm-sh/machtypes.h: $(src)/gen-mach-types $(src)/mach-types
|
include/generated/machtypes.h: $(src)/gen-mach-types $(src)/mach-types
|
||||||
@echo ' Generating $@'
|
@echo ' Generating $@'
|
||||||
$(Q)if [ ! -d include/asm-sh ]; then mkdir -p include/asm-sh; fi
|
$(Q)mkdir -p $(dir $@)
|
||||||
$(Q)$(AWK) -f $^ > $@ || { rm -f $@; /bin/false; }
|
$(Q)$(AWK) -f $^ > $@ || { rm -f $@; /bin/false; }
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#!/bin/awk
|
#!/bin/awk
|
||||||
#
|
#
|
||||||
# Awk script to generate include/asm-sh/machtypes.h
|
# Awk script to generate include/generated/machtypes.h
|
||||||
# Heavily based on arch/arm/tools/gen-mach-types
|
# Heavily based on arch/arm/tools/gen-mach-types
|
||||||
#
|
#
|
||||||
BEGIN { nr = 0 }
|
BEGIN { nr = 0 }
|
||||||
|
|
1
arch/sparc/include/asm/asm-offsets.h
Normal file
1
arch/sparc/include/asm/asm-offsets.h
Normal file
|
@ -0,0 +1 @@
|
||||||
|
#include <generated/asm-offsets.h>
|
|
@ -149,6 +149,6 @@ $(SHARED_HEADERS)/user_constants.h: $(ARCH_DIR)/sys-$(SUBARCH)/user-offsets.s
|
||||||
|
|
||||||
$(SHARED_HEADERS)/kern_constants.h:
|
$(SHARED_HEADERS)/kern_constants.h:
|
||||||
$(Q)mkdir -p $(dir $@)
|
$(Q)mkdir -p $(dir $@)
|
||||||
$(Q)echo '#include "../../../../include/asm/asm-offsets.h"' >$@
|
$(Q)echo '#include "../../../../include/generated/asm-offsets.h"' >$@
|
||||||
|
|
||||||
export SUBARCH USER_CFLAGS CFLAGS_NO_HARDENING OS HEADER_ARCH DEV_NULL_PATH
|
export SUBARCH USER_CFLAGS CFLAGS_NO_HARDENING OS HEADER_ARCH DEV_NULL_PATH
|
||||||
|
|
1
arch/um/include/asm/asm-offsets.h
Normal file
1
arch/um/include/asm/asm-offsets.h
Normal file
|
@ -0,0 +1 @@
|
||||||
|
#include <generated/asm-offsets.h>
|
|
@ -16,7 +16,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <asm/segment.h>
|
#include <asm/segment.h>
|
||||||
#include <linux/utsrelease.h>
|
#include <generated/utsrelease.h>
|
||||||
#include <asm/boot.h>
|
#include <asm/boot.h>
|
||||||
#include <asm/e820.h>
|
#include <asm/e820.h>
|
||||||
#include <asm/page_types.h>
|
#include <asm/page_types.h>
|
||||||
|
|
|
@ -13,8 +13,8 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "boot.h"
|
#include "boot.h"
|
||||||
#include <linux/utsrelease.h>
|
#include <generated/utsrelease.h>
|
||||||
#include <linux/compile.h>
|
#include <generated/compile.h>
|
||||||
|
|
||||||
const char kernel_version[] =
|
const char kernel_version[] =
|
||||||
UTS_RELEASE " (" LINUX_COMPILE_BY "@" LINUX_COMPILE_HOST ") "
|
UTS_RELEASE " (" LINUX_COMPILE_BY "@" LINUX_COMPILE_HOST ") "
|
||||||
|
|
1
arch/x86/include/asm/asm-offsets.h
Normal file
1
arch/x86/include/asm/asm-offsets.h
Normal file
|
@ -0,0 +1 @@
|
||||||
|
#include <generated/asm-offsets.h>
|
1
arch/xtensa/include/asm/asm-offsets.h
Normal file
1
arch/xtensa/include/asm/asm-offsets.h
Normal file
|
@ -0,0 +1 @@
|
||||||
|
#include <generated/asm-offsets.h>
|
|
@ -21,7 +21,6 @@
|
||||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/autoconf.h>
|
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/moduleparam.h>
|
#include <linux/moduleparam.h>
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
#ifndef __HID_LG_H
|
#ifndef __HID_LG_H
|
||||||
#define __HID_LG_H
|
#define __HID_LG_H
|
||||||
|
|
||||||
#include <linux/autoconf.h>
|
|
||||||
|
|
||||||
#ifdef CONFIG_LOGITECH_FF
|
#ifdef CONFIG_LOGITECH_FF
|
||||||
int lgff_init(struct hid_device *hdev);
|
int lgff_init(struct hid_device *hdev);
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -63,7 +63,7 @@
|
||||||
#ifndef __iwl_core_h__
|
#ifndef __iwl_core_h__
|
||||||
#define __iwl_core_h__
|
#define __iwl_core_h__
|
||||||
|
|
||||||
#include <linux/utsrelease.h>
|
#include <generated/utsrelease.h>
|
||||||
|
|
||||||
/************************
|
/************************
|
||||||
* forward declarations *
|
* forward declarations *
|
||||||
|
|
|
@ -51,7 +51,6 @@
|
||||||
#include <linux/dmi.h>
|
#include <linux/dmi.h>
|
||||||
#include <linux/backlight.h>
|
#include <linux/backlight.h>
|
||||||
#include <linux/platform_device.h>
|
#include <linux/platform_device.h>
|
||||||
#include <linux/autoconf.h>
|
|
||||||
|
|
||||||
#define COMPAL_DRIVER_VERSION "0.2.6"
|
#define COMPAL_DRIVER_VERSION "0.2.6"
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,6 @@
|
||||||
* driver requests - some may support multiple options */
|
* driver requests - some may support multiple options */
|
||||||
|
|
||||||
|
|
||||||
#include <linux/autoconf.h>
|
|
||||||
#include "iio.h"
|
#include "iio.h"
|
||||||
#include "ring_generic.h"
|
#include "ring_generic.h"
|
||||||
|
|
||||||
|
|
|
@ -55,7 +55,7 @@
|
||||||
#include <linux/list.h>
|
#include <linux/list.h>
|
||||||
#include <linux/notifier.h>
|
#include <linux/notifier.h>
|
||||||
#include <linux/reboot.h>
|
#include <linux/reboot.h>
|
||||||
#include <linux/utsrelease.h>
|
#include <generated/utsrelease.h>
|
||||||
|
|
||||||
#include <linux/io.h>
|
#include <linux/io.h>
|
||||||
#include <asm/uaccess.h>
|
#include <asm/uaccess.h>
|
||||||
|
|
|
@ -118,6 +118,7 @@ header-y += mtio.h
|
||||||
header-y += ncp_no.h
|
header-y += ncp_no.h
|
||||||
header-y += neighbour.h
|
header-y += neighbour.h
|
||||||
header-y += net_dropmon.h
|
header-y += net_dropmon.h
|
||||||
|
header-y += net_tstamp.h
|
||||||
header-y += netfilter_arp.h
|
header-y += netfilter_arp.h
|
||||||
header-y += netrom.h
|
header-y += netrom.h
|
||||||
header-y += nfs2.h
|
header-y += nfs2.h
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
#ifndef LINUX_MM_DEBUG_H
|
#ifndef LINUX_MM_DEBUG_H
|
||||||
#define LINUX_MM_DEBUG_H 1
|
#define LINUX_MM_DEBUG_H 1
|
||||||
|
|
||||||
#include <linux/autoconf.h>
|
|
||||||
|
|
||||||
#ifdef CONFIG_DEBUG_VM
|
#ifdef CONFIG_DEBUG_VM
|
||||||
#define VM_BUG_ON(cond) BUG_ON(cond)
|
#define VM_BUG_ON(cond) BUG_ON(cond)
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
#include <linux/seqlock.h>
|
#include <linux/seqlock.h>
|
||||||
#include <linux/nodemask.h>
|
#include <linux/nodemask.h>
|
||||||
#include <linux/pageblock-flags.h>
|
#include <linux/pageblock-flags.h>
|
||||||
#include <linux/bounds.h>
|
#include <generated/bounds.h>
|
||||||
#include <asm/atomic.h>
|
#include <asm/atomic.h>
|
||||||
#include <asm/page.h>
|
#include <asm/page.h>
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
#include <linux/types.h>
|
#include <linux/types.h>
|
||||||
#ifndef __GENERATING_BOUNDS_H
|
#ifndef __GENERATING_BOUNDS_H
|
||||||
#include <linux/mm_types.h>
|
#include <linux/mm_types.h>
|
||||||
#include <linux/bounds.h>
|
#include <generated/bounds.h>
|
||||||
#endif /* !__GENERATING_BOUNDS_H */
|
#endif /* !__GENERATING_BOUNDS_H */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#include <linux/utsrelease.h>
|
#include <generated/utsrelease.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
|
|
||||||
/* Simply sanity version stamp for modules. */
|
/* Simply sanity version stamp for modules. */
|
||||||
|
|
|
@ -15,12 +15,8 @@ mounts-$(CONFIG_BLK_DEV_RAM) += do_mounts_rd.o
|
||||||
mounts-$(CONFIG_BLK_DEV_INITRD) += do_mounts_initrd.o
|
mounts-$(CONFIG_BLK_DEV_INITRD) += do_mounts_initrd.o
|
||||||
mounts-$(CONFIG_BLK_DEV_MD) += do_mounts_md.o
|
mounts-$(CONFIG_BLK_DEV_MD) += do_mounts_md.o
|
||||||
|
|
||||||
# files to be removed upon make clean
|
|
||||||
clean-files := ../include/linux/compile.h
|
|
||||||
|
|
||||||
# dependencies on generated files need to be listed explicitly
|
# dependencies on generated files need to be listed explicitly
|
||||||
|
$(obj)/version.o: include/generated/compile.h
|
||||||
$(obj)/version.o: include/linux/compile.h
|
|
||||||
|
|
||||||
# compile.h changes depending on hostname, generation number, etc,
|
# compile.h changes depending on hostname, generation number, etc,
|
||||||
# so we regenerate it always.
|
# so we regenerate it always.
|
||||||
|
@ -30,7 +26,7 @@ $(obj)/version.o: include/linux/compile.h
|
||||||
chk_compile.h = :
|
chk_compile.h = :
|
||||||
quiet_chk_compile.h = echo ' CHK $@'
|
quiet_chk_compile.h = echo ' CHK $@'
|
||||||
silent_chk_compile.h = :
|
silent_chk_compile.h = :
|
||||||
include/linux/compile.h: FORCE
|
include/generated/compile.h: FORCE
|
||||||
@$($(quiet)chk_compile.h)
|
@$($(quiet)chk_compile.h)
|
||||||
$(Q)$(CONFIG_SHELL) $(srctree)/scripts/mkcompile_h $@ \
|
$(Q)$(CONFIG_SHELL) $(srctree)/scripts/mkcompile_h $@ \
|
||||||
"$(UTS_MACHINE)" "$(CONFIG_SMP)" "$(CONFIG_PREEMPT)" "$(CC) $(KBUILD_CFLAGS)"
|
"$(UTS_MACHINE)" "$(CONFIG_SMP)" "$(CONFIG_PREEMPT)" "$(CC) $(KBUILD_CFLAGS)"
|
||||||
|
|
|
@ -6,11 +6,11 @@
|
||||||
* May be freely distributed as part of Linux.
|
* May be freely distributed as part of Linux.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/compile.h>
|
#include <generated/compile.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/uts.h>
|
#include <linux/uts.h>
|
||||||
#include <linux/utsname.h>
|
#include <linux/utsname.h>
|
||||||
#include <linux/utsrelease.h>
|
#include <generated/utsrelease.h>
|
||||||
#include <linux/version.h>
|
#include <linux/version.h>
|
||||||
|
|
||||||
#ifndef CONFIG_KALLSYMS
|
#ifndef CONFIG_KALLSYMS
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
|
|
||||||
void foo(void)
|
void foo(void)
|
||||||
{
|
{
|
||||||
/* The enum constants to put into include/linux/bounds.h */
|
/* The enum constants to put into include/generated/bounds.h */
|
||||||
DEFINE(NR_PAGEFLAGS, __NR_PAGEFLAGS);
|
DEFINE(NR_PAGEFLAGS, __NR_PAGEFLAGS);
|
||||||
DEFINE(MAX_NR_ZONES, __MAX_NR_ZONES);
|
DEFINE(MAX_NR_ZONES, __MAX_NR_ZONES);
|
||||||
/* End of constants */
|
/* End of constants */
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
#include <linux/hardirq.h>
|
#include <linux/hardirq.h>
|
||||||
#include <linux/elf.h>
|
#include <linux/elf.h>
|
||||||
#include <linux/elfcore.h>
|
#include <linux/elfcore.h>
|
||||||
#include <linux/utsrelease.h>
|
#include <generated/utsrelease.h>
|
||||||
#include <linux/utsname.h>
|
#include <linux/utsname.h>
|
||||||
#include <linux/numa.h>
|
#include <linux/numa.h>
|
||||||
#include <linux/suspend.h>
|
#include <linux/suspend.h>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
* Copyright (C) 2004 William Lee Irwin III
|
* Copyright (C) 2004 William Lee Irwin III
|
||||||
*/
|
*/
|
||||||
#include <linux/ring_buffer.h>
|
#include <linux/ring_buffer.h>
|
||||||
#include <linux/utsrelease.h>
|
#include <generated/utsrelease.h>
|
||||||
#include <linux/stacktrace.h>
|
#include <linux/stacktrace.h>
|
||||||
#include <linux/writeback.h>
|
#include <linux/writeback.h>
|
||||||
#include <linux/kallsyms.h>
|
#include <linux/kallsyms.h>
|
||||||
|
|
|
@ -149,6 +149,12 @@ ld-option = $(call try-run,\
|
||||||
# $(Q)$(MAKE) $(build)=dir
|
# $(Q)$(MAKE) $(build)=dir
|
||||||
build := -f $(if $(KBUILD_SRC),$(srctree)/)scripts/Makefile.build obj
|
build := -f $(if $(KBUILD_SRC),$(srctree)/)scripts/Makefile.build obj
|
||||||
|
|
||||||
|
###
|
||||||
|
# Shorthand for $(Q)$(MAKE) -f scripts/Makefile.modbuiltin obj=
|
||||||
|
# Usage:
|
||||||
|
# $(Q)$(MAKE) $(modbuiltin)=dir
|
||||||
|
modbuiltin := -f $(if $(KBUILD_SRC),$(srctree)/)scripts/Makefile.modbuiltin obj
|
||||||
|
|
||||||
# Prefix -I with $(srctree) if it is not an absolute path.
|
# Prefix -I with $(srctree) if it is not an absolute path.
|
||||||
# skip if -I has no parameter
|
# skip if -I has no parameter
|
||||||
addtree = $(if $(patsubst -I%,%,$(1)), \
|
addtree = $(if $(patsubst -I%,%,$(1)), \
|
||||||
|
|
|
@ -213,7 +213,7 @@ cmd_gzip = (cat $(filter-out FORCE,$^) | gzip -f -9 > $@) || \
|
||||||
|
|
||||||
# Bzip2 and LZMA do not include size in file... so we have to fake that;
|
# Bzip2 and LZMA do not include size in file... so we have to fake that;
|
||||||
# append the size as a 32-bit littleendian number as gzip does.
|
# append the size as a 32-bit littleendian number as gzip does.
|
||||||
size_append = /bin/echo -ne $(shell \
|
size_append = printf $(shell \
|
||||||
dec_size=0; \
|
dec_size=0; \
|
||||||
for F in $1; do \
|
for F in $1; do \
|
||||||
fsize=$$(stat -c "%s" $$F); \
|
fsize=$$(stat -c "%s" $$F); \
|
||||||
|
|
55
scripts/Makefile.modbuiltin
Normal file
55
scripts/Makefile.modbuiltin
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
# ==========================================================================
|
||||||
|
# Generating modules.builtin
|
||||||
|
# ==========================================================================
|
||||||
|
|
||||||
|
src := $(obj)
|
||||||
|
|
||||||
|
PHONY := __modbuiltin
|
||||||
|
__modbuiltin:
|
||||||
|
|
||||||
|
-include include/config/auto.conf
|
||||||
|
# tristate.conf sets tristate variables to uppercase 'Y' or 'M'
|
||||||
|
# That way, we get the list of built-in modules in obj-Y
|
||||||
|
-include include/config/tristate.conf
|
||||||
|
|
||||||
|
include scripts/Kbuild.include
|
||||||
|
|
||||||
|
# The filename Kbuild has precedence over Makefile
|
||||||
|
kbuild-dir := $(if $(filter /%,$(src)),$(src),$(srctree)/$(src))
|
||||||
|
kbuild-file := $(if $(wildcard $(kbuild-dir)/Kbuild),$(kbuild-dir)/Kbuild,$(kbuild-dir)/Makefile)
|
||||||
|
include $(kbuild-file)
|
||||||
|
|
||||||
|
include scripts/Makefile.lib
|
||||||
|
__subdir-Y := $(patsubst %/,%,$(filter %/, $(obj-Y)))
|
||||||
|
subdir-Y += $(__subdir-Y)
|
||||||
|
subdir-ym := $(sort $(subdir-y) $(subdir-Y) $(subdir-m))
|
||||||
|
subdir-ym := $(addprefix $(obj)/,$(subdir-ym))
|
||||||
|
obj-Y := $(addprefix $(obj)/,$(obj-Y))
|
||||||
|
|
||||||
|
modbuiltin-subdirs := $(patsubst %,%/modules.builtin, $(subdir-ym))
|
||||||
|
modbuiltin-mods := $(filter %.ko, $(obj-Y:.o=.ko))
|
||||||
|
modbuiltin-target := $(obj)/modules.builtin
|
||||||
|
|
||||||
|
__modbuiltin: $(modbuiltin-target) $(subdir-ym)
|
||||||
|
@:
|
||||||
|
|
||||||
|
$(modbuiltin-target): $(subdir-ym) FORCE
|
||||||
|
$(Q)(for m in $(modbuiltin-mods); do echo kernel/$$m; done; \
|
||||||
|
cat /dev/null $(modbuiltin-subdirs)) > $@
|
||||||
|
|
||||||
|
PHONY += FORCE
|
||||||
|
|
||||||
|
FORCE:
|
||||||
|
|
||||||
|
# Descending
|
||||||
|
# ---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
PHONY += $(subdir-ym)
|
||||||
|
$(subdir-ym):
|
||||||
|
$(Q)$(MAKE) $(modbuiltin)=$@
|
||||||
|
|
||||||
|
|
||||||
|
# Declare the contents of the .PHONY variable as phony. We keep that
|
||||||
|
# information in a variable se we can use it in if_changed and friends.
|
||||||
|
|
||||||
|
.PHONY: $(PHONY)
|
|
@ -16,15 +16,15 @@
|
||||||
* tells make when to remake a file.
|
* tells make when to remake a file.
|
||||||
*
|
*
|
||||||
* To use this list as-is however has the drawback that virtually
|
* To use this list as-is however has the drawback that virtually
|
||||||
* every file in the kernel includes <linux/autoconf.h>.
|
* every file in the kernel includes autoconf.h.
|
||||||
*
|
*
|
||||||
* If the user re-runs make *config, linux/autoconf.h will be
|
* If the user re-runs make *config, autoconf.h will be
|
||||||
* regenerated. make notices that and will rebuild every file which
|
* regenerated. make notices that and will rebuild every file which
|
||||||
* includes autoconf.h, i.e. basically all files. This is extremely
|
* includes autoconf.h, i.e. basically all files. This is extremely
|
||||||
* annoying if the user just changed CONFIG_HIS_DRIVER from n to m.
|
* annoying if the user just changed CONFIG_HIS_DRIVER from n to m.
|
||||||
*
|
*
|
||||||
* So we play the same trick that "mkdep" played before. We replace
|
* So we play the same trick that "mkdep" played before. We replace
|
||||||
* the dependency on linux/autoconf.h by a dependency on every config
|
* the dependency on autoconf.h by a dependency on every config
|
||||||
* option which is mentioned in any of the listed prequisites.
|
* option which is mentioned in any of the listed prequisites.
|
||||||
*
|
*
|
||||||
* kconfig populates a tree in include/config/ with an empty file
|
* kconfig populates a tree in include/config/ with an empty file
|
||||||
|
@ -73,7 +73,7 @@
|
||||||
* cmd_<target> = <cmdline>
|
* cmd_<target> = <cmdline>
|
||||||
*
|
*
|
||||||
* and then basically copies the .<target>.d file to stdout, in the
|
* and then basically copies the .<target>.d file to stdout, in the
|
||||||
* process filtering out the dependency on linux/autoconf.h and adding
|
* process filtering out the dependency on autoconf.h and adding
|
||||||
* dependencies on include/config/my/option.h for every
|
* dependencies on include/config/my/option.h for every
|
||||||
* CONFIG_MY_OPTION encountered in any of the prequisites.
|
* CONFIG_MY_OPTION encountered in any of the prequisites.
|
||||||
*
|
*
|
||||||
|
@ -324,7 +324,7 @@ static void parse_dep_file(void *map, size_t len)
|
||||||
p++;
|
p++;
|
||||||
}
|
}
|
||||||
memcpy(s, m, p-m); s[p-m] = 0;
|
memcpy(s, m, p-m); s[p-m] = 0;
|
||||||
if (strrcmp(s, "include/linux/autoconf.h") &&
|
if (strrcmp(s, "include/generated/autoconf.h") &&
|
||||||
strrcmp(s, "arch/um/include/uml-config.h") &&
|
strrcmp(s, "arch/um/include/uml-config.h") &&
|
||||||
strrcmp(s, ".ver")) {
|
strrcmp(s, ".ver")) {
|
||||||
printf(" %s \\\n", s);
|
printf(" %s \\\n", s);
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* ANSI-C code produced by gperf version 3.0.3 */
|
/* ANSI-C code produced by gperf version 3.0.4 */
|
||||||
/* Command-line: gperf -L ANSI-C -a -C -E -g -H is_reserved_hash -k '1,3,$' -N is_reserved_word -p -t scripts/genksyms/keywords.gperf */
|
/* Command-line: gperf -L ANSI-C -a -C -E -g -H is_reserved_hash -k '1,3,$' -N is_reserved_word -p -t scripts/genksyms/keywords.gperf */
|
||||||
|
|
||||||
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
|
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
|
||||||
|
@ -34,7 +34,7 @@ struct resword;
|
||||||
static const struct resword *is_reserved_word(register const char *str, register unsigned int len);
|
static const struct resword *is_reserved_word(register const char *str, register unsigned int len);
|
||||||
#line 5 "scripts/genksyms/keywords.gperf"
|
#line 5 "scripts/genksyms/keywords.gperf"
|
||||||
struct resword { const char *name; int token; };
|
struct resword { const char *name; int token; };
|
||||||
/* maximum key range = 62, duplicates = 0 */
|
/* maximum key range = 64, duplicates = 0 */
|
||||||
|
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
__inline
|
__inline
|
||||||
|
@ -48,39 +48,39 @@ is_reserved_hash (register const char *str, register unsigned int len)
|
||||||
{
|
{
|
||||||
static const unsigned char asso_values[] =
|
static const unsigned char asso_values[] =
|
||||||
{
|
{
|
||||||
65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
|
67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
|
||||||
65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
|
67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
|
||||||
65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
|
67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
|
||||||
65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
|
67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
|
||||||
65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
|
67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
|
||||||
65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
|
67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
|
||||||
65, 65, 65, 65, 65, 65, 65, 65, 65, 5,
|
67, 67, 67, 67, 67, 67, 67, 67, 67, 0,
|
||||||
65, 65, 65, 65, 65, 65, 35, 65, 65, 65,
|
67, 67, 67, 67, 67, 67, 15, 67, 67, 67,
|
||||||
0, 65, 65, 65, 65, 65, 65, 65, 65, 65,
|
0, 67, 67, 67, 67, 67, 67, 67, 67, 67,
|
||||||
65, 65, 65, 65, 65, 0, 65, 0, 65, 5,
|
67, 67, 67, 67, 67, 0, 67, 0, 67, 5,
|
||||||
20, 15, 10, 30, 65, 15, 65, 65, 20, 0,
|
25, 20, 15, 30, 67, 15, 67, 67, 10, 0,
|
||||||
10, 35, 20, 65, 10, 5, 0, 10, 5, 65,
|
10, 40, 20, 67, 10, 5, 0, 10, 15, 67,
|
||||||
65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
|
67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
|
||||||
65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
|
67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
|
||||||
65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
|
67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
|
||||||
65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
|
67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
|
||||||
65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
|
67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
|
||||||
65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
|
67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
|
||||||
65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
|
67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
|
||||||
65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
|
67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
|
||||||
65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
|
67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
|
||||||
65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
|
67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
|
||||||
65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
|
67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
|
||||||
65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
|
67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
|
||||||
65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
|
67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
|
||||||
65, 65, 65, 65, 65, 65
|
67, 67, 67, 67, 67, 67
|
||||||
};
|
};
|
||||||
return len + asso_values[(unsigned char)str[2]] + asso_values[(unsigned char)str[0]] + asso_values[(unsigned char)str[len - 1]];
|
return len + asso_values[(unsigned char)str[2]] + asso_values[(unsigned char)str[0]] + asso_values[(unsigned char)str[len - 1]];
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
__inline
|
__inline
|
||||||
#ifdef __GNUC_STDC_INLINE__
|
#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
|
||||||
__attribute__ ((__gnu_inline__))
|
__attribute__ ((__gnu_inline__))
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
@ -89,116 +89,119 @@ is_reserved_word (register const char *str, register unsigned int len)
|
||||||
{
|
{
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
TOTAL_KEYWORDS = 43,
|
TOTAL_KEYWORDS = 45,
|
||||||
MIN_WORD_LENGTH = 3,
|
MIN_WORD_LENGTH = 3,
|
||||||
MAX_WORD_LENGTH = 24,
|
MAX_WORD_LENGTH = 24,
|
||||||
MIN_HASH_VALUE = 3,
|
MIN_HASH_VALUE = 3,
|
||||||
MAX_HASH_VALUE = 64
|
MAX_HASH_VALUE = 66
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct resword wordlist[] =
|
static const struct resword wordlist[] =
|
||||||
{
|
{
|
||||||
{""}, {""}, {""},
|
{""}, {""}, {""},
|
||||||
#line 28 "scripts/genksyms/keywords.gperf"
|
#line 30 "scripts/genksyms/keywords.gperf"
|
||||||
{"asm", ASM_KEYW},
|
{"asm", ASM_KEYW},
|
||||||
{""},
|
{""},
|
||||||
#line 10 "scripts/genksyms/keywords.gperf"
|
#line 12 "scripts/genksyms/keywords.gperf"
|
||||||
{"__asm", ASM_KEYW},
|
{"__asm", ASM_KEYW},
|
||||||
{""},
|
{""},
|
||||||
#line 11 "scripts/genksyms/keywords.gperf"
|
#line 13 "scripts/genksyms/keywords.gperf"
|
||||||
{"__asm__", ASM_KEYW},
|
{"__asm__", ASM_KEYW},
|
||||||
{""}, {""},
|
{""}, {""},
|
||||||
#line 54 "scripts/genksyms/keywords.gperf"
|
#line 56 "scripts/genksyms/keywords.gperf"
|
||||||
{"__typeof__", TYPEOF_KEYW},
|
{"__typeof__", TYPEOF_KEYW},
|
||||||
{""},
|
{""},
|
||||||
#line 14 "scripts/genksyms/keywords.gperf"
|
|
||||||
{"__const", CONST_KEYW},
|
|
||||||
#line 13 "scripts/genksyms/keywords.gperf"
|
|
||||||
{"__attribute__", ATTRIBUTE_KEYW},
|
|
||||||
#line 15 "scripts/genksyms/keywords.gperf"
|
|
||||||
{"__const__", CONST_KEYW},
|
|
||||||
#line 20 "scripts/genksyms/keywords.gperf"
|
|
||||||
{"__signed__", SIGNED_KEYW},
|
|
||||||
#line 46 "scripts/genksyms/keywords.gperf"
|
|
||||||
{"static", STATIC_KEYW},
|
|
||||||
#line 22 "scripts/genksyms/keywords.gperf"
|
|
||||||
{"__volatile__", VOLATILE_KEYW},
|
|
||||||
#line 41 "scripts/genksyms/keywords.gperf"
|
|
||||||
{"int", INT_KEYW},
|
|
||||||
#line 34 "scripts/genksyms/keywords.gperf"
|
|
||||||
{"char", CHAR_KEYW},
|
|
||||||
#line 35 "scripts/genksyms/keywords.gperf"
|
|
||||||
{"const", CONST_KEYW},
|
|
||||||
#line 47 "scripts/genksyms/keywords.gperf"
|
|
||||||
{"struct", STRUCT_KEYW},
|
|
||||||
#line 26 "scripts/genksyms/keywords.gperf"
|
|
||||||
{"__restrict__", RESTRICT_KEYW},
|
|
||||||
#line 27 "scripts/genksyms/keywords.gperf"
|
|
||||||
{"restrict", RESTRICT_KEYW},
|
|
||||||
#line 25 "scripts/genksyms/keywords.gperf"
|
|
||||||
{"_restrict", RESTRICT_KEYW},
|
|
||||||
#line 18 "scripts/genksyms/keywords.gperf"
|
|
||||||
{"__inline__", INLINE_KEYW},
|
|
||||||
#line 12 "scripts/genksyms/keywords.gperf"
|
|
||||||
{"__attribute", ATTRIBUTE_KEYW},
|
|
||||||
{""},
|
|
||||||
#line 16 "scripts/genksyms/keywords.gperf"
|
#line 16 "scripts/genksyms/keywords.gperf"
|
||||||
{"__extension__", EXTENSION_KEYW},
|
{"__const", CONST_KEYW},
|
||||||
#line 37 "scripts/genksyms/keywords.gperf"
|
#line 15 "scripts/genksyms/keywords.gperf"
|
||||||
{"enum", ENUM_KEYW},
|
{"__attribute__", ATTRIBUTE_KEYW},
|
||||||
#line 21 "scripts/genksyms/keywords.gperf"
|
#line 17 "scripts/genksyms/keywords.gperf"
|
||||||
{"__volatile", VOLATILE_KEYW},
|
{"__const__", CONST_KEYW},
|
||||||
#line 38 "scripts/genksyms/keywords.gperf"
|
#line 22 "scripts/genksyms/keywords.gperf"
|
||||||
{"extern", EXTERN_KEYW},
|
{"__signed__", SIGNED_KEYW},
|
||||||
|
#line 48 "scripts/genksyms/keywords.gperf"
|
||||||
|
{"static", STATIC_KEYW},
|
||||||
{""},
|
{""},
|
||||||
#line 19 "scripts/genksyms/keywords.gperf"
|
#line 43 "scripts/genksyms/keywords.gperf"
|
||||||
{"__signed", SIGNED_KEYW},
|
{"int", INT_KEYW},
|
||||||
|
#line 36 "scripts/genksyms/keywords.gperf"
|
||||||
|
{"char", CHAR_KEYW},
|
||||||
|
#line 37 "scripts/genksyms/keywords.gperf"
|
||||||
|
{"const", CONST_KEYW},
|
||||||
|
#line 49 "scripts/genksyms/keywords.gperf"
|
||||||
|
{"struct", STRUCT_KEYW},
|
||||||
|
#line 28 "scripts/genksyms/keywords.gperf"
|
||||||
|
{"__restrict__", RESTRICT_KEYW},
|
||||||
|
#line 29 "scripts/genksyms/keywords.gperf"
|
||||||
|
{"restrict", RESTRICT_KEYW},
|
||||||
#line 9 "scripts/genksyms/keywords.gperf"
|
#line 9 "scripts/genksyms/keywords.gperf"
|
||||||
{"EXPORT_SYMBOL_GPL_FUTURE", EXPORT_SYMBOL_KEYW},
|
{"EXPORT_SYMBOL_GPL_FUTURE", EXPORT_SYMBOL_KEYW},
|
||||||
{""},
|
#line 20 "scripts/genksyms/keywords.gperf"
|
||||||
#line 53 "scripts/genksyms/keywords.gperf"
|
{"__inline__", INLINE_KEYW},
|
||||||
{"typeof", TYPEOF_KEYW},
|
|
||||||
#line 48 "scripts/genksyms/keywords.gperf"
|
|
||||||
{"typedef", TYPEDEF_KEYW},
|
|
||||||
#line 17 "scripts/genksyms/keywords.gperf"
|
|
||||||
{"__inline", INLINE_KEYW},
|
|
||||||
#line 33 "scripts/genksyms/keywords.gperf"
|
|
||||||
{"auto", AUTO_KEYW},
|
|
||||||
#line 49 "scripts/genksyms/keywords.gperf"
|
|
||||||
{"union", UNION_KEYW},
|
|
||||||
{""}, {""},
|
|
||||||
#line 50 "scripts/genksyms/keywords.gperf"
|
|
||||||
{"unsigned", UNSIGNED_KEYW},
|
|
||||||
#line 51 "scripts/genksyms/keywords.gperf"
|
|
||||||
{"void", VOID_KEYW},
|
|
||||||
#line 44 "scripts/genksyms/keywords.gperf"
|
|
||||||
{"short", SHORT_KEYW},
|
|
||||||
{""}, {""},
|
|
||||||
#line 52 "scripts/genksyms/keywords.gperf"
|
|
||||||
{"volatile", VOLATILE_KEYW},
|
|
||||||
{""},
|
|
||||||
#line 39 "scripts/genksyms/keywords.gperf"
|
|
||||||
{"float", FLOAT_KEYW},
|
|
||||||
#line 36 "scripts/genksyms/keywords.gperf"
|
|
||||||
{"double", DOUBLE_KEYW},
|
|
||||||
{""},
|
|
||||||
#line 7 "scripts/genksyms/keywords.gperf"
|
|
||||||
{"EXPORT_SYMBOL", EXPORT_SYMBOL_KEYW},
|
|
||||||
{""}, {""},
|
|
||||||
#line 40 "scripts/genksyms/keywords.gperf"
|
|
||||||
{"inline", INLINE_KEYW},
|
|
||||||
#line 8 "scripts/genksyms/keywords.gperf"
|
|
||||||
{"EXPORT_SYMBOL_GPL", EXPORT_SYMBOL_KEYW},
|
|
||||||
#line 43 "scripts/genksyms/keywords.gperf"
|
|
||||||
{"register", REGISTER_KEYW},
|
|
||||||
{""},
|
{""},
|
||||||
#line 24 "scripts/genksyms/keywords.gperf"
|
#line 24 "scripts/genksyms/keywords.gperf"
|
||||||
{"_Bool", BOOL_KEYW},
|
{"__volatile__", VOLATILE_KEYW},
|
||||||
#line 45 "scripts/genksyms/keywords.gperf"
|
#line 7 "scripts/genksyms/keywords.gperf"
|
||||||
{"signed", SIGNED_KEYW},
|
{"EXPORT_SYMBOL", EXPORT_SYMBOL_KEYW},
|
||||||
|
#line 27 "scripts/genksyms/keywords.gperf"
|
||||||
|
{"_restrict", RESTRICT_KEYW},
|
||||||
|
{""},
|
||||||
|
#line 14 "scripts/genksyms/keywords.gperf"
|
||||||
|
{"__attribute", ATTRIBUTE_KEYW},
|
||||||
|
#line 8 "scripts/genksyms/keywords.gperf"
|
||||||
|
{"EXPORT_SYMBOL_GPL", EXPORT_SYMBOL_KEYW},
|
||||||
|
#line 18 "scripts/genksyms/keywords.gperf"
|
||||||
|
{"__extension__", EXTENSION_KEYW},
|
||||||
|
#line 39 "scripts/genksyms/keywords.gperf"
|
||||||
|
{"enum", ENUM_KEYW},
|
||||||
|
#line 10 "scripts/genksyms/keywords.gperf"
|
||||||
|
{"EXPORT_UNUSED_SYMBOL", EXPORT_SYMBOL_KEYW},
|
||||||
|
#line 40 "scripts/genksyms/keywords.gperf"
|
||||||
|
{"extern", EXTERN_KEYW},
|
||||||
|
{""},
|
||||||
|
#line 21 "scripts/genksyms/keywords.gperf"
|
||||||
|
{"__signed", SIGNED_KEYW},
|
||||||
|
#line 11 "scripts/genksyms/keywords.gperf"
|
||||||
|
{"EXPORT_UNUSED_SYMBOL_GPL", EXPORT_SYMBOL_KEYW},
|
||||||
|
#line 51 "scripts/genksyms/keywords.gperf"
|
||||||
|
{"union", UNION_KEYW},
|
||||||
|
#line 55 "scripts/genksyms/keywords.gperf"
|
||||||
|
{"typeof", TYPEOF_KEYW},
|
||||||
|
#line 50 "scripts/genksyms/keywords.gperf"
|
||||||
|
{"typedef", TYPEDEF_KEYW},
|
||||||
|
#line 19 "scripts/genksyms/keywords.gperf"
|
||||||
|
{"__inline", INLINE_KEYW},
|
||||||
|
#line 35 "scripts/genksyms/keywords.gperf"
|
||||||
|
{"auto", AUTO_KEYW},
|
||||||
|
#line 23 "scripts/genksyms/keywords.gperf"
|
||||||
|
{"__volatile", VOLATILE_KEYW},
|
||||||
{""}, {""},
|
{""}, {""},
|
||||||
|
#line 52 "scripts/genksyms/keywords.gperf"
|
||||||
|
{"unsigned", UNSIGNED_KEYW},
|
||||||
|
{""},
|
||||||
|
#line 46 "scripts/genksyms/keywords.gperf"
|
||||||
|
{"short", SHORT_KEYW},
|
||||||
#line 42 "scripts/genksyms/keywords.gperf"
|
#line 42 "scripts/genksyms/keywords.gperf"
|
||||||
{"long", LONG_KEYW}
|
{"inline", INLINE_KEYW},
|
||||||
|
{""},
|
||||||
|
#line 54 "scripts/genksyms/keywords.gperf"
|
||||||
|
{"volatile", VOLATILE_KEYW},
|
||||||
|
#line 44 "scripts/genksyms/keywords.gperf"
|
||||||
|
{"long", LONG_KEYW},
|
||||||
|
#line 26 "scripts/genksyms/keywords.gperf"
|
||||||
|
{"_Bool", BOOL_KEYW},
|
||||||
|
{""}, {""},
|
||||||
|
#line 45 "scripts/genksyms/keywords.gperf"
|
||||||
|
{"register", REGISTER_KEYW},
|
||||||
|
#line 53 "scripts/genksyms/keywords.gperf"
|
||||||
|
{"void", VOID_KEYW},
|
||||||
|
#line 41 "scripts/genksyms/keywords.gperf"
|
||||||
|
{"float", FLOAT_KEYW},
|
||||||
|
#line 38 "scripts/genksyms/keywords.gperf"
|
||||||
|
{"double", DOUBLE_KEYW},
|
||||||
|
{""}, {""}, {""}, {""},
|
||||||
|
#line 47 "scripts/genksyms/keywords.gperf"
|
||||||
|
{"signed", SIGNED_KEYW}
|
||||||
};
|
};
|
||||||
|
|
||||||
if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
|
if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
|
||||||
|
|
|
@ -7,6 +7,8 @@ struct resword { const char *name; int token; }
|
||||||
EXPORT_SYMBOL, EXPORT_SYMBOL_KEYW
|
EXPORT_SYMBOL, EXPORT_SYMBOL_KEYW
|
||||||
EXPORT_SYMBOL_GPL, EXPORT_SYMBOL_KEYW
|
EXPORT_SYMBOL_GPL, EXPORT_SYMBOL_KEYW
|
||||||
EXPORT_SYMBOL_GPL_FUTURE, EXPORT_SYMBOL_KEYW
|
EXPORT_SYMBOL_GPL_FUTURE, EXPORT_SYMBOL_KEYW
|
||||||
|
EXPORT_UNUSED_SYMBOL, EXPORT_SYMBOL_KEYW
|
||||||
|
EXPORT_UNUSED_SYMBOL_GPL, EXPORT_SYMBOL_KEYW
|
||||||
__asm, ASM_KEYW
|
__asm, ASM_KEYW
|
||||||
__asm__, ASM_KEYW
|
__asm__, ASM_KEYW
|
||||||
__attribute, ATTRIBUTE_KEYW
|
__attribute, ATTRIBUTE_KEYW
|
||||||
|
|
|
@ -8,8 +8,6 @@ do_command()
|
||||||
{
|
{
|
||||||
if [ -f ${srctree}/arch/$2/include/asm/Kbuild ]; then
|
if [ -f ${srctree}/arch/$2/include/asm/Kbuild ]; then
|
||||||
make ARCH=$2 KBUILD_HEADERS=$1 headers_$1
|
make ARCH=$2 KBUILD_HEADERS=$1 headers_$1
|
||||||
elif [ -f ${srctree}/include/asm-$2/Kbuild ]; then
|
|
||||||
make ARCH=$2 KBUILD_HEADERS=$1 headers_$1
|
|
||||||
else
|
else
|
||||||
printf "Ignoring arch: %s\n" ${arch}
|
printf "Ignoring arch: %s\n" ${arch}
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -27,6 +27,7 @@ oldconfig: $(obj)/conf
|
||||||
$< -o $(Kconfig)
|
$< -o $(Kconfig)
|
||||||
|
|
||||||
silentoldconfig: $(obj)/conf
|
silentoldconfig: $(obj)/conf
|
||||||
|
$(Q)mkdir -p include/generated
|
||||||
$< -s $(Kconfig)
|
$< -s $(Kconfig)
|
||||||
|
|
||||||
localmodconfig: $(obj)/streamline_config.pl $(obj)/conf
|
localmodconfig: $(obj)/streamline_config.pl $(obj)/conf
|
||||||
|
|
|
@ -677,7 +677,7 @@ int conf_write_autoconf(void)
|
||||||
struct symbol *sym;
|
struct symbol *sym;
|
||||||
const char *str;
|
const char *str;
|
||||||
const char *name;
|
const char *name;
|
||||||
FILE *out, *out_h;
|
FILE *out, *tristate, *out_h;
|
||||||
time_t now;
|
time_t now;
|
||||||
int i, l;
|
int i, l;
|
||||||
|
|
||||||
|
@ -692,9 +692,16 @@ int conf_write_autoconf(void)
|
||||||
if (!out)
|
if (!out)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
|
tristate = fopen(".tmpconfig_tristate", "w");
|
||||||
|
if (!tristate) {
|
||||||
|
fclose(out);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
out_h = fopen(".tmpconfig.h", "w");
|
out_h = fopen(".tmpconfig.h", "w");
|
||||||
if (!out_h) {
|
if (!out_h) {
|
||||||
fclose(out);
|
fclose(out);
|
||||||
|
fclose(tristate);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -707,6 +714,9 @@ int conf_write_autoconf(void)
|
||||||
"# %s"
|
"# %s"
|
||||||
"#\n",
|
"#\n",
|
||||||
sym_get_string_value(sym), ctime(&now));
|
sym_get_string_value(sym), ctime(&now));
|
||||||
|
fprintf(tristate, "#\n"
|
||||||
|
"# Automatically generated - do not edit\n"
|
||||||
|
"\n");
|
||||||
fprintf(out_h, "/*\n"
|
fprintf(out_h, "/*\n"
|
||||||
" * Automatically generated C config: don't edit\n"
|
" * Automatically generated C config: don't edit\n"
|
||||||
" * Linux kernel version: %s\n"
|
" * Linux kernel version: %s\n"
|
||||||
|
@ -727,10 +737,14 @@ int conf_write_autoconf(void)
|
||||||
break;
|
break;
|
||||||
case mod:
|
case mod:
|
||||||
fprintf(out, "CONFIG_%s=m\n", sym->name);
|
fprintf(out, "CONFIG_%s=m\n", sym->name);
|
||||||
|
fprintf(tristate, "CONFIG_%s=M\n", sym->name);
|
||||||
fprintf(out_h, "#define CONFIG_%s_MODULE 1\n", sym->name);
|
fprintf(out_h, "#define CONFIG_%s_MODULE 1\n", sym->name);
|
||||||
break;
|
break;
|
||||||
case yes:
|
case yes:
|
||||||
fprintf(out, "CONFIG_%s=y\n", sym->name);
|
fprintf(out, "CONFIG_%s=y\n", sym->name);
|
||||||
|
if (sym->type == S_TRISTATE)
|
||||||
|
fprintf(tristate, "CONFIG_%s=Y\n",
|
||||||
|
sym->name);
|
||||||
fprintf(out_h, "#define CONFIG_%s 1\n", sym->name);
|
fprintf(out_h, "#define CONFIG_%s 1\n", sym->name);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -772,13 +786,19 @@ int conf_write_autoconf(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fclose(out);
|
fclose(out);
|
||||||
|
fclose(tristate);
|
||||||
fclose(out_h);
|
fclose(out_h);
|
||||||
|
|
||||||
name = getenv("KCONFIG_AUTOHEADER");
|
name = getenv("KCONFIG_AUTOHEADER");
|
||||||
if (!name)
|
if (!name)
|
||||||
name = "include/linux/autoconf.h";
|
name = "include/generated/autoconf.h";
|
||||||
if (rename(".tmpconfig.h", name))
|
if (rename(".tmpconfig.h", name))
|
||||||
return 1;
|
return 1;
|
||||||
|
name = getenv("KCONFIG_TRISTATE");
|
||||||
|
if (!name)
|
||||||
|
name = "include/config/tristate.conf";
|
||||||
|
if (rename(".tmpconfig_tristate", name))
|
||||||
|
return 1;
|
||||||
name = conf_get_autoconfig_name();
|
name = conf_get_autoconfig_name();
|
||||||
/*
|
/*
|
||||||
* This must be the last step, kbuild has a dependency on auto.conf
|
* This must be the last step, kbuild has a dependency on auto.conf
|
||||||
|
|
|
@ -14,7 +14,7 @@ vecho() { [ "${quiet}" = "silent_" ] || echo "$@" ; }
|
||||||
# So "sudo make install" won't change the "compiled by <user>"
|
# So "sudo make install" won't change the "compiled by <user>"
|
||||||
# do "compiled by root"
|
# do "compiled by root"
|
||||||
|
|
||||||
if [ -r $TARGET -a ! -O include/linux/autoconf.h ]; then
|
if [ -r $TARGET -a ! -O include/generated/autoconf.h ]; then
|
||||||
vecho " SKIPPED $TARGET"
|
vecho " SKIPPED $TARGET"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include "modpost.h"
|
#include "modpost.h"
|
||||||
#include "../../include/linux/autoconf.h"
|
#include "../../include/generated/autoconf.h"
|
||||||
#include "../../include/linux/license.h"
|
#include "../../include/linux/license.h"
|
||||||
|
|
||||||
/* Some toolchains use a `_' prefix for all user symbols. */
|
/* Some toolchains use a `_' prefix for all user symbols. */
|
||||||
|
|
|
@ -77,9 +77,27 @@ clean-files += $(objtree)/binkernel.spec
|
||||||
|
|
||||||
# Deb target
|
# Deb target
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
|
quiet_cmd_builddeb = BUILDDEB
|
||||||
|
cmd_builddeb = set -e; \
|
||||||
|
test `id -u` = 0 || \
|
||||||
|
test -n "$(KBUILD_PKG_ROOTCMD)" || { \
|
||||||
|
which fakeroot >/dev/null 2>&1 && \
|
||||||
|
KBUILD_PKG_ROOTCMD="fakeroot -u"; \
|
||||||
|
} || { \
|
||||||
|
echo; \
|
||||||
|
echo "builddeb must be run as root (or using fakeroot)."; \
|
||||||
|
echo "KBUILD_PKG_ROOTCMD is unset and fakeroot not found."; \
|
||||||
|
echo "Try setting KBUILD_PKG_ROOTCMD to a command to acquire"; \
|
||||||
|
echo "root privileges (e.g., 'fakeroot -u' or 'sudo')."; \
|
||||||
|
false; \
|
||||||
|
} && \
|
||||||
|
\
|
||||||
|
$$KBUILD_PKG_ROOTCMD $(CONFIG_SHELL) \
|
||||||
|
$(srctree)/scripts/package/builddeb
|
||||||
|
|
||||||
deb-pkg: FORCE
|
deb-pkg: FORCE
|
||||||
$(MAKE) KBUILD_SRC=
|
$(MAKE) KBUILD_SRC=
|
||||||
$(CONFIG_SHELL) $(srctree)/scripts/package/builddeb
|
$(call cmd,builddeb)
|
||||||
|
|
||||||
clean-dirs += $(objtree)/debian/
|
clean-dirs += $(objtree)/debian/
|
||||||
|
|
||||||
|
|
|
@ -101,7 +101,11 @@ esac
|
||||||
#
|
#
|
||||||
(
|
(
|
||||||
cd "${tmpdir}"
|
cd "${tmpdir}"
|
||||||
tar cf - . | ${compress} > "${tarball}${file_ext}"
|
opts=
|
||||||
|
if tar --owner=root --group=root --help >/dev/null 2>&1; then
|
||||||
|
opts="--owner=root --group=root"
|
||||||
|
fi
|
||||||
|
tar cf - . $opts | ${compress} > "${tarball}${file_ext}"
|
||||||
)
|
)
|
||||||
|
|
||||||
echo "Tarball successfully created in ${tarball}${file_ext}"
|
echo "Tarball successfully created in ${tarball}${file_ext}"
|
||||||
|
|
|
@ -89,7 +89,13 @@ all_defconfigs()
|
||||||
|
|
||||||
docscope()
|
docscope()
|
||||||
{
|
{
|
||||||
(echo \-k; echo \-q; all_sources) > cscope.files
|
# always use absolute paths for cscope, as recommended by cscope
|
||||||
|
# upstream
|
||||||
|
case "$tree" in
|
||||||
|
/*) ;;
|
||||||
|
*) tree=$PWD/$tree ;;
|
||||||
|
esac
|
||||||
|
(cd /; echo \-k; echo \-q; all_sources) > cscope.files
|
||||||
cscope -b -f cscope.out
|
cscope -b -f cscope.out
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2002 - 2005 Tony Finch <dot@dotat.at>. All rights reserved.
|
* Copyright (c) 2002 - 2009 Tony Finch <dot@dotat.at>
|
||||||
*
|
|
||||||
* This code is derived from software contributed to Berkeley by Dave Yost.
|
|
||||||
* It was rewritten to support ANSI C by Tony Finch. The original version of
|
|
||||||
* unifdef carried the following copyright notice. None of its code remains
|
|
||||||
* in this version (though some of the names remain).
|
|
||||||
*
|
|
||||||
* Copyright (c) 1985, 1993
|
|
||||||
* The Regents of the University of California. All rights reserved.
|
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions
|
* modification, are permitted provided that the following conditions
|
||||||
|
@ -31,23 +23,20 @@
|
||||||
* SUCH DAMAGE.
|
* SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
/*
|
||||||
|
* This code was derived from software contributed to Berkeley by Dave Yost.
|
||||||
|
* It was rewritten to support ANSI C by Tony Finch. The original version
|
||||||
|
* of unifdef carried the 4-clause BSD copyright licence. None of its code
|
||||||
|
* remains in this version (though some of the names remain) so it now
|
||||||
|
* carries a more liberal licence.
|
||||||
|
*
|
||||||
|
* The latest version is available from http://dotat.at/prog/unifdef
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef lint
|
static const char * const copyright[] = {
|
||||||
#if 0
|
"@(#) Copyright (c) 2002 - 2009 Tony Finch <dot@dotat.at>\n",
|
||||||
static const char copyright[] =
|
"$dotat: unifdef/unifdef.c,v 1.190 2009/11/27 17:21:26 fanf2 Exp $",
|
||||||
"@(#) Copyright (c) 1985, 1993\n\
|
};
|
||||||
The Regents of the University of California. All rights reserved.\n";
|
|
||||||
#endif
|
|
||||||
#ifdef __IDSTRING
|
|
||||||
__IDSTRING(Berkeley, "@(#)unifdef.c 8.1 (Berkeley) 6/6/93");
|
|
||||||
__IDSTRING(NetBSD, "$NetBSD: unifdef.c,v 1.8 2000/07/03 02:51:36 matt Exp $");
|
|
||||||
__IDSTRING(dotat, "$dotat: things/unifdef.c,v 1.171 2005/03/08 12:38:48 fanf2 Exp $");
|
|
||||||
#endif
|
|
||||||
#endif /* not lint */
|
|
||||||
#ifdef __FBSDID
|
|
||||||
__FBSDID("$FreeBSD: /repoman/r/ncvs/src/usr.bin/unifdef/unifdef.c,v 1.20 2005/05/21 09:55:09 ru Exp $");
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* unifdef - remove ifdef'ed lines
|
* unifdef - remove ifdef'ed lines
|
||||||
|
@ -72,8 +61,6 @@ __FBSDID("$FreeBSD: /repoman/r/ncvs/src/usr.bin/unifdef/unifdef.c,v 1.20 2005/05
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
size_t strlcpy(char *dst, const char *src, size_t siz);
|
|
||||||
|
|
||||||
/* types of input lines: */
|
/* types of input lines: */
|
||||||
typedef enum {
|
typedef enum {
|
||||||
LT_TRUEI, /* a true #if with ignore flag */
|
LT_TRUEI, /* a true #if with ignore flag */
|
||||||
|
@ -90,6 +77,7 @@ typedef enum {
|
||||||
LT_DODGY_LAST = LT_DODGY + LT_ENDIF,
|
LT_DODGY_LAST = LT_DODGY + LT_ENDIF,
|
||||||
LT_PLAIN, /* ordinary line */
|
LT_PLAIN, /* ordinary line */
|
||||||
LT_EOF, /* end of file */
|
LT_EOF, /* end of file */
|
||||||
|
LT_ERROR, /* unevaluable #if */
|
||||||
LT_COUNT
|
LT_COUNT
|
||||||
} Linetype;
|
} Linetype;
|
||||||
|
|
||||||
|
@ -100,7 +88,7 @@ static char const * const linetype_name[] = {
|
||||||
"DODGY IF", "DODGY TRUE", "DODGY FALSE",
|
"DODGY IF", "DODGY TRUE", "DODGY FALSE",
|
||||||
"DODGY ELIF", "DODGY ELTRUE", "DODGY ELFALSE",
|
"DODGY ELIF", "DODGY ELTRUE", "DODGY ELFALSE",
|
||||||
"DODGY ELSE", "DODGY ENDIF",
|
"DODGY ELSE", "DODGY ENDIF",
|
||||||
"PLAIN", "EOF"
|
"PLAIN", "EOF", "ERROR"
|
||||||
};
|
};
|
||||||
|
|
||||||
/* state of #if processing */
|
/* state of #if processing */
|
||||||
|
@ -168,11 +156,13 @@ static char const * const linestate_name[] = {
|
||||||
* Globals.
|
* Globals.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
static bool compblank; /* -B: compress blank lines */
|
||||||
|
static bool lnblank; /* -b: blank deleted lines */
|
||||||
static bool complement; /* -c: do the complement */
|
static bool complement; /* -c: do the complement */
|
||||||
static bool debugging; /* -d: debugging reports */
|
static bool debugging; /* -d: debugging reports */
|
||||||
static bool iocccok; /* -e: fewer IOCCC errors */
|
static bool iocccok; /* -e: fewer IOCCC errors */
|
||||||
|
static bool strictlogic; /* -K: keep ambiguous #ifs */
|
||||||
static bool killconsts; /* -k: eval constant #ifs */
|
static bool killconsts; /* -k: eval constant #ifs */
|
||||||
static bool lnblank; /* -l: blank deleted lines */
|
|
||||||
static bool lnnum; /* -n: add #line directives */
|
static bool lnnum; /* -n: add #line directives */
|
||||||
static bool symlist; /* -s: output symbol list */
|
static bool symlist; /* -s: output symbol list */
|
||||||
static bool text; /* -t: this is a text file */
|
static bool text; /* -t: this is a text file */
|
||||||
|
@ -196,7 +186,9 @@ static bool ignoring[MAXDEPTH]; /* ignore comments state */
|
||||||
static int stifline[MAXDEPTH]; /* start of current #if */
|
static int stifline[MAXDEPTH]; /* start of current #if */
|
||||||
static int depth; /* current #if nesting */
|
static int depth; /* current #if nesting */
|
||||||
static int delcount; /* count of deleted lines */
|
static int delcount; /* count of deleted lines */
|
||||||
static bool keepthis; /* don't delete constant #if */
|
static unsigned blankcount; /* count of blank lines */
|
||||||
|
static unsigned blankmax; /* maximum recent blankcount */
|
||||||
|
static bool constexpr; /* constant #if expression */
|
||||||
|
|
||||||
static int exitstat; /* program exit status */
|
static int exitstat; /* program exit status */
|
||||||
|
|
||||||
|
@ -206,13 +198,14 @@ static void done(void);
|
||||||
static void error(const char *);
|
static void error(const char *);
|
||||||
static int findsym(const char *);
|
static int findsym(const char *);
|
||||||
static void flushline(bool);
|
static void flushline(bool);
|
||||||
static Linetype get_line(void);
|
static Linetype parseline(void);
|
||||||
static Linetype ifeval(const char **);
|
static Linetype ifeval(const char **);
|
||||||
static void ignoreoff(void);
|
static void ignoreoff(void);
|
||||||
static void ignoreon(void);
|
static void ignoreon(void);
|
||||||
static void keywordedit(const char *);
|
static void keywordedit(const char *);
|
||||||
static void nest(void);
|
static void nest(void);
|
||||||
static void process(void);
|
static void process(void);
|
||||||
|
static const char *skipargs(const char *);
|
||||||
static const char *skipcomment(const char *);
|
static const char *skipcomment(const char *);
|
||||||
static const char *skipsym(const char *);
|
static const char *skipsym(const char *);
|
||||||
static void state(Ifstate);
|
static void state(Ifstate);
|
||||||
|
@ -220,7 +213,7 @@ static int strlcmp(const char *, const char *, size_t);
|
||||||
static void unnest(void);
|
static void unnest(void);
|
||||||
static void usage(void);
|
static void usage(void);
|
||||||
|
|
||||||
#define endsym(c) (!isalpha((unsigned char)c) && !isdigit((unsigned char)c) && c != '_')
|
#define endsym(c) (!isalnum((unsigned char)c) && c != '_')
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The main program.
|
* The main program.
|
||||||
|
@ -230,7 +223,7 @@ main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
int opt;
|
int opt;
|
||||||
|
|
||||||
while ((opt = getopt(argc, argv, "i:D:U:I:cdeklnst")) != -1)
|
while ((opt = getopt(argc, argv, "i:D:U:I:BbcdeKklnst")) != -1)
|
||||||
switch (opt) {
|
switch (opt) {
|
||||||
case 'i': /* treat stuff controlled by these symbols as text */
|
case 'i': /* treat stuff controlled by these symbols as text */
|
||||||
/*
|
/*
|
||||||
|
@ -255,6 +248,13 @@ main(int argc, char *argv[])
|
||||||
case 'I':
|
case 'I':
|
||||||
/* no-op for compatibility with cpp */
|
/* no-op for compatibility with cpp */
|
||||||
break;
|
break;
|
||||||
|
case 'B': /* compress blank lines around removed section */
|
||||||
|
compblank = true;
|
||||||
|
break;
|
||||||
|
case 'b': /* blank deleted lines instead of omitting them */
|
||||||
|
case 'l': /* backwards compatibility */
|
||||||
|
lnblank = true;
|
||||||
|
break;
|
||||||
case 'c': /* treat -D as -U and vice versa */
|
case 'c': /* treat -D as -U and vice versa */
|
||||||
complement = true;
|
complement = true;
|
||||||
break;
|
break;
|
||||||
|
@ -264,12 +264,12 @@ main(int argc, char *argv[])
|
||||||
case 'e': /* fewer errors from dodgy lines */
|
case 'e': /* fewer errors from dodgy lines */
|
||||||
iocccok = true;
|
iocccok = true;
|
||||||
break;
|
break;
|
||||||
|
case 'K': /* keep ambiguous #ifs */
|
||||||
|
strictlogic = true;
|
||||||
|
break;
|
||||||
case 'k': /* process constant #ifs */
|
case 'k': /* process constant #ifs */
|
||||||
killconsts = true;
|
killconsts = true;
|
||||||
break;
|
break;
|
||||||
case 'l': /* blank deleted lines instead of omitting them */
|
|
||||||
lnblank = true;
|
|
||||||
break;
|
|
||||||
case 'n': /* add #line directive after deleted lines */
|
case 'n': /* add #line directive after deleted lines */
|
||||||
lnnum = true;
|
lnnum = true;
|
||||||
break;
|
break;
|
||||||
|
@ -284,6 +284,8 @@ main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
argc -= optind;
|
argc -= optind;
|
||||||
argv += optind;
|
argv += optind;
|
||||||
|
if (compblank && lnblank)
|
||||||
|
errx(2, "-B and -b are mutually exclusive");
|
||||||
if (argc > 1) {
|
if (argc > 1) {
|
||||||
errx(2, "can only do one file");
|
errx(2, "can only do one file");
|
||||||
} else if (argc == 1 && strcmp(*argv, "-") != 0) {
|
} else if (argc == 1 && strcmp(*argv, "-") != 0) {
|
||||||
|
@ -302,7 +304,7 @@ main(int argc, char *argv[])
|
||||||
static void
|
static void
|
||||||
usage(void)
|
usage(void)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "usage: unifdef [-cdeklnst] [-Ipath]"
|
fprintf(stderr, "usage: unifdef [-BbcdeKknst] [-Ipath]"
|
||||||
" [-Dsym[=val]] [-Usym] [-iDsym[=val]] [-iUsym] ... [file]\n");
|
" [-Dsym[=val]] [-Usym] [-iDsym[=val]] [-iUsym] ... [file]\n");
|
||||||
exit(2);
|
exit(2);
|
||||||
}
|
}
|
||||||
|
@ -383,46 +385,46 @@ static state_fn * const trans_table[IS_COUNT][LT_COUNT] = {
|
||||||
/* IS_OUTSIDE */
|
/* IS_OUTSIDE */
|
||||||
{ Itrue, Ifalse,Fpass, Ftrue, Ffalse,Eelif, Eelif, Eelif, Eelse, Eendif,
|
{ Itrue, Ifalse,Fpass, Ftrue, Ffalse,Eelif, Eelif, Eelif, Eelse, Eendif,
|
||||||
Oiffy, Oiffy, Fpass, Oif, Oif, Eelif, Eelif, Eelif, Eelse, Eendif,
|
Oiffy, Oiffy, Fpass, Oif, Oif, Eelif, Eelif, Eelif, Eelse, Eendif,
|
||||||
print, done },
|
print, done, abort },
|
||||||
/* IS_FALSE_PREFIX */
|
/* IS_FALSE_PREFIX */
|
||||||
{ Idrop, Idrop, Fdrop, Fdrop, Fdrop, Mpass, Strue, Sfalse,Selse, Dendif,
|
{ Idrop, Idrop, Fdrop, Fdrop, Fdrop, Mpass, Strue, Sfalse,Selse, Dendif,
|
||||||
Idrop, Idrop, Fdrop, Fdrop, Fdrop, Mpass, Eioccc,Eioccc,Eioccc,Eioccc,
|
Idrop, Idrop, Fdrop, Fdrop, Fdrop, Mpass, Eioccc,Eioccc,Eioccc,Eioccc,
|
||||||
drop, Eeof },
|
drop, Eeof, abort },
|
||||||
/* IS_TRUE_PREFIX */
|
/* IS_TRUE_PREFIX */
|
||||||
{ Itrue, Ifalse,Fpass, Ftrue, Ffalse,Dfalse,Dfalse,Dfalse,Delse, Dendif,
|
{ Itrue, Ifalse,Fpass, Ftrue, Ffalse,Dfalse,Dfalse,Dfalse,Delse, Dendif,
|
||||||
Oiffy, Oiffy, Fpass, Oif, Oif, Eioccc,Eioccc,Eioccc,Eioccc,Eioccc,
|
Oiffy, Oiffy, Fpass, Oif, Oif, Eioccc,Eioccc,Eioccc,Eioccc,Eioccc,
|
||||||
print, Eeof },
|
print, Eeof, abort },
|
||||||
/* IS_PASS_MIDDLE */
|
/* IS_PASS_MIDDLE */
|
||||||
{ Itrue, Ifalse,Fpass, Ftrue, Ffalse,Pelif, Mtrue, Delif, Pelse, Pendif,
|
{ Itrue, Ifalse,Fpass, Ftrue, Ffalse,Pelif, Mtrue, Delif, Pelse, Pendif,
|
||||||
Oiffy, Oiffy, Fpass, Oif, Oif, Pelif, Oelif, Oelif, Pelse, Pendif,
|
Oiffy, Oiffy, Fpass, Oif, Oif, Pelif, Oelif, Oelif, Pelse, Pendif,
|
||||||
print, Eeof },
|
print, Eeof, abort },
|
||||||
/* IS_FALSE_MIDDLE */
|
/* IS_FALSE_MIDDLE */
|
||||||
{ Idrop, Idrop, Fdrop, Fdrop, Fdrop, Pelif, Mtrue, Delif, Pelse, Pendif,
|
{ Idrop, Idrop, Fdrop, Fdrop, Fdrop, Pelif, Mtrue, Delif, Pelse, Pendif,
|
||||||
Idrop, Idrop, Fdrop, Fdrop, Fdrop, Eioccc,Eioccc,Eioccc,Eioccc,Eioccc,
|
Idrop, Idrop, Fdrop, Fdrop, Fdrop, Eioccc,Eioccc,Eioccc,Eioccc,Eioccc,
|
||||||
drop, Eeof },
|
drop, Eeof, abort },
|
||||||
/* IS_TRUE_MIDDLE */
|
/* IS_TRUE_MIDDLE */
|
||||||
{ Itrue, Ifalse,Fpass, Ftrue, Ffalse,Melif, Melif, Melif, Melse, Pendif,
|
{ Itrue, Ifalse,Fpass, Ftrue, Ffalse,Melif, Melif, Melif, Melse, Pendif,
|
||||||
Oiffy, Oiffy, Fpass, Oif, Oif, Eioccc,Eioccc,Eioccc,Eioccc,Pendif,
|
Oiffy, Oiffy, Fpass, Oif, Oif, Eioccc,Eioccc,Eioccc,Eioccc,Pendif,
|
||||||
print, Eeof },
|
print, Eeof, abort },
|
||||||
/* IS_PASS_ELSE */
|
/* IS_PASS_ELSE */
|
||||||
{ Itrue, Ifalse,Fpass, Ftrue, Ffalse,Eelif, Eelif, Eelif, Eelse, Pendif,
|
{ Itrue, Ifalse,Fpass, Ftrue, Ffalse,Eelif, Eelif, Eelif, Eelse, Pendif,
|
||||||
Oiffy, Oiffy, Fpass, Oif, Oif, Eelif, Eelif, Eelif, Eelse, Pendif,
|
Oiffy, Oiffy, Fpass, Oif, Oif, Eelif, Eelif, Eelif, Eelse, Pendif,
|
||||||
print, Eeof },
|
print, Eeof, abort },
|
||||||
/* IS_FALSE_ELSE */
|
/* IS_FALSE_ELSE */
|
||||||
{ Idrop, Idrop, Fdrop, Fdrop, Fdrop, Eelif, Eelif, Eelif, Eelse, Dendif,
|
{ Idrop, Idrop, Fdrop, Fdrop, Fdrop, Eelif, Eelif, Eelif, Eelse, Dendif,
|
||||||
Idrop, Idrop, Fdrop, Fdrop, Fdrop, Eelif, Eelif, Eelif, Eelse, Eioccc,
|
Idrop, Idrop, Fdrop, Fdrop, Fdrop, Eelif, Eelif, Eelif, Eelse, Eioccc,
|
||||||
drop, Eeof },
|
drop, Eeof, abort },
|
||||||
/* IS_TRUE_ELSE */
|
/* IS_TRUE_ELSE */
|
||||||
{ Itrue, Ifalse,Fpass, Ftrue, Ffalse,Eelif, Eelif, Eelif, Eelse, Dendif,
|
{ Itrue, Ifalse,Fpass, Ftrue, Ffalse,Eelif, Eelif, Eelif, Eelse, Dendif,
|
||||||
Oiffy, Oiffy, Fpass, Oif, Oif, Eelif, Eelif, Eelif, Eelse, Eioccc,
|
Oiffy, Oiffy, Fpass, Oif, Oif, Eelif, Eelif, Eelif, Eelse, Eioccc,
|
||||||
print, Eeof },
|
print, Eeof, abort },
|
||||||
/* IS_FALSE_TRAILER */
|
/* IS_FALSE_TRAILER */
|
||||||
{ Idrop, Idrop, Fdrop, Fdrop, Fdrop, Dfalse,Dfalse,Dfalse,Delse, Dendif,
|
{ Idrop, Idrop, Fdrop, Fdrop, Fdrop, Dfalse,Dfalse,Dfalse,Delse, Dendif,
|
||||||
Idrop, Idrop, Fdrop, Fdrop, Fdrop, Dfalse,Dfalse,Dfalse,Delse, Eioccc,
|
Idrop, Idrop, Fdrop, Fdrop, Fdrop, Dfalse,Dfalse,Dfalse,Delse, Eioccc,
|
||||||
drop, Eeof }
|
drop, Eeof, abort }
|
||||||
/*TRUEI FALSEI IF TRUE FALSE ELIF ELTRUE ELFALSE ELSE ENDIF
|
/*TRUEI FALSEI IF TRUE FALSE ELIF ELTRUE ELFALSE ELSE ENDIF
|
||||||
TRUEI FALSEI IF TRUE FALSE ELIF ELTRUE ELFALSE ELSE ENDIF (DODGY)
|
TRUEI FALSEI IF TRUE FALSE ELIF ELTRUE ELFALSE ELSE ENDIF (DODGY)
|
||||||
PLAIN EOF */
|
PLAIN EOF ERROR */
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -463,9 +465,11 @@ keywordedit(const char *replacement)
|
||||||
static void
|
static void
|
||||||
nest(void)
|
nest(void)
|
||||||
{
|
{
|
||||||
depth += 1;
|
if (depth > MAXDEPTH-1)
|
||||||
if (depth >= MAXDEPTH)
|
abort(); /* bug */
|
||||||
|
if (depth == MAXDEPTH-1)
|
||||||
error("Too many levels of nesting");
|
error("Too many levels of nesting");
|
||||||
|
depth += 1;
|
||||||
stifline[depth] = linenum;
|
stifline[depth] = linenum;
|
||||||
}
|
}
|
||||||
static void
|
static void
|
||||||
|
@ -490,15 +494,23 @@ flushline(bool keep)
|
||||||
if (symlist)
|
if (symlist)
|
||||||
return;
|
return;
|
||||||
if (keep ^ complement) {
|
if (keep ^ complement) {
|
||||||
|
bool blankline = tline[strspn(tline, " \t\n")] == '\0';
|
||||||
|
if (blankline && compblank && blankcount != blankmax) {
|
||||||
|
delcount += 1;
|
||||||
|
blankcount += 1;
|
||||||
|
} else {
|
||||||
if (lnnum && delcount > 0)
|
if (lnnum && delcount > 0)
|
||||||
printf("#line %d\n", linenum);
|
printf("#line %d\n", linenum);
|
||||||
fputs(tline, stdout);
|
fputs(tline, stdout);
|
||||||
delcount = 0;
|
delcount = 0;
|
||||||
|
blankmax = blankcount = blankline ? blankcount + 1 : 0;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
if (lnblank)
|
if (lnblank)
|
||||||
putc('\n', stdout);
|
putc('\n', stdout);
|
||||||
exitstat = 1;
|
exitstat = 1;
|
||||||
delcount += 1;
|
delcount += 1;
|
||||||
|
blankcount = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -510,9 +522,12 @@ process(void)
|
||||||
{
|
{
|
||||||
Linetype lineval;
|
Linetype lineval;
|
||||||
|
|
||||||
|
/* When compressing blank lines, act as if the file
|
||||||
|
is preceded by a large number of blank lines. */
|
||||||
|
blankmax = blankcount = 1000;
|
||||||
for (;;) {
|
for (;;) {
|
||||||
linenum++;
|
linenum++;
|
||||||
lineval = get_line();
|
lineval = parseline();
|
||||||
trans_table[ifstate[depth]][lineval]();
|
trans_table[ifstate[depth]][lineval]();
|
||||||
debug("process %s -> %s depth %d",
|
debug("process %s -> %s depth %d",
|
||||||
linetype_name[lineval],
|
linetype_name[lineval],
|
||||||
|
@ -526,7 +541,7 @@ process(void)
|
||||||
* help from skipcomment().
|
* help from skipcomment().
|
||||||
*/
|
*/
|
||||||
static Linetype
|
static Linetype
|
||||||
get_line(void)
|
parseline(void)
|
||||||
{
|
{
|
||||||
const char *cp;
|
const char *cp;
|
||||||
int cursym;
|
int cursym;
|
||||||
|
@ -595,9 +610,21 @@ get_line(void)
|
||||||
if (incomment)
|
if (incomment)
|
||||||
linestate = LS_DIRTY;
|
linestate = LS_DIRTY;
|
||||||
}
|
}
|
||||||
/* skipcomment should have changed the state */
|
/* skipcomment normally changes the state, except
|
||||||
if (linestate == LS_HASH)
|
if the last line of the file lacks a newline, or
|
||||||
abort(); /* bug */
|
if there is too much whitespace in a directive */
|
||||||
|
if (linestate == LS_HASH) {
|
||||||
|
size_t len = cp - tline;
|
||||||
|
if (fgets(tline + len, MAXLINE - len, input) == NULL) {
|
||||||
|
/* append the missing newline */
|
||||||
|
tline[len+0] = '\n';
|
||||||
|
tline[len+1] = '\0';
|
||||||
|
cp++;
|
||||||
|
linestate = LS_START;
|
||||||
|
} else {
|
||||||
|
linestate = LS_DIRTY;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (linestate == LS_DIRTY) {
|
if (linestate == LS_DIRTY) {
|
||||||
while (*cp != '\0')
|
while (*cp != '\0')
|
||||||
|
@ -610,17 +637,40 @@ get_line(void)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* These are the binary operators that are supported by the expression
|
* These are the binary operators that are supported by the expression
|
||||||
* evaluator. Note that if support for division is added then we also
|
* evaluator.
|
||||||
* need short-circuiting booleans because of divide-by-zero.
|
|
||||||
*/
|
*/
|
||||||
static int op_lt(int a, int b) { return (a < b); }
|
static Linetype op_strict(int *p, int v, Linetype at, Linetype bt) {
|
||||||
static int op_gt(int a, int b) { return (a > b); }
|
if(at == LT_IF || bt == LT_IF) return (LT_IF);
|
||||||
static int op_le(int a, int b) { return (a <= b); }
|
return (*p = v, v ? LT_TRUE : LT_FALSE);
|
||||||
static int op_ge(int a, int b) { return (a >= b); }
|
}
|
||||||
static int op_eq(int a, int b) { return (a == b); }
|
static Linetype op_lt(int *p, Linetype at, int a, Linetype bt, int b) {
|
||||||
static int op_ne(int a, int b) { return (a != b); }
|
return op_strict(p, a < b, at, bt);
|
||||||
static int op_or(int a, int b) { return (a || b); }
|
}
|
||||||
static int op_and(int a, int b) { return (a && b); }
|
static Linetype op_gt(int *p, Linetype at, int a, Linetype bt, int b) {
|
||||||
|
return op_strict(p, a > b, at, bt);
|
||||||
|
}
|
||||||
|
static Linetype op_le(int *p, Linetype at, int a, Linetype bt, int b) {
|
||||||
|
return op_strict(p, a <= b, at, bt);
|
||||||
|
}
|
||||||
|
static Linetype op_ge(int *p, Linetype at, int a, Linetype bt, int b) {
|
||||||
|
return op_strict(p, a >= b, at, bt);
|
||||||
|
}
|
||||||
|
static Linetype op_eq(int *p, Linetype at, int a, Linetype bt, int b) {
|
||||||
|
return op_strict(p, a == b, at, bt);
|
||||||
|
}
|
||||||
|
static Linetype op_ne(int *p, Linetype at, int a, Linetype bt, int b) {
|
||||||
|
return op_strict(p, a != b, at, bt);
|
||||||
|
}
|
||||||
|
static Linetype op_or(int *p, Linetype at, int a, Linetype bt, int b) {
|
||||||
|
if (!strictlogic && (at == LT_TRUE || bt == LT_TRUE))
|
||||||
|
return (*p = 1, LT_TRUE);
|
||||||
|
return op_strict(p, a || b, at, bt);
|
||||||
|
}
|
||||||
|
static Linetype op_and(int *p, Linetype at, int a, Linetype bt, int b) {
|
||||||
|
if (!strictlogic && (at == LT_FALSE || bt == LT_FALSE))
|
||||||
|
return (*p = 0, LT_FALSE);
|
||||||
|
return op_strict(p, a && b, at, bt);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* An evaluation function takes three arguments, as follows: (1) a pointer to
|
* An evaluation function takes three arguments, as follows: (1) a pointer to
|
||||||
|
@ -629,8 +679,8 @@ static int op_and(int a, int b) { return (a && b); }
|
||||||
* value of the expression; and (3) a pointer to a char* that points to the
|
* value of the expression; and (3) a pointer to a char* that points to the
|
||||||
* expression to be evaluated and that is updated to the end of the expression
|
* expression to be evaluated and that is updated to the end of the expression
|
||||||
* when evaluation is complete. The function returns LT_FALSE if the value of
|
* when evaluation is complete. The function returns LT_FALSE if the value of
|
||||||
* the expression is zero, LT_TRUE if it is non-zero, or LT_IF if the
|
* the expression is zero, LT_TRUE if it is non-zero, LT_IF if the expression
|
||||||
* expression could not be evaluated.
|
* depends on an unknown symbol, or LT_ERROR if there is a parse failure.
|
||||||
*/
|
*/
|
||||||
struct ops;
|
struct ops;
|
||||||
|
|
||||||
|
@ -649,7 +699,7 @@ static const struct ops {
|
||||||
eval_fn *inner;
|
eval_fn *inner;
|
||||||
struct op {
|
struct op {
|
||||||
const char *str;
|
const char *str;
|
||||||
int (*fn)(int, int);
|
Linetype (*fn)(int *, Linetype, int, Linetype, int);
|
||||||
} op[5];
|
} op[5];
|
||||||
} eval_ops[] = {
|
} eval_ops[] = {
|
||||||
{ eval_table, { { "||", op_or } } },
|
{ eval_table, { { "||", op_or } } },
|
||||||
|
@ -664,8 +714,8 @@ static const struct ops {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Function for evaluating the innermost parts of expressions,
|
* Function for evaluating the innermost parts of expressions,
|
||||||
* viz. !expr (expr) defined(symbol) symbol number
|
* viz. !expr (expr) number defined(symbol) symbol
|
||||||
* We reset the keepthis flag when we find a non-constant subexpression.
|
* We reset the constexpr flag in the last two cases.
|
||||||
*/
|
*/
|
||||||
static Linetype
|
static Linetype
|
||||||
eval_unary(const struct ops *ops, int *valp, const char **cpp)
|
eval_unary(const struct ops *ops, int *valp, const char **cpp)
|
||||||
|
@ -673,68 +723,83 @@ eval_unary(const struct ops *ops, int *valp, const char **cpp)
|
||||||
const char *cp;
|
const char *cp;
|
||||||
char *ep;
|
char *ep;
|
||||||
int sym;
|
int sym;
|
||||||
|
bool defparen;
|
||||||
|
Linetype lt;
|
||||||
|
|
||||||
cp = skipcomment(*cpp);
|
cp = skipcomment(*cpp);
|
||||||
if (*cp == '!') {
|
if (*cp == '!') {
|
||||||
debug("eval%d !", ops - eval_ops);
|
debug("eval%d !", ops - eval_ops);
|
||||||
cp++;
|
cp++;
|
||||||
if (eval_unary(ops, valp, &cp) == LT_IF) {
|
lt = eval_unary(ops, valp, &cp);
|
||||||
*cpp = cp;
|
if (lt == LT_ERROR)
|
||||||
return (LT_IF);
|
return (LT_ERROR);
|
||||||
}
|
if (lt != LT_IF) {
|
||||||
*valp = !*valp;
|
*valp = !*valp;
|
||||||
|
lt = *valp ? LT_TRUE : LT_FALSE;
|
||||||
|
}
|
||||||
} else if (*cp == '(') {
|
} else if (*cp == '(') {
|
||||||
cp++;
|
cp++;
|
||||||
debug("eval%d (", ops - eval_ops);
|
debug("eval%d (", ops - eval_ops);
|
||||||
if (eval_table(eval_ops, valp, &cp) == LT_IF)
|
lt = eval_table(eval_ops, valp, &cp);
|
||||||
return (LT_IF);
|
if (lt == LT_ERROR)
|
||||||
|
return (LT_ERROR);
|
||||||
cp = skipcomment(cp);
|
cp = skipcomment(cp);
|
||||||
if (*cp++ != ')')
|
if (*cp++ != ')')
|
||||||
return (LT_IF);
|
return (LT_ERROR);
|
||||||
} else if (isdigit((unsigned char)*cp)) {
|
} else if (isdigit((unsigned char)*cp)) {
|
||||||
debug("eval%d number", ops - eval_ops);
|
debug("eval%d number", ops - eval_ops);
|
||||||
*valp = strtol(cp, &ep, 0);
|
*valp = strtol(cp, &ep, 0);
|
||||||
|
if (ep == cp)
|
||||||
|
return (LT_ERROR);
|
||||||
|
lt = *valp ? LT_TRUE : LT_FALSE;
|
||||||
cp = skipsym(cp);
|
cp = skipsym(cp);
|
||||||
} else if (strncmp(cp, "defined", 7) == 0 && endsym(cp[7])) {
|
} else if (strncmp(cp, "defined", 7) == 0 && endsym(cp[7])) {
|
||||||
cp = skipcomment(cp+7);
|
cp = skipcomment(cp+7);
|
||||||
debug("eval%d defined", ops - eval_ops);
|
debug("eval%d defined", ops - eval_ops);
|
||||||
if (*cp++ != '(')
|
if (*cp == '(') {
|
||||||
return (LT_IF);
|
cp = skipcomment(cp+1);
|
||||||
cp = skipcomment(cp);
|
defparen = true;
|
||||||
|
} else {
|
||||||
|
defparen = false;
|
||||||
|
}
|
||||||
sym = findsym(cp);
|
sym = findsym(cp);
|
||||||
|
if (sym < 0) {
|
||||||
|
lt = LT_IF;
|
||||||
|
} else {
|
||||||
|
*valp = (value[sym] != NULL);
|
||||||
|
lt = *valp ? LT_TRUE : LT_FALSE;
|
||||||
|
}
|
||||||
cp = skipsym(cp);
|
cp = skipsym(cp);
|
||||||
cp = skipcomment(cp);
|
cp = skipcomment(cp);
|
||||||
if (*cp++ != ')')
|
if (defparen && *cp++ != ')')
|
||||||
return (LT_IF);
|
return (LT_ERROR);
|
||||||
if (sym >= 0)
|
constexpr = false;
|
||||||
*valp = (value[sym] != NULL);
|
|
||||||
else {
|
|
||||||
*cpp = cp;
|
|
||||||
return (LT_IF);
|
|
||||||
}
|
|
||||||
keepthis = false;
|
|
||||||
} else if (!endsym(*cp)) {
|
} else if (!endsym(*cp)) {
|
||||||
debug("eval%d symbol", ops - eval_ops);
|
debug("eval%d symbol", ops - eval_ops);
|
||||||
sym = findsym(cp);
|
sym = findsym(cp);
|
||||||
if (sym < 0)
|
cp = skipsym(cp);
|
||||||
return (LT_IF);
|
if (sym < 0) {
|
||||||
if (value[sym] == NULL)
|
lt = LT_IF;
|
||||||
|
cp = skipargs(cp);
|
||||||
|
} else if (value[sym] == NULL) {
|
||||||
*valp = 0;
|
*valp = 0;
|
||||||
else {
|
lt = LT_FALSE;
|
||||||
|
} else {
|
||||||
*valp = strtol(value[sym], &ep, 0);
|
*valp = strtol(value[sym], &ep, 0);
|
||||||
if (*ep != '\0' || ep == value[sym])
|
if (*ep != '\0' || ep == value[sym])
|
||||||
return (LT_IF);
|
return (LT_ERROR);
|
||||||
|
lt = *valp ? LT_TRUE : LT_FALSE;
|
||||||
|
cp = skipargs(cp);
|
||||||
}
|
}
|
||||||
cp = skipsym(cp);
|
constexpr = false;
|
||||||
keepthis = false;
|
|
||||||
} else {
|
} else {
|
||||||
debug("eval%d bad expr", ops - eval_ops);
|
debug("eval%d bad expr", ops - eval_ops);
|
||||||
return (LT_IF);
|
return (LT_ERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
*cpp = cp;
|
*cpp = cp;
|
||||||
debug("eval%d = %d", ops - eval_ops, *valp);
|
debug("eval%d = %d", ops - eval_ops, *valp);
|
||||||
return (*valp ? LT_TRUE : LT_FALSE);
|
return (lt);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -746,11 +811,13 @@ eval_table(const struct ops *ops, int *valp, const char **cpp)
|
||||||
const struct op *op;
|
const struct op *op;
|
||||||
const char *cp;
|
const char *cp;
|
||||||
int val;
|
int val;
|
||||||
Linetype lhs, rhs;
|
Linetype lt, rt;
|
||||||
|
|
||||||
debug("eval%d", ops - eval_ops);
|
debug("eval%d", ops - eval_ops);
|
||||||
cp = *cpp;
|
cp = *cpp;
|
||||||
lhs = ops->inner(ops+1, valp, &cp);
|
lt = ops->inner(ops+1, valp, &cp);
|
||||||
|
if (lt == LT_ERROR)
|
||||||
|
return (LT_ERROR);
|
||||||
for (;;) {
|
for (;;) {
|
||||||
cp = skipcomment(cp);
|
cp = skipcomment(cp);
|
||||||
for (op = ops->op; op->str != NULL; op++)
|
for (op = ops->op; op->str != NULL; op++)
|
||||||
|
@ -760,32 +827,16 @@ eval_table(const struct ops *ops, int *valp, const char **cpp)
|
||||||
break;
|
break;
|
||||||
cp += strlen(op->str);
|
cp += strlen(op->str);
|
||||||
debug("eval%d %s", ops - eval_ops, op->str);
|
debug("eval%d %s", ops - eval_ops, op->str);
|
||||||
rhs = ops->inner(ops+1, &val, &cp);
|
rt = ops->inner(ops+1, &val, &cp);
|
||||||
if (op->fn == op_and && (lhs == LT_FALSE || rhs == LT_FALSE)) {
|
if (rt == LT_ERROR)
|
||||||
debug("eval%d: and always false", ops - eval_ops);
|
return (LT_ERROR);
|
||||||
if (lhs == LT_IF)
|
lt = op->fn(valp, lt, *valp, rt, val);
|
||||||
*valp = val;
|
|
||||||
lhs = LT_FALSE;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (op->fn == op_or && (lhs == LT_TRUE || rhs == LT_TRUE)) {
|
|
||||||
debug("eval%d: or always true", ops - eval_ops);
|
|
||||||
if (lhs == LT_IF)
|
|
||||||
*valp = val;
|
|
||||||
lhs = LT_TRUE;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (rhs == LT_IF)
|
|
||||||
lhs = LT_IF;
|
|
||||||
if (lhs != LT_IF)
|
|
||||||
*valp = op->fn(*valp, val);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
*cpp = cp;
|
*cpp = cp;
|
||||||
debug("eval%d = %d", ops - eval_ops, *valp);
|
debug("eval%d = %d", ops - eval_ops, *valp);
|
||||||
if (lhs != LT_IF)
|
debug("eval%d lt = %s", ops - eval_ops, linetype_name[lt]);
|
||||||
lhs = (*valp ? LT_TRUE : LT_FALSE);
|
return (lt);
|
||||||
return lhs;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -796,17 +847,14 @@ eval_table(const struct ops *ops, int *valp, const char **cpp)
|
||||||
static Linetype
|
static Linetype
|
||||||
ifeval(const char **cpp)
|
ifeval(const char **cpp)
|
||||||
{
|
{
|
||||||
const char *cp = *cpp;
|
|
||||||
int ret;
|
int ret;
|
||||||
int val;
|
int val = 0;
|
||||||
|
|
||||||
debug("eval %s", *cpp);
|
debug("eval %s", *cpp);
|
||||||
keepthis = killconsts ? false : true;
|
constexpr = killconsts ? false : true;
|
||||||
ret = eval_table(eval_ops, &val, &cp);
|
ret = eval_table(eval_ops, &val, cpp);
|
||||||
if (ret != LT_IF)
|
|
||||||
*cpp = cp;
|
|
||||||
debug("eval = %d", val);
|
debug("eval = %d", val);
|
||||||
return (keepthis ? LT_IF : ret);
|
return (constexpr ? LT_IF : ret == LT_ERROR ? LT_IF : ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -917,6 +965,31 @@ skipcomment(const char *cp)
|
||||||
return (cp);
|
return (cp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Skip macro arguments.
|
||||||
|
*/
|
||||||
|
static const char *
|
||||||
|
skipargs(const char *cp)
|
||||||
|
{
|
||||||
|
const char *ocp = cp;
|
||||||
|
int level = 0;
|
||||||
|
cp = skipcomment(cp);
|
||||||
|
if (*cp != '(')
|
||||||
|
return (cp);
|
||||||
|
do {
|
||||||
|
if (*cp == '(')
|
||||||
|
level++;
|
||||||
|
if (*cp == ')')
|
||||||
|
level--;
|
||||||
|
cp = skipcomment(cp+1);
|
||||||
|
} while (level != 0 && *cp != '\0');
|
||||||
|
if (level == 0)
|
||||||
|
return (cp);
|
||||||
|
else
|
||||||
|
/* Rewind and re-detect the syntax error later. */
|
||||||
|
return (ocp);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Skip over an identifier.
|
* Skip over an identifier.
|
||||||
*/
|
*/
|
||||||
|
@ -929,7 +1002,7 @@ skipsym(const char *cp)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Look for the symbol in the symbol table. If is is found, we return
|
* Look for the symbol in the symbol table. If it is found, we return
|
||||||
* the symbol table index, else we return -1.
|
* the symbol table index, else we return -1.
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
|
|
|
@ -354,7 +354,10 @@ static int cpio_mkfile(const char *name, const char *location,
|
||||||
push_pad();
|
push_pad();
|
||||||
|
|
||||||
if (size) {
|
if (size) {
|
||||||
fwrite(filebuf, size, 1, stdout);
|
if (fwrite(filebuf, size, 1, stdout) != 1) {
|
||||||
|
fprintf(stderr, "writing filebuf failed\n");
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
offset += size;
|
offset += size;
|
||||||
push_pad();
|
push_pad();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue