diff --git a/databases/leveldb/Portfile b/databases/leveldb/Portfile
index 01354a3..34b2e12 100644
--- a/databases/leveldb/Portfile
+++ b/databases/leveldb/Portfile
@@ -14,7 +14,7 @@ PortGroup           github 1.0
 # We therefore use muniversal PortGroup
 PortGroup           muniversal 1.0
 
-github.setup        google leveldb 1.19 v
+github.setup        google leveldb 1.20 v
 
 categories          databases
 platforms           darwin
@@ -23,10 +23,11 @@ maintainers         nomaintainer
 description         A fast and lightweight key/value database library by Google
 long_description    A fast and lightweight key/value database library by Google
 
-checksums           rmd160  9586c14604093fe2ca855539f7d69ce55c999da5 \
-                    sha256  6835203e749f7f437f87f7fb788e96d0718f62ca28c0160a35f48d1ba17a8e7b
+checksums           rmd160  dd72b89d356031709df9a41da2c31ea2e093361d \
+                    sha256  154d804980d92b08d08dafff8e937ad79a45ef0fe87c9f5d69ea74690f85a933
 
-depends_lib         port:snappy
+depends_lib         port:snappy \
+                    port:gperftools
 
 patchfiles          install_name.patch
 
@@ -49,6 +50,8 @@ build.env-append                          \
     CXX="${configure.cxx}"                \
     OPT="${configure.optflags} -DNDEBUG"
 
