From 1e97173782aa930c975b23ffe006cdc42d0c4280 Mon Sep 17 00:00:00 2001 From: "KJK::Hyperion" Date: Fri, 28 Nov 2008 14:47:19 +0000 Subject: [PATCH] GCC 4.3 correctly aligns stack-allocated objects Patch by "hto", from bugzilla See issue #3608 for more details. svn path=/trunk/; revision=37706 --- reactos/lib/rtl/srw.c | 2 +- reactos/ntoskrnl/include/internal/ex.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/reactos/lib/rtl/srw.c b/reactos/lib/rtl/srw.c index 11e409e8b70..114a67d42cb 100644 --- a/reactos/lib/rtl/srw.c +++ b/reactos/lib/rtl/srw.c @@ -44,7 +44,7 @@ RTL_SRWLOCK_SHARED | RTL_SRWLOCK_CONTENTION_LOCK) #define RTL_SRWLOCK_BITS 4 -#if defined(__GNUC__) && !defined(_M_AMD64) +#if (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__ < 40300) && !defined(_M_AMD64) /* This macro will cause the code to assert if compiled with a buggy version of GCC that doesn't align the wait blocks properly on the stack! */ #define ASSERT_SRW_WAITBLOCK(ptr) \ diff --git a/reactos/ntoskrnl/include/internal/ex.h b/reactos/ntoskrnl/include/internal/ex.h index efc0261ef74..6b0bf5e4fc7 100644 --- a/reactos/ntoskrnl/include/internal/ex.h +++ b/reactos/ntoskrnl/include/internal/ex.h @@ -92,9 +92,9 @@ typedef struct #define MAX_HIGH_INDEX (MID_LEVEL_ENTRIES * MID_LEVEL_ENTRIES * LOW_LEVEL_ENTRIES) // -// Detect GCC +// Detect old GCC // -#ifdef __GNUC__ +#if (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__ < 40300) #define DEFINE_WAIT_BLOCK(x) \ struct _AlignHack \