From: bangerth Date: Mon, 6 Feb 2012 11:04:20 +0000 (+0000) Subject: Work around a problem on Bluegene systems. X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=010d00be01b7b46e8575148d32e5e13cae792c2a;p=dealii-svn.git Work around a problem on Bluegene systems. git-svn-id: https://svn.dealii.org/trunk@24994 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/configure b/deal.II/configure index 7ea06b6a69..0e30175592 100755 --- a/deal.II/configure +++ b/deal.II/configure @@ -10012,6 +10012,13 @@ $as_echo "#define DEAL_II_HAVE_DARWIN_DYNACAST_BUG 1" >>confdefs.h ibm_xlc* ) SHLIBFLAGS="-qmkshrobj" ;; + + gcc*) + case "$target" in + *powerpc* ) + SHLIBFLAGS="$SHLIBFLAGS -Wl,--relax" + ;; + ;; esac diff --git a/deal.II/configure.in b/deal.II/configure.in index e3ae8efc96..b277bb00a6 100644 --- a/deal.II/configure.in +++ b/deal.II/configure.in @@ -360,6 +360,17 @@ if test "x$enableshared" = "xyes" ; then ibm_xlc* ) SHLIBFLAGS="-qmkshrobj" ;; + + gcc*) + dnl When using GCC on PowerPC (e.g. on BlueGene systems) we + dnl get errors from the linker about relocations that have be + dnl truncated to fit. Passing --relax to the linker helps in + dnl these cases. + case "$target" in + *powerpc* ) + SHLIBFLAGS="$SHLIBFLAGS -Wl,--relax" + ;; + ;; esac dnl See if we can use -Wl,-soname,... for linking diff --git a/deal.II/doc/news/changes.h b/deal.II/doc/news/changes.h index b63d73834a..06441b12dc 100644 --- a/deal.II/doc/news/changes.h +++ b/deal.II/doc/news/changes.h @@ -34,6 +34,12 @@ inconvenience this causes.

General

    +
  1. Fixed: Linking shared libraries on PowerPC systems (e.g. on +BlueGene systems) failed due to a miscommunication between compiler +and linker. This is now worked around. +
    +(Aron Ahmedia, Wolfgang Bangerth, 2012/02/06) +
  2. New: There is now a distributed deal.II vector class parallel::distributed::Vector that can be used with MPI. The vector is based on a contiguous locally owned range and allows easy