diff --git a/.gdbm.metadata b/.gdbm.metadata
new file mode 100644
index 0000000..89222a2
--- /dev/null
+++ b/.gdbm.metadata
@@ -0,0 +1 @@
+441201e9145f590ba613f8a1e952455d620e0860 SOURCES/gdbm-1.10.tar.gz
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..2bac77d
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+SOURCES/gdbm-1.10.tar.gz
diff --git a/SOURCES/gdbm-1.10-fedora.patch b/SOURCES/gdbm-1.10-fedora.patch
new file mode 100644
index 0000000..18a4d5e
--- /dev/null
+++ b/SOURCES/gdbm-1.10-fedora.patch
@@ -0,0 +1,14 @@
+diff -up gdbm-1.10/NOTE-WARNING.fedora gdbm-1.10/NOTE-WARNING
+--- gdbm-1.10/NOTE-WARNING.fedora 2011-11-14 17:43:41.267566501 +0100
++++ gdbm-1.10/NOTE-WARNING 2011-11-14 17:47:53.312549265 +0100
+@@ -12,8 +12,8 @@ systems where it is not the default. `L
+ when a system uses 64bit file offsets. Gdbm has, of course, supported `large
+ files' on systems where it was the default for a very long time.
+
+-On some systems, such as Solaris, this functionality is not enabled by
+-default. Gdbm will now enable it. THIS MEANS THAT GDBM 1.9 MAY NOT BE
++On some systems this functionality is not enabled by default. To enable it,
++build rpm with option --with=largefile. THIS MEANS THAT GDBM 1.9 MAY NOT BE
+ ABLE TO ACCESS DATABASES CREATED BY PREVIOUS VERIONS ON THE SAME SYSTEM.
+
+ Running the `configure' script with the `--disable-largefile' flag should
diff --git a/SOURCES/gdbm-1.10-zeroheaders.patch b/SOURCES/gdbm-1.10-zeroheaders.patch
new file mode 100644
index 0000000..a268f6b
--- /dev/null
+++ b/SOURCES/gdbm-1.10-zeroheaders.patch
@@ -0,0 +1,33 @@
+diff -up gdbm-1.10/src/falloc.c.zeroheaders gdbm-1.10/src/falloc.c
+--- gdbm-1.10/src/falloc.c.zeroheaders 2011-11-11 11:59:11.000000000 +0100
++++ gdbm-1.10/src/falloc.c 2011-11-14 17:34:32.487604027 +0100
+@@ -255,7 +255,7 @@ push_avail_block (GDBM_FILE dbf)
+
+
+ /* Split the header block. */
+- temp = (avail_block *) malloc (av_size);
++ temp = (avail_block *) calloc (1, av_size);
+ if (temp == NULL) _gdbm_fatal (dbf, _("malloc error"));
+ /* Set the size to be correct AFTER the pop_avail_block. */
+ temp->size = dbf->header->avail.size;
+diff -up gdbm-1.10/src/gdbmopen.c.zeroheaders gdbm-1.10/src/gdbmopen.c
+--- gdbm-1.10/src/gdbmopen.c.zeroheaders 2011-11-11 19:39:42.000000000 +0100
++++ gdbm-1.10/src/gdbmopen.c 2011-11-14 17:33:24.867608650 +0100
+@@ -264,7 +264,7 @@ gdbm_open (const char *file, int block_s
+ (dbf->header->block_size - sizeof (hash_bucket))
+ / sizeof (bucket_element) + 1;
+ dbf->header->bucket_size = dbf->header->block_size;
+- dbf->bucket = (hash_bucket *) malloc (dbf->header->bucket_size);
++ dbf->bucket = (hash_bucket *) calloc (1, dbf->header->bucket_size);
+ if (dbf->bucket == NULL)
+ {
+ gdbm_close (dbf);
+@@ -456,7 +456,7 @@ _gdbm_init_cache(GDBM_FILE dbf, size_t s
+ for(index = 0; index < size; index++)
+ {
+ (dbf->bucket_cache[index]).ca_bucket
+- = (hash_bucket *) malloc (dbf->header->bucket_size);
++ = (hash_bucket *) calloc (1, dbf->header->bucket_size);
+ if ((dbf->bucket_cache[index]).ca_bucket == NULL)
+ {
+ gdbm_errno = GDBM_MALLOC_ERROR;
diff --git a/SOURCES/gdbm-aarch64.patch b/SOURCES/gdbm-aarch64.patch
new file mode 100644
index 0000000..ee00be1
--- /dev/null
+++ b/SOURCES/gdbm-aarch64.patch
@@ -0,0 +1,1144 @@
+diff -urN gdbm-1.10/build-aux/config.guess gdbm-1.10-aarch64/build-aux/config.guess
+--- gdbm-1.10/build-aux/config.guess 2010-01-03 03:13:18.000000000 -0600
++++ gdbm-1.10-aarch64/build-aux/config.guess 2013-03-03 04:57:09.706369924 -0600
+@@ -1,10 +1,10 @@
+ #! /bin/sh
+ # Attempt to guess a canonical system name.
+ # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+-# Free Software Foundation, Inc.
++# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
++# 2011, 2012 Free Software Foundation, Inc.
+
+-timestamp='2009-11-20'
++timestamp='2012-09-25'
+
+ # This file is free software; you can redistribute it and/or modify it
+ # under the terms of the GNU General Public License as published by
+@@ -17,9 +17,7 @@
+ # General Public License for more details.
+ #
+ # You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+-# 02110-1301, USA.
++# along with this program; if not, see .
+ #
+ # As a special exception to the GNU General Public License, if you
+ # distribute this file as part of a program that contains a
+@@ -56,8 +54,9 @@
+ GNU config.guess ($timestamp)
+
+ Originally written by Per Bothner.
+-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+-2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
++2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
++Free Software Foundation, Inc.
+
+ This is free software; see the source for copying conditions. There is NO
+ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+@@ -144,7 +143,7 @@
+ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+ *:NetBSD:*:*)
+ # NetBSD (nbsd) targets should (where applicable) match one or
+- # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
++ # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
+ # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
+ # switched to ELF, *-*-netbsd* would select the old
+ # object file format. This provides both forward
+@@ -180,7 +179,7 @@
+ fi
+ ;;
+ *)
+- os=netbsd
++ os=netbsd
+ ;;
+ esac
+ # The OS release
+@@ -201,6 +200,10 @@
+ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+ echo "${machine}-${os}${release}"
+ exit ;;
++ *:Bitrig:*:*)
++ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
++ echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
++ exit ;;
+ *:OpenBSD:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+@@ -223,7 +226,7 @@
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+ ;;
+ *5.*)
+- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
++ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+ ;;
+ esac
+ # According to Compaq, /usr/sbin/psrinfo has been available on
+@@ -269,7 +272,10 @@
+ # A Xn.n version is an unreleased experimental baselevel.
+ # 1.2 uses "1.2" for uname -r.
+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+- exit ;;
++ # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
++ exitcode=$?
++ trap '' 0
++ exit $exitcode ;;
+ Alpha\ *:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # Should we change UNAME_MACHINE based on the output of uname instead
+@@ -295,12 +301,12 @@
+ echo s390-ibm-zvmoe
+ exit ;;
+ *:OS400:*:*)
+- echo powerpc-ibm-os400
++ echo powerpc-ibm-os400
+ exit ;;
+ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+ echo arm-acorn-riscix${UNAME_RELEASE}
+ exit ;;
+- arm:riscos:*:*|arm:RISCOS:*:*)
++ arm*:riscos:*:*|arm*:RISCOS:*:*)
+ echo arm-unknown-riscos
+ exit ;;
+ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+@@ -394,23 +400,23 @@
+ # MiNT. But MiNT is downward compatible to TOS, so this should
+ # be no problem.
+ atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+- echo m68k-atari-mint${UNAME_RELEASE}
++ echo m68k-atari-mint${UNAME_RELEASE}
+ exit ;;
+ atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+- exit ;;
++ exit ;;
+ *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+- echo m68k-atari-mint${UNAME_RELEASE}
++ echo m68k-atari-mint${UNAME_RELEASE}
+ exit ;;
+ milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+- echo m68k-milan-mint${UNAME_RELEASE}
+- exit ;;
++ echo m68k-milan-mint${UNAME_RELEASE}
++ exit ;;
+ hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+- echo m68k-hades-mint${UNAME_RELEASE}
+- exit ;;
++ echo m68k-hades-mint${UNAME_RELEASE}
++ exit ;;
+ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+- echo m68k-unknown-mint${UNAME_RELEASE}
+- exit ;;
++ echo m68k-unknown-mint${UNAME_RELEASE}
++ exit ;;
+ m68k:machten:*:*)
+ echo m68k-apple-machten${UNAME_RELEASE}
+ exit ;;
+@@ -480,8 +486,8 @@
+ echo m88k-motorola-sysv3
+ exit ;;
+ AViiON:dgux:*:*)
+- # DG/UX returns AViiON for all architectures
+- UNAME_PROCESSOR=`/usr/bin/uname -p`
++ # DG/UX returns AViiON for all architectures
++ UNAME_PROCESSOR=`/usr/bin/uname -p`
+ if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+ then
+ if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+@@ -494,7 +500,7 @@
+ else
+ echo i586-dg-dgux${UNAME_RELEASE}
+ fi
+- exit ;;
++ exit ;;
+ M88*:DolphinOS:*:*) # DolphinOS (SVR3)
+ echo m88k-dolphin-sysv3
+ exit ;;
+@@ -551,7 +557,7 @@
+ echo rs6000-ibm-aix3.2
+ fi
+ exit ;;
+- *:AIX:*:[456])
++ *:AIX:*:[4567])
+ IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+ if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+ IBM_ARCH=rs6000
+@@ -594,52 +600,52 @@
+ 9000/[678][0-9][0-9])
+ if [ -x /usr/bin/getconf ]; then
+ sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+- sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+- case "${sc_cpu_version}" in
+- 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+- 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+- 532) # CPU_PA_RISC2_0
+- case "${sc_kernel_bits}" in
+- 32) HP_ARCH="hppa2.0n" ;;
+- 64) HP_ARCH="hppa2.0w" ;;
++ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
++ case "${sc_cpu_version}" in
++ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
++ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
++ 532) # CPU_PA_RISC2_0
++ case "${sc_kernel_bits}" in
++ 32) HP_ARCH="hppa2.0n" ;;
++ 64) HP_ARCH="hppa2.0w" ;;
+ '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
+- esac ;;
+- esac
++ esac ;;
++ esac
+ fi
+ if [ "${HP_ARCH}" = "" ]; then
+ eval $set_cc_for_build
+- sed 's/^ //' << EOF >$dummy.c
++ sed 's/^ //' << EOF >$dummy.c
++
++ #define _HPUX_SOURCE
++ #include
++ #include
+
+- #define _HPUX_SOURCE
+- #include
+- #include
+-
+- int main ()
+- {
+- #if defined(_SC_KERNEL_BITS)
+- long bits = sysconf(_SC_KERNEL_BITS);
+- #endif
+- long cpu = sysconf (_SC_CPU_VERSION);
+-
+- switch (cpu)
+- {
+- case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+- case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+- case CPU_PA_RISC2_0:
+- #if defined(_SC_KERNEL_BITS)
+- switch (bits)
+- {
+- case 64: puts ("hppa2.0w"); break;
+- case 32: puts ("hppa2.0n"); break;
+- default: puts ("hppa2.0"); break;
+- } break;
+- #else /* !defined(_SC_KERNEL_BITS) */
+- puts ("hppa2.0"); break;
+- #endif
+- default: puts ("hppa1.0"); break;
+- }
+- exit (0);
+- }
++ int main ()
++ {
++ #if defined(_SC_KERNEL_BITS)
++ long bits = sysconf(_SC_KERNEL_BITS);
++ #endif
++ long cpu = sysconf (_SC_CPU_VERSION);
++
++ switch (cpu)
++ {
++ case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
++ case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
++ case CPU_PA_RISC2_0:
++ #if defined(_SC_KERNEL_BITS)
++ switch (bits)
++ {
++ case 64: puts ("hppa2.0w"); break;
++ case 32: puts ("hppa2.0n"); break;
++ default: puts ("hppa2.0"); break;
++ } break;
++ #else /* !defined(_SC_KERNEL_BITS) */
++ puts ("hppa2.0"); break;
++ #endif
++ default: puts ("hppa1.0"); break;
++ }
++ exit (0);
++ }
+ EOF
+ (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+ test -z "$HP_ARCH" && HP_ARCH=hppa
+@@ -730,22 +736,22 @@
+ exit ;;
+ C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+ echo c1-convex-bsd
+- exit ;;
++ exit ;;
+ C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
+- exit ;;
++ exit ;;
+ C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+ echo c34-convex-bsd
+- exit ;;
++ exit ;;
+ C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+ echo c38-convex-bsd
+- exit ;;
++ exit ;;
+ C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+ echo c4-convex-bsd
+- exit ;;
++ exit ;;
+ CRAY*Y-MP:*:*:*)
+ echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+@@ -769,14 +775,14 @@
+ exit ;;
+ F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+ FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+- exit ;;
++ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
++ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
++ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
++ exit ;;
+ 5000:UNIX_System_V:4.*:*)
+- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+- FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+- echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
++ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
++ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
++ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit ;;
+ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+ echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+@@ -788,30 +794,35 @@
+ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+ exit ;;
+ *:FreeBSD:*:*)
+- case ${UNAME_MACHINE} in
+- pc98)
+- echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
++ UNAME_PROCESSOR=`/usr/bin/uname -p`
++ case ${UNAME_PROCESSOR} in
+ amd64)
+ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ *)
+- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
++ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ esac
+ exit ;;
+ i*:CYGWIN*:*)
+ echo ${UNAME_MACHINE}-pc-cygwin
+ exit ;;
++ *:MINGW64*:*)
++ echo ${UNAME_MACHINE}-pc-mingw64
++ exit ;;
+ *:MINGW*:*)
+ echo ${UNAME_MACHINE}-pc-mingw32
+ exit ;;
++ i*:MSYS*:*)
++ echo ${UNAME_MACHINE}-pc-msys
++ exit ;;
+ i*:windows32*:*)
+- # uname -m includes "-pc" on this system.
+- echo ${UNAME_MACHINE}-mingw32
++ # uname -m includes "-pc" on this system.
++ echo ${UNAME_MACHINE}-mingw32
+ exit ;;
+ i*:PW*:*)
+ echo ${UNAME_MACHINE}-pc-pw32
+ exit ;;
+ *:Interix*:*)
+- case ${UNAME_MACHINE} in
++ case ${UNAME_MACHINE} in
+ x86)
+ echo i586-pc-interix${UNAME_RELEASE}
+ exit ;;
+@@ -857,6 +868,13 @@
+ i*86:Minix:*:*)
+ echo ${UNAME_MACHINE}-pc-minix
+ exit ;;
++ aarch64:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-gnu
++ exit ;;
++ aarch64_be:Linux:*:*)
++ UNAME_MACHINE=aarch64_be
++ echo ${UNAME_MACHINE}-unknown-linux-gnu
++ exit ;;
+ alpha:Linux:*:*)
+ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+ EV5) UNAME_MACHINE=alphaev5 ;;
+@@ -866,7 +884,7 @@
+ EV6) UNAME_MACHINE=alphaev6 ;;
+ EV67) UNAME_MACHINE=alphaev67 ;;
+ EV68*) UNAME_MACHINE=alphaev68 ;;
+- esac
++ esac
+ objdump --private-headers /bin/sh | grep -q ld.so.1
+ if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+ echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+@@ -878,20 +896,29 @@
+ then
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ else
+- echo ${UNAME_MACHINE}-unknown-linux-gnueabi
++ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
++ | grep -q __ARM_PCS_VFP
++ then
++ echo ${UNAME_MACHINE}-unknown-linux-gnueabi
++ else
++ echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
++ fi
+ fi
+ exit ;;
+ avr32*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ cris:Linux:*:*)
+- echo cris-axis-linux-gnu
++ echo ${UNAME_MACHINE}-axis-linux-gnu
+ exit ;;
+ crisv32:Linux:*:*)
+- echo crisv32-axis-linux-gnu
++ echo ${UNAME_MACHINE}-axis-linux-gnu
+ exit ;;
+ frv:Linux:*:*)
+- echo frv-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-gnu
++ exit ;;
++ hexagon:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ i*86:Linux:*:*)
+ LIBC=gnu
+@@ -933,7 +960,7 @@
+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+ ;;
+ or32:Linux:*:*)
+- echo or32-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ padre:Linux:*:*)
+ echo sparc-unknown-linux-gnu
+@@ -959,7 +986,7 @@
+ echo ${UNAME_MACHINE}-ibm-linux
+ exit ;;
+ sh64*:Linux:*:*)
+- echo ${UNAME_MACHINE}-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ sh*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+@@ -967,14 +994,17 @@
+ sparc:Linux:*:* | sparc64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
++ tile*:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-gnu
++ exit ;;
+ vax:Linux:*:*)
+ echo ${UNAME_MACHINE}-dec-linux-gnu
+ exit ;;
+ x86_64:Linux:*:*)
+- echo x86_64-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ xtensa*:Linux:*:*)
+- echo ${UNAME_MACHINE}-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ i*86:DYNIX/ptx:4*:*)
+ # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+@@ -983,11 +1013,11 @@
+ echo i386-sequent-sysv4
+ exit ;;
+ i*86:UNIX_SV:4.2MP:2.*)
+- # Unixware is an offshoot of SVR4, but it has its own version
+- # number series starting with 2...
+- # I am not positive that other SVR4 systems won't match this,
++ # Unixware is an offshoot of SVR4, but it has its own version
++ # number series starting with 2...
++ # I am not positive that other SVR4 systems won't match this,
+ # I just have to hope. -- rms.
+- # Use sysv4.2uw... so that sysv4* matches it.
++ # Use sysv4.2uw... so that sysv4* matches it.
+ echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+ exit ;;
+ i*86:OS/2:*:*)
+@@ -1019,7 +1049,7 @@
+ fi
+ exit ;;
+ i*86:*:5:[678]*)
+- # UnixWare 7.x, OpenUNIX and OpenServer 6.
++ # UnixWare 7.x, OpenUNIX and OpenServer 6.
+ case `/bin/uname -X | grep "^Machine"` in
+ *486*) UNAME_MACHINE=i486 ;;
+ *Pentium) UNAME_MACHINE=i586 ;;
+@@ -1047,13 +1077,13 @@
+ exit ;;
+ pc:*:*:*)
+ # Left here for compatibility:
+- # uname -m prints for DJGPP always 'pc', but it prints nothing about
+- # the processor, so we play safe by assuming i586.
++ # uname -m prints for DJGPP always 'pc', but it prints nothing about
++ # the processor, so we play safe by assuming i586.
+ # Note: whatever this is, it MUST be the same as what config.sub
+ # prints for the "djgpp" host, or else GDB configury will decide that
+ # this is a cross-build.
+ echo i586-pc-msdosdjgpp
+- exit ;;
++ exit ;;
+ Intel:Mach:3*:*)
+ echo i386-pc-mach3
+ exit ;;
+@@ -1088,8 +1118,8 @@
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+ 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+- && { echo i486-ncr-sysv4; exit; } ;;
++ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
++ && { echo i486-ncr-sysv4; exit; } ;;
+ NCR*:*:4.2:* | MPRAS*:*:4.2:*)
+ OS_REL='.3'
+ test -r /etc/.relid \
+@@ -1132,10 +1162,10 @@
+ echo ns32k-sni-sysv
+ fi
+ exit ;;
+- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+- # says
+- echo i586-unisys-sysv4
+- exit ;;
++ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
++ # says
++ echo i586-unisys-sysv4
++ exit ;;
+ *:UNIX_System_V:4*:FTX*)
+ # From Gerald Hewes .
+ # How about differentiating between stratus architectures? -djm
+@@ -1161,11 +1191,11 @@
+ exit ;;
+ R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+ if [ -d /usr/nec ]; then
+- echo mips-nec-sysv${UNAME_RELEASE}
++ echo mips-nec-sysv${UNAME_RELEASE}
+ else
+- echo mips-unknown-sysv${UNAME_RELEASE}
++ echo mips-unknown-sysv${UNAME_RELEASE}
+ fi
+- exit ;;
++ exit ;;
+ BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
+ echo powerpc-be-beos
+ exit ;;
+@@ -1178,6 +1208,9 @@
+ BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
+ echo i586-pc-haiku
+ exit ;;
++ x86_64:Haiku:*:*)
++ echo x86_64-unknown-haiku
++ exit ;;
+ SX-4:SUPER-UX:*:*)
+ echo sx4-nec-superux${UNAME_RELEASE}
+ exit ;;
+@@ -1230,7 +1263,10 @@
+ *:QNX:*:4*)
+ echo i386-pc-qnx
+ exit ;;
+- NSE-?:NONSTOP_KERNEL:*:*)
++ NEO-?:NONSTOP_KERNEL:*:*)
++ echo neo-tandem-nsk${UNAME_RELEASE}
++ exit ;;
++ NSE-*:NONSTOP_KERNEL:*:*)
+ echo nse-tandem-nsk${UNAME_RELEASE}
+ exit ;;
+ NSR-?:NONSTOP_KERNEL:*:*)
+@@ -1275,13 +1311,13 @@
+ echo pdp10-unknown-its
+ exit ;;
+ SEI:*:*:SEIUX)
+- echo mips-sei-seiux${UNAME_RELEASE}
++ echo mips-sei-seiux${UNAME_RELEASE}
+ exit ;;
+ *:DragonFly:*:*)
+ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+ exit ;;
+ *:*VMS:*:*)
+- UNAME_MACHINE=`(uname -p) 2>/dev/null`
++ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ case "${UNAME_MACHINE}" in
+ A*) echo alpha-dec-vms ; exit ;;
+ I*) echo ia64-dec-vms ; exit ;;
+@@ -1299,11 +1335,11 @@
+ i*86:AROS:*:*)
+ echo ${UNAME_MACHINE}-pc-aros
+ exit ;;
++ x86_64:VMkernel:*:*)
++ echo ${UNAME_MACHINE}-unknown-esx
++ exit ;;
+ esac
+
+-#echo '(No uname command or uname output not recognized.)' 1>&2
+-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
+-
+ eval $set_cc_for_build
+ cat >$dummy.c <
+ printf ("m68k-sony-newsos%s\n",
+ #ifdef NEWSOS4
+- "4"
++ "4"
+ #else
+- ""
++ ""
+ #endif
+- ); exit (0);
++ ); exit (0);
+ #endif
+ #endif
+
+diff -urN gdbm-1.10/build-aux/config.sub gdbm-1.10-aarch64/build-aux/config.sub
+--- gdbm-1.10/build-aux/config.sub 2010-01-03 03:13:18.000000000 -0600
++++ gdbm-1.10-aarch64/build-aux/config.sub 2013-03-03 04:57:09.745365414 -0600
+@@ -1,10 +1,10 @@
+ #! /bin/sh
+ # Configuration validation subroutine script.
+ # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+-# Free Software Foundation, Inc.
++# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
++# 2011, 2012 Free Software Foundation, Inc.
+
+-timestamp='2009-11-20'
++timestamp='2012-10-10'
+
+ # This file is (in principle) common to ALL GNU software.
+ # The presence of a machine in this file suggests that SOME GNU software
+@@ -21,9 +21,7 @@
+ # GNU General Public License for more details.
+ #
+ # You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+-# 02110-1301, USA.
++# along with this program; if not, see .
+ #
+ # As a special exception to the GNU General Public License, if you
+ # distribute this file as part of a program that contains a
+@@ -75,8 +73,9 @@
+ version="\
+ GNU config.sub ($timestamp)
+
+-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+-2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
++2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
++Free Software Foundation, Inc.
+
+ This is free software; see the source for copying conditions. There is NO
+ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+@@ -123,13 +122,18 @@
+ # Here we must recognize all the valid KERNEL-OS combinations.
+ maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+ case $maybe_os in
+- nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
+- uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
++ nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
++ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
++ knetbsd*-gnu* | netbsd*-gnu* | \
+ kopensolaris*-gnu* | \
+ storm-chaos* | os2-emx* | rtmk-nova*)
+ os=-$maybe_os
+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+ ;;
++ android-linux)
++ os=-linux-android
++ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
++ ;;
+ *)
+ basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+ if [ $basic_machine != $1 ]
+@@ -152,12 +156,12 @@
+ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+- -apple | -axis | -knuth | -cray | -microblaze)
++ -apple | -axis | -knuth | -cray | -microblaze*)
+ os=
+ basic_machine=$1
+ ;;
+- -bluegene*)
+- os=-cnk
++ -bluegene*)
++ os=-cnk
+ ;;
+ -sim | -cisco | -oki | -wec | -winbond)
+ os=
+@@ -173,10 +177,10 @@
+ os=-chorusos
+ basic_machine=$1
+ ;;
+- -chorusrdb)
+- os=-chorusrdb
++ -chorusrdb)
++ os=-chorusrdb
+ basic_machine=$1
+- ;;
++ ;;
+ -hiux*)
+ os=-hiuxwe2
+ ;;
+@@ -221,6 +225,12 @@
+ -isc*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
++ -lynx*178)
++ os=-lynxos178
++ ;;
++ -lynx*5)
++ os=-lynxos5
++ ;;
+ -lynx*)
+ os=-lynxos
+ ;;
+@@ -245,20 +255,25 @@
+ # Some are omitted here because they have special meanings below.
+ 1750a | 580 \
+ | a29k \
++ | aarch64 | aarch64_be \
+ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+ | am33_2.0 \
+ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
++ | be32 | be64 \
+ | bfin \
+ | c4x | clipper \
+ | d10v | d30v | dlx | dsp16xx \
++ | epiphany \
+ | fido | fr30 | frv \
+ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
++ | hexagon \
+ | i370 | i860 | i960 | ia64 \
+ | ip2k | iq2000 \
++ | le32 | le64 \
+ | lm32 \
+ | m32c | m32r | m32rle | m68000 | m68k | m88k \
+- | maxq | mb | microblaze | mcore | mep | metag \
++ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \
+ | mips | mipsbe | mipseb | mipsel | mipsle \
+ | mips16 \
+ | mips64 | mips64el \
+@@ -281,29 +296,39 @@
+ | moxie \
+ | mt \
+ | msp430 \
++ | nds32 | nds32le | nds32be \
+ | nios | nios2 \
+ | ns16k | ns32k \
++ | open8 \
+ | or32 \
+ | pdp10 | pdp11 | pj | pjl \
+- | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
++ | powerpc | powerpc64 | powerpc64le | powerpcle \
+ | pyramid \
+- | rx \
++ | rl78 | rx \
+ | score \
+ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+ | sh64 | sh64le \
+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
+- | spu | strongarm \
+- | tahoe | thumb | tic4x | tic80 | tron \
++ | spu \
++ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
+ | ubicom32 \
+- | v850 | v850e \
++ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
+ | we32k \
+- | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
++ | x86 | xc16x | xstormy16 | xtensa \
+ | z8k | z80)
+ basic_machine=$basic_machine-unknown
+ ;;
+- m6811 | m68hc11 | m6812 | m68hc12 | picochip)
+- # Motorola 68HC11/12.
++ c54x)
++ basic_machine=tic54x-unknown
++ ;;
++ c55x)
++ basic_machine=tic55x-unknown
++ ;;
++ c6x)
++ basic_machine=tic6x-unknown
++ ;;
++ m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
+ basic_machine=$basic_machine-unknown
+ os=-none
+ ;;
+@@ -313,6 +338,21 @@
+ basic_machine=mt-unknown
+ ;;
+
++ strongarm | thumb | xscale)
++ basic_machine=arm-unknown
++ ;;
++ xgate)
++ basic_machine=$basic_machine-unknown
++ os=-none
++ ;;
++ xscaleeb)
++ basic_machine=armeb-unknown
++ ;;
++
++ xscaleel)
++ basic_machine=armel-unknown
++ ;;
++
+ # We use `pc' rather than `unknown'
+ # because (1) that's what they normally are, and
+ # (2) the word "unknown" tends to confuse beginning users.
+@@ -327,25 +367,30 @@
+ # Recognize the basic CPU types with company name.
+ 580-* \
+ | a29k-* \
++ | aarch64-* | aarch64_be-* \
+ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
+ | avr-* | avr32-* \
++ | be32-* | be64-* \
+ | bfin-* | bs2000-* \
+- | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
++ | c[123]* | c30-* | [cjt]90-* | c4x-* \
+ | clipper-* | craynv-* | cydra-* \
+ | d10v-* | d30v-* | dlx-* \
+ | elxsi-* \
+ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
+ | h8300-* | h8500-* \
+ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
++ | hexagon-* \
+ | i*86-* | i860-* | i960-* | ia64-* \
+ | ip2k-* | iq2000-* \
++ | le32-* | le64-* \
+ | lm32-* \
+ | m32c-* | m32r-* | m32rle-* \
+ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+- | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
++ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
++ | microblaze-* | microblazeel-* \
+ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+ | mips16-* \
+ | mips64-* | mips64el-* \
+@@ -367,25 +412,29 @@
+ | mmix-* \
+ | mt-* \
+ | msp430-* \
++ | nds32-* | nds32le-* | nds32be-* \
+ | nios-* | nios2-* \
+ | none-* | np1-* | ns16k-* | ns32k-* \
++ | open8-* \
+ | orion-* \
+ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
++ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
+ | pyramid-* \
+- | romp-* | rs6000-* | rx-* \
++ | rl78-* | romp-* | rs6000-* | rx-* \
+ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
+ | sparclite-* \
+- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
+- | tahoe-* | thumb-* \
+- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
++ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
++ | tahoe-* \
++ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
++ | tile*-* \
+ | tron-* \
+ | ubicom32-* \
+- | v850-* | v850e-* | vax-* \
++ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
++ | vax-* \
+ | we32k-* \
+- | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
++ | x86-* | x86_64-* | xc16x-* | xps100-* \
+ | xstormy16-* | xtensa*-* \
+ | ymp-* \
+ | z8k-* | z80-*)
+@@ -410,7 +459,7 @@
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+- abacus)
++ abacus)
+ basic_machine=abacus-unknown
+ ;;
+ adobe68k)
+@@ -480,11 +529,20 @@
+ basic_machine=powerpc-ibm
+ os=-cnk
+ ;;
++ c54x-*)
++ basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
++ ;;
++ c55x-*)
++ basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
++ ;;
++ c6x-*)
++ basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
++ ;;
+ c90)
+ basic_machine=c90-cray
+ os=-unicos
+ ;;
+- cegcc)
++ cegcc)
+ basic_machine=arm-unknown
+ os=-cegcc
+ ;;
+@@ -516,7 +574,7 @@
+ basic_machine=craynv-cray
+ os=-unicosmp
+ ;;
+- cr16)
++ cr16 | cr16-*)
+ basic_machine=cr16-unknown
+ os=-elf
+ ;;
+@@ -674,7 +732,6 @@
+ i370-ibm* | ibm*)
+ basic_machine=i370-ibm
+ ;;
+-# I'm not sure what "Sysv32" means. Should this be sysv3.2?
+ i*86v32)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv32
+@@ -732,9 +789,13 @@
+ basic_machine=ns32k-utek
+ os=-sysv
+ ;;
+- microblaze)
++ microblaze*)
+ basic_machine=microblaze-xilinx
+ ;;
++ mingw64)
++ basic_machine=x86_64-pc
++ os=-mingw64
++ ;;
+ mingw32)
+ basic_machine=i386-pc
+ os=-mingw32
+@@ -771,10 +832,18 @@
+ ms1-*)
+ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
+ ;;
++ msys)
++ basic_machine=i386-pc
++ os=-msys
++ ;;
+ mvs)
+ basic_machine=i370-ibm
+ os=-mvs
+ ;;
++ nacl)
++ basic_machine=le32-unknown
++ os=-nacl
++ ;;
+ ncr3000)
+ basic_machine=i486-ncr
+ os=-sysv4
+@@ -839,6 +908,12 @@
+ np1)
+ basic_machine=np1-gould
+ ;;
++ neo-tandem)
++ basic_machine=neo-tandem
++ ;;
++ nse-tandem)
++ basic_machine=nse-tandem
++ ;;
+ nsr-tandem)
+ basic_machine=nsr-tandem
+ ;;
+@@ -921,9 +996,10 @@
+ ;;
+ power) basic_machine=power-ibm
+ ;;
+- ppc) basic_machine=powerpc-unknown
++ ppc | ppcbe) basic_machine=powerpc-unknown
+ ;;
+- ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
++ ppc-* | ppcbe-*)
++ basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppcle | powerpclittle | ppc-le | powerpc-little)
+ basic_machine=powerpcle-unknown
+@@ -1017,6 +1093,9 @@
+ basic_machine=i860-stratus
+ os=-sysv4
+ ;;
++ strongarm-* | thumb-*)
++ basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
++ ;;
+ sun2)
+ basic_machine=m68000-sun
+ ;;
+@@ -1073,20 +1152,8 @@
+ basic_machine=t90-cray
+ os=-unicos
+ ;;
+- tic54x | c54x*)
+- basic_machine=tic54x-unknown
+- os=-coff
+- ;;
+- tic55x | c55x*)
+- basic_machine=tic55x-unknown
+- os=-coff
+- ;;
+- tic6x | c6x*)
+- basic_machine=tic6x-unknown
+- os=-coff
+- ;;
+ tile*)
+- basic_machine=tile-unknown
++ basic_machine=$basic_machine-unknown
+ os=-linux-gnu
+ ;;
+ tx39)
+@@ -1156,6 +1223,9 @@
+ xps | xps100)
+ basic_machine=xps100-honeywell
+ ;;
++ xscale-* | xscalee[bl]-*)
++ basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
++ ;;
+ ymp)
+ basic_machine=ymp-cray
+ os=-unicos
+@@ -1253,11 +1323,11 @@
+ if [ x"$os" != x"" ]
+ then
+ case $os in
+- # First match some system type aliases
+- # that might get confused with valid system types.
++ # First match some system type aliases
++ # that might get confused with valid system types.
+ # -solaris* is a basic system type, with this one exception.
+- -auroraux)
+- os=-auroraux
++ -auroraux)
++ os=-auroraux
+ ;;
+ -solaris1 | -solaris1.*)
+ os=`echo $os | sed -e 's|solaris1|sunos4|'`
+@@ -1287,14 +1357,15 @@
+ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
+- | -openbsd* | -solidbsd* \
++ | -bitrig* | -openbsd* | -solidbsd* \
+ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
+ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+ | -chorusos* | -chorusrdb* | -cegcc* \
+- | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+- | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
++ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
++ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
++ | -linux-newlib* | -linux-musl* | -linux-uclibc* \
+ | -uxpv* | -beos* | -mpeix* | -udk* \
+ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
+ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+@@ -1341,7 +1412,7 @@
+ -opened*)
+ os=-openedition
+ ;;
+- -os400*)
++ -os400*)
+ os=-os400
+ ;;
+ -wince*)
+@@ -1390,7 +1461,7 @@
+ -sinix*)
+ os=-sysv4
+ ;;
+- -tpf*)
++ -tpf*)
+ os=-tpf
+ ;;
+ -triton*)
+@@ -1435,6 +1506,8 @@
+ -dicos*)
+ os=-dicos
+ ;;
++ -nacl*)
++ ;;
+ -none)
+ ;;
+ *)
+@@ -1457,10 +1530,10 @@
+ # system, and we'll never get to this point.
+
+ case $basic_machine in
+- score-*)
++ score-*)
+ os=-elf
+ ;;
+- spu-*)
++ spu-*)
+ os=-elf
+ ;;
+ *-acorn)
+@@ -1472,8 +1545,20 @@
+ arm*-semi)
+ os=-aout
+ ;;
+- c4x-* | tic4x-*)
+- os=-coff
++ c4x-* | tic4x-*)
++ os=-coff
++ ;;
++ hexagon-*)
++ os=-elf
++ ;;
++ tic54x-*)
++ os=-coff
++ ;;
++ tic55x-*)
++ os=-coff
++ ;;
++ tic6x-*)
++ os=-coff
+ ;;
+ # This must come before the *-dec entry.
+ pdp10-*)
+@@ -1493,14 +1578,11 @@
+ ;;
+ m68000-sun)
+ os=-sunos3
+- # This also exists in the configure program, but was not the
+- # default.
+- # os=-sunos4
+ ;;
+ m68*-cisco)
+ os=-aout
+ ;;
+- mep-*)
++ mep-*)
+ os=-elf
+ ;;
+ mips*-cisco)
+@@ -1527,7 +1609,7 @@
+ *-ibm)
+ os=-aix
+ ;;
+- *-knuth)
++ *-knuth)
+ os=-mmixware
+ ;;
+ *-wec)
diff --git a/SOURCES/gdbm-sa1.patch b/SOURCES/gdbm-sa1.patch
new file mode 100644
index 0000000..e969be8
--- /dev/null
+++ b/SOURCES/gdbm-sa1.patch
@@ -0,0 +1,343 @@
+These issues have been found by Coverty static analysis tool:
+
+Error: RESOURCE_LEAK (CWE-404): [#def4]
+gdbm-1.10/src/flatfile.c:40: switch: Switch case value "2"
+gdbm-1.10/src/flatfile.c:42: switch_case: Reached case "2"
+gdbm-1.10/src/flatfile.c:43: open_fn: Returning handle opened by function "open(char const *, int, ...)".
+gdbm-1.10/src/flatfile.c:43: var_assign: Assigning: "nfd" = handle returned from "open(exportfile, 193, mode)".
+gdbm-1.10/src/flatfile.c:44: cond_false: Condition "nfd == -1", taking false branch
+gdbm-1.10/src/flatfile.c:48: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:49: break: Breaking from switch
+gdbm-1.10/src/flatfile.c:65: switch_end: Reached end of switch
+gdbm-1.10/src/flatfile.c:68: noescape: Resource "nfd" is not freed or pointed-to in function "write(int, void const *, size_t)".
+gdbm-1.10/src/flatfile.c:68: cond_true: Condition "write(nfd, header1, strlen(header1)) != strlen(header1)", taking true branch
+gdbm-1.10/src/flatfile.c:69: goto: Jumping to label "write_fail"
+gdbm-1.10/src/flatfile.c:107: label: Reached label "write_fail"
+gdbm-1.10/src/flatfile.c:110: leaked_handle: Handle variable "nfd" going out of scope leaks the handle.
+
+Error: RESOURCE_LEAK (CWE-404): [#def5]
+gdbm-1.10/src/flatfile.c:40: switch: Switch case value "3"
+gdbm-1.10/src/flatfile.c:50: switch_case: Reached case "3"
+gdbm-1.10/src/flatfile.c:51: open_fn: Returning handle opened by function "open(char const *, int, ...)".
+gdbm-1.10/src/flatfile.c:51: var_assign: Assigning: "nfd" = handle returned from "open(exportfile, 577, mode)".
+gdbm-1.10/src/flatfile.c:52: cond_false: Condition "nfd == -1", taking false branch
+gdbm-1.10/src/flatfile.c:56: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:57: break: Breaking from switch
+gdbm-1.10/src/flatfile.c:65: switch_end: Reached end of switch
+gdbm-1.10/src/flatfile.c:68: noescape: Resource "nfd" is not freed or pointed-to in function "write(int, void const *, size_t)".
+gdbm-1.10/src/flatfile.c:68: cond_true: Condition "write(nfd, header1, strlen(header1)) != strlen(header1)", taking true branch
+gdbm-1.10/src/flatfile.c:69: goto: Jumping to label "write_fail"
+gdbm-1.10/src/flatfile.c:107: label: Reached label "write_fail"
+gdbm-1.10/src/flatfile.c:110: leaked_handle: Handle variable "nfd" going out of scope leaks the handle.
+
+Error: RESOURCE_LEAK (CWE-404): [#def6]
+gdbm-1.10/src/flatfile.c:124: cond_false: Condition "ifd == -1", taking false branch
+gdbm-1.10/src/flatfile.c:128: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:136: cond_true: Condition "1", taking true branch
+gdbm-1.10/src/flatfile.c:138: cond_false: Condition "read(ifd, &c, 1) != 1", taking false branch
+gdbm-1.10/src/flatfile.c:139: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:141: cond_true: Condition "c == '!'", taking true branch
+gdbm-1.10/src/flatfile.c:143: cond_false: Condition "c == 10", taking false branch
+gdbm-1.10/src/flatfile.c:151: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:152: loop: Jumping back to the beginning of the loop
+gdbm-1.10/src/flatfile.c:136: loop_begin: Jumped back to beginning of loop
+gdbm-1.10/src/flatfile.c:136: cond_true: Condition "1", taking true branch
+gdbm-1.10/src/flatfile.c:138: cond_false: Condition "read(ifd, &c, 1) != 1", taking false branch
+gdbm-1.10/src/flatfile.c:139: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:141: cond_true: Condition "c == '!'", taking true branch
+gdbm-1.10/src/flatfile.c:143: cond_false: Condition "c == 10", taking false branch
+gdbm-1.10/src/flatfile.c:151: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:152: loop: Jumping back to the beginning of the loop
+gdbm-1.10/src/flatfile.c:136: loop_begin: Jumped back to beginning of loop
+gdbm-1.10/src/flatfile.c:136: cond_true: Condition "1", taking true branch
+gdbm-1.10/src/flatfile.c:138: cond_false: Condition "read(ifd, &c, 1) != 1", taking false branch
+gdbm-1.10/src/flatfile.c:139: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:141: cond_false: Condition "c == '!'", taking false branch
+gdbm-1.10/src/flatfile.c:142: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:143: cond_true: Condition "c == 10", taking true branch
+gdbm-1.10/src/flatfile.c:145: cond_true: Condition "seenbang > 3", taking true branch
+gdbm-1.10/src/flatfile.c:145: cond_false: Condition "seennewline > 2", taking false branch
+gdbm-1.10/src/flatfile.c:149: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:152: loop: Jumping back to the beginning of the loop
+gdbm-1.10/src/flatfile.c:136: loop_begin: Jumped back to beginning of loop
+gdbm-1.10/src/flatfile.c:136: cond_true: Condition "1", taking true branch
+gdbm-1.10/src/flatfile.c:138: cond_false: Condition "read(ifd, &c, 1) != 1", taking false branch
+gdbm-1.10/src/flatfile.c:139: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:141: cond_true: Condition "c == '!'", taking true branch
+gdbm-1.10/src/flatfile.c:143: cond_false: Condition "c == 10", taking false branch
+gdbm-1.10/src/flatfile.c:151: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:152: loop: Jumping back to the beginning of the loop
+gdbm-1.10/src/flatfile.c:136: loop_begin: Jumped back to beginning of loop
+gdbm-1.10/src/flatfile.c:136: cond_true: Condition "1", taking true branch
+gdbm-1.10/src/flatfile.c:138: cond_false: Condition "read(ifd, &c, 1) != 1", taking false branch
+gdbm-1.10/src/flatfile.c:139: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:141: cond_false: Condition "c == '!'", taking false branch
+gdbm-1.10/src/flatfile.c:142: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:143: cond_true: Condition "c == 10", taking true branch
+gdbm-1.10/src/flatfile.c:145: cond_true: Condition "seenbang > 3", taking true branch
+gdbm-1.10/src/flatfile.c:145: cond_false: Condition "seennewline > 2", taking false branch
+gdbm-1.10/src/flatfile.c:149: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:152: loop: Jumping back to the beginning of the loop
+gdbm-1.10/src/flatfile.c:136: loop_begin: Jumped back to beginning of loop
+gdbm-1.10/src/flatfile.c:136: cond_true: Condition "1", taking true branch
+gdbm-1.10/src/flatfile.c:138: cond_false: Condition "read(ifd, &c, 1) != 1", taking false branch
+gdbm-1.10/src/flatfile.c:139: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:141: cond_false: Condition "c == '!'", taking false branch
+gdbm-1.10/src/flatfile.c:142: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:143: cond_true: Condition "c == 10", taking true branch
+gdbm-1.10/src/flatfile.c:145: cond_true: Condition "seenbang > 3", taking true branch
+gdbm-1.10/src/flatfile.c:145: cond_true: Condition "seennewline > 2", taking true branch
+gdbm-1.10/src/flatfile.c:148: break: Breaking from loop
+gdbm-1.10/src/flatfile.c:152: loop_end: Reached end of loop
+gdbm-1.10/src/flatfile.c:156: alloc_fn: Storage is returned from allocation function "malloc(size_t)".
+gdbm-1.10/src/flatfile.c:156: var_assign: Assigning: "kbuffer" = storage returned from "malloc(kbufsize)".
+gdbm-1.10/src/flatfile.c:157: cond_false: Condition "kbuffer == NULL", taking false branch
+gdbm-1.10/src/flatfile.c:162: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:165: cond_true: Condition "dbuffer == NULL", taking true branch
+gdbm-1.10/src/flatfile.c:169: leaked_storage: Variable "kbuffer" going out of scope leaks the storage it points to.
+
+Error: RESOURCE_LEAK (CWE-404): [#def8]
+gdbm-1.10/src/flatfile.c:124: cond_false: Condition "ifd == -1", taking false branch
+gdbm-1.10/src/flatfile.c:128: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:136: cond_true: Condition "1", taking true branch
+gdbm-1.10/src/flatfile.c:138: cond_false: Condition "read(ifd, &c, 1) != 1", taking false branch
+gdbm-1.10/src/flatfile.c:139: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:141: cond_true: Condition "c == '!'", taking true branch
+gdbm-1.10/src/flatfile.c:143: cond_false: Condition "c == 10", taking false branch
+gdbm-1.10/src/flatfile.c:151: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:152: loop: Jumping back to the beginning of the loop
+gdbm-1.10/src/flatfile.c:136: loop_begin: Jumped back to beginning of loop
+gdbm-1.10/src/flatfile.c:136: cond_true: Condition "1", taking true branch
+gdbm-1.10/src/flatfile.c:138: cond_false: Condition "read(ifd, &c, 1) != 1", taking false branch
+gdbm-1.10/src/flatfile.c:139: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:141: cond_true: Condition "c == '!'", taking true branch
+gdbm-1.10/src/flatfile.c:143: cond_false: Condition "c == 10", taking false branch
+gdbm-1.10/src/flatfile.c:151: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:152: loop: Jumping back to the beginning of the loop
+gdbm-1.10/src/flatfile.c:136: loop_begin: Jumped back to beginning of loop
+gdbm-1.10/src/flatfile.c:136: cond_true: Condition "1", taking true branch
+gdbm-1.10/src/flatfile.c:138: cond_false: Condition "read(ifd, &c, 1) != 1", taking false branch
+gdbm-1.10/src/flatfile.c:139: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:141: cond_false: Condition "c == '!'", taking false branch
+gdbm-1.10/src/flatfile.c:142: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:143: cond_true: Condition "c == 10", taking true branch
+gdbm-1.10/src/flatfile.c:145: cond_true: Condition "seenbang > 3", taking true branch
+gdbm-1.10/src/flatfile.c:145: cond_false: Condition "seennewline > 2", taking false branch
+gdbm-1.10/src/flatfile.c:149: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:152: loop: Jumping back to the beginning of the loop
+gdbm-1.10/src/flatfile.c:136: loop_begin: Jumped back to beginning of loop
+gdbm-1.10/src/flatfile.c:136: cond_true: Condition "1", taking true branch
+gdbm-1.10/src/flatfile.c:138: cond_false: Condition "read(ifd, &c, 1) != 1", taking false branch
+gdbm-1.10/src/flatfile.c:139: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:141: cond_true: Condition "c == '!'", taking true branch
+gdbm-1.10/src/flatfile.c:143: cond_false: Condition "c == 10", taking false branch
+gdbm-1.10/src/flatfile.c:151: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:152: loop: Jumping back to the beginning of the loop
+gdbm-1.10/src/flatfile.c:136: loop_begin: Jumped back to beginning of loop
+gdbm-1.10/src/flatfile.c:136: cond_true: Condition "1", taking true branch
+gdbm-1.10/src/flatfile.c:138: cond_false: Condition "read(ifd, &c, 1) != 1", taking false branch
+gdbm-1.10/src/flatfile.c:139: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:141: cond_false: Condition "c == '!'", taking false branch
+gdbm-1.10/src/flatfile.c:142: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:143: cond_true: Condition "c == 10", taking true branch
+gdbm-1.10/src/flatfile.c:145: cond_true: Condition "seenbang > 3", taking true branch
+gdbm-1.10/src/flatfile.c:145: cond_false: Condition "seennewline > 2", taking false branch
+gdbm-1.10/src/flatfile.c:149: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:152: loop: Jumping back to the beginning of the loop
+gdbm-1.10/src/flatfile.c:136: loop_begin: Jumped back to beginning of loop
+gdbm-1.10/src/flatfile.c:136: cond_true: Condition "1", taking true branch
+gdbm-1.10/src/flatfile.c:138: cond_false: Condition "read(ifd, &c, 1) != 1", taking false branch
+gdbm-1.10/src/flatfile.c:139: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:141: cond_false: Condition "c == '!'", taking false branch
+gdbm-1.10/src/flatfile.c:142: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:143: cond_true: Condition "c == 10", taking true branch
+gdbm-1.10/src/flatfile.c:145: cond_true: Condition "seenbang > 3", taking true branch
+gdbm-1.10/src/flatfile.c:145: cond_true: Condition "seennewline > 2", taking true branch
+gdbm-1.10/src/flatfile.c:148: break: Breaking from loop
+gdbm-1.10/src/flatfile.c:152: loop_end: Reached end of loop
+gdbm-1.10/src/flatfile.c:157: cond_false: Condition "kbuffer == NULL", taking false branch
+gdbm-1.10/src/flatfile.c:162: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:164: alloc_fn: Storage is returned from allocation function "malloc(size_t)".
+gdbm-1.10/src/flatfile.c:164: var_assign: Assigning: "dbuffer" = storage returned from "malloc(dbufsize)".
+gdbm-1.10/src/flatfile.c:165: cond_false: Condition "dbuffer == NULL", taking false branch
+gdbm-1.10/src/flatfile.c:170: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:173: cond_true: Condition "(rret = read(ifd, &rsize, 4UL /* sizeof (rsize) */)) != 0", taking true branch
+gdbm-1.10/src/flatfile.c:175: cond_false: Condition "rret != 4UL /* sizeof (rsize) */", taking false branch
+gdbm-1.10/src/flatfile.c:176: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:180: cond_true: Condition "size > kbufsize", taking true branch
+gdbm-1.10/src/flatfile.c:184: cond_true: Condition "kbuffer == NULL", taking true branch
+gdbm-1.10/src/flatfile.c:188: leaked_storage: Variable "dbuffer" going out of scope leaks the storage it points to.
+
+Error: RESOURCE_LEAK (CWE-404): [#def9]
+gdbm-1.10/src/flatfile.c:124: cond_false: Condition "ifd == -1", taking false branch
+gdbm-1.10/src/flatfile.c:128: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:136: cond_true: Condition "1", taking true branch
+gdbm-1.10/src/flatfile.c:138: cond_false: Condition "read(ifd, &c, 1) != 1", taking false branch
+gdbm-1.10/src/flatfile.c:139: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:141: cond_true: Condition "c == '!'", taking true branch
+gdbm-1.10/src/flatfile.c:143: cond_false: Condition "c == 10", taking false branch
+gdbm-1.10/src/flatfile.c:151: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:152: loop: Jumping back to the beginning of the loop
+gdbm-1.10/src/flatfile.c:136: loop_begin: Jumped back to beginning of loop
+gdbm-1.10/src/flatfile.c:136: cond_true: Condition "1", taking true branch
+gdbm-1.10/src/flatfile.c:138: cond_false: Condition "read(ifd, &c, 1) != 1", taking false branch
+gdbm-1.10/src/flatfile.c:139: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:141: cond_true: Condition "c == '!'", taking true branch
+gdbm-1.10/src/flatfile.c:143: cond_false: Condition "c == 10", taking false branch
+gdbm-1.10/src/flatfile.c:151: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:152: loop: Jumping back to the beginning of the loop
+gdbm-1.10/src/flatfile.c:136: loop_begin: Jumped back to beginning of loop
+gdbm-1.10/src/flatfile.c:136: cond_true: Condition "1", taking true branch
+gdbm-1.10/src/flatfile.c:138: cond_false: Condition "read(ifd, &c, 1) != 1", taking false branch
+gdbm-1.10/src/flatfile.c:139: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:141: cond_false: Condition "c == '!'", taking false branch
+gdbm-1.10/src/flatfile.c:142: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:143: cond_true: Condition "c == 10", taking true branch
+gdbm-1.10/src/flatfile.c:145: cond_true: Condition "seenbang > 3", taking true branch
+gdbm-1.10/src/flatfile.c:145: cond_false: Condition "seennewline > 2", taking false branch
+gdbm-1.10/src/flatfile.c:149: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:152: loop: Jumping back to the beginning of the loop
+gdbm-1.10/src/flatfile.c:136: loop_begin: Jumped back to beginning of loop
+gdbm-1.10/src/flatfile.c:136: cond_true: Condition "1", taking true branch
+gdbm-1.10/src/flatfile.c:138: cond_false: Condition "read(ifd, &c, 1) != 1", taking false branch
+gdbm-1.10/src/flatfile.c:139: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:141: cond_true: Condition "c == '!'", taking true branch
+gdbm-1.10/src/flatfile.c:143: cond_false: Condition "c == 10", taking false branch
+gdbm-1.10/src/flatfile.c:151: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:152: loop: Jumping back to the beginning of the loop
+gdbm-1.10/src/flatfile.c:136: loop_begin: Jumped back to beginning of loop
+gdbm-1.10/src/flatfile.c:136: cond_true: Condition "1", taking true branch
+gdbm-1.10/src/flatfile.c:138: cond_false: Condition "read(ifd, &c, 1) != 1", taking false branch
+gdbm-1.10/src/flatfile.c:139: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:141: cond_false: Condition "c == '!'", taking false branch
+gdbm-1.10/src/flatfile.c:142: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:143: cond_true: Condition "c == 10", taking true branch
+gdbm-1.10/src/flatfile.c:145: cond_true: Condition "seenbang > 3", taking true branch
+gdbm-1.10/src/flatfile.c:145: cond_false: Condition "seennewline > 2", taking false branch
+gdbm-1.10/src/flatfile.c:149: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:152: loop: Jumping back to the beginning of the loop
+gdbm-1.10/src/flatfile.c:136: loop_begin: Jumped back to beginning of loop
+gdbm-1.10/src/flatfile.c:136: cond_true: Condition "1", taking true branch
+gdbm-1.10/src/flatfile.c:138: cond_false: Condition "read(ifd, &c, 1) != 1", taking false branch
+gdbm-1.10/src/flatfile.c:139: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:141: cond_false: Condition "c == '!'", taking false branch
+gdbm-1.10/src/flatfile.c:142: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:143: cond_true: Condition "c == 10", taking true branch
+gdbm-1.10/src/flatfile.c:145: cond_true: Condition "seenbang > 3", taking true branch
+gdbm-1.10/src/flatfile.c:145: cond_true: Condition "seennewline > 2", taking true branch
+gdbm-1.10/src/flatfile.c:148: break: Breaking from loop
+gdbm-1.10/src/flatfile.c:152: loop_end: Reached end of loop
+gdbm-1.10/src/flatfile.c:157: cond_false: Condition "kbuffer == NULL", taking false branch
+gdbm-1.10/src/flatfile.c:162: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:164: alloc_fn: Storage is returned from allocation function "malloc(size_t)".
+gdbm-1.10/src/flatfile.c:164: var_assign: Assigning: "dbuffer" = storage returned from "malloc(dbufsize)".
+gdbm-1.10/src/flatfile.c:165: cond_false: Condition "dbuffer == NULL", taking false branch
+gdbm-1.10/src/flatfile.c:170: if_end: End of if statement
+gdbm-1.10/src/flatfile.c:173: cond_false: Condition "(rret = read(ifd, &rsize, 4UL /* sizeof (rsize) */)) != 0", taking false branch
+gdbm-1.10/src/flatfile.c:229: loop_end: Reached end of loop
+gdbm-1.10/src/flatfile.c:232: leaked_storage: Variable "dbuffer" going out of scope leaks the storage it points to.
+
+Error: USE_AFTER_FREE (CWE-416): [#def16]
+gdbm-1.10/src/gdbmreorg.c:70: cond_false: Condition "dbf->read_write == 0", taking false branch
+gdbm-1.10/src/gdbmreorg.c:74: if_end: End of if statement
+gdbm-1.10/src/gdbmreorg.c:77: cond_false: Condition "fstat(dbf->desc, &fileinfo)", taking false branch
+gdbm-1.10/src/gdbmreorg.c:81: if_end: End of if statement
+gdbm-1.10/src/gdbmreorg.c:89: cond_false: Condition "new_name == NULL", taking false branch
+gdbm-1.10/src/gdbmreorg.c:93: if_end: End of if statement
+gdbm-1.10/src/gdbmreorg.c:97: cond_true: Condition "len > 0", taking true branch
+gdbm-1.10/src/gdbmreorg.c:97: cond_true: Condition "new_name[len - 1] != '/'", taking true branch
+gdbm-1.10/src/gdbmreorg.c:101: loop: Jumping back to the beginning of the loop
+gdbm-1.10/src/gdbmreorg.c:97: loop_begin: Jumped back to beginning of loop
+gdbm-1.10/src/gdbmreorg.c:97: cond_true: Condition "len > 0", taking true branch
+gdbm-1.10/src/gdbmreorg.c:97: cond_false: Condition "new_name[len - 1] != '/'", taking false branch
+gdbm-1.10/src/gdbmreorg.c:101: loop_end: Reached end of loop
+gdbm-1.10/src/gdbmreorg.c:105: cond_true: Condition "dbf->cloexec", taking true branch
+gdbm-1.10/src/gdbmreorg.c:109: cond_false: Condition "new_dbf == NULL", taking false branch
+gdbm-1.10/src/gdbmreorg.c:114: if_end: End of if statement
+gdbm-1.10/src/gdbmreorg.c:120: cond_false: Condition "key.dptr != NULL", taking false branch
+gdbm-1.10/src/gdbmreorg.c:148: loop_end: Reached end of loop
+gdbm-1.10/src/gdbmreorg.c:160: cond_false: Condition "rename(new_name, dbf->name) != 0", taking false branch
+gdbm-1.10/src/gdbmreorg.c:166: if_end: End of if statement
+gdbm-1.10/src/gdbmreorg.c:169: cond_true: Condition "dbf->file_locking", taking true branch
+gdbm-1.10/src/gdbmreorg.c:173: closed_arg: "close(int)" closes "dbf->desc".
+gdbm-1.10/src/gdbmreorg.c:177: cond_true: Condition "dbf->bucket_cache != NULL", taking true branch
+gdbm-1.10/src/gdbmreorg.c:178: cond_true: Condition "index < dbf->cache_size", taking true branch
+gdbm-1.10/src/gdbmreorg.c:179: cond_true: Condition "(dbf->bucket_cache + index).ca_bucket != NULL", taking true branch
+gdbm-1.10/src/gdbmreorg.c:181: cond_true: Condition "(dbf->bucket_cache + index).ca_data.dptr != NULL", taking true branch
+gdbm-1.10/src/gdbmreorg.c:183: loop: Jumping back to the beginning of the loop
+gdbm-1.10/src/gdbmreorg.c:178: loop_begin: Jumped back to beginning of loop
+gdbm-1.10/src/gdbmreorg.c:178: cond_false: Condition "index < dbf->cache_size", taking false branch
+gdbm-1.10/src/gdbmreorg.c:183: loop_end: Reached end of loop
+gdbm-1.10/src/gdbmreorg.c:189: cond_true: Condition "dbf->memory_mapping", taking true branch
+gdbm-1.10/src/gdbmreorg.c:190: pass_closed_arg: Passing closed handle "dbf->desc" as an argument to function "_gdbm_mapped_init(GDBM_FILE)".
+
+
+
+diff -up gdbm-1.10/src/flatfile.c.sa1 gdbm-1.10/src/flatfile.c
+--- gdbm-1.10/src/flatfile.c.sa1 2012-12-10 15:45:41.835009811 +0100
++++ gdbm-1.10/src/flatfile.c 2012-12-10 15:55:22.650480928 +0100
+@@ -106,6 +106,7 @@ gdbm_export (GDBM_FILE dbf, const char *
+
+ write_fail:
+
++ close (nfd);
+ gdbm_errno = GDBM_FILE_WRITE_ERROR;
+ return -1;
+ }
+@@ -166,6 +167,7 @@ gdbm_import (GDBM_FILE dbf, const char *
+ {
+ gdbm_errno = GDBM_MALLOC_ERROR;
+ close (ifd);
++ free(kbuffer);
+ return -1;
+ }
+
+@@ -185,6 +187,7 @@ gdbm_import (GDBM_FILE dbf, const char *
+ {
+ gdbm_errno = GDBM_MALLOC_ERROR;
+ close (ifd);
++ free(dbuffer);
+ return -1;
+ }
+ }
+@@ -228,6 +231,11 @@ gdbm_import (GDBM_FILE dbf, const char *
+ count++;
+ }
+
++ if (kbuffer != NULL)
++ free (kbuffer);
++ if (dbuffer != NULL)
++ free (dbuffer);
++
+ close (ifd);
+ return count;
+
+diff -up gdbm-1.10/src/gdbmreorg.c.sa1 gdbm-1.10/src/gdbmreorg.c
+--- gdbm-1.10/src/gdbmreorg.c.sa1 2012-12-10 16:12:23.818314970 +0100
++++ gdbm-1.10/src/gdbmreorg.c 2012-12-10 16:12:30.947320804 +0100
+@@ -184,12 +184,6 @@ gdbm_reorganize (GDBM_FILE dbf)
+ free (dbf->bucket_cache);
+ }
+
+-#if HAVE_MMAP
+- /* Re-initialize mapping if required */
+- if (dbf->memory_mapping)
+- _gdbm_mapped_init (dbf);
+-#endif
+-
+ dbf->desc = new_dbf->desc;
+ dbf->header = new_dbf->header;
+ dbf->dir = new_dbf->dir;
+@@ -203,6 +197,12 @@ gdbm_reorganize (GDBM_FILE dbf)
+ dbf->bucket_changed = new_dbf->bucket_changed;
+ dbf->second_changed = new_dbf->second_changed;
+
++#if HAVE_MMAP
++ /* Re-initialize mapping if required */
++ if (dbf->memory_mapping)
++ _gdbm_mapped_init (dbf);
++#endif
++
+ free (new_dbf->name);
+ free (new_dbf);
+ free (new_name);
diff --git a/SPECS/gdbm.spec b/SPECS/gdbm.spec
new file mode 100644
index 0000000..9516ca9
--- /dev/null
+++ b/SPECS/gdbm.spec
@@ -0,0 +1,320 @@
+%bcond_with largefile
+Summary: A GNU set of database routines which use extensible hashing
+Name: gdbm
+Version: 1.10
+Release: 8%{?dist}
+Source: http://ftp.gnu.org/gnu/gdbm/gdbm-%{version}.tar.gz
+# Prevent gdbm from storing uninitialized memory content
+# to database files.
+# The change allows Valgrind users to debug their packages without
+# dealing with gdbm-related noise. It also improves security, as
+# the uninitialized memory might contain sensitive informations
+# from other applications. The patch is taken from Debian.
+# See https://bugzilla.redhat.com/show_bug.cgi?id=4457
+# See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=208927
+Patch0: gdbm-1.10-zeroheaders.patch
+Patch1: gdbm-1.10-fedora.patch
+Patch2: gdbm-sa1.patch
+Patch3: gdbm-aarch64.patch
+License: GPLv3+
+URL: http://www.gnu.org/software/gdbm/
+Group: System Environment/Libraries
+BuildRequires: libtool
+BuildRequires: gettext
+
+%description
+Gdbm is a GNU database indexing library, including routines which use
+extensible hashing. Gdbm works in a similar way to standard UNIX dbm
+routines. Gdbm is useful for developers who write C applications and
+need access to a simple and efficient database or who are building C
+applications which will use such a database.
+
+If you're a C developer and your programs need access to simple
+database routines, you should install gdbm. You'll also need to
+install gdbm-devel.
+
+%package devel
+Summary: Development libraries and header files for the gdbm library
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+Requires(post): info
+Requires(preun): info
+
+%description devel
+Gdbm-devel contains the development libraries and header files for
+gdbm, the GNU database system. These libraries and header files are
+necessary if you plan to do development using the gdbm database.
+
+Install gdbm-devel if you are developing C programs which will use the
+gdbm database library. You'll also need to install the gdbm package.
+
+%prep
+%setup -q
+%patch0 -p1 -b .zeroheaders
+%patch1 -p1 -b .fedora
+%patch2 -p1 -b .sa1
+%patch3 -p1 -b .aarch64
+
+%build
+%configure \
+ --disable-static \
+%{!?with_largefile: --disable-largefile} \
+ --enable-libgdbm-compat
+
+make %{?_smp_mflags}
+
+%install
+make DESTDIR=$RPM_BUILD_ROOT install
+
+%find_lang %{name}
+
+# create symlinks for compatibility
+mkdir -p $RPM_BUILD_ROOT/%{_includedir}/gdbm
+ln -sf ../gdbm.h $RPM_BUILD_ROOT/%{_includedir}/gdbm/gdbm.h
+ln -sf ../ndbm.h $RPM_BUILD_ROOT/%{_includedir}/gdbm/ndbm.h
+ln -sf ../dbm.h $RPM_BUILD_ROOT/%{_includedir}/gdbm/dbm.h
+
+rm -f $RPM_BUILD_ROOT/%{_libdir}/libgdbm.la
+rm -f $RPM_BUILD_ROOT/%{_libdir}/libgdbm_compat.la
+
+rm -f $RPM_BUILD_ROOT/%{_infodir}/dir
+
+%check
+make check
+
+%post -p /sbin/ldconfig
+
+%postun -p /sbin/ldconfig
+
+%post devel
+/sbin/install-info %{_infodir}/gdbm.info.gz %{_infodir}/dir \
+ --entry="* gdbm: (gdbm). The GNU Database." || :
+
+%preun devel
+if [ $1 = 0 ]; then
+ /sbin/install-info --delete %{_infodir}/gdbm.info.gz %{_infodir}/dir \
+ --entry="* gdbm: (gdbm). The GNU Database." || :
+fi
+
+%files -f %{name}.lang
+%doc COPYING NEWS README THANKS AUTHORS NOTE-WARNING
+%{_libdir}/libgdbm.so.4*
+%{_libdir}/libgdbm_compat.so.4*
+%{_bindir}/testgdbm
+
+%files devel
+%{_libdir}/libgdbm.so
+%{_libdir}/libgdbm_compat.so
+%{_includedir}/*
+%{_infodir}/*.info*
+%{_mandir}/man3/*
+
+%changelog
+* Fri Jan 24 2014 Daniel Mach - 1.10-8
+- Mass rebuild 2014-01-24
+
+* Fri Dec 27 2013 Daniel Mach - 1.10-7
+- Mass rebuild 2013-12-27
+
+* Mon Mar 25 2013 Honza Horak - 1.10-6
+- Fixed some issues found by Coverity
+- Add support of aarch64
+
+* Wed Feb 13 2013 Fedora Release Engineering - 1.10-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
+
+* Mon Aug 27 2012 Honza Horak - 1.10-4
+- Spec file cleanup
+- Use make DESTDIR=... install instead of %%make_install
+
+* Thu Jul 19 2012 Fedora Release Engineering - 1.10-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
+* Fri Jan 13 2012 Fedora Release Engineering - 1.10-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
+
+* Mon Nov 14 2011 Honza Horak - 1.10-1
+- Updated to new upstream release 1.10
+- Dropped -shortread patch, which has been already applied by upstream
+- Disable large file support, that is enabled by default since 1.9,
+ but not compatible with db files created using gdbm-1.8.3 and lower
+- License change to GPLv3+
+- Add doc files THANKS AUTHORS NOTE-WARNING
+- Changed text in NOTE-WARNING to correspond with build settings
+
+* Tue Sep 20 2011 Honza Horak - 1.9.1-1
+- Updated to new upstream release 1.9.1
+- Dropped -filestruct, -ndbmlock and -fhs patches, they are not
+ needed anymore and GDBM_NOLOCK is used always
+- Run testsuite
+
+* Tue Feb 08 2011 Fedora Release Engineering - 1.8.3-9
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
+
+* Thu Jan 13 2011 Jan Horak - 1.8.3-8
+- Added filestruct patch (#668178)
+
+* Mon Jan 03 2011 Karel Klic - 1.8.3-7
+- Removed BuildRoot tag
+- Removed %%clean section
+- Added ndbmlock patch (#663932)
+
+* Mon Apr 12 2010 Karel Klic - 1.8.3-6
+- Use fcntl instead of flock for locking to make nfs safe (#477300)
+
+* Thu Mar 11 2010 Karel Klic - 1.8.3-5
+- Removed fake Provides: libgdbm.so.2 and corresponding symlinks
+- Moved autoconf, libtoolize from %%build to %%prep section
+- Remove static builds from the devel package (#556050)
+
+* Thu Mar 11 2010 Karel Klic - 1.8.3-4
+- Provides: libgdbm.so.2()(64bit) for x86_64 architecture
+
+* Thu Mar 11 2010 Karel Klic - 1.8.3-3
+- Added temporary symlinks to retain compatibility with gdbm 1.8.0
+
+* Wed Mar 10 2010 Rex Dieter - 1.8.3-2
+- %%files: track shlib sonames, so abi breaks are less of a surprise
+
+* Tue Mar 09 2010 Karel Klic - 1.8.3-1
+- Newer upstream release
+- Removed gdbm-1.8.0-64offset.patch, because it was merged by the upstream
+- `jbj' patch extended and renamed to `zeroheaders'
+- Added shortread patch from Debian
+
+* Fri Jul 24 2009 Fedora Release Engineering - 1.8.0-33
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
+
+* Fri Apr 17 2009 Stepan Kasal - 1.8.0-32
+- Clean up the spec, for merge review.
+
+* Fri Feb 27 2009 Stepan Kasal - 1.8.0-31
+- drop *-cflags.patch, move all makefile fixes to *-fhs.patch
+- propagate libdir to Makefile; no need to set it on cmdline
+
+* Tue Feb 24 2009 Fedora Release Engineering - 1.8.0-30
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
+
+* Mon Jul 21 2008 Tom "spot" Callaway - 1.8.0-29
+- fix license tag
+
+* Tue Feb 19 2008 Fedora Release Engineering - 1.8.0-28
+- Autorebuild for GCC 4.3
+
+* Tue Apr 3 2007 Ondrej Dvoracek - 1.8.0-27
+- made install-info use in scriptlets safe (#223688)
+
+* Wed Jul 12 2006 Jesse Keating - 1.8.0-26.2.1
+- rebuild
+
+* Fri Feb 10 2006 Jesse Keating - 1.8.0-26.2
+- bump again for double-long bug on ppc(64)
+
+* Tue Feb 07 2006 Jesse Keating - 1.8.0-26.1
+- rebuilt for new gcc4.1 snapshot and glibc changes
+
+* Tue Jan 24 2006 Warren Togami 1.8.0-26
+- remove .la (#171535)
+
+* Fri Dec 09 2005 Jesse Keating
+- rebuilt
+
+* Sat Apr 09 2005 Florian La Roche
+- rebuild
+
+* Sun Aug 8 2004 Alan Cox 1.8.0-24
+- Close bug #125319
+
+* Tue Jun 15 2004 Elliot Lee
+- rebuilt
+
+* Tue Mar 02 2004 Elliot Lee
+- rebuilt
+
+* Fri Feb 13 2004 Elliot Lee
+- rebuilt
+
+* Wed Jun 04 2003 Elliot Lee
+- rebuilt
+
+* Wed Jan 22 2003 Tim Powers
+- rebuilt
+
+* Fri Oct 4 2002 Nalin Dahyabhai 1.8.0-19
+- rebuild
+
+* Fri Sep 13 2002 Nalin Dahyabhai 1.8.0-18.1
+- run make with libdir overridden so that it has the value passed to configure
+ instead of $(prefix)/lib
+
+* Wed Jul 24 2002 Trond Eivind Glomsrød 1.8.0-18
+- Remove cflags for large database support - not compatible
+ with databases without it
+
+* Fri Jun 21 2002 Tim Powers
+- automated rebuild
+
+* Thu May 23 2002 Tim Powers
+- automated rebuild
+
+* Thu Apr 25 2002 Trond Eivind Glomsrød 1.8.0-15
+- Use 64bit offset
+- Patch to make the above not break from downsj@downsj.com (#63980)
+
+* Tue Feb 26 2002 Trond Eivind Glomsrød 1.8.0-14
+- Rebuild
+
+* Fri Jan 25 2002 Trond Eivind Glomsrød 1.8.0-13
+- Update location
+- auto* changes to make it build
+
+* Wed Oct 17 2001 Trond Eivind Glomsrød 1.8.0-11
+- Add URL (# 54607)
+
+* Mon Jun 25 2001 Nalin Dahyabhai
+- s/Copyright:/License:/g
+- include text docs in binary package
+
+* Tue Jun 12 2001 Than Ngo
+- fix to build against new libtool
+
+* Mon Mar 19 2001 Trond Eivind Glomsrød
+- Make it respect RPM_OPT_FLAGS/CFLAGS - #32242.
+ Patch from dan@D00M.cmc.msu.ru
+
+* Thu Jul 13 2000 Prospector
+- automatic rebuild
+
+* Mon Jun 5 2000 Jeff Johnson
+- FHS packaging.
+
+* Mon Feb 7 2000 Bill Nottingham
+- handle compressed manpages
+
+* Tue Aug 10 1999 Jeff Johnson
+- make sure created database header is initialized (#4457).
+
+* Tue Jun 1 1999 Jeff Johnson
+- update to 1.8.0.
+- repackage to include /usr/include/gdbm/*dbm.h compatibility includes.
+
+* Sun Mar 21 1999 Cristian Gafton
+- auto rebuild in the new build environment (release 19)
+
+* Thu Dec 17 1998 Cristian Gafton
+- build against glibc 2.1
+
+* Thu May 07 1998 Prospector System
+- translations modified for de, fr, tr
+
+* Thu Apr 30 1998 Cristian Gafton
+- gdbm-devel moved to Development/Libraries
+
+* Wed Apr 08 1998 Cristian Gafton
+- buildroot and built for Manhattan
+
+* Tue Oct 14 1997 Donnie Barnes
+- spec file cleanups
+
+* Thu Jun 12 1997 Erik Troan
+- built against glibc