From: Mike Hommey Date: Thu, 3 Feb 2022 23:48:06 +0000 (+0900) Subject: ITS#9919 - Mark infrequently used functions as cold rather than manually putting... X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b53474758f4fbcca2e76031017bbddfe92474e30;p=thirdparty%2Fopenldap.git ITS#9919 - Mark infrequently used functions as cold rather than manually putting them in a separate section --- diff --git a/libraries/liblmdb/mdb.c b/libraries/liblmdb/mdb.c index 6fc2abdf0a..fa01bb9bc5 100644 --- a/libraries/liblmdb/mdb.c +++ b/libraries/liblmdb/mdb.c @@ -248,15 +248,21 @@ union semun { # error "Two's complement, reasonably sized integer types, please" #endif -#ifdef __GNUC__ -/** Put infrequently used env functions in separate section */ -# ifdef __APPLE__ -# define ESECT __attribute__ ((section("__TEXT,text_env"))) +#if (((__clang_major__ << 8) | __clang_minor__) >= 0x0302) || (((__GNUC__ << 8) | __GNUC_MINOR__) >= 0x0403) +/** Mark infrequently used env functions as cold. This puts them in a separate + * section, and optimizes them for size */ +#define ESECT __attribute__ ((cold)) +#else +/* On older compilers, use a separate section */ +# ifdef __GNUC__ +# ifdef __APPLE__ +# define ESECT __attribute__ ((section("__TEXT,text_env"))) +# else +# define ESECT __attribute__ ((section("text_env"))) +# endif # else -# define ESECT __attribute__ ((section("text_env"))) +# define ESECT # endif -#else -#define ESECT #endif #ifdef _WIN32