+use_parallel_build	yes
+
 # muniversal build requires Makefile
 post-extract {
     set makefile [open ${worksrcpath}/Makefile-Install "w"]
diff --git a/databases/leveldb/files/install_name.patch b/databases/leveldb/files/install_name.patch
index 8c05fa6..2352c13 100644
--- a/databases/leveldb/files/install_name.patch
+++ b/databases/leveldb/files/install_name.patch
@@ -1,7 +1,55 @@
 https://github.com/google/leveldb/issues/412
 https://github.com/google/leveldb/pull/413
---- build_detect_platform.orig	2016-08-11 09:33:30.000000000 -0500
-+++ build_detect_platform	2016-10-16 16:31:41.000000000 -0500
+
+diff --git Makefile Makefile
+index f7cc7d736c4f20d6cab6e760d43b76e880b80e95..44cfc9f534da9cd91b26bf87e724299c5a200a46 100644
+--- Makefile
++++ Makefile
+@@ -108,13 +108,13 @@ SIMULATOR_ALLOBJS := $(SIMULATOR_LIBOBJECTS) $(SIMULATOR_MEMENVOBJECTS)
+ default: all
+ 
+ # Should we build shared libraries?
+-ifneq ($(PLATFORM_SHARED_EXT),)
++ifeq ($(PLATFORM_SHARED),true)
+ 
+ # Many leveldb test apps use non-exported API's. Only build a subset for testing.
+ SHARED_ALLOBJS := $(SHARED_LIBOBJECTS) $(SHARED_MEMENVOBJECTS) $(TESTHARNESS)
+ 
++SHARED_LIB1 = $(PLATFORM_SHARED_BASE)$(PLATFORM_SHARED_EXT)
+ ifneq ($(PLATFORM_SHARED_VERSIONED),true)
+-SHARED_LIB1 = libleveldb.$(PLATFORM_SHARED_EXT)
+ SHARED_LIB2 = $(SHARED_LIB1)
+ SHARED_LIB3 = $(SHARED_LIB1)
+ SHARED_LIBS = $(SHARED_LIB1)
+@@ -123,12 +123,11 @@ else
+ # Update db.h if you change these.
+ SHARED_VERSION_MAJOR = 1
+ SHARED_VERSION_MINOR = 20
+-SHARED_LIB1 = libleveldb.$(PLATFORM_SHARED_EXT)
+-SHARED_LIB2 = $(SHARED_LIB1).$(SHARED_VERSION_MAJOR)
+-SHARED_LIB3 = $(SHARED_LIB1).$(SHARED_VERSION_MAJOR).$(SHARED_VERSION_MINOR)
++SHARED_LIB2 = $(PLATFORM_SHARED_BASE).$(SHARED_VERSION_MAJOR)$(PLATFORM_SHARED_EXT)
++SHARED_LIB3 = $(PLATFORM_SHARED_BASE).$(SHARED_VERSION_MAJOR).$(SHARED_VERSION_MINOR)$(PLATFORM_SHARED_EXT)
+ SHARED_LIBS = $(SHARED_OUTDIR)/$(SHARED_LIB1) $(SHARED_OUTDIR)/$(SHARED_LIB2) $(SHARED_OUTDIR)/$(SHARED_LIB3)
+ $(SHARED_OUTDIR)/$(SHARED_LIB1): $(SHARED_OUTDIR)/$(SHARED_LIB3)
+-	ln -fs $(SHARED_LIB3) $(SHARED_OUTDIR)/$(SHARED_LIB1)
++	ln -fs $(SHARED_LIB2) $(SHARED_OUTDIR)/$(SHARED_LIB1)
+ $(SHARED_OUTDIR)/$(SHARED_LIB2): $(SHARED_OUTDIR)/$(SHARED_LIB3)
+ 	ln -fs $(SHARED_LIB3) $(SHARED_OUTDIR)/$(SHARED_LIB2)
+ SHARED_MEMENVLIB = $(SHARED_OUTDIR)/libmemenv.a
+@@ -137,7 +136,7 @@ endif
+ $(SHARED_OUTDIR)/$(SHARED_LIB3): $(SHARED_LIBOBJECTS)
+ 	$(CXX) $(LDFLAGS) $(PLATFORM_SHARED_LDFLAGS)$(SHARED_LIB2) $(SHARED_LIBOBJECTS) -o $(SHARED_OUTDIR)/$(SHARED_LIB3) $(LIBS)
+ 
+-endif  # PLATFORM_SHARED_EXT
++endif  # PLATFORM_SHARED
+ 
+ all: $(SHARED_LIBS) $(SHARED_PROGRAMS) $(STATIC_OUTDIR)/libleveldb.a $(STATIC_OUTDIR)/libmemenv.a $(STATIC_PROGRAMS)
+ 
+diff --git build_detect_platform build_detect_platform
+index d2a20ce5b6277594ec256004121195a22b049263..4f721a12c164d1602544e585747ef97aaf864e9c 100755
+--- build_detect_platform
++++ build_detect_platform
 @@ -8,7 +8,10 @@
  #   CXX                         C++ Compiler path
  #   PLATFORM_LDFLAGS            Linker flags
@@ -14,7 +62,7 @@ https://github.com/google/leveldb/pull/413
  #   PLATFORM_SHARED_LDFLAGS     Flags for building shared library
  #                               This flag is embedded just before the name
  #                               of the shared library without intervening spaces
-@@ -59,7 +62,9 @@
+@@ -59,7 +62,9 @@ PLATFORM_CCFLAGS=
  PLATFORM_CXXFLAGS=
  PLATFORM_LDFLAGS=
  PLATFORM_LIBS=
@@ -25,7 +73,7 @@ https://github.com/google/leveldb/pull/413
  PLATFORM_SHARED_LDFLAGS="-shared -Wl,-soname -Wl,"
  PLATFORM_SHARED_CFLAGS="-fPIC"
  PLATFORM_SHARED_VERSIONED=true
-@@ -81,7 +86,8 @@
+@@ -83,7 +88,8 @@ case "$TARGET_OS" in
      Darwin)
          PLATFORM=OS_MACOSX
          COMMON_FLAGS="$MEMCMP_FLAG -DOS_MACOSX"
@@ -35,60 +83,21 @@ https://github.com/google/leveldb/pull/413
          [ -z "$INSTALL_PATH" ] && INSTALL_PATH=`pwd`
          PLATFORM_SHARED_LDFLAGS="-dynamiclib -install_name $INSTALL_PATH/"
          PORT_FILE=port/port_posix.cc
-@@ -142,7 +148,7 @@
-         COMMON_FLAGS="$MEMCMP_FLAG -DOS_MACOSX"
+@@ -154,7 +160,7 @@ case "$TARGET_OS" in
          [ -z "$INSTALL_PATH" ] && INSTALL_PATH=`pwd`
          PORT_FILE=port/port_posix.cc
+         PORT_SSE_FILE=port/port_posix_sse.cc
 -        PLATFORM_SHARED_EXT=
 +        PLATFORM_SHARED=false
          PLATFORM_SHARED_LDFLAGS=
          PLATFORM_SHARED_CFLAGS=
          PLATFORM_SHARED_VERSIONED=
