From 61eadc028fb8774ea05d893cd3eca6c671fb511e Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Sun, 17 Aug 2008 17:06:37 +0200 Subject: [PATCH] [BUG] regparm is broken on gcc < 3 Gcc < 3 does not consider regparm declarations for function pointers. This causes big trouble at least with pollers (and with any function pointer after all). Disable CONFIG_HAP_USE_REGPARM for gcc < 3. --- include/common/config.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/include/common/config.h b/include/common/config.h index 85deeaed5f..74bee477eb 100644 --- a/include/common/config.h +++ b/include/common/config.h @@ -70,9 +70,10 @@ /* CONFIG_HAP_USE_REGPARM * This enables the use of register parameters for some functions where - * it may improve performance by a measurable factor. + * it may improve performance by a measurable factor. This MUST NOT be + * enabled on gcc < 3 because it is ignored for function pointers. */ -#ifdef CONFIG_HAP_USE_REGPARM +#if CONFIG_HAP_USE_REGPARM && __GNUC__ >= 3 #define REGPRM1 __attribute__((regparm(1))) #define REGPRM2 __attribute__((regparm(2))) #define REGPRM3 __attribute__((regparm(3)))