[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.
(cherry picked from commit 61eadc028fb8774ea05d893cd3eca6c671fb511e)
(cherry picked from commit ee113f5345c49a1e8ea9c8ea6b047f3c0f43db1f)
This commit is contained in:
Willy Tarreau 2008-08-17 17:06:37 +02:00
parent 3191fc8d0e
commit 0dca3783ff

View File

@ -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)))