#!/bin/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

