commit e289d5d8bee2bb62a182ef83d9b8ed76028f8e0b
parent 7f329a7ad1d011e1cd6250417c862d767106c58f
Author: Evgeny Grin (Karlson2k) <k2k@drgrin.dev>
Date: Mon, 13 Apr 2026 14:50:53 +0200
configure: moved LTO flags handling earlier
Diffstat:
| M | configure.ac | | | 94 | ++++++++++++++++++++++++++++++++++++++++---------------------------------------- |
1 file changed, 47 insertions(+), 47 deletions(-)
diff --git a/configure.ac b/configure.ac
@@ -289,6 +289,53 @@ AC_SYS_LARGEFILE
]
)
AC_FUNC_FSEEKO
+
+AS_VAR_IF([enable_lto],["no"],[use_lto="no"],
+ [
+ CFLAGS="${CFLAGS_ac} ${user_CFLAGS}"
+ LDFLAGS="${LDFLAGS_ac} ${user_LDFLAGS}"
+ lto_CFLAGS=""
+ lto_LDFLAGS=""
+ use_lto=""
+ MHD_CHECK_CC_IS_CLANG([MHD_CHECK_ADD_CC_LDFLAG([-fuse-ld=lld],[lto_LDFLAGS])])
+ LDFLAGS="${lto_LDFLAGS} ${LDFLAGS_ac} ${user_LDFLAGS}"
+ MHD_FIND_ADD_CC_CFLAG_IFELSE(
+ [
+ use_lto="yes"
+ MHD_PREPEND_FLAG_TO_VAR([lto_LDFLAGS],[$mhd_cc_found_flag])
+ ],[use_lto="no"],[lto_CFLAGS],
+ [-flto=auto],[-flto=full],[-flto]
+ )
+ LDFLAGS="${lto_LDFLAGS} ${LDFLAGS_ac} ${user_LDFLAGS}"
+ AS_VAR_IF([use_lto],["yes"],
+ [
+ MHD_CHECK_ADD_CC_CFLAG([-ffat-lto-objects],[lto_CFLAGS],
+ [],
+ [
+ test "X${enable_static}" = "Xyes" && test "X${enable_lto}" = "Xauto" && use_lto="no"
+ ]
+ )
+ ]
+ )
+ AS_VAR_IF([use_lto],["yes"],
+ [MHD_FIND_ADD_CC_CFLAG([lto_CFLAGS],[-flto-partition=one],[-flto-partition=none])]
+ )
+ AS_VAR_IF([use_lto],["yes"],
+ [
+ MHD_PREPEND_FLAG_TO_VAR([CFLAGS_ac],[${lto_CFLAGS}])
+ MHD_PREPEND_FLAG_TO_VAR([LDFLAGS_ac],[${lto_LDFLAGS}])
+ ],
+ [
+ AS_VAR_IF([enable_lto],["yes"],
+ [AC_MSG_ERROR([LTO cannot be enabled, but requested by --enable-lto])]
+ )
+ ]
+ )
+ LDFLAGS="${LDFLAGS_ac} ${user_LDFLAGS}"
+ CFLAGS="${CFLAGS_ac} ${user_CFLAGS}"
+ ]
+)
+
LT_INIT([win32-dll])
LT_LANG([Windows Resource])
@@ -783,53 +830,6 @@ MHD_CHECK_CC_CFLAG([-Wc++-compat],[CFLAGS_ac],
CFLAGS="${CFLAGS_ac} ${user_CFLAGS}"
# Additional flags are checked and added at the end of 'configure'
-AS_VAR_IF([enable_lto],["no"],[use_lto="no"],
- [
- CFLAGS="${CFLAGS_ac} ${user_CFLAGS}"
- LDFLAGS="${LDFLAGS_ac} ${user_LDFLAGS}"
- lto_CFLAGS=""
- lto_LDFLAGS=""
- use_lto=""
- MHD_CHECK_CC_IS_CLANG([MHD_CHECK_ADD_CC_LDFLAG([-fuse-ld=lld],[lto_LDFLAGS])])
- LDFLAGS="${lto_LDFLAGS} ${LDFLAGS_ac} ${user_LDFLAGS}"
- MHD_FIND_ADD_CC_CFLAG_IFELSE(
- [
- use_lto="yes"
- MHD_PREPEND_FLAG_TO_VAR([lto_LDFLAGS],[$mhd_cc_found_flag])
- ],[use_lto="no"],[lto_CFLAGS],
- [-flto=auto],[-flto=full],[-flto]
- )
- LDFLAGS="${lto_LDFLAGS} ${LDFLAGS_ac} ${user_LDFLAGS}"
- AS_VAR_IF([use_lto],["yes"],
- [
- MHD_CHECK_ADD_CC_CFLAG([-ffat-lto-objects],[lto_CFLAGS],
- [],
- [
- test "X${enable_static}" = "Xyes" && test "X${enable_lto}" = "Xauto" && use_lto="no"
- ]
- )
- ]
- )
- AS_VAR_IF([use_lto],["yes"],
- [MHD_FIND_ADD_CC_CFLAG([lto_CFLAGS],[-flto-partition=one],[-flto-partition=none])]
- )
- AS_VAR_IF([use_lto],["yes"],
- [
- MHD_PREPEND_FLAG_TO_VAR([CFLAGS_ac],[${lto_CFLAGS}])
- MHD_PREPEND_FLAG_TO_VAR([LDFLAGS_ac],[${lto_LDFLAGS}])
- ],
- [
- AS_VAR_IF([enable_lto],["yes"],
- [AC_MSG_ERROR([LTO cannot be enabled, but requested by --enable-lto])]
- )
- ]
- )
- LDFLAGS="${LDFLAGS_ac} ${user_LDFLAGS}"
- CFLAGS="${CFLAGS_ac} ${user_CFLAGS}"
- ]
-)
-
-
# Check for headers that are ALWAYS required
AC_CHECK_HEADERS_ONCE([stdio.h string.h stdint.h stdarg.h errno.h limits.h fcntl.h], [],
[AC_MSG_ERROR([Compiling libmicrohttpd requires standard C and POSIX headers files])], [AC_INCLUDES_DEFAULT])