diff --git a/etc/spack/defaults/packages.yaml b/etc/spack/defaults/packages.yaml
index 46aa5ad9adc362ce147d0db6fadd7334e2c13a6b..2c91b75e45d68545a4ebc302372df00e7ca4577d 100644
--- a/etc/spack/defaults/packages.yaml
+++ b/etc/spack/defaults/packages.yaml
@@ -27,6 +27,7 @@ packages:
       glx: [mesa+glx, opengl]
       glu: [mesa-glu, openglu]
       golang: [gcc]
+      iconv: [libiconv]
       ipp: [intel-ipp]
       java: [openjdk, jdk, ibm-java]
       jpeg: [libjpeg-turbo, libjpeg]
diff --git a/var/spack/repos/builtin/packages/apr-util/package.py b/var/spack/repos/builtin/packages/apr-util/package.py
index 2d9354e817a078af5d0838607f47c1184fea09b8..0bb2fecfa66401dae0551fa0e2b9a8ee1f55125f 100644
--- a/var/spack/repos/builtin/packages/apr-util/package.py
+++ b/var/spack/repos/builtin/packages/apr-util/package.py
@@ -24,7 +24,7 @@ class AprUtil(AutotoolsPackage):
 
     depends_on('apr')
     depends_on('expat')
-    depends_on('libiconv')
+    depends_on('iconv')
 
     depends_on('openssl', when='+crypto')
     depends_on('gdbm', when='+gdbm')
