From 4d211093e838ddd049b5cf4f0773aa5ac67f9976 Mon Sep 17 00:00:00 2001 From: Al Viro Date: Thu, 18 Aug 2011 20:11:49 +0100 Subject: [PATCH] um: fix gcov build breakage a) exports in gmon_syms.c duplicate kernel/gcov/* ones b) excluding -pg in vdso compile is not enough - -fprofile-arcs and -ftest-coverage also needs to be excluded Signed-off-by: Al Viro Signed-off-by: Richard Weinberger --- arch/um/kernel/gmon_syms.c | 33 +++++++++------------------------ arch/x86/um/vdso/Makefile | 4 ++-- 2 files changed, 11 insertions(+), 26 deletions(-) rewrite arch/um/kernel/gmon_syms.c (68%) diff --git a/arch/um/kernel/gmon_syms.c b/arch/um/kernel/gmon_syms.c dissimilarity index 68% index 72eccd2a411..e9bcf247bce 100644 --- a/arch/um/kernel/gmon_syms.c +++ b/arch/um/kernel/gmon_syms.c @@ -1,24 +1,9 @@ -/* - * Copyright (C) 2001 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com) - * Licensed under the GPL - */ - -#include "linux/module.h" - -extern void __bb_init_func(void *) __attribute__((weak)); -EXPORT_SYMBOL(__bb_init_func); - -/* - * This is defined (and referred to in profiling stub code) only by some GCC - * versions in libgcov. - * - * Since SuSE backported the fix, we cannot handle it depending on GCC version. - * So, unconditionally export it. But also give it a weak declaration, which - * will be overridden by any other one. - */ - -extern void __gcov_init(void *) __attribute__((weak)); -EXPORT_SYMBOL(__gcov_init); - -extern void __gcov_merge_add(void *) __attribute__((weak)); -EXPORT_SYMBOL(__gcov_merge_add); +/* + * Copyright (C) 2001 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com) + * Licensed under the GPL + */ + +#include "linux/module.h" + +extern void __bb_init_func(void *) __attribute__((weak)); +EXPORT_SYMBOL(__bb_init_func); diff --git a/arch/x86/um/vdso/Makefile b/arch/x86/um/vdso/Makefile index 5dffe6d4668..6c803ca49b5 100644 --- a/arch/x86/um/vdso/Makefile +++ b/arch/x86/um/vdso/Makefile @@ -46,8 +46,8 @@ $(vobjs): KBUILD_CFLAGS += $(CFL) # # vDSO code runs in userspace and -pg doesn't help with profiling anyway. # -CFLAGS_REMOVE_vdso-note.o = -pg -CFLAGS_REMOVE_um_vdso.o = -pg +CFLAGS_REMOVE_vdso-note.o = -pg -fprofile-arcs -ftest-coverage +CFLAGS_REMOVE_um_vdso.o = -pg -fprofile-arcs -ftest-coverage targets += vdso-syms.lds obj-$(VDSO64-y) += vdso-syms.lds -- 2.11.4.GIT