Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-fixes
* git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-fixes: kbuild: revert "save ARCH & CROSS_COMPILE ..." warn about use of uninstalled kernel headers kbuild: mkcompile_h: trivial cleanups kbuild: fix warning when domainname is not available kbuild: Fix size_append issue for bzip2/lzma kernel kbuild,scripts: use non-builtin echo for '-e' kbuild: fix the binrpm-pkg target to work with KBUILD_OUTPUT set
This commit is contained in:
Коммит
25d591587d
46
Makefile
46
Makefile
|
@ -179,46 +179,9 @@ SUBARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \
|
|||
# Alternatively CROSS_COMPILE can be set in the environment.
|
||||
# Default value for CROSS_COMPILE is not to prefix executables
|
||||
# Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile
|
||||
#
|
||||
# To force ARCH and CROSS_COMPILE settings include kernel.* files
|
||||
# in the kernel tree - do not patch this file.
|
||||
export KBUILD_BUILDHOST := $(SUBARCH)
|
||||
|
||||
# Kbuild save the ARCH and CROSS_COMPILE setting in kernel.* files.
|
||||
# Restore these settings and check that user did not specify
|
||||
# conflicting values.
|
||||
|
||||
saved_arch := $(shell cat include/generated/kernel.arch 2> /dev/null)
|
||||
saved_cross := $(shell cat include/generated/kernel.cross 2> /dev/null)
|
||||
|
||||
ifneq ($(CROSS_COMPILE),)
|
||||
ifneq ($(saved_cross),)
|
||||
ifneq ($(CROSS_COMPILE),$(saved_cross))
|
||||
$(error CROSS_COMPILE changed from \
|
||||
"$(saved_cross)" to \
|
||||
to "$(CROSS_COMPILE)". \
|
||||
Use "make mrproper" to fix it up)
|
||||
endif
|
||||
endif
|
||||
else
|
||||
CROSS_COMPILE := $(saved_cross)
|
||||
endif
|
||||
|
||||
ifneq ($(ARCH),)
|
||||
ifneq ($(saved_arch),)
|
||||
ifneq ($(saved_arch),$(ARCH))
|
||||
$(error ARCH changed from \
|
||||
"$(saved_arch)" to "$(ARCH)". \
|
||||
Use "make mrproper" to fix it up)
|
||||
endif
|
||||
endif
|
||||
else
|
||||
ifneq ($(saved_arch),)
|
||||
ARCH := $(saved_arch)
|
||||
else
|
||||
ARCH := $(SUBARCH)
|
||||
endif
|
||||
endif
|
||||
ARCH ?= $(SUBARCH)
|
||||
CROSS_COMPILE ?=
|
||||
|
||||
# Architecture as present in compile.h
|
||||
UTS_MACHINE := $(ARCH)
|
||||
|
@ -483,11 +446,6 @@ ifeq ($(config-targets),1)
|
|||
include $(srctree)/arch/$(SRCARCH)/Makefile
|
||||
export KBUILD_DEFCONFIG KBUILD_KCONFIG
|
||||
|
||||
# save ARCH & CROSS_COMPILE settings
|
||||
$(shell mkdir -p include/generated && \
|
||||
echo $(ARCH) > include/generated/kernel.arch && \
|
||||
echo $(CROSS_COMPILE) > include/generated/kernel.cross)
|
||||
|
||||
config: scripts_basic outputmakefile FORCE
|
||||
$(Q)mkdir -p include/linux include/config
|
||||
$(Q)$(MAKE) $(build)=scripts/kconfig $@
|
||||
|
|
|
@ -659,6 +659,12 @@ extern int do_sysinfo(struct sysinfo *info);
|
|||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#ifndef __EXPORTED_HEADERS__
|
||||
#ifndef __KERNEL__
|
||||
#warning Attempt to use kernel headers from user space, see http://kernelnewbies.org/KernelHeaders
|
||||
#endif /* __KERNEL__ */
|
||||
#endif /* __EXPORTED_HEADERS__ */
|
||||
|
||||
#define SI_LOAD_SHIFT 16
|
||||
struct sysinfo {
|
||||
long uptime; /* Seconds since boot */
|
||||
|
|
|
@ -100,7 +100,7 @@ as-option = $(call try-run,\
|
|||
# Usage: cflags-y += $(call as-instr,instr,option1,option2)
|
||||
|
||||
as-instr = $(call try-run,\
|
||||
echo -e "$(1)" | $(CC) $(KBUILD_AFLAGS) -c -xassembler -o "$$TMP" -,$(2),$(3))
|
||||
/bin/echo -e "$(1)" | $(CC) $(KBUILD_AFLAGS) -c -xassembler -o "$$TMP" -,$(2),$(3))
|
||||
|
||||
# cc-option
|
||||
# Usage: cflags-y += $(call cc-option,-march=winchip-c6,-march=i586)
|
||||
|
|
|
@ -208,7 +208,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;
|
||||
# append the size as a 32-bit littleendian number as gzip does.
|
||||
size_append = echo -ne $(shell \
|
||||
size_append = /bin/echo -ne $(shell \
|
||||
dec_size=0; \
|
||||
for F in $1; do \
|
||||
fsize=$$(stat -c "%s" $$F); \
|
||||
|
|
|
@ -9,7 +9,7 @@ paths="$@"
|
|||
# Doing this once at the beginning saves a lot of time, on a cache-hot tree.
|
||||
Kconfigs="`find . -name 'Kconfig' -o -name 'Kconfig*[^~]'`"
|
||||
|
||||
echo -e "File list \tundefined symbol used"
|
||||
/bin/echo -e "File list \tundefined symbol used"
|
||||
find $paths -name '*.[chS]' -o -name 'Makefile' -o -name 'Makefile*[^~]'| while read i
|
||||
do
|
||||
# Output the bare Kconfig variable and the filename; the _MODULE part at
|
||||
|
@ -54,6 +54,6 @@ while read symb files; do
|
|||
# beyond the purpose of this script.
|
||||
symb_bare=`echo $symb | sed -e 's/_MODULE//'`
|
||||
if ! grep -q "\<$symb_bare\>" $Kconfigs; then
|
||||
echo -e "$files: \t$symb"
|
||||
/bin/echo -e "$files: \t$symb"
|
||||
fi
|
||||
done|sort
|
||||
|
|
|
@ -20,7 +20,7 @@ use strict;
|
|||
|
||||
my ($readdir, $installdir, $arch, @files) = @ARGV;
|
||||
|
||||
my $unifdef = "scripts/unifdef -U__KERNEL__";
|
||||
my $unifdef = "scripts/unifdef -U__KERNEL__ -D__EXPORTED_HEADERS__";
|
||||
|
||||
foreach my $file (@files) {
|
||||
local *INFILE;
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
#!/bin/sh
|
||||
|
||||
TARGET=$1
|
||||
ARCH=$2
|
||||
SMP=$3
|
||||
|
@ -50,7 +52,7 @@ UTS_VERSION="$UTS_VERSION $CONFIG_FLAGS $TIMESTAMP"
|
|||
# Truncate to maximum length
|
||||
|
||||
UTS_LEN=64
|
||||
UTS_TRUNCATE="sed -e s/\(.\{1,$UTS_LEN\}\).*/\1/"
|
||||
UTS_TRUNCATE="cut -b -$UTS_LEN"
|
||||
|
||||
# Generate a temporary compile.h
|
||||
|
||||
|
@ -66,9 +68,13 @@ UTS_TRUNCATE="sed -e s/\(.\{1,$UTS_LEN\}\).*/\1/"
|
|||
echo \#define LINUX_COMPILE_HOST \"`hostname | $UTS_TRUNCATE`\"
|
||||
|
||||
if [ -x /bin/dnsdomainname ]; then
|
||||
echo \#define LINUX_COMPILE_DOMAIN \"`dnsdomainname | $UTS_TRUNCATE`\"
|
||||
domain=`dnsdomainname 2> /dev/null`
|
||||
elif [ -x /bin/domainname ]; then
|
||||
echo \#define LINUX_COMPILE_DOMAIN \"`domainname | $UTS_TRUNCATE`\"
|
||||
domain=`domainname 2> /dev/null`
|
||||
fi
|
||||
|
||||
if [ -n "$domain" ]; then
|
||||
echo \#define LINUX_COMPILE_DOMAIN \"`echo $domain | $UTS_TRUNCATE`\"
|
||||
else
|
||||
echo \#define LINUX_COMPILE_DOMAIN
|
||||
fi
|
||||
|
|
|
@ -18,6 +18,9 @@
|
|||
# e) generate the rpm files, based on kernel.spec
|
||||
# - Use /. to avoid tar packing just the symlink
|
||||
|
||||
# Note that the rpm-pkg target cannot be used with KBUILD_OUTPUT,
|
||||
# but the binrpm-pkg target can; for some reason O= gets ignored.
|
||||
|
||||
# Do we have rpmbuild, otherwise fall back to the older rpm
|
||||
RPM := $(shell if [ -x "/usr/bin/rpmbuild" ]; then echo rpmbuild; \
|
||||
else echo rpm; fi)
|
||||
|
@ -33,6 +36,12 @@ $(objtree)/kernel.spec: $(MKSPEC) $(srctree)/Makefile
|
|||
$(CONFIG_SHELL) $(MKSPEC) > $@
|
||||
|
||||
rpm-pkg rpm: $(objtree)/kernel.spec FORCE
|
||||
@if test -n "$(KBUILD_OUTPUT)"; then \
|
||||
echo "Building source + binary RPM is not possible outside the"; \
|
||||
echo "kernel source tree. Don't set KBUILD_OUTPUT, or use the"; \
|
||||
echo "binrpm-pkg target instead."; \
|
||||
false; \
|
||||
fi
|
||||
$(MAKE) clean
|
||||
$(PREV) ln -sf $(srctree) $(KERNELPATH)
|
||||
$(CONFIG_SHELL) $(srctree)/scripts/setlocalversion > $(objtree)/.scmversion
|
||||
|
@ -61,7 +70,7 @@ binrpm-pkg: $(objtree)/binkernel.spec FORCE
|
|||
set -e; \
|
||||
mv -f $(objtree)/.tmp_version $(objtree)/.version
|
||||
|
||||
$(RPM) $(RPMOPTS) --define "_builddir $(srctree)" --target \
|
||||
$(RPM) $(RPMOPTS) --define "_builddir $(objtree)" --target \
|
||||
$(UTS_MACHINE) -bb $<
|
||||
|
||||
clean-files += $(objtree)/binkernel.spec
|
||||
|
|
|
@ -70,7 +70,7 @@ echo 'mkdir -p $RPM_BUILD_ROOT/boot $RPM_BUILD_ROOT/lib/modules'
|
|||
echo 'mkdir -p $RPM_BUILD_ROOT/lib/firmware'
|
||||
echo "%endif"
|
||||
|
||||
echo 'INSTALL_MOD_PATH=$RPM_BUILD_ROOT make %{_smp_mflags} modules_install'
|
||||
echo 'INSTALL_MOD_PATH=$RPM_BUILD_ROOT make %{_smp_mflags} KBUILD_SRC= modules_install'
|
||||
echo "%ifarch ia64"
|
||||
echo 'cp $KBUILD_IMAGE $RPM_BUILD_ROOT'"/boot/efi/vmlinuz-$KERNELRELEASE"
|
||||
echo 'ln -s '"efi/vmlinuz-$KERNELRELEASE" '$RPM_BUILD_ROOT'"/boot/"
|
||||
|
|
Загрузка…
Ссылка в новой задаче