1 #!/usr/bin/ksh
2 #
3 # This file and its contents are supplied under the terms of the
4 # Common Development and Distribution License ("CDDL"), version 1.0.
5 # You may only use this file in accordance with the terms of version
6 # 1.0 of the CDDL.
7 #
8 # A full copy of the text of the CDDL should have accompanied this
9 # source. A copy of the CDDL is also available via the Internet at
10 # http://www.illumos.org/license/CDDL.
11 #
12
13 #
14 # Copyright 2018, Richard Lowe.
15 #
16
17 # Test that a simple use of linker-sets, tat is, automatically generated start
18 # and end symbols for sections can be generated and used.
19
20 tmpdir=/tmp/test.$$
21 mkdir $tmpdir
22 cd $tmpdir
23
24 cleanup() {
25 cd /
26 rm -fr $tmpdir
27 }
28
29 trap 'cleanup' EXIT
30
31 cat > broken.c <<EOF
32 void *__start_text;
33
34 int
35 main()
36 {
37 return (0);
38 }
39 EOF
40
41 # We expect any alternate linker to be in LD_ALTEXEC for us already
42 gcc -o broken broken.c -Wall -Wextra -Wl,-zfatal-warnings > in-use.$$.out 2>&1
43 if (( $? == 0 )); then
44 print -u2 "use of a reserved symbol didn't fail"
45 exit 1;
46 fi
47
48 grep -q "^ld: warning: reserved symbol '__start_text' already defined in file" in-use.$$.out
49 if (( $? != 0 )); then
50 print -u2 "use of a reserved symbol failed for the wrong reason"
51 exit 1;
52 fi