@@ -38,7 +38,7 @@ def configure_args(self):
         args = [
             '--with-apr={0}'.format(spec['apr'].prefix),
             '--with-expat={0}'.format(spec['expat'].prefix),
-            '--with-iconv={0}'.format(spec['libiconv'].prefix),
+            '--with-iconv={0}'.format(spec['iconv'].prefix),
             # TODO: Add support for the following database managers
             '--without-ndbm',
             '--without-berkeley-db',
diff --git a/var/spack/repos/builtin/packages/bash/package.py b/var/spack/repos/builtin/packages/bash/package.py
index f6c7da812969b774497fa5a1016e1047e7793ff1..f69012942422620755a8d54589f6d49774512cd5 100644
--- a/var/spack/repos/builtin/packages/bash/package.py
+++ b/var/spack/repos/builtin/packages/bash/package.py
@@ -19,7 +19,7 @@ class Bash(AutotoolsPackage, GNUMirrorPackage):
 
     depends_on('ncurses')
     depends_on('readline@5.0:')
-    depends_on('libiconv')
+    depends_on('iconv')
 
     patches = [
         ('5.0', '001', 'f2fe9e1f0faddf14ab9bfa88d450a75e5d028fedafad23b88716bd657c737289'),
@@ -54,7 +54,7 @@ def configure_args(self):
             '--with-curses',
             '--enable-readline',
             '--with-installed-readline',
-            '--with-libiconv-prefix={0}'.format(spec['libiconv'].prefix),
+            '--with-libiconv-prefix={0}'.format(spec['iconv'].prefix),
         ]
 
     def check(self):
diff --git a/var/spack/repos/builtin/packages/dcmtk/package.py b/var/spack/repos/builtin/packages/dcmtk/package.py
index de7a4c6ef260f91620154e4bd26df098cfebb031..2bf3db66d144a6a5555ce57f68124b0e2076e6e7 100644
--- a/var/spack/repos/builtin/packages/dcmtk/package.py
+++ b/var/spack/repos/builtin/packages/dcmtk/package.py
@@ -32,7 +32,7 @@ class Dcmtk(CMakePackage):
     depends_on('libxml2', type=('build', 'link'), when='+xml')
 
     variant('iconv', default=True, description="Charset conversion support (iconv)")
-    depends_on('libiconv', type=('build', 'link'))
+    depends_on('iconv', type=('build', 'link'))
 
     variant('cxx11', default=False, description="Enable c++11 features")
     variant('stl', default=True, description="Use native STL implementation")
diff --git a/var/spack/repos/builtin/packages/diffutils/package.py b/var/spack/repos/builtin/packages/diffutils/package.py
index c8f2dca83f3e023139a023c0ee5a4eefcde4c67a..d41086113a5526964cc5c1ed0ac06f1e137a0176 100644
--- a/var/spack/repos/builtin/packages/diffutils/package.py
+++ b/var/spack/repos/builtin/packages/diffutils/package.py
@@ -18,7 +18,7 @@ class Diffutils(AutotoolsPackage, GNUMirrorPackage):
 
     build_directory = 'spack-build'
 
-    depends_on('libiconv')
+    depends_on('iconv')
 
     def setup_build_environment(self, env):
         if self.spec.satisfies('%fj'):
diff --git a/var/spack/repos/builtin/packages/doxygen/package.py b/var/spack/repos/builtin/packages/doxygen/package.py
index aa99ca73ee2db8cc5c16f4d2cf212d1bdb1fd892..c3c80614d5d5c0e8eed9b9784c670060ca569858 100644
--- a/var/spack/repos/builtin/packages/doxygen/package.py
+++ b/var/spack/repos/builtin/packages/doxygen/package.py
@@ -29,7 +29,7 @@ class Doxygen(CMakePackage):
 
     depends_on("cmake@2.8.12:", type='build')
     depends_on("python", type='build')  # 2 or 3 OK; used in CMake build
-    depends_on("libiconv")
+    depends_on("iconv")
     depends_on("flex", type='build')
     # code.l just checks subminor version <=2.5.4 or >=2.5.33
     # but does not recognize 2.6.x as newer...could be patched if needed
@@ -45,6 +45,8 @@ class Doxygen(CMakePackage):
     patch('shared_ptr.patch', when='@1.8.14')
 
     def patch(self):
+        if self.spec['iconv'].name == 'libc':
+            return
         # On Linux systems, iconv is provided by libc. Since CMake finds the
         # symbol in libc, it does not look for libiconv, which leads to linker
         # errors. This makes sure that CMake always looks for the external
diff --git a/var/spack/repos/builtin/packages/gcc/package.py b/var/spack/repos/builtin/packages/gcc/package.py
index f3891161a2be437b396e14c74cb114aea6cf1f46..b7a08f8538fe4f1fd6342f914a79e1fe68bd53f8 100644
--- a/var/spack/repos/builtin/packages/gcc/package.py
+++ b/var/spack/repos/builtin/packages/gcc/package.py
@@ -103,7 +103,7 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage):
     depends_on('isl@0.15:0.18', when='@6:8.9')
     depends_on('isl@0.15:0.20', when='@9:')
     depends_on('zlib', when='@6:')
-    depends_on('libiconv', when='platform=darwin')
+    depends_on('iconv', when='platform=darwin')
     depends_on('gnat', when='languages=ada')
     depends_on('binutils~libiberty', when='+binutils')
     depends_on('zip', type='build', when='languages=java')
@@ -356,7 +356,7 @@ def configure_args(self):
             options.extend([
                 '--with-native-system-header-dir=/usr/include',
                 '--with-sysroot={0}'.format(macos_sdk_path()),
-                '--with-libiconv-prefix={0}'.format(spec['libiconv'].prefix)
+                '--with-libiconv-prefix={0}'.format(spec['iconv'].prefix)
             ])
 
         return options
diff --git a/var/spack/repos/builtin/packages/gdal/package.py b/var/spack/repos/builtin/packages/gdal/package.py
index 2182811233566840ef1eb8dd8781b1f7990588af..b6b78f80200b4a1828cf586d101469d125aec7a1 100644
--- a/var/spack/repos/builtin/packages/gdal/package.py
+++ b/var/spack/repos/builtin/packages/gdal/package.py
@@ -107,7 +107,7 @@ class Gdal(AutotoolsPackage):
     # Optional dependencies
     depends_on('libtool', type='build', when='+libtool')
     depends_on('zlib', when='+libz')
