From 0a91bbdc41f7be703f422ed7b9ed393271d36b36 Mon Sep 17 00:00:00 2001 From: Monty Date: Tue, 27 May 2025 10:57:16 +0300 Subject: [PATCH] Get debug version to compile with gcc 7.5.0 --- include/my_attribute.h | 15 ++++++++++++++- sql/sql_show.cc | 7 +++++++ storage/innobase/handler/i_s.cc | 1 + 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/include/my_attribute.h b/include/my_attribute.h index 2ffd65fae3d..04f6a62b4a1 100644 --- a/include/my_attribute.h +++ b/include/my_attribute.h @@ -91,9 +91,22 @@ _Pragma("GCC diagnostic ignored \"-Wframe-larger-than=\"") #define PRAGMA_REENABLE_CHECK_STACK_FRAME \ _Pragma("GCC diagnostic pop") +/* + The following check is for older gcc version that allocates + a lot of stack during startup that does not need to be checked +*/ + +#if !defined(__clang__) && __GNUC__ < 13 +#define PRAGMA_DISABLE_CHECK_STACK_FRAME_EXTRA PRAGMA_DISABLE_CHECK_STACK_FRAME #else +#define PRAGMA_DISABLE_CHECK_STACK_FRAME_EXTRA +#endif /* !defined(__clang__) && __GNUC__ < 13 */ + +#else /*! __GNUC__ */ #define PRAGMA_DISABLE_CHECK_STACK_FRAME #define PRAGMA_REENABLE_CHECK_STACK_FRAME -#endif +#define PRAGMA_DISABLE_CHECK_STACK_FRAME +#define PRAGMA_DISABLE_CHECK_STACK_FRAME_EXTRA +#endif /* __GNUC__ */ #endif /* _my_attribute_h */ diff --git a/sql/sql_show.cc b/sql/sql_show.cc index 6ba6f8088fa..b1e7dbdc52a 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -9747,6 +9747,13 @@ void init_fill_schema_files_row(TABLE* table) } +/* + gcc 7.5.0 uses a lot of stack at startup to resolve Column() expressions + Note, do not use PRAGMA_REENABLE_CHECK_STACK_FRAME later on in this file + as this causes compilation to fail. +*/ +PRAGMA_DISABLE_CHECK_STACK_FRAME_EXTRA + namespace Show { ST_FIELD_INFO referential_constraints_fields_info[]= diff --git a/storage/innobase/handler/i_s.cc b/storage/innobase/handler/i_s.cc index c38ff61b0e4..6385f31fe62 100644 --- a/storage/innobase/handler/i_s.cc +++ b/storage/innobase/handler/i_s.cc @@ -1209,6 +1209,7 @@ struct st_maria_plugin i_s_innodb_cmp_reset = MariaDB_PLUGIN_MATURITY_STABLE, }; +PRAGMA_DISABLE_CHECK_STACK_FRAME_EXTRA namespace Show { /* Fields of the dynamic tables