From 010d00be01b7b46e8575148d32e5e13cae792c2a Mon Sep 17 00:00:00 2001 From: bangerth Date: Mon, 6 Feb 2012 11:04:20 +0000 Subject: [PATCH] Work around a problem on Bluegene systems. git-svn-id: https://svn.dealii.org/trunk@24994 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/configure | 7 +++++++ deal.II/configure.in | 11 +++++++++++ deal.II/doc/news/changes.h | 6 ++++++ 3 files changed, 24 insertions(+) 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 -- 2.39.5