From 7593e0902bc41392315316f1b5f4ba15feead842 Mon Sep 17 00:00:00 2001 From: Franck Bui-Huu Date: Mon, 2 Dec 2013 16:34:29 +0100 Subject: [PATCH 1/6] Fix detectition of kernel git repository in setlocalversion script [take #2] setlocalversion script was testing the presence of .git directory in order to find out if git is used as SCM to track the current kernel project. However in some cases, .git is not a directory but can be a file: when the kernel is a git submodule part of a git super project for example. This patch just fixes this by using 'git rev-parse --show-cdup' to check that the current directory is the kernel git topdir. This has the advantage to not test and rely on git internal infrastructure directly. Signed-off-by: Franck Bui-Huu Signed-off-by: Michal Marek --- scripts/setlocalversion | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/setlocalversion b/scripts/setlocalversion index d105a44b68f6..63d91e22ed7c 100755 --- a/scripts/setlocalversion +++ b/scripts/setlocalversion @@ -43,7 +43,8 @@ scm_version() fi # Check for git and a git repo. - if test -d .git && head=`git rev-parse --verify --short HEAD 2>/dev/null`; then + if test -z "$(git rev-parse --show-cdup 2>/dev/null)" && + head=`git rev-parse --verify --short HEAD 2>/dev/null`; then # If we are at a tagged commit (like "v2.6.30-rc6"), we ignore # it, because this version is defined in the top level Makefile. From e36aaea28972c57a32a3ba5365e61633739719b9 Mon Sep 17 00:00:00 2001 From: Emil Medve Date: Mon, 6 Jan 2014 02:58:40 -0600 Subject: [PATCH 2/6] kbuild: Fix silent builds with make-4 make-4 changed the way/order it presents the command line options into MAKEFLAGS In make-3.8x, '-s' would always be first into a group of options with the '-'/hyphen removed $ make -p -s 2>/dev/null | grep ^MAKEFLAGS MAKEFLAGS = sp In make-4, '-s' seems to always be last into a group of options with the '-'/hyphen removed $ make -s -p 2>/dev/null | grep ^MAKEFLAGS MAKEFLAGS = ps Signed-off-by: Emil Medve Signed-off-by: Michal Marek --- Makefile | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Makefile b/Makefile index c0c2d58e3998..685f1bd93281 100644 --- a/Makefile +++ b/Makefile @@ -311,9 +311,15 @@ endif # If the user is running make -s (silent mode), suppress echoing of # commands +ifneq ($(filter 4.%,$(MAKE_VERSION)),) # make-4 +ifneq ($(filter %s ,$(firstword x$(MAKEFLAGS))),) + quiet=silent_ +endif +else # make-3.8x ifneq ($(filter s% -s%,$(MAKEFLAGS)),) quiet=silent_ endif +endif export quiet Q KBUILD_VERBOSE From 9df62f054406992ce41ec4558fca6a0fa56fffeb Mon Sep 17 00:00:00 2001 From: Chen Gang Date: Sun, 12 Jan 2014 09:59:13 +0800 Subject: [PATCH 3/6] arch: use ASM_NL instead of ';' for assembler new line character in the macro For some assemblers, they use another character as newline in a macro (e.g. arc uses '`'), so for generic assembly code, need use ASM_NL (a macro) instead of ';' for it. Signed-off-by: Chen Gang Acked-by: Vineet Gupta Signed-off-by: Michal Marek --- arch/arc/include/asm/linkage.h | 2 ++ include/linux/linkage.h | 19 ++++++++++++------- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/arch/arc/include/asm/linkage.h b/arch/arc/include/asm/linkage.h index 0283e9e44e0d..66ee5527aefc 100644 --- a/arch/arc/include/asm/linkage.h +++ b/arch/arc/include/asm/linkage.h @@ -11,6 +11,8 @@ #ifdef __ASSEMBLY__ +#define ASM_NL ` /* use '`' to mark new line in macro */ + /* Can't use the ENTRY macro in linux/linkage.h * gas considers ';' as comment vs. newline */ diff --git a/include/linux/linkage.h b/include/linux/linkage.h index d3e8ad23a8e0..a6a42dd02466 100644 --- a/include/linux/linkage.h +++ b/include/linux/linkage.h @@ -6,6 +6,11 @@ #include #include +/* Some toolchains use other characters (e.g. '`') to mark new line in macro */ +#ifndef ASM_NL +#define ASM_NL ; +#endif + #ifdef __cplusplus #define CPP_ASMLINKAGE extern "C" #else @@ -75,21 +80,21 @@ #ifndef ENTRY #define ENTRY(name) \ - .globl name; \ - ALIGN; \ - name: + .globl name ASM_NL \ + ALIGN ASM_NL \ + name: #endif #endif /* LINKER_SCRIPT */ #ifndef WEAK #define WEAK(name) \ - .weak name; \ + .weak name ASM_NL \ name: #endif #ifndef END #define END(name) \ - .size name, .-name + .size name, .-name #endif /* If symbol 'name' is treated as a subroutine (gets called, and returns) @@ -98,8 +103,8 @@ */ #ifndef ENDPROC #define ENDPROC(name) \ - .type name, @function; \ - END(name) + .type name, @function ASM_NL \ + END(name) #endif #endif From 7db436325db821b400328563ed693b09f8c4c46c Mon Sep 17 00:00:00 2001 From: Geoff Levand Date: Wed, 11 Dec 2013 23:34:40 +0000 Subject: [PATCH 4/6] kbuild: Fix debugging info generation for .S files Change the debuging info generation flag in KBUILD_AFLAGS from '-gdwarf-2' to '-Wa,--gdwarf-2'. This will properly generate the debugging info for .S files when CONFIG_DEBUG_INFO=y. It seems current gcc does not pass a '--gdwarf-2' option on to the assembler when '-gdwarf-2' is on its command line (note the differece in the gcc and as flags). This change provides the correct assembler flag to gcc, and so does not rely on gcc to emit a flag for the assembler. Signed-off-by: Geoff Levand for Huawei, Linaro Signed-off-by: Michal Marek --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 685f1bd93281..98becb20a79d 100644 --- a/Makefile +++ b/Makefile @@ -625,7 +625,7 @@ endif ifdef CONFIG_DEBUG_INFO KBUILD_CFLAGS += -g -KBUILD_AFLAGS += -gdwarf-2 +KBUILD_AFLAGS += -Wa,--gdwarf-2 endif ifdef CONFIG_DEBUG_INFO_REDUCED From 36c2be8e0d372ea69470e0933ed70ed5db82fac7 Mon Sep 17 00:00:00 2001 From: Geoff Levand Date: Mon, 27 Jan 2014 17:48:47 -0800 Subject: [PATCH 5/6] mn10300: Remove redundant debugging info flag The generic makefile now sets '-Wa,--gdwarf2' in KBUILD_AFLAGS, so this setting is no longer needed in arch makefiles. Also remove a commented out addition of a -O1 to KBUILD_CFLAGS, and comment text relating to these removed lines. Cc: David Howells Signed-off-by: Geoff Levand for Huawei, Linaro Signed-off-by: Michal Marek --- arch/mn10300/Makefile | 8 -------- 1 file changed, 8 deletions(-) diff --git a/arch/mn10300/Makefile b/arch/mn10300/Makefile index a3d0fef3b126..3f1ea5ddc402 100644 --- a/arch/mn10300/Makefile +++ b/arch/mn10300/Makefile @@ -92,14 +92,6 @@ define archhelp echo '* zImage - Compressed kernel image (arch/$(ARCH)/boot/zImage)' endef -# If you make sure the .S files get compiled with debug info, -# uncomment the following to disable optimisations -# that are unhelpful whilst debugging. -ifdef CONFIG_DEBUG_INFO -#KBUILD_CFLAGS += -O1 -KBUILD_AFLAGS += -Wa,--gdwarf2 -endif - # # include the appropriate processor- and unit-specific headers # From bf705ad0c364ea375b3a5e89fa8a0e1c1fde994c Mon Sep 17 00:00:00 2001 From: Geoff Levand Date: Mon, 27 Jan 2014 17:48:34 -0800 Subject: [PATCH 6/6] frv: Remove redundant debugging info flag The generic makefile now sets '-Wa,--gdwarf2' in KBUILD_AFLAGS, so this setting is no longer needed in arch makefiles. Also remove a commented out addition of a -O1 to KBUILD_CFLAGS, and comment text relating to these removed lines. Cc: David Howells Signed-off-by: Geoff Levand for Huawei, Linaro Signed-off-by: Michal Marek --- arch/frv/Makefile | 7 ------- 1 file changed, 7 deletions(-) diff --git a/arch/frv/Makefile b/arch/frv/Makefile index 4d1b1e9baef1..2a8fb730d1ca 100644 --- a/arch/frv/Makefile +++ b/arch/frv/Makefile @@ -74,13 +74,6 @@ KBUILD_CFLAGS += -mno-fdpic -mgpr-32 -msoft-float -mno-media KBUILD_CFLAGS += -ffixed-fcc3 -ffixed-cc3 -ffixed-gr15 -ffixed-icc2 KBUILD_AFLAGS += -mno-fdpic -# make sure the .S files get compiled with debug info -# and disable optimisations that are unhelpful whilst debugging -ifdef CONFIG_DEBUG_INFO -#KBUILD_CFLAGS += -O1 -KBUILD_AFLAGS += -Wa,--gdwarf2 -endif - head-y := arch/frv/kernel/head.o core-y += arch/frv/kernel/ arch/frv/mm/