diff --git a/var/spack/repos/builtin/packages/hdf5/package.py b/var/spack/repos/builtin/packages/hdf5/package.py
index 9defe6ed5e2d6df7ca3c1eacb69d7895fc184fe4..ef61b312fe180943ad818cd19e7b96d068f85614 100644
--- a/var/spack/repos/builtin/packages/hdf5/package.py
+++ b/var/spack/repos/builtin/packages/hdf5/package.py
@@ -63,6 +63,8 @@ class Hdf5(AutotoolsPackage):
     variant('szip', default=False, description='Enable szip support')
     variant('threadsafe', default=False,
             description='Enable thread-safe capabilities')
+    variant('pic', default=True,
+            description='Produce position-independent code (for shared libs)')
 
     depends_on('mpi', when='+mpi')
     depends_on('szip', when='+szip')
@@ -121,6 +123,11 @@ def configure_args(self):
             if spec.satisfies('@:1.8.16'):
                 extra_args.append('--enable-fortran2003')
 
+        if '+pic' in spec:
+            extra_args.append('CFLAGS={0}'.format(self.compiler.pic_flag))
+            extra_args.append('CXXFLAGS={0}'.format(self.compiler.pic_flag))
+            extra_args.append('FFLAGS={0}'.format(self.compiler.pic_flag))
+
         if '+mpi' in spec:
             # The HDF5 configure script warns if cxx and mpi are enabled
             # together. There doesn't seem to be a real reason for this, except