소스 검색

feature merge bs-coreoptimize->trunk: LTO support

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@16196 54d463be-8e91-2dee-dedb-b68131a5f0ec
blacksirius 13 년 전
부모
커밋
82f5c8991a
2개의 변경된 파일678개의 추가작업 그리고 210개의 파일을 삭제
  1. 621 210
      configure
  2. 57 0
      configure.in

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 621 - 210
configure


+ 57 - 0
configure.in

@@ -165,6 +165,29 @@ AC_ARG_ENABLE(
 )
 
 
+#
+# LTO
+#
+AC_ARG_ENABLE(
+    [lto],
+    AC_HELP_STRING(
+        [--enable-lto],
+        [
+			Enables or Disables Linktime Code Optimization (LTO is enabled by default)
+        ]
+    ),
+    [
+        enable_lto="$enableval"
+        case $enableval in
+            "no");;
+            "yes");;
+            *) AC_MSG_ERROR([[invalid argument --enable-lto=$disableval... stopping]]);;
+        esac
+    ],
+    [enable_lto="yes"]
+)
+
+
 #
 # Optionally specify the path to mysql_config
 #
@@ -327,6 +350,40 @@ AC_COMPILE_IFELSE(
 )
 
 
+#
+# LTO Support test
+#
+if test "$enable_lto" != "no" ; then
+
+	OLD_CFLAGS="$CFLAGS"
+	CFLAGS="$CFLAGS -flto"
+
+	OLD_LDFLAGS="$LDFLAGS"
+	LDFLAGS="$LDFLAGS -flto"
+
+	AC_MSG_CHECKING([whether $CC supports -flto])
+	AC_RUN_IFELSE(
+		[
+			int main(int argc, char **argv){
+               return 0;
+           }
+		],
+		[
+			AC_MSG_RESULT([yes])
+		],
+		[
+			AC_MSG_RESULT([no])
+			CFLAGS="$OLD_CFLAGS"
+			LDFLAGS="$OLD_LDFLAGS"
+		],
+		[
+			AC_MSG_RESULT([guessing no])
+		]
+	)
+fi
+
+
+
 AC_MSG_CHECKING([whether $CC supports -Wno-pointer-sign])
 OLD_CFLAGS="$CFLAGS"
 CFLAGS="$CFLAGS -Wno-pointer-sign"

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.