xref: /illumos-gate/usr/src/test/header-tests/tests/c-symbols/setup.ksh (revision f9db9ff779c49e6c6c53004fb478ca21c4cbdb57)
1ed7f9522SGordon Ross#!/usr/bin/ksh
2ed7f9522SGordon Ross#
3ed7f9522SGordon Ross#
4ed7f9522SGordon Ross# This file and its contents are supplied under the terms of the
5ed7f9522SGordon Ross# Common Development and Distribution License ("CDDL"), version 1.0.
6ed7f9522SGordon Ross# You may only use this file in accordance with the terms of version
7ed7f9522SGordon Ross# 1.0 of the CDDL.
8ed7f9522SGordon Ross#
9ed7f9522SGordon Ross# A full copy of the text of the CDDL should have accompanied this
10ed7f9522SGordon Ross# source.  A copy of the CDDL is also available via the Internet at
11ed7f9522SGordon Ross# http://www.illumos.org/license/CDDL.
12ed7f9522SGordon Ross#
13ed7f9522SGordon Ross
14ed7f9522SGordon Ross#
15ed7f9522SGordon Ross# Copyright 2014 Garrett D'Amore <garrett@damore.org>
16861094cfSGordon Ross# Copyright 2026 Gordon W. Ross
17ed7f9522SGordon Ross#
18ed7f9522SGordon Ross
19861094cfSGordon Ross# First get $dir and $prog
20ed7f9522SGordon Rosscase $0 in
21ed7f9522SGordon Ross*/*)
22ed7f9522SGordon Ross	dir=${0%/*}
23ed7f9522SGordon Ross	prog=${0##*/}
24ed7f9522SGordon Ross	;;
25ed7f9522SGordon Ross*)
26ed7f9522SGordon Ross	dir=.
27ed7f9522SGordon Ross	prog=${0}
28ed7f9522SGordon Ross	;;
29ed7f9522SGordon Rossesac
30ed7f9522SGordon Ross
31ed7f9522SGordon Rossfor arg in $*
32ed7f9522SGordon Rossdo
33*f9db9ff7SGordon Ross	case $arg in
34*f9db9ff7SGordon Ross	-d|-D)
35*f9db9ff7SGordon Ross		debug="$debug $arg"
36*f9db9ff7SGordon Ross		;;
37*f9db9ff7SGordon Ross	-f)
38*f9db9ff7SGordon Ross		force="-f"
39*f9db9ff7SGordon Ross		;;
40*f9db9ff7SGordon Ross	esac
41ed7f9522SGordon Rossdone
42ed7f9522SGordon Ross
43861094cfSGordon Rossif [[ -d "$dir/../../cfg/c-symbols" ]] ; then
44861094cfSGordon Ross	STF_SUITE="$dir/../.."
45861094cfSGordon Rosselse
46861094cfSGordon Ross	STF_SUITE=/opt/header-tests
47861094cfSGordon Rossfi
48861094cfSGordon Rossexport STF_SUITE
49861094cfSGordon Ross
50861094cfSGordon Rossdriver=$STF_SUITE/tests/common/symbol_test
51861094cfSGordon Rossenvcfg=$STF_SUITE/cfg/c-symbols-env.cfg
52861094cfSGordon Rosssymcfg=$STF_SUITE/cfg/c-symbols/${prog}.cfg
53861094cfSGordon Ross
54861094cfSGordon Ross# Special handling for "setup".  Just run ... -C
55861094cfSGordon Rossif [[ $prog == setup ]]; then
56861094cfSGordon Ross	envcfg="-C"
57861094cfSGordon Ross	symcfg=
58861094cfSGordon Rossfi
59861094cfSGordon Ross
60ed7f9522SGordon Ross# Determine which ISA widths this system supports.
61ed7f9522SGordon Rossisa=$(/usr/bin/isainfo)
62ed7f9522SGordon Rosscase $isa in
63861094cfSGordon Rossamd64*)		mlist="32 64" ;;
64861094cfSGordon Rosssparcv9*)	mlist="32 64" ;;
65861094cfSGordon Rossaarch64*)	mlist="64" ;;
66ed7f9522SGordon Ross*)
67ed7f9522SGordon Ross	print "ERROR: Unknown ISA: $isa" >&2
68ed7f9522SGordon Ross	exit 1
69ed7f9522SGordon Ross	;;
70ed7f9522SGordon Rossesac
71ed7f9522SGordon Ross
72861094cfSGordon Ross[[ -n $debug ]] && set -x
73861094cfSGordon Rossfor m in $mlist
74ed7f9522SGordon Rossdo
75*f9db9ff7SGordon Ross	$driver $debug $force --lang c -m${m} $envcfg $symcfg
76*f9db9ff7SGordon Ross	rc=$?
77*f9db9ff7SGordon Ross	[[ -n "$force" ]] || [[ $rc == 0 ]] || exit $rc
78ed7f9522SGordon Rossdone
79ed7f9522SGordon Rossexit 0
80