diff --git a/var/spack/repos/builtin/packages/plasma/package.py b/var/spack/repos/builtin/packages/plasma/package.py
index 45653503033af2653ded2e39799810afdac6411e..29afcef8ac354c3119cb78825bc51fd35b53403c 100644
--- a/var/spack/repos/builtin/packages/plasma/package.py
+++ b/var/spack/repos/builtin/packages/plasma/package.py
@@ -31,6 +31,7 @@ class Plasma(MakefilePackage):
 
     depends_on("blas")
     depends_on("lapack")
+    depends_on("readline", when='@17.2:')
 
     conflicts("atlas")  # does not have LAPACKE interface
 
@@ -44,7 +45,9 @@ class Plasma(MakefilePackage):
     conflicts("veclibfort")
 
     # only GCC 4.9+ and higher have sufficient support for OpenMP 4+ tasks+deps
-    conflicts("%gcc@:4.8.99")
+    conflicts("%gcc@:4.8.99", when='@:17.1')
+    # only GCC 6.0+ and higher have for OpenMP 4+ Clause "priority"
+    conflicts("%gcc@:5.99", when='@17.2:')
 
     conflicts("%cce")
     conflicts("%clang")
@@ -77,6 +80,7 @@ def edit(self, spec, prefix):
 
         if "^mkl" not in spec:
             make_inc.filter("-DPLASMA_WITH_MKL", "")  # not using MKL
+            make_inc.filter("-DHAVE_MKL", "")         # not using MKL
 
         header_flags = ""
         # accumulate CPP flags for headers: <cblas.h> and <lapacke.h>
@@ -94,8 +98,11 @@ def edit(self, spec, prefix):
         # make sure CC variable comes from build environment
         make_inc.filter("CC *[?]*= * .*cc", "")
 
-        make_inc.filter("LIBS *[?]*= * .*", "LIBS = " +
-                        self.getblaslapacklibs().ld_flags)
+        libs = self.getblaslapacklibs().ld_flags
+        if 'readline' in self.spec:
+            libs += ' ' + self.spec['readline'].libs.ld_flags
+            libs += ' ' + find_system_libraries(['libdl']).ld_flags
+        make_inc.filter("LIBS *[?]*= * .*", "LIBS = " + libs)
 
     @property
     def build_targets(self):
@@ -107,7 +114,8 @@ def build_targets(self):
         if "^mkl" in self.spec:
             targets.append("MKLROOT = {0}".format(env["MKLROOT"]))
 
-        targets.append("LIBS = {0}".format(
-            self.getblaslapacklibs().ld_flags))
-
+        targets.append("LIBS = {0} {1} {2}".format(
+                       self.getblaslapacklibs().ld_flags,
+                       self.spec['readline'].libs.ld_flags,
+                       find_system_libraries(['libdl']).ld_flags))
         return targets
diff --git a/var/spack/repos/builtin/packages/xsdk/package.py b/var/spack/repos/builtin/packages/xsdk/package.py
index cb8178ce74105ea8095a9f10c9fd35fc8dccf5c6..7414c12c49e9acb006775591bada0b92ebdfac40 100644
--- a/var/spack/repos/builtin/packages/xsdk/package.py
+++ b/var/spack/repos/builtin/packages/xsdk/package.py
@@ -82,7 +82,7 @@ class Xsdk(Package):
     depends_on('sundials@3.1.0~int64+hypre', when='@0.3.0')
     depends_on('sundials@3.1.0~int64+hypre', when='@develop')
 
-    depends_on('plasma@17.1', when='@develop %gcc@4.9:')
+    depends_on('plasma@17.2:', when='@develop %gcc@6.0:')
 
     depends_on('magma@2.2.0', when='@0.3.0 +cuda')
     depends_on('magma@2.2.0', when='@develop +cuda')