glibc: remove all previous (ancient) versions, add 2.14 (partially based on a patch...
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sun, 12 Feb 2012 16:12:01 +0000 (16:12 +0000)
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sun, 12 Feb 2012 16:12:01 +0000 (16:12 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30478 3c298f89-4303-0410-b956-a3cf2f4a3e73

15 files changed:
toolchain/glibc/Config.in
toolchain/glibc/Config.version
toolchain/glibc/Makefile
toolchain/glibc/patches/2.14/100-fix_cpuid_h_check.patch [new file with mode: 0644]
toolchain/glibc/patches/2.14/200-add_dl_search_path.patch [new file with mode: 0644]
toolchain/glibc/patches/2.3.6/001-make_install_lib_all.patch [deleted file]
toolchain/glibc/patches/2.3.6/002-mips_bootstrap_gcc_header_install.patch [deleted file]
toolchain/glibc/patches/2.3.6/601-powerpc_socket_week_alias.patch [deleted file]
toolchain/glibc/patches/2.3.6/602-powerpc_cflags_initfini.patch [deleted file]
toolchain/glibc/patches/2.6.1/101-binutils_2_19.patch [deleted file]
toolchain/glibc/patches/2.6.1/102-gcc_4_3.patch [deleted file]
toolchain/glibc/patches/2.7/101-binutils_2_19.patch [deleted file]
toolchain/glibc/patches/2.7/102-gcc_4_3.patch [deleted file]
toolchain/glibc/patches/2.7/103-binutils_2_20.patch [deleted file]
toolchain/glibc/patches/2.7/104-binutils_2_20.patch [deleted file]

index 67ee729..1b87976 100644 (file)
@@ -1,20 +1,11 @@
 choice
        prompt "glibc version" 
        depends on TOOLCHAINOPTS && USE_GLIBC
-       default GLIBC_VERSION_2_6_1
+       default GLIBC_VERSION_2_14
        help
          Select the version of glibc you wish to use.
 
-       config GLIBC_VERSION_2_3_6
-               bool "glibc 2.3.6"
-
-       config GLIBC_VERSION_2_4
-               bool "glibc 2.4"
-
-       config GLIBC_VERSION_2_6_1
-               bool "glibc 2.6.1"
-
-       config GLIBC_VERSION_2_7
-               bool "glibc 2.7"
+       config GLIBC_VERSION_2_14
+               bool "glibc 2.14"
 
 endchoice
index 93ea3c3..466794f 100644 (file)
@@ -1,17 +1,11 @@
 config GLIBC_VERSION
        string
        depends on USE_GLIBC
-       default "2.3.6"  if GLIBC_VERSION_2_3_6
-       default "2.4"     if GLIBC_VERSION_2_4
-       default "2.6.1"  if GLIBC_VERSION_2_6_1
-       default "2.7"    if GLIBC_VERSION_2_7
-       default "2.7"
+       default "2.14"    if GLIBC_VERSION_2_14
+       default "2.14"
 
 config GLIBC_PORTS
        bool
        depends on USE_GLIBC
-       default y  if GLIBC_VERSION_2_3_6 && (arm || armeb || mips || mipsel || mips64 || mips64el)
-       default y  if GLIBC_VERSION_2_4 && (arm || armeb || mips || mipsel || mips64 || mips64el)
-       default y  if GLIBC_VERSION_2_6_1 && (arm || armeb || mips || mipsel || mips64 || mips64el || powerpc)
-       default y  if GLIBC_VERSION_2_7 && (arm || armeb || mips || mipsel || mips64 || mips64el || powerpc)
+       default y  if GLIBC_VERSION_2_14 && (arm || armeb || mips || mipsel || mips64 || mips64el || powerpc)
        default n
index 789ae84..caf4b08 100644 (file)
@@ -9,20 +9,11 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=glibc
 PKG_VERSION:=$(call qstrip,$(CONFIG_GLIBC_VERSION))
 
-ifeq ($(PKG_VERSION),2.3.6)
-  PKG_MD5SUM:=bfdce99f82d6dbcb64b7f11c05d6bc96
-endif
-ifeq ($(PKG_VERSION),2.4)
-  PKG_MD5SUM:=7e9a88dcd41fbc53801dbe5bdacaf245
-endif
-ifeq ($(PKG_VERSION),2.6.1)
-  PKG_MD5SUM:=11cf6d3fc86dbe0890b8d00372eb6286
-endif
-ifeq ($(PKG_VERSION),2.7)
-  PKG_MD5SUM:=065c5952b439deba40083ccd67bcc8f7
+ifeq ($(PKG_VERSION),2.14)
+  PKG_MD5SUM:=1588cc22e796c296223744895ebc4cef
 endif
 
-PKG_SOURCE_URL:=@GNU/glibc/
+PKG_SOURCE_URL:=@GNU/glibc
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 
 PATCH_DIR:=./patches/$(PKG_VERSION)
@@ -87,7 +78,6 @@ GLIBC_CONFIGURE_STAGE2:= \
 GLIBC_MAKE:= \
        $(MAKE) \
 
-
 define Host/SetToolchainInfo
        $(SED) 's,^\(LIBC_TYPE\)=.*,\1=$(PKG_NAME),' $(TOOLCHAIN_DIR)/info.mk
        $(SED) 's,^\(LIBC_URL\)=.*,\1=http://www.gnu.org/software/libc/,' $(TOOLCHAIN_DIR)/info.mk
diff --git a/toolchain/glibc/patches/2.14/100-fix_cpuid_h_check.patch b/toolchain/glibc/patches/2.14/100-fix_cpuid_h_check.patch
new file mode 100644 (file)
index 0000000..12d0e1e
--- /dev/null
@@ -0,0 +1,22 @@
+--- a/sysdeps/i386/configure.in
++++ b/sysdeps/i386/configure.in
+@@ -2,7 +2,7 @@
+ # Local configure fragment for sysdeps/i386.
+ AC_HEADER_CHECK([cpuid.h], ,
+-  [AC_MSG_ERROR([gcc must provide the <cpuid.h> header])])
++  [AC_MSG_ERROR([gcc must provide the <cpuid.h> header])], [])
+ AC_CACHE_CHECK(if -g produces usable source locations for assembler-with-cpp,
+              libc_cv_cpp_asm_debuginfo, [dnl
+--- a/sysdeps/i386/configure
++++ b/sysdeps/i386/configure
+@@ -632,7 +632,7 @@
+ done
+-ac_fn_c_check_header_mongrel "$LINENO" "cpuid.h" "ac_cv_header_cpuid_h" "$ac_includes_default"
++ac_fn_c_check_header_mongrel "$LINENO" "cpuid.h" "ac_cv_header_cpuid_h" ""
+ if test "x$ac_cv_header_cpuid_h" = x""yes; then :
+ else
diff --git a/toolchain/glibc/patches/2.14/200-add_dl_search_path.patch b/toolchain/glibc/patches/2.14/200-add_dl_search_path.patch
new file mode 100644 (file)
index 0000000..2f4a48f
--- /dev/null
@@ -0,0 +1,12 @@
+--- a/Makeconfig
++++ b/Makeconfig
+@@ -529,6 +529,9 @@
+ default-rpath = $(libdir)
+ endif
++# Add /usr/lib to default search path for the dynamic linker
++user-defined-trusted-dirs := /usr/lib
++
+ ifndef link-extra-libs
+ link-extra-libs = $(LDLIBS-$(@F))
+ link-extra-libs-static = $(link-extra-libs)
diff --git a/toolchain/glibc/patches/2.3.6/001-make_install_lib_all.patch b/toolchain/glibc/patches/2.3.6/001-make_install_lib_all.patch
deleted file mode 100644 (file)
index 1e69bb2..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-From http://svn.exactcode.de/t2/trunk/package/base/glibc32/make-install-lib-all.patch
-Rule to install all needed libraries, not just the ones installed by install-lib,
-yet not install programs.  
-Needed because we can't use the main install target, as we can't build programs before
-we have the final gcc installed; linking fails because libeh.a is not present,
-and glibc insists on linking programs with that library.
-
-diff -Naur glibc-2.3.4.orig/Makerules glibc-2.3.4/Makerules
---- glibc-2.3.4.orig/Makerules 2004-12-15 20:52:39.000000000 +0200
-+++ glibc-2.3.4/Makerules      2005-02-19 15:16:31.415125176 +0200
-@@ -844,6 +844,13 @@
- installed-libcs := $(foreach o,$(filter-out .os,$(object-suffixes-for-libc)),\
-                            $(inst_libdir)/$(patsubst %,$(libtype$o),\
-                                                    $(libprefix)$(libc-name)))
-+
-+install-lib-all: $(inst_slibdir)/libc.so$(libc.so-version) \
-+              $(inst_slibdir)/libc-$(version).so \
-+              $(inst_libdir)/libc.so \
-+              $(inst_libdir)/libc.a \
-+              install-lib
-+
- install: $(installed-libcs)
- $(installed-libcs): $(inst_libdir)/lib$(libprefix)%: lib $(+force)
-       $(make-target-directory)
-
-Signed-off-by: Robert P. J. Day <rpjday@mindspring.com>
diff --git a/toolchain/glibc/patches/2.3.6/002-mips_bootstrap_gcc_header_install.patch b/toolchain/glibc/patches/2.3.6/002-mips_bootstrap_gcc_header_install.patch
deleted file mode 100644 (file)
index 2fd72f8..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-http://sourceware.org/ml/crossgcc/2005-05/msg00165.html
-Fixes a MIPS build problem (unrelated to NPTL)
-
-Message-ID: <428E8B24.1000201@realitydiluted.com>
-Date: Fri, 20 May 2005 20:13:08 -0500
-From: "Steven J dot  Hill" <sjhill at realitydiluted dot com>
-To:  crossgcc at sources dot redhat dot com,  toolchain at gentoo dot org, 
- Shay_Gal-On at pmc-sierra dot com,  TheNop at gmx dot net
-Subject: New NPTL patches for crosstools and MIPS NPTL patches....
-
-Greetings.
-
-I have uploaded the latest NPTL patch for crosstool-0.34. I have also
-uploaded a tarball of the patches necessary to build a MIPS NPTL
-cross toolchain. To build a MIPS NPTL toolchain you will need the
-released version of binutils-2.16 and the absolute latest GCC and
-glibc code from the HEAD of cvs. Use the 'demo-mips-nptl.sh' script
-to build the toolchain. Please report bugs or issues to the crossgcc
-mailing list. Here is the link off of my FTP site:
-
-    ftp://ftp.realitydiluted.com/crosstools/crosstool-0.34/
-
-[Note: BOOTSTRAP_GCC is set by crosstool.sh when invoking make install-headers]
-
-diff -ur glibc-2.4.0-20050406/sysdeps/mips/mips32/Makefile glibc-2.4.0-20050406-patched/sysdeps/mips/mips32/Makefile
---- glibc-2.4.0-20050406/sysdeps/mips/mips32/Makefile  2003-03-29 02:15:28.000000000 -0600
-+++ glibc-2.4.0-20050406-patched/sysdeps/mips/mips32/Makefile  2005-04-12 21:36:51.318837655 -0500
-@@ -1,3 +1,7 @@
-+ifeq ($(filter -DBOOTSTRAP_GCC,$(CFLAGS)),)
- ifeq ($(filter -mabi=32,$(CC)),)
- CC += -mabi=32
- endif
-+else
-+CC += -D"_MIPS_SZPTR=32"
-+endif
-
-Signed-off-by: Robert P. J. Day <rpjday@mindspring.com>
diff --git a/toolchain/glibc/patches/2.3.6/601-powerpc_socket_week_alias.patch b/toolchain/glibc/patches/2.3.6/601-powerpc_socket_week_alias.patch
deleted file mode 100644 (file)
index 7a7a4b1..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-diff -ruN glibc-2.3.6-orig/sysdeps/unix/sysv/linux/powerpc/powerpc32/socket.S glibc-2.3.6/sysdeps/unix/sysv/linux/powerpc/powerpc32/socket.S
---- glibc-2.3.6-orig/sysdeps/unix/sysv/linux/powerpc/powerpc32/socket.S        2003-07-12 00:46:12.000000000 +0200
-+++ glibc-2.3.6/sysdeps/unix/sysv/linux/powerpc/powerpc32/socket.S     2008-11-10 16:02:12.760497684 +0100
-@@ -42,7 +42,11 @@
- #define stackblock 20
- #ifndef __socket
-+#ifndef NO_WEAK_ALIAS
- #define __socket P(__,socket)
-+#else
-+#define __socket socket
-+#endif
- #endif
-       .text
-@@ -120,4 +124,6 @@
- PSEUDO_END (__socket)
-+#ifndef NO_WEAK_ALIAS
- weak_alias (__socket, socket)
-+#endif
diff --git a/toolchain/glibc/patches/2.3.6/602-powerpc_cflags_initfini.patch b/toolchain/glibc/patches/2.3.6/602-powerpc_cflags_initfini.patch
deleted file mode 100644 (file)
index 2dcb793..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ruN glibc-2.3.6-orig/sysdeps/powerpc/powerpc32/Makefile glibc-2.3.6/sysdeps/powerpc/powerpc32/Makefile
---- glibc-2.3.6-orig/sysdeps/powerpc/powerpc32/Makefile        2003-07-12 00:46:12.000000000 +0200
-+++ glibc-2.3.6/sysdeps/powerpc/powerpc32/Makefile     2008-11-10 16:02:12.760497684 +0100
-@@ -21,7 +21,7 @@
- ifneq ($(elf),no)
- # The initfini generation code doesn't work in the presence of -fPIC, so
- # we use -fpic instead which is much better.
--CFLAGS-initfini.s = -g0 -fpic -O1
-+CFLAGS-initfini.s = -fpic -O1 $(fno-unit-at-a-time)
- # There is no benefit to using sdata for these objects, and the user
- # of the library should be able to control what goes into sdata.
diff --git a/toolchain/glibc/patches/2.6.1/101-binutils_2_19.patch b/toolchain/glibc/patches/2.6.1/101-binutils_2_19.patch
deleted file mode 100644 (file)
index cc1b740..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ruN glibc-2.6.1-old/sysdeps/i386/fpu/ftestexcept.c glibc-2.6.1-new/sysdeps/i386/fpu/ftestexcept.c
---- glibc-2.6.1-old/sysdeps/i386/fpu/ftestexcept.c     2004-03-05 11:14:48.000000000 +0100
-+++ glibc-2.6.1-new/sysdeps/i386/fpu/ftestexcept.c     2009-01-21 03:29:56.000000000 +0100
-@@ -26,7 +26,7 @@
- int
- fetestexcept (int excepts)
- {
--  int temp;
-+  short temp;
-   int xtemp = 0;
-   /* Get current exceptions.  */
diff --git a/toolchain/glibc/patches/2.6.1/102-gcc_4_3.patch b/toolchain/glibc/patches/2.6.1/102-gcc_4_3.patch
deleted file mode 100644 (file)
index 86042f5..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-http://sourceware.org/bugzilla/show_bug.cgi?id=5442
-
-diff -ruN glibc-2.6.1-old/configure.in glibc-2.6.1-new/configure.in
---- glibc-2.6.1-old/configure.in       2007-03-20 13:11:23.000000000 +0100
-+++ glibc-2.6.1-new/configure.in       2009-01-21 01:09:16.000000000 +0100
-@@ -911,8 +911,12 @@
- # header directory and add that to the list.  NOTE: Only does the right
- # thing on a system that doesn't need fixincludes.  (Not presently a problem.)
- if test -n "$sysheaders"; then
--  ccheaders=`$CC -print-file-name=include`
--  SYSINCLUDES="-nostdinc -isystem $ccheaders \
-+  SYSINCLUDES=-nostdinc
-+  for d in include include-fixed; do
-+    i=`$CC -print-file-name="$d"` && test "x$i" != x && test "x$i" != "x$d" &&
-+    SYSINCLUDES="$SYSINCLUDES -isystem $i"
-+  done
-+  SYSINCLUDES="$SYSINCLUDES \
- -isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
-   if test -n "$CXX"; then
-     cxxversion=`$CXX -dumpversion 2>&AS_MESSAGE_LOG_FD` &&
-diff -ruN glibc-2.6.1-old/configure glibc-2.6.1-new/configure
---- glibc-2.6.1-old/configure  2007-07-31 15:46:12.000000000 +0200
-+++ glibc-2.6.1-new/configure  2009-01-21 01:09:13.000000000 +0100
-@@ -4562,8 +4562,12 @@
- # header directory and add that to the list.  NOTE: Only does the right
- # thing on a system that doesn't need fixincludes.  (Not presently a problem.)
- if test -n "$sysheaders"; then
--  ccheaders=`$CC -print-file-name=include`
--  SYSINCLUDES="-nostdinc -isystem $ccheaders \
-+  SYSINCLUDES=-nostdinc
-+  for d in include include-fixed; do
-+    i=`$CC -print-file-name="$d"` && test "x$i" != "x$d" &&
-+    SYSINCLUDES="$SYSINCLUDES -isystem $i"
-+  done
-+  SYSINCLUDES="$SYSINCLUDES \
- -isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
-   if test -n "$CXX"; then
-     cxxversion=`$CXX -dumpversion 2>&5` &&
diff --git a/toolchain/glibc/patches/2.7/101-binutils_2_19.patch b/toolchain/glibc/patches/2.7/101-binutils_2_19.patch
deleted file mode 100644 (file)
index 5971112..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ruN glibc-2.7-old/sysdeps/i386/fpu/ftestexcept.c glibc-2.7-new/sysdeps/i386/fpu/ftestexcept.c
---- glibc-2.7-old/sysdeps/i386/fpu/ftestexcept.c       2004-03-05 11:14:48.000000000 +0100
-+++ glibc-2.7-new/sysdeps/i386/fpu/ftestexcept.c       2009-01-21 03:33:43.000000000 +0100
-@@ -26,7 +26,7 @@
- int
- fetestexcept (int excepts)
- {
--  int temp;
-+  short temp;
-   int xtemp = 0;
-   /* Get current exceptions.  */
diff --git a/toolchain/glibc/patches/2.7/102-gcc_4_3.patch b/toolchain/glibc/patches/2.7/102-gcc_4_3.patch
deleted file mode 100644 (file)
index 2ed3f54..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-http://sourceware.org/bugzilla/show_bug.cgi?id=5442
-
-diff -ruN glibc-2.7-old/configure.in glibc-2.7-new/configure.in
---- glibc-2.7-old/configure.in 2007-06-08 05:16:36.000000000 +0200
-+++ glibc-2.7-new/configure.in 2009-01-21 01:12:42.000000000 +0100
-@@ -911,8 +911,12 @@
- # header directory and add that to the list.  NOTE: Only does the right
- # thing on a system that doesn't need fixincludes.  (Not presently a problem.)
- if test -n "$sysheaders"; then
--  ccheaders=`$CC -print-file-name=include`
--  SYSINCLUDES="-nostdinc -isystem $ccheaders \
-+  SYSINCLUDES=-nostdinc
-+  for d in include include-fixed; do
-+    i=`$CC -print-file-name="$d"` && test "x$i" != x && test "x$i" != "x$d" &&
-+    SYSINCLUDES="$SYSINCLUDES -isystem $i"
-+  done
-+  SYSINCLUDES="$SYSINCLUDES \
- -isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
-   if test -n "$CXX"; then
-     cxxversion=`$CXX -dumpversion 2>&AS_MESSAGE_LOG_FD` &&
-diff -ruN glibc-2.7-old/configure glibc-2.7-new/configure
---- glibc-2.7-old/configure    2007-10-18 13:22:23.000000000 +0200
-+++ glibc-2.7-new/configure    2009-01-21 01:12:45.000000000 +0100
-@@ -5062,8 +5062,12 @@
- # header directory and add that to the list.  NOTE: Only does the right
- # thing on a system that doesn't need fixincludes.  (Not presently a problem.)
- if test -n "$sysheaders"; then
--  ccheaders=`$CC -print-file-name=include`
--  SYSINCLUDES="-nostdinc -isystem $ccheaders \
-+  SYSINCLUDES=-nostdinc
-+  for d in include include-fixed; do
-+    i=`$CC -print-file-name="$d"` && test "x$i" != "x$d" &&
-+    SYSINCLUDES="$SYSINCLUDES -isystem $i"
-+  done
-+  SYSINCLUDES="$SYSINCLUDES \
- -isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
-   if test -n "$CXX"; then
-     cxxversion=`$CXX -dumpversion 2>&5` &&
diff --git a/toolchain/glibc/patches/2.7/103-binutils_2_20.patch b/toolchain/glibc/patches/2.7/103-binutils_2_20.patch
deleted file mode 100644 (file)
index 66d44ad..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
---- glibc-2.7-old/configure.in 2010-08-05 15:41:13.379279183 +0200
-+++ glibc-2.7-new/configure.in 2010-08-05 15:46:30.236940604 +0200
-@@ -842,10 +842,10 @@
- # Accept binutils 2.13 or newer.
- AC_CHECK_PROG_VER(AS, $AS, --version,
-                 [GNU assembler.* \([0-9]*\.[0-9.]*\)],
--                [2.1[3-9]*], AS=: critic_missing="$critic_missing as")
-+                [2.1[3-9]*|2.1[0-9][0-9]*|2.[2-9]*]|[3-9].*, AS=: critic_missing="$critic_missing as")
- AC_CHECK_PROG_VER(LD, $LD, --version,
-                 [GNU ld.* \([0-9][0-9]*\.[0-9.]*\)],
--                [2.1[3-9]*], LD=: critic_missing="$critic_missing ld")
-+                [2.1[3-9]*|2.1[0-9][0-9]*|2.[2-9]*]|[3-9].*, LD=: critic_missing="$critic_missing ld")
- # We need the physical current working directory.  We cannot use the
- # "pwd -P" shell builtin since that's not portable.  Instead we try to
diff --git a/toolchain/glibc/patches/2.7/104-binutils_2_20.patch b/toolchain/glibc/patches/2.7/104-binutils_2_20.patch
deleted file mode 100644 (file)
index 4e6ca5c..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
---- glibc-2.7-old/configure    2010-08-05 16:21:23.899880380 +0200
-+++ glibc-2.7-new/configure    2010-08-05 16:26:25.269006172 +0200
-@@ -4527,7 +4527,7 @@
-   ac_prog_version=`$AS --version 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
-   case $ac_prog_version in
-     '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
--    2.1[3-9]*)
-+    2.1[3-9]*|2.1[0-9][0-9]*|2.[2-9]*|[3-9].*)
-        ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
-     *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
-@@ -4590,7 +4590,7 @@
-   ac_prog_version=`$LD --version 2>&1 | sed -n 's/^.*GNU ld.* \([0-9][0-9]*\.[0-9.]*\).*$/\1/p'`
-   case $ac_prog_version in
-     '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
--    2.1[3-9]*)
-+    2.1[3-9]*|2.1[0-9][0-9]*|2.[2-9]*|[3-9].*)
-        ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
-     *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
This page took 0.046489 seconds and 4 git commands to generate.