1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- #!/usr/bin/env bash
- # This is a script to find, and correct, a problem with old versions of
- # configure that affect powerpc64 and powerpc64le.
- # The issue causes configure to incorrectly determine that shared library
- # support is not present in the linker. This causes the package to build a
- # static library rather than a dynamic one and although the build will succeed,
- # it may cause packages that link with the static library it to fail due to
- # undefined symbols.
- # This script searches for files named 'configure' that appear to have this
- # issue (by searching for a known bad pattern) and patching them.
- set -e
- if [ $# -ne 1 ]; then
- echo "Usage: $0 <package build directory>"
- exit 2
- fi
- srcdir="$1"
- files=$(cd "$srcdir" && find . -name configure \
- -exec grep -qF 'Generated by GNU Autoconf' {} \; \
- -exec grep -qF 'ppc*-*linux*|powerpc*-*linux*)' {} \; -print)
- # --ignore-whitespace is needed because some packages have included
- # copies of configure scripts where tabs have been replaced with spaces.
- for c in $files; do
- patch --ignore-whitespace "$srcdir"/"$c" <<'EOF'
- --- a/configure 2016-11-16 15:31:46.097447271 +1100
- +++ b/configure 2008-07-21 12:17:23.000000000 +1000
- @@ -4433,7 +4433,10 @@
- x86_64-*linux*)
- LD="${LD-ld} -m elf_x86_64"
- ;;
- - ppc*-*linux*|powerpc*-*linux*)
- + powerpcle-*linux*)
- + LD="${LD-ld} -m elf64lppc"
- + ;;
- + powerpc-*linux*)
- LD="${LD-ld} -m elf64ppc"
- ;;
- s390*-*linux*)
- EOF
- done
|