-    depends_on('libiconv', when='+libiconv')
+    depends_on('iconv', when='+libiconv')
     depends_on('xz', when='+liblzma')
     depends_on('zstd', when='+zstd @2.3:')
     depends_on('postgresql', when='+pg')
@@ -250,7 +250,7 @@ def configure_args(self):
 
         if '+libiconv' in spec:
             args.append('--with-libiconv-prefix={0}'.format(
-                spec['libiconv'].prefix))
+                spec['iconv'].prefix))
         else:
             args.append('--with-libiconv-prefix=no')
 
diff --git a/var/spack/repos/builtin/packages/git/package.py b/var/spack/repos/builtin/packages/git/package.py
index 1bd236051a7c49bd5c7e4b790ddfe94a717f2b07..ba842587e24961780e0e4394720e312dc98e9dd6 100644
--- a/var/spack/repos/builtin/packages/git/package.py
+++ b/var/spack/repos/builtin/packages/git/package.py
@@ -177,7 +177,7 @@ class Git(AutotoolsPackage):
     depends_on('curl')
     depends_on('expat')
     depends_on('gettext')
-    depends_on('libiconv')
+    depends_on('iconv')
     depends_on('libidn2')
     depends_on('openssl')
     depends_on('pcre', when='@:2.13')
@@ -221,7 +221,7 @@ def configure_args(self):
         configure_args = [
             '--with-curl={0}'.format(spec['curl'].prefix),
             '--with-expat={0}'.format(spec['expat'].prefix),
-            '--with-iconv={0}'.format(spec['libiconv'].prefix),
+            '--with-iconv={0}'.format(spec['iconv'].prefix),
             '--with-openssl={0}'.format(spec['openssl'].prefix),
             '--with-perl={0}'.format(spec['perl'].command.path),
             '--with-zlib={0}'.format(spec['zlib'].prefix),
diff --git a/var/spack/repos/builtin/packages/glib/package.py b/var/spack/repos/builtin/packages/glib/package.py
index e43a9d1728430fdd55ca5e732416f12694f8d495..43195680086f9d3d5c3a68220902416137fcd079 100644
--- a/var/spack/repos/builtin/packages/glib/package.py
+++ b/var/spack/repos/builtin/packages/glib/package.py
@@ -46,7 +46,7 @@ class Glib(AutotoolsPackage):
     depends_on('python', type=('build', 'run'), when='@2.53.4:')
     depends_on('pcre+utf', when='@2.48:')
     depends_on('util-linux', when='+libmount')
-    depends_on('libiconv')
+    depends_on('iconv')
 
     # The following patch is needed for gcc-6.1
     patch('g_date_strftime.patch', when='@2.42.1')
@@ -70,7 +70,10 @@ def configure_args(self):
             args.append('--with-python={0}'.format(
                 os.path.basename(self.spec['python'].command.path))
             )
-        args.append('--with-libiconv=gnu')
+        if 'libc' in self.spec:
+            args.append('--with-libiconv=maybe')
+        else:
+            args.append('--with-libiconv=gnu')
         args.extend(self.enable_or_disable('tracing'))
         # SELinux is not available in Spack, so glib should not use it.
         args.append('--disable-selinux')
diff --git a/var/spack/repos/builtin/packages/gnupg/package.py b/var/spack/repos/builtin/packages/gnupg/package.py
index 943f14d31f836bb3207d12bec40092ecb1f14c39..d97aa1056956159eb39740060d1c6ff33cda4a4c 100644
--- a/var/spack/repos/builtin/packages/gnupg/package.py
+++ b/var/spack/repos/builtin/packages/gnupg/package.py
@@ -25,7 +25,7 @@ class Gnupg(AutotoolsPackage):
     depends_on('libassuan@2.4:', when='@:2.2.3')
     depends_on('libassuan@2.5:', when='@2.2.15:')
     depends_on('pinentry', type='run')
-    depends_on('libiconv')
+    depends_on('iconv')
     depends_on('zlib')
 
     def configure_args(self):
@@ -42,7 +42,7 @@ def configure_args(self):
             '--with-libassuan-prefix='    + self.spec['libassuan'].prefix,
             '--with-ksba-prefix='         + self.spec['libksba'].prefix,
             '--with-npth-prefix='         + self.spec['npth'].prefix,
-            '--with-libiconv-prefix='     + self.spec['libiconv'].prefix,
+            '--with-libiconv-prefix='     + self.spec['iconv'].prefix,
             '--with-zlib='                + self.spec['zlib'].prefix,
             '--without-tar',
             '--without-libiconv-prefix',
diff --git a/var/spack/repos/builtin/packages/gnuplot/package.py b/var/spack/repos/builtin/packages/gnuplot/package.py
index 17ee973eee9cf826346b94bdaf2e517678c926b6..9fb79e674668374aebef231ccda1c8c947c72f79 100644
--- a/var/spack/repos/builtin/packages/gnuplot/package.py
+++ b/var/spack/repos/builtin/packages/gnuplot/package.py
@@ -55,7 +55,7 @@ class Gnuplot(AutotoolsPackage):
     depends_on('readline')
     depends_on('pkgconfig', type='build')
     depends_on('libxpm')
-    depends_on('libiconv')
+    depends_on('iconv')
 
     # optional dependencies:
     depends_on('libcerf', when='+libcerf')
diff --git a/var/spack/repos/builtin/packages/grass/package.py b/var/spack/repos/builtin/packages/grass/package.py
index c80255fb4366afb61b5e5b603fb7010df7aa7fe6..cb83a5cc2ab73f9b48a8e753ad3ab3fb4d97f511 100644
--- a/var/spack/repos/builtin/packages/grass/package.py
+++ b/var/spack/repos/builtin/packages/grass/package.py
@@ -58,7 +58,7 @@ class Grass(AutotoolsPackage):
     # http://htmlpreview.github.io/?https://github.com/OSGeo/grass/blob/master/REQUIREMENTS.html
     # General requirements
     depends_on('gmake@3.81:', type='build')
-    depends_on('libiconv')
+    depends_on('iconv')
     depends_on('zlib')
     depends_on('flex', type='build')
     depends_on('bison', type='build')
@@ -254,5 +254,8 @@ def configure_args(self):
     # hence invoke the following function afterwards
     @run_after('configure')
     def fix_iconv_linking(self):
+        if self.spec['iconv'].name != 'libiconv':
+            return
+
         makefile = FileFilter('include/Make/Platform.make')
         makefile.filter(r'^ICONVLIB\s*=.*', 'ICONVLIB = -liconv')
diff --git a/var/spack/repos/builtin/packages/gtksourceview/package.py b/var/spack/repos/builtin/packages/gtksourceview/package.py
index 01876610b2bc6620e36ebe325c9a71de43ac1ea1..ed6737133a42066a18b964a3b90b082059fac85d 100644
--- a/var/spack/repos/builtin/packages/gtksourceview/package.py
+++ b/var/spack/repos/builtin/packages/gtksourceview/package.py
@@ -35,7 +35,7 @@ class Gtksourceview(AutotoolsPackage):
     depends_on('pango')
     depends_on('gdk-pixbuf')
     depends_on('atk')
-    depends_on('libiconv')
+    depends_on('iconv')
 
     def url_for_version(self, version):
         url  = 'https://download.gnome.org/sources/gtksourceview/'
diff --git a/var/spack/repos/builtin/packages/lftp/package.py b/var/spack/repos/builtin/packages/lftp/package.py
index 508dbdd586993f0535b606faddfde63c258faa7c..b67b79bd5b6e8c7ac2f8b85fc9e66199092a3832 100644
--- a/var/spack/repos/builtin/packages/lftp/package.py
+++ b/var/spack/repos/builtin/packages/lftp/package.py
@@ -18,7 +18,7 @@ class Lftp(AutotoolsPackage):
     version('4.6.4', sha256='791e783779d3d6b519d0c23155430b9785f2854023eb834c716f5ba78873b15a')
 
     depends_on('expat')
-    depends_on('libiconv')
+    depends_on('iconv')
     depends_on('ncurses')
     depends_on('openssl')
     depends_on('readline')
@@ -27,7 +27,7 @@ class Lftp(AutotoolsPackage):
     def configure_args(self):
         return [
             '--with-expat={0}'.format(self.spec['expat'].prefix),
-            '--with-libiconv={0}'.format(self.spec['libiconv'].prefix),
+            '--with-libiconv={0}'.format(self.spec['iconv'].prefix),
             '--with-openssl={0}'.format(self.spec['openssl'].prefix),
             '--with-readline={0}'.format(self.spec['readline'].prefix),
             '--with-zlib={0}'.format(self.spec['zlib'].prefix),
diff --git a/var/spack/repos/builtin/packages/libc/package.py b/var/spack/repos/builtin/packages/libc/package.py
new file mode 100644
index 0000000000000000000000000000000000000000..a4fa9ac3a64c08b774871827bdfb906ac0adc403
--- /dev/null
+++ b/var/spack/repos/builtin/packages/libc/package.py
@@ -0,0 +1,19 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Libc(Package):
+    """Dummy libc package to provide `iconv` virtual package"""
+
+    homepage = "https://en.wikipedia.org/wiki/C_standard_library"
+    url      = ""
+    has_code = False
+    phases = []
+
+    version('1.0')  # Dummy
+    variant('iconv', default=False, description='Set to True if libc provides iconv')
+    provides('iconv', when='+iconv')
diff --git a/var/spack/repos/builtin/packages/libgd/package.py b/var/spack/repos/builtin/packages/libgd/package.py
index 232b826bbf5c265303526dbfae0776c308dea7dc..d4907ae3e19d77a055804bf772149424c656e62a 100644
--- a/var/spack/repos/builtin/packages/libgd/package.py
+++ b/var/spack/repos/builtin/packages/libgd/package.py
@@ -31,7 +31,7 @@ class Libgd(AutotoolsPackage):
     depends_on('gettext', type='build')
     depends_on('pkgconfig', type='build')
 
-    depends_on('libiconv')
+    depends_on('iconv')
     depends_on('libpng')
     depends_on('jpeg')
     depends_on('libtiff')
diff --git a/var/spack/repos/builtin/packages/libiconv/package.py b/var/spack/repos/builtin/packages/libiconv/package.py
index 642ad289fd769a03a3dfd1e9bd653c81257414c5..9331dfb399db4597ba11622186248eb05a4f2767 100644
--- a/var/spack/repos/builtin/packages/libiconv/package.py
+++ b/var/spack/repos/builtin/packages/libiconv/package.py
@@ -20,6 +20,7 @@ class Libiconv(AutotoolsPackage, GNUMirrorPackage):
     # We cannot set up a warning for gets(), since gets() is not part
     # of C11 any more and thus might not exist.
     patch('gets.patch', when='@1.14')
+    provides('iconv')
 
     conflicts('@1.14', when='%gcc@5:')
 
diff --git a/var/spack/repos/builtin/packages/libspatialite/package.py b/var/spack/repos/builtin/packages/libspatialite/package.py
index e725fdfe0f09c0b9a79aab3169dc28763ad72364..45fe1f6109cb66a587bb7f52e91445b00a860255 100644
--- a/var/spack/repos/builtin/packages/libspatialite/package.py
+++ b/var/spack/repos/builtin/packages/libspatialite/package.py
@@ -21,5 +21,5 @@ class Libspatialite(AutotoolsPackage):
     depends_on('proj@:5')
     depends_on('geos')
     depends_on('freexl')
-    depends_on('libiconv')
+    depends_on('iconv')
     depends_on('libxml2')
diff --git a/var/spack/repos/builtin/packages/libunistring/package.py b/var/spack/repos/builtin/packages/libunistring/package.py
index 94b1c24b984379021d0f1716acaa7ad974f6d58c..9812fb32cb1ac2eabb7c6e042c5707ff7c1e8be9 100644
--- a/var/spack/repos/builtin/packages/libunistring/package.py
+++ b/var/spack/repos/builtin/packages/libunistring/package.py
@@ -19,7 +19,7 @@ class Libunistring(AutotoolsPackage, GNUMirrorPackage):
     version('0.9.7', sha256='2e3764512aaf2ce598af5a38818c0ea23dedf1ff5460070d1b6cee5c3336e797')
     version('0.9.6', sha256='2df42eae46743e3f91201bf5c100041540a7704e8b9abfd57c972b2d544de41b')
 
-    depends_on('libiconv')
+    depends_on('iconv')
 
     # glibc 2.28+ removed libio.h and thus _IO_ftrylockfile
     patch('removed_libio.patch', when='@:0.9.9')
diff --git a/var/spack/repos/builtin/packages/libxml2/package.py b/var/spack/repos/builtin/packages/libxml2/package.py
index 8c91852ae3266f8ba71079ab6ac67ab5fbd86ee1..8c024854ea1c9c161e067f0c6977ecf949a8579e 100644
--- a/var/spack/repos/builtin/packages/libxml2/package.py
+++ b/var/spack/repos/builtin/packages/libxml2/package.py
@@ -23,7 +23,7 @@ class Libxml2(AutotoolsPackage):
     variant('python', default=False, description='Enable Python support')
 
     depends_on('pkgconfig@0.9.0:', type='build')
-    depends_on('libiconv')
+    depends_on('iconv')
     depends_on('zlib')
     depends_on('xz')
 
@@ -49,7 +49,7 @@ def configure_args(self):
         spec = self.spec
 
         args = ['--with-lzma={0}'.format(spec['xz'].prefix),
-                '--with-iconv={0}'.format(spec['libiconv'].prefix)]
+                '--with-iconv={0}'.format(spec['iconv'].prefix)]
 
         if '+python' in spec:
             args.extend([
diff --git a/var/spack/repos/builtin/packages/libxslt/package.py b/var/spack/repos/builtin/packages/libxslt/package.py
index 7cdb0e41b22a29e7a84535e0142a1b3e86962501..5da6272d833b2cc36d1f4671e2222290c4f8cbca 100644
--- a/var/spack/repos/builtin/packages/libxslt/package.py
+++ b/var/spack/repos/builtin/packages/libxslt/package.py
@@ -26,7 +26,7 @@ class Libxslt(AutotoolsPackage):
     variant('python', default=False, description='Build Python bindings')
 
     depends_on('pkgconfig@0.9.0:', type='build')
-    depends_on('libiconv')
+    depends_on('iconv')
     depends_on('libxml2')
     depends_on('libxml2+python', when='+python')
     depends_on('xz')
diff --git a/var/spack/repos/builtin/packages/mono/package.py b/var/spack/repos/builtin/packages/mono/package.py
index 73464f0fb9402fb6c1ac5a9ad7424d5c3370c965..6a7a96300ac606402309cf3cde1b5b68457a08b1 100644
--- a/var/spack/repos/builtin/packages/mono/package.py
+++ b/var/spack/repos/builtin/packages/mono/package.py
@@ -25,7 +25,7 @@ class Mono(AutotoolsPackage):
     # Spack's openssl interacts badly with mono's vendored
     # "boringssl", don't drag it in w/ cmake
     depends_on('cmake~openssl', type=('build'))
-    depends_on('libiconv')
+    depends_on('iconv')
     depends_on('perl', type=('build'))
 
     version('6.8.0.105', sha256='578799c44c3c86a9eb5daf6dec6c60a24341940fd376371956d4a46cf8612178',
@@ -50,6 +50,6 @@ def patch(self):
 
     def configure_args(self):
         args = []
-        li = self.spec['libiconv'].prefix
+        li = self.spec['iconv'].prefix
         args.append('--with-libiconv-prefix={p}'.format(p=li))
         return args
diff --git a/var/spack/repos/builtin/packages/ncl/package.py b/var/spack/repos/builtin/packages/ncl/package.py
index 0fa063c52cd20c63703bc3416d0bc0df9af201ad..e6e09faae1e1cab29b4e08dc61aebdd82c6a0255 100644
--- a/var/spack/repos/builtin/packages/ncl/package.py
+++ b/var/spack/repos/builtin/packages/ncl/package.py
@@ -48,7 +48,7 @@ class Ncl(Package):
     # Extra dependencies that may be missing from build system:
     depends_on('bison', type='build')
     depends_on('flex+lex')
-    depends_on('libiconv')
+    depends_on('iconv')
     depends_on('tcsh')
 
     # Also, the manual says that ncl requires zlib, but that comes as a
@@ -57,7 +57,7 @@ class Ncl(Package):
     # The following dependencies are required, otherwise several components
     # fail to compile:
     depends_on('curl')
-    depends_on('libiconv')
+    depends_on('iconv')
     depends_on('libx11')
     depends_on('libxaw')
     depends_on('libxmu')
diff --git a/var/spack/repos/builtin/packages/poppler/package.py b/var/spack/repos/builtin/packages/poppler/package.py
index 8689f817e5118f146ca973f1b8abe55333cc6ae5..affb9e5359abb8e6f0bd45831b8e3ee5adc99335 100644
--- a/var/spack/repos/builtin/packages/poppler/package.py
+++ b/var/spack/repos/builtin/packages/poppler/package.py
@@ -49,7 +49,7 @@ class Poppler(CMakePackage):
     depends_on('qt@4.0:', when='+qt')
     depends_on('zlib', when='+zlib')
     depends_on('cairo@1.10.0:', when='+glib')
-    depends_on('libiconv', when='+iconv')
+    depends_on('iconv', when='+iconv')
     depends_on('jpeg', when='+jpeg')
     depends_on('libpng', when='+png')
     depends_on('libtiff', when='+tiff')
diff --git a/var/spack/repos/builtin/packages/procps/package.py b/var/spack/repos/builtin/packages/procps/package.py
index f8b4ed263362de59488bbd1f7b1d770d906f1f09..e18d6206cf86384b7672b06c2e1dc4b9b7a8f26d 100644
--- a/var/spack/repos/builtin/packages/procps/package.py
+++ b/var/spack/repos/builtin/packages/procps/package.py
@@ -23,7 +23,7 @@ class Procps(AutotoolsPackage):
     depends_on('m4',       type='build')
     depends_on('pkgconfig@0.9.0:', type='build')
     depends_on('dejagnu',  type='test')
-    depends_on('libiconv')
+    depends_on('iconv')
     depends_on('gettext')
     depends_on('ncurses')
 
@@ -35,7 +35,7 @@ def autoreconf(self, spec, prefix):
 
     def configure_args(self):
         return [
-            '--with-libiconv-prefix={0}'.format(self.spec['libiconv'].prefix),
+            '--with-libiconv-prefix={0}'.format(self.spec['iconv'].prefix),
             '--with-libintl-prefix={0}'.format(self.spec['gettext'].prefix),
             '--with-ncurses',
             # Required to avoid libintl linking errors
diff --git a/var/spack/repos/builtin/packages/tar/package.py b/var/spack/repos/builtin/packages/tar/package.py
index de12fd2344726307ebfa91168d80d9888041ffca..15c2e4bc0ef1404fd0782f8a8ac58252255ff139 100644
--- a/var/spack/repos/builtin/packages/tar/package.py
+++ b/var/spack/repos/builtin/packages/tar/package.py
@@ -19,7 +19,7 @@ class Tar(AutotoolsPackage, GNUMirrorPackage):
     version('1.29', sha256='cae466e6e58c7292355e7080248f244db3a4cf755f33f4fa25ca7f9a7ed09af0')
     version('1.28', sha256='6a6b65bac00a127a508533c604d5bf1a3d40f82707d56f20cefd38a05e8237de')
 
-    depends_on('libiconv')
+    depends_on('iconv')
 
     patch('tar-pgi.patch',    when='@1.29')
     patch('config-pgi.patch', when='@:1.29')
@@ -29,5 +29,5 @@ class Tar(AutotoolsPackage, GNUMirrorPackage):
 
     def configure_args(self):
         return [
-            '--with-libiconv-prefix={0}'.format(self.spec['libiconv'].prefix),
+            '--with-libiconv-prefix={0}'.format(self.spec['iconv'].prefix),
         ]
diff --git a/var/spack/repos/builtin/packages/unixodbc/package.py b/var/spack/repos/builtin/packages/unixodbc/package.py
index 2802f87aa5eb8834bf8ad3878b8949cdda0ef952..b93e7eb166d5af8142bcd5a451d10760f5e0087b 100644
--- a/var/spack/repos/builtin/packages/unixodbc/package.py
+++ b/var/spack/repos/builtin/packages/unixodbc/package.py
@@ -16,5 +16,5 @@ class Unixodbc(AutotoolsPackage):
 
     version('2.3.4', sha256='2e1509a96bb18d248bf08ead0d74804957304ff7c6f8b2e5965309c632421e39')
 
-    depends_on('libiconv')
+    depends_on('iconv')
     depends_on('libtool')
diff --git a/var/spack/repos/builtin/packages/wget/package.py b/var/spack/repos/builtin/packages/wget/package.py
index 122b138d1067102d6798d7cecc215ca4a003e8f8..c9ef5e9dd8190f44ea7b563fc5dc839e9b050222 100644
--- a/var/spack/repos/builtin/packages/wget/package.py
+++ b/var/spack/repos/builtin/packages/wget/package.py
@@ -43,7 +43,7 @@ class Wget(AutotoolsPackage, GNUMirrorPackage):
 
     depends_on('perl@5.12.0:', type='build')
     depends_on('pkgconfig', type='build')
-    depends_on('libiconv')
+    depends_on('iconv')
 
     depends_on('valgrind', type='test')
 
diff --git a/var/spack/repos/builtin/packages/xerces-c/package.py b/var/spack/repos/builtin/packages/xerces-c/package.py
index 05af3d1a5c910ff8b4222f5499836b63593cd0f7..21caf00e83d15c2ea9edc7ac4958fc16372ed621 100644
--- a/var/spack/repos/builtin/packages/xerces-c/package.py
+++ b/var/spack/repos/builtin/packages/xerces-c/package.py
@@ -45,7 +45,7 @@ class XercesC(AutotoolsPackage):
             multi=False,
             description='Use the specified transcoder')
 
-    depends_on('libiconv', type='link', when='transcoder=gnuiconv')
+    depends_on('iconv', type='link', when='transcoder=gnuiconv')
     depends_on('icu4c',    type='link', when='transcoder=icu')
 
     # Pass flags to configure.  This is necessary for CXXFLAGS or else
@@ -61,7 +61,7 @@ def flag_handler(self, name, flags):
 
         # There is no --with-pkg for gnuiconv.
         if name == 'ldflags' and 'transcoder=gnuiconv' in spec:
-            flags.append(spec['libiconv'].libs.ld_flags)
+            flags.append(spec['iconv'].libs.ld_flags)
 
         return (None, None, flags)