Bläddra i källkod

Fix GCC 4.9 plugin needed to handle lto object

lighta 10 år sedan
förälder
incheckning
629af3be48
5 ändrade filer med 111 tillägg och 22 borttagningar
  1. 1 1
      3rdparty/libconfig/Makefile.in
  2. 1 1
      3rdparty/mt19937ar/Makefile.in
  3. 64 10
      configure
  4. 43 8
      configure.in
  5. 2 2
      src/common/Makefile.in

+ 1 - 1
3rdparty/libconfig/Makefile.in

@@ -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)
 

+ 1 - 1
3rdparty/mt19937ar/Makefile.in

@@ -23,4 +23,4 @@ help:
 
 %.o: %.c $(MT19937AR_H)
 	@echo "	CC	$<"
-	@@CC@ @CFLAGS@ @CPPFLAGS@ -c $(OUTPUT_OPTION) $<
+	@@CC@ @CFLAGS_AR@ @CPPFLAGS@ -c $(OUTPUT_OPTION) $<

+ 64 - 10
configure

@@ -623,6 +623,7 @@ ac_includes_default="\
 
 ac_subst_vars='LTLIBOBJS
 LIBOBJS
+CFLAGS_AR
 DLLEXT
 PCRE_CFLAGS
 PCRE_LIBS
@@ -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
@@ -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
 
 
@@ -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

+ 43 - 8
configure.in

@@ -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){
@@ -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
 
 
@@ -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])

+ 2 - 2
src/common/Makefile.in

@@ -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):