diff options
-rw-r--r-- | recipes-kernel/linux/linux-xilinx/kbuild-Fix-passing-Wno-options-to-gcc-4.4.patch | 94 | ||||
-rw-r--r-- | recipes-kernel/linux/linux-xilinx_git.bb | 3 |
2 files changed, 96 insertions, 1 deletions
diff --git a/recipes-kernel/linux/linux-xilinx/kbuild-Fix-passing-Wno-options-to-gcc-4.4.patch b/recipes-kernel/linux/linux-xilinx/kbuild-Fix-passing-Wno-options-to-gcc-4.4.patch new file mode 100644 index 0000000..980d431 --- /dev/null +++ b/recipes-kernel/linux/linux-xilinx/kbuild-Fix-passing-Wno-options-to-gcc-4.4.patch @@ -0,0 +1,94 @@ +From 996ad5340f8c33dd4cb01d30c251e82664457b9d Mon Sep 17 00:00:00 2001 +From: Adrian Alonso <aalonso@secretlab.ca> +Date: Fri, 27 May 2011 10:19:06 -0500 +Subject: [PATCH] kbuild: Fix passing Wno options to gcc 4.4+ +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +* From kernel mailing list + http://permalink.gmane.org/gmane.linux.kernel.next/16754 + Starting with 4.4, gcc will happily accept -Wno-≤anything> in the + cc-option test and complain later when compiling a file that has some + other warning. This rather unexpected behavior is intentional as per + http://gcc.gnu.org/PR28322, so work around it by testing for support of + the opposite option (without the no-). Introduce a new Makefile function + cc-disable-warning that does this and update two uses of cc-option in + the toplevel Makefile. +* Add Makefile option to disable warnings from unused-but-set-variable + + Reported-by: Stephen Rothwell <sfr <at> canb.auug.org.au> + Signed-off-by: Michal Marek <mmarek <at> suse.cz> + Signed-off-by: Adrian Alonso <aalonso@secretlab.ca> +--- + Documentation/kbuild/makefiles.txt | 12 ++++++++++++ + Makefile | 6 +++++- + scripts/Kbuild.include | 5 +++++ + 3 files changed, 22 insertions(+), 1 deletions(-) + +diff --git a/Documentation/kbuild/makefiles.txt b/Documentation/kbuild/makefiles.txt +index 0ef00bd..e07decf 100644 +--- a/Documentation/kbuild/makefiles.txt ++++ b/Documentation/kbuild/makefiles.txt +@@ -499,6 +499,18 @@ more details, with real examples. + gcc >= 3.00. For gcc < 3.00, -malign-functions=4 is used. + Note: cc-option-align uses KBUILD_CFLAGS for $(CC) options + ++ cc-disable-warning ++ cc-disable-warning checks if gcc supports a given warning and returns ++ the commandline switch to disable it. This special function is needed, ++ because gcc 4.4 and later accept any unknown -Wno-* option and only ++ warn about it if there is another warning in the source file. ++ ++ Example: ++ KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable) ++ ++ In the above example, -Wno-unused-but-set-variable will be added to ++ KBUILD_CFLAGS only if gcc really accepts it. ++ + cc-version + cc-version returns a numerical version of the $(CC) compiler version. + The format is <major><minor> where both are two digits. So for example +diff --git a/Makefile b/Makefile +index 74b2555..e2133ed 100644 +--- a/Makefile ++++ b/Makefile +@@ -554,6 +554,10 @@ ifndef CONFIG_CC_STACKPROTECTOR + KBUILD_CFLAGS += $(call cc-option, -fno-stack-protector) + endif + ++# This warning generated too much noise in a regular build. ++# Use make W=1 to enable this warning (see scripts/Makefile.build) ++KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable) ++ + ifdef CONFIG_FRAME_POINTER + KBUILD_CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls + else +@@ -599,7 +603,7 @@ CHECKFLAGS += $(NOSTDINC_FLAGS) + KBUILD_CFLAGS += $(call cc-option,-Wdeclaration-after-statement,) + + # disable pointer signed / unsigned warnings in gcc 4.0 +-KBUILD_CFLAGS += $(call cc-option,-Wno-pointer-sign,) ++KBUILD_CFLAGS += $(call cc-disable-warning, pointer-sign) + + # disable invalid "can't wrap" optimizations for signed / pointers + KBUILD_CFLAGS += $(call cc-option,-fno-strict-overflow) +diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include +index ed2773e..a302a6c 100644 +--- a/scripts/Kbuild.include ++++ b/scripts/Kbuild.include +@@ -118,6 +118,11 @@ cc-option-yn = $(call try-run,\ + cc-option-align = $(subst -functions=0,,\ + $(call cc-option,-falign-functions=0,-malign-functions=0)) + ++# cc-disable-warning ++# Usage: cflags-y += $(call cc-disable-warning,unused-but-set-variable) ++cc-disable-warning = $(call try-run,\ ++ $(CC) $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) -W$(strip $(1)) -c -xc /dev/null -o "$$TMP",-Wno-$(strip $(1))) ++ + # cc-version + # Usage gcc-ver := $(call cc-version) + cc-version = $(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-version.sh $(CC)) +-- +1.7.5.2 + diff --git a/recipes-kernel/linux/linux-xilinx_git.bb b/recipes-kernel/linux/linux-xilinx_git.bb index 6c315d9..f978b61 100644 --- a/recipes-kernel/linux/linux-xilinx_git.bb +++ b/recipes-kernel/linux/linux-xilinx_git.bb @@ -7,10 +7,11 @@ LICENSE = "GPL" LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7" PV = "2.6.37" -PR = "r9" +PR = "r10" SRC_URI = "git://git.xilinx.com/linux-2.6-xlnx.git;protocol=git \ file://linux-xilinx-do-not-use-OS-option.patch \ + file://kbuild-Fix-passing-Wno-options-to-gcc-4.4.patch \ file://defconfig" inherit kernel xilinx-kernel xilinx-utils |