Skip to content

Commit

Permalink
Fix GCC 4.9 plugin needed to handle lto object
Browse files Browse the repository at this point in the history
  • Loading branch information
lighta committed Dec 19, 2014
1 parent 78bcd82 commit 629af3b
Show file tree
Hide file tree
Showing 5 changed files with 111 additions and 22 deletions.
2 changes: 1 addition & 1 deletion 3rdparty/libconfig/Makefile.in
Expand Up @@ -30,7 +30,7 @@ obj:

obj/%.o: %.c $(LIBCONFIG_H)
@echo " CC $<"
@@CC@ @CFLAGS@ @DEFS@ @CPPFLAGS@ -c $(OUTPUT_OPTION) $<
@@CC@ @CFLAGS_AR@ @DEFS@ @CPPFLAGS@ -c $(OUTPUT_OPTION) $<

libconfig: obj $(LIBCONFIG_DIR_OBJ) $(LIBCONFIG_AR)

Expand Down
2 changes: 1 addition & 1 deletion 3rdparty/mt19937ar/Makefile.in
Expand Up @@ -23,4 +23,4 @@ help:

%.o: %.c $(MT19937AR_H)
@echo " CC $<"
@@CC@ @CFLAGS@ @CPPFLAGS@ -c $(OUTPUT_OPTION) $<
@@CC@ @CFLAGS_AR@ @CPPFLAGS@ -c $(OUTPUT_OPTION) $<
74 changes: 64 additions & 10 deletions configure
Expand Up @@ -623,6 +623,7 @@ ac_includes_default="\

