Patchwork ftrace breaks sparc64 build

login
register
mail settings
Submitter Steven Rostedt
Date Jan. 6, 2009, 4:30 a.m.
Message ID <alpine.DEB.1.10.0901052326180.30989@gandalf.stny.rr.com>
Download mbox | patch
Permalink /patch/16759/
State Not Applicable
Delegated to: David Miller
Headers show

Comments

Steven Rostedt - Jan. 6, 2009, 4:30 a.m.
On Tue, 6 Jan 2009, Heiko Carstens wrote:


Sam and Heiko,

I'm trying to see if the (a ? b : c) construct is causing the issue. Can 
you test this patch.

Thanks,

-- Steve

--
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Heiko Carstens - Jan. 6, 2009, 9:45 a.m.
On Mon, Jan 05, 2009 at 11:30:58PM -0500, Steven Rostedt wrote:
> On Tue, 6 Jan 2009, Heiko Carstens wrote:
> Sam and Heiko,
> 
> I'm trying to see if the (a ? b : c) construct is causing the issue. Can 
> you test this patch.
> 
> diff --git a/include/linux/compiler.h b/include/linux/compiler.h
> index d95da10..e13ad24 100644
> --- a/include/linux/compiler.h
> +++ b/include/linux/compiler.h
> @@ -113,7 +113,8 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect);
>   * "Define 'is'", Bill Clinton
>   * "Define 'if'", Steven Rostedt
>   */
> -#define if(cond) if (__builtin_constant_p((cond)) ? !!(cond) :		\
> +#define if(cond) if ((__builtin_constant_p((cond)) && !!(cond)) ||	\
> +		     (!__builtin_constant_p((cond)) &&			\

Doesn't help unfortunately.
--
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/include/linux/compiler.h b/include/linux/compiler.h
index d95da10..e13ad24 100644
--- a/include/linux/compiler.h
+++ b/include/linux/compiler.h
@@ -113,7 +113,8 @@  void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect);
  * "Define 'is'", Bill Clinton
  * "Define 'if'", Steven Rostedt
  */
-#define if(cond) if (__builtin_constant_p((cond)) ? !!(cond) :		\
+#define if(cond) if ((__builtin_constant_p((cond)) && !!(cond)) ||	\
+		     (!__builtin_constant_p((cond)) &&			\
 	({								\
 		int ______r;						\
 		static struct ftrace_branch_data			\
@@ -130,7 +131,7 @@  void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect);
 		else							\
 			______f.miss++;					\
 		______r;						\
-	}))
+	})))
 #endif /* CONFIG_PROFILE_ALL_BRANCHES */
 
 #else