Index: /trunk/psconfig/psconfig.csh.in
===================================================================
--- /trunk/psconfig/psconfig.csh.in	(revision 40050)
+++ /trunk/psconfig/psconfig.csh.in	(revision 40051)
@@ -323,6 +323,12 @@
  case linux:
  case linrh:
-   gcc --version | grep -e 5.4 -e 4.8 -e 4.6 -e 4.5| grep Ubuntu >& /dev/null
-   if ($status == 0) then
+   # old test to see if we need no-as-needed
+   # gcc --version | grep -e 4.8 -e 4.6 -e 4.5 | grep Ubuntu >& /dev/null
+
+   # check that we need to add --no-as-needed (gcc version >= 4.5)
+   # https://lists.ubuntu.com/archives/ubuntu-devel-announce/2010-October/000772.html
+   # https://lists.ubuntu.com/archives/ubuntu-devel-announce/2010-November/000783.html
+   set use_no_as_needed = `gcc --version | awk '(NR == 1){print $NF}' | awk -F. '{printf "%s.%s\n", $1, $2}' | awk '{n=0}($1 >= 4.5){n=1}{print n}'`
+   if ($use_no_as_needed == 0) then
     set xtraflags = "-Wl,--no-as-needed"
     echo $LDFLAGS | grep -- $xtraflags >& /dev/null
@@ -335,6 +341,12 @@
  case lin64:
  case linrh64:
-   gcc --version | grep -e 5.4 -e 4.8 -e 4.6 -e 4.5 | grep Ubuntu >& /dev/null
-   if ($status == 0) then
+   # old test to see if we need no-as-needed
+   # gcc --version | grep -e 4.8 -e 4.6 -e 4.5 | grep Ubuntu >& /dev/null
+
+   # check that we need to add --no-as-needed (gcc version >= 4.5)
+   # https://lists.ubuntu.com/archives/ubuntu-devel-announce/2010-October/000772.html
+   # https://lists.ubuntu.com/archives/ubuntu-devel-announce/2010-November/000783.html
+   set use_no_as_needed = `gcc --version | awk '(NR == 1){print $NF}' | awk -F. '{printf "%s.%s\n", $1, $2}' | awk '{n=0}($1 >= 4.5){n=1}{print n}'`
+   if ($use_no_as_needed == 0) then
     set xtraflags = "-Wl,--no-as-needed"
     echo $LDFLAGS | grep -- $xtraflags >& /dev/null
