summaryrefslogtreecommitdiff
path: root/tests/change-abi.sh
blob: 26a151dc36ed9aa3b8a99362da70bb70cbc67591 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#! /bin/sh -e

SCRATCH=scratch/$(basename $0 .sh)

rm -rf ${SCRATCH}
mkdir -p ${SCRATCH}

cp simple-pie ${SCRATCH}/simple-pie

# Save the old OS ABI
OLDABI=`../src/patchelf --print-os-abi ${SCRATCH}/simple-pie`
# Ensure it's not empty
test -n "$OLDABI"

# Change OS ABI and verify it has been changed
{
  echo "System V"
  echo "HP-UX"
  echo "NetBSD"
  echo "Linux"
  echo "GNU Hurd"
  echo "Solaris"
  echo "AIX"
  echo "IRIX"
  echo "FreeBSD"
  echo "Tru64"
  echo "OpenBSD"
  echo "OpenVMS"
} | {
  while IFS="\n" read ABI; do
    echo "Set OS ABI to '$ABI'..."
    ../src/patchelf --set-os-abi "$ABI" ${SCRATCH}/simple-pie

    echo "Check is OS ABI is '$ABI'..."
    NEWABI=`../src/patchelf --print-os-abi ${SCRATCH}/simple-pie`
    test "$NEWABI" = "$ABI"
  done
}

# Reset OS ABI to the saved one
../src/patchelf --set-os-abi "$OLDABI" ${SCRATCH}/simple-pie

# Verify we still can run the executable
${SCRATCH}/simple-pie