-@@ -222,6 +228,8 @@
- echo "PLATFORM_LIBS=$PLATFORM_LIBS" >> $OUTPUT
+@@ -250,6 +256,8 @@ echo "PLATFORM_LIBS=$PLATFORM_LIBS" >> $OUTPUT
  echo "PLATFORM_CCFLAGS=$PLATFORM_CCFLAGS" >> $OUTPUT
  echo "PLATFORM_CXXFLAGS=$PLATFORM_CXXFLAGS" >> $OUTPUT
+ echo "PLATFORM_SSEFLAGS=$PLATFORM_SSEFLAGS" >> $OUTPUT
 +echo "PLATFORM_SHARED=$PLATFORM_SHARED" >> $OUTPUT
 +echo "PLATFORM_SHARED_BASE=$PLATFORM_SHARED_BASE" >> $OUTPUT
  echo "PLATFORM_SHARED_CFLAGS=$PLATFORM_SHARED_CFLAGS" >> $OUTPUT
  echo "PLATFORM_SHARED_EXT=$PLATFORM_SHARED_EXT" >> $OUTPUT
  echo "PLATFORM_SHARED_LDFLAGS=$PLATFORM_SHARED_LDFLAGS" >> $OUTPUT
---- Makefile.orig	2016-08-11 09:33:30.000000000 -0500
-+++ Makefile	2016-10-16 16:41:58.000000000 -0500
-@@ -107,13 +107,13 @@
- default: all
- 
- # Should we build shared libraries?
--ifneq ($(PLATFORM_SHARED_EXT),)
-+ifeq ($(PLATFORM_SHARED),true)
- 
- # Many leveldb test apps use non-exported API's. Only build a subset for testing.
- SHARED_ALLOBJS := $(SHARED_LIBOBJECTS) $(SHARED_MEMENVOBJECTS) $(TESTHARNESS)
- 
-+SHARED_LIB1 = $(PLATFORM_SHARED_BASE)$(PLATFORM_SHARED_EXT)
- ifneq ($(PLATFORM_SHARED_VERSIONED),true)
--SHARED_LIB1 = libleveldb.$(PLATFORM_SHARED_EXT)
- SHARED_LIB2 = $(SHARED_LIB1)
- SHARED_LIB3 = $(SHARED_LIB1)
- SHARED_LIBS = $(SHARED_LIB1)
-@@ -122,9 +122,8 @@
- # Update db.h if you change these.
- SHARED_VERSION_MAJOR = 1
- SHARED_VERSION_MINOR = 19
--SHARED_LIB1 = libleveldb.$(PLATFORM_SHARED_EXT)
--SHARED_LIB2 = $(SHARED_LIB1).$(SHARED_VERSION_MAJOR)
--SHARED_LIB3 = $(SHARED_LIB1).$(SHARED_VERSION_MAJOR).$(SHARED_VERSION_MINOR)
-+SHARED_LIB2 = $(PLATFORM_SHARED_BASE).$(SHARED_VERSION_MAJOR)$(PLATFORM_SHARED_EXT)
-+SHARED_LIB3 = $(PLATFORM_SHARED_BASE).$(SHARED_VERSION_MAJOR).$(SHARED_VERSION_MINOR)$(PLATFORM_SHARED_EXT)
- SHARED_LIBS = $(SHARED_OUTDIR)/$(SHARED_LIB1) $(SHARED_OUTDIR)/$(SHARED_LIB2) $(SHARED_OUTDIR)/$(SHARED_LIB3)
- $(SHARED_OUTDIR)/$(SHARED_LIB1): $(SHARED_OUTDIR)/$(SHARED_LIB3)
- 	ln -fs $(SHARED_LIB3) $(SHARED_OUTDIR)/$(SHARED_LIB1)
-@@ -136,7 +136,7 @@
- $(SHARED_OUTDIR)/$(SHARED_LIB3): $(SHARED_LIBOBJECTS)
- 	$(CXX) $(LDFLAGS) $(PLATFORM_SHARED_LDFLAGS)$(SHARED_LIB2) $(SHARED_LIBOBJECTS) -o $(SHARED_OUTDIR)/$(SHARED_LIB3) $(LIBS)
- 
--endif  # PLATFORM_SHARED_EXT
-+endif  # PLATFORM_SHARED
- 
- all: $(SHARED_LIBS) $(SHARED_PROGRAMS) $(STATIC_OUTDIR)/libleveldb.a $(STATIC_OUTDIR)/libmemenv.a $(STATIC_PROGRAMS)
- 