ac_subst_vars='LTLIBOBJS
LIBOBJS
CFLAGS_AR
DLLEXT
PCRE_CFLAGS
PCRE_LIBS
Expand Down Expand Up @@ -4946,15 +4947,17 @@ fi
# LTO Support test
#
if test "$enable_lto" != "no" ; then
OPT_LTO_AR=""
OPT_LTO=""
OLD_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -flto"
CFLAGS="$CFLAGS -flto -fuse-linker-plugin -ffat-lto-objects"
OLD_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS -flto"
LDFLAGS="$LDFLAGS -flto -fuse-linker-plugin -ffat-lto-objects"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -flto" >&5
$as_echo_n "checking whether $CC supports -flto... " >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -ffat-lto-objects" >&5
$as_echo_n "checking whether $CC supports -ffat-lto-objects... " >&6; }
if test "$cross_compiling" = yes; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: guessing no" >&5
Expand All @@ -4974,19 +4977,60 @@ if ac_fn_c_try_run "$LINENO"; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
OPT_LTO_AR="-ffat-lto-objects"
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
CFLAGS="$OLD_CFLAGS"
LDFLAGS="$OLD_LDFLAGS"
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
CFLAGS="$OLD_CFLAGS"
LDFLAGS="$OLD_LDFLAGS"
CFLAGS="$CFLAGS -flto -fuse-linker-plugin"
LDFLAGS="$LDFLAGS -flto -fuse-linker-plugin"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -flto -fuse-linker-plugin" >&5
$as_echo_n "checking whether $CC supports -flto -fuse-linker-plugin... " >&6; }
if test "$cross_compiling" = yes; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: guessing no" >&5
$as_echo "guessing no" >&6; }
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int main(int argc, char **argv){
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
OPT_LTO_AR="-flto -fuse-linker-plugin $OPT_LTO_AR"
OPT_LTO="-flto -fuse-linker-plugin"
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
CFLAGS="$OLD_CFLAGS"
LDFLAGS="$OLD_LDFLAGS"
fi
Expand Down Expand Up @@ -7337,10 +7381,20 @@ else
$as_echo "no" >&6; }
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: Configure finish, CPPFLAGS= $CPPFLAGS" >&5
$as_echo "$as_me: Configure finish, CPPFLAGS= $CPPFLAGS" >&6;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: LDFLAGS=$LDFLAGS" >&5
$as_echo "$as_me: LDFLAGS=$LDFLAGS" >&6;}
CFLAGS="$OPT_LTO $CFLAGS"
CFLAGS_AR="$OPT_LTO_AR $CFLAGS"
{ $as_echo "$as_me:${as_lineno-$LINENO}: Configure finish" >&5
$as_echo "$as_me: Configure finish" >&6;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: CPPFLAGS= $CPPFLAGS" >&5
$as_echo "$as_me: CPPFLAGS= $CPPFLAGS" >&6;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: CFLAGS= $CFLAGS" >&5
$as_echo "$as_me: CFLAGS= $CFLAGS" >&6;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: CFLAGS_AR= $CFLAGS_AR" >&5
$as_echo "$as_me: CFLAGS_AR= $CFLAGS_AR" >&6;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: LDFLAGS= $LDFLAGS" >&5
$as_echo "$as_me: LDFLAGS= $LDFLAGS" >&6;}
#AC_MSG_NOTICE([PROD_WARN= $PROD_WARN])
#AC_MSG_NOTICE([EXTRA_WARN= $EXTRA_WARN])
{ $as_echo "$as_me:${as_lineno-$LINENO}: output name = $output_login, $output_char, $output_map" >&5
Expand Down
51 changes: 43 additions & 8 deletions configure.in
Expand Up @@ -523,14 +523,16 @@ AC_RUN_IFELSE(
# LTO Support test
#
if test "$enable_lto" != "no" ; then

OPT_LTO_AR=""
OPT_LTO=""

OLD_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -flto"
CFLAGS="$CFLAGS -flto -fuse-linker-plugin -ffat-lto-objects"

OLD_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS -flto"
LDFLAGS="$LDFLAGS -flto -fuse-linker-plugin -ffat-lto-objects"

AC_MSG_CHECKING([whether $CC supports -flto])
AC_MSG_CHECKING([whether $CC supports -ffat-lto-objects])
AC_RUN_IFELSE(
[AC_LANG_SOURCE([
int main(int argc, char **argv){
Expand All @@ -539,16 +541,42 @@ if test "$enable_lto" != "no" ; then
])],
[
AC_MSG_RESULT([yes])
OPT_LTO_AR="-ffat-lto-objects"
],
[
AC_MSG_RESULT([no])
CFLAGS="$OLD_CFLAGS"
LDFLAGS="$OLD_LDFLAGS"
],
[
AC_MSG_RESULT([guessing no])
]
)
CFLAGS="$OLD_CFLAGS"
LDFLAGS="$OLD_LDFLAGS"

CFLAGS="$CFLAGS -flto -fuse-linker-plugin"
LDFLAGS="$LDFLAGS -flto -fuse-linker-plugin"

AC_MSG_CHECKING([whether $CC supports -flto -fuse-linker-plugin])
AC_RUN_IFELSE(
[AC_LANG_SOURCE([
int main(int argc, char **argv){
return 0;
}
])],
[
AC_MSG_RESULT([yes])
OPT_LTO_AR="-flto -fuse-linker-plugin $OPT_LTO_AR"
OPT_LTO="-flto -fuse-linker-plugin"
],
[
AC_MSG_RESULT([no])
],
[
AC_MSG_RESULT([guessing no])
]
)
CFLAGS="$OLD_CFLAGS"
LDFLAGS="$OLD_LDFLAGS"
fi


Expand Down Expand Up @@ -1234,8 +1262,15 @@ else
AC_MSG_RESULT([no])
fi

AC_MSG_NOTICE([Configure finish, CPPFLAGS= $CPPFLAGS])
AC_MSG_NOTICE([LDFLAGS=$LDFLAGS])
CFLAGS="$OPT_LTO $CFLAGS"
CFLAGS_AR="$OPT_LTO_AR $CFLAGS"
AC_SUBST([CFLAGS_AR])

AC_MSG_NOTICE([Configure finish])
AC_MSG_NOTICE([CPPFLAGS= $CPPFLAGS])
AC_MSG_NOTICE([CFLAGS= $CFLAGS])
AC_MSG_NOTICE([CFLAGS_AR= $CFLAGS_AR])
AC_MSG_NOTICE([LDFLAGS= $LDFLAGS])
#AC_MSG_NOTICE([PROD_WARN= $PROD_WARN])
#AC_MSG_NOTICE([EXTRA_WARN= $EXTRA_WARN])
AC_MSG_NOTICE([output name = $output_login, $output_char, $output_map])
Expand Down
4 changes: 2 additions & 2 deletions src/common/Makefile.in
Expand Up @@ -61,11 +61,11 @@ common: obj $(COMMON_DIR_OBJ) $(MT19937AR_OBJ) $(LIBCONFIG_AR) $(COMMON_AR)

obj/%.o: %.c $(COMMON_H) $(MT19937AR_H) $(LIBCONFIG_H)
@echo " CC $<"
@@CC@ @CFLAGS@ $(MT19937AR_INCLUDE) $(LIBCONFIG_INCLUDE) @MYSQL_CFLAGS@ @CPPFLAGS@ -c $(OUTPUT_OPTION) $<
@@CC@ @CFLAGS_AR@ $(MT19937AR_INCLUDE) $(LIBCONFIG_INCLUDE) @MYSQL_CFLAGS@ @CPPFLAGS@ -c $(OUTPUT_OPTION) $<

obj/mini%.o: %.c $(COMMON_H) $(MT19937AR_H) $(LIBCONFIG_H)
@echo " CC $<"
@@CC@ @CFLAGS@ $(MT19937AR_INCLUDE) $(LIBCONFIG_INCLUDE) @MYSQL_CFLAGS@ -DMINICORE @CPPFLAGS@ -c $(OUTPUT_OPTION) $<
@@CC@ @CFLAGS_AR@ $(MT19937AR_INCLUDE) $(LIBCONFIG_INCLUDE) @MYSQL_CFLAGS@ -DMINICORE @CPPFLAGS@ -c $(OUTPUT_OPTION) $<

# missing object files
$(MT19937AR_OBJ):
Expand Down

0 comments on commit 629af3b

Please sign in to comment.