Skip to content
Snippets Groups Projects
Commit 4dff1e2f authored by Thomas Jahns's avatar Thomas Jahns :cartwheel: Committed by Sergey Kosukhin
Browse files

Port work-around for Intel compiler.

parent 406588bf
No related branches found
No related tags found
2 merge requests!34Version 2.2.0,!13Consolidation with CDI-PIO (develop)
......@@ -54,10 +54,10 @@ dnl causes a duplicate exit handler that fails and clobbers the
dnl programs exit status (set to 128).
dnl
AC_DEFUN([_ACX_LT_PROBLEMS],
[AC_REQUIRE([AC_CANONICAL_HOST])
AC_LANG_CASE([Fortran],[acx_Comp=$FC],
[Fortran 77],[acx_Comp=$F77],
[C],[acx_Comp=$CC])
[AC_REQUIRE([AC_CANONICAL_HOST])dnl
AC_LANG_CASE([Fortran],[m4_pushdef([acx_Comp],[FC])m4_pushdef([acx_flags_var],[FCFLAGS])],
[Fortran 77],[m4_pushdef([acx_Comp],[F77])m4_pushdef([acx_flags_var],[FFLAGS])],
[C],[m4_pushdef([acx_Comp],[CC])m4_pushdef([acx_flags_var],[CFLAGS])])dnl
_AS_ECHO_LOG([testing if $acx_Comp cannot build working shared objects])
AS_CASE([$host],
[*-ibm-aix*],
......@@ -65,8 +65,11 @@ AC_DEFUN([_ACX_LT_PROBLEMS],
[acx_cv_disable_shared=yes])],
[x86_64-*-linux-*|i*86-*-linux-*|*-apple-darwin*|ia64-*-linux-*|x86_64-*-freebsd*|i*86-*-freebsd*],
[AS_IF([$acx_Comp -V 2>&1 | grep '^Intel(R).*Fortran.*Compiler.*Version 15.0.@<:@123@:>@' >/dev/null],
[acx_cv_disable_shared=yes])])
_AS_ECHO_LOG([result: $acx_cv_disable_shared])])
[AS_CASE([" $acx_flags_var $LDFLAGS "],
[*\ -Qlocation,ld,*\ *],
[acx_cv_disable_shared=yes],
[acx_flags_var="$acx_flags_var -Qlocation,ld,$ac_abs_confdir/util/icomp15"])])])
_AS_ECHO_LOG([result: $acx_cv_disable_shared])m4_popdef([acx_Comp])m4_popdef([acx_flags_var])])
dnl
dnl run test for C and Fortran compilers
AC_DEFUN([ACX_LT_PROBLEMS],
......
#! /bin/bash
#
#
# ld --- wrapper of ld to work around a bug in ifort 15.0.1-15.0.3
#
# Copyright (C) 2022 Thomas Jahns <jahns@dkrz.de>
#
# Version: 1.0
# Author: Thomas Jahns <jahns@dkrz.de>
# Keywords:
# Maintainer: Thomas Jahns <jahns@dkrz.de>
# URL: https://www.dkrz.de/redmine/projects/yaxt
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
# Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
#
# Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
# Neither the name of the DKRZ GmbH nor the names of its contributors
# may be used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
# IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
# OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
declare -a args=("$@")
case " $* " in
# are we building a shared object?
(*\ -shared\ *)
# establish whether the user intended the inclusion of static intel
# libraries into shared object?
shared_intel=1
while IFS= read -r -d '' arg; do
case $arg in
(-shared-intel|-i-dynamic)
shared_intel=1
;;
(-static-intel|-i-static|-fast)
shared_intel=0
;;
esac
done <"/proc/$PPID/cmdline"
if ((shared_intel==1)); then
# if so, prevent core routines from being linked into the DSO
# directly.
declare -i i
for ((i=0; i<$#; ++i)); do
case ${args[i]} in
(-lifcoremt_pic|-lifcore_pic)
args[i]=${args[i]%_pic}
;;
esac
done
fi
;;
esac
exec ld "${args[@]}"
#
# Local Variables:
# mode: sh
# license-project-url: "https://www.dkrz.de/redmine/projects/yaxt"
# license-default: "bsd"
# End:
#
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment