about summary refs log tree commit diff
path: root/sysdeps/sparc/sparc64/elf/configure
blob: 354afae4d8563af45feb5f08a114a1cb2127909d (plain) (blame)
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165

# as_fn_set_status STATUS
# -----------------------
# Set $? to STATUS, without forking.
as_fn_set_status ()
{
  return $1
} # as_fn_set_status

# as_fn_exit STATUS
# -----------------
# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
as_fn_exit ()
{
  set +e
  as_fn_set_status $1
  exit $1
} # as_fn_exit
if expr a : '\(a\)' >/dev/null 2>&1 &&
   test "X`expr 00001 : '.*\(...\)'`" = X001; then
  as_expr=expr
else
  as_expr=false
fi

if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
  as_basename=basename
else
  as_basename=false
fi

as_me=`$as_basename -- "$0" ||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
	 X"$0" : 'X\(//\)$' \| \
	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X/"$0" |
    sed '/^.*\/\([^/][^/]*\)\/*$/{
	    s//\1/
	    q
	  }
	  /^X\/\(\/\/\)$/{
	    s//\1/
	    q
	  }
	  /^X\/\(\/\).*/{
	    s//\1/
	    q
	  }
	  s/.*/./; q'`


  as_lineno_1=$LINENO as_lineno_1a=$LINENO
  as_lineno_2=$LINENO as_lineno_2a=$LINENO
  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
  sed -n '
    p
    /[$]LINENO/=
  ' <$as_myself |
    sed '
      s/[$]LINENO.*/&-/
      t lineno
      b
      :lineno
      N
      :loop
      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
      t loop
      s/-\n.*//
    ' >$as_me.lineno &&
  chmod +x "$as_me.lineno" ||
    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }

  # Don't try to exec as it changes $[0], causing all sort of problems
  # (the dirname of $[0] is not the place where we might find the
  # original and so on.  Autoconf is especially sensitive to this).
  . "./$as_me.lineno"
  # Exit status is that of the last command.
  exit
}

# This file is generated from configure.in by Autoconf.  DO NOT EDIT!
 # Local configure fragment for sysdeps/sparc/sparc64/elf.

# Check for support of thread-local storage handling in assembler and linker.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sparc64 TLS support" >&5
$as_echo_n "checking for sparc64 TLS support... " >&6; }
if ${libc_cv_sparc64_tls+:} false; then :
  $as_echo_n "(cached) " >&6
else
  cat > conftest.s <<\EOF
	.section ".tdata", "awT", @progbits
	.globl foo
foo:	.word	1
	.section ".tbss", "awT", @nobits
	.globl bar
bar:	.skip	4
	.text
	.globl _start
_start:	sethi	%tgd_hi22(foo), %l1
	add	%l1, %tgd_lo10(foo), %l1
	add	%l7, %l1, %o0, %tgd_add(foo)
	call	__tls_get_addr, %tgd_call(foo)
	sethi	%tldm_hi22(bar), %l1
	add	%l1, %tldm_lo10(bar), %l1
	add	%l7, %l1, %o0, %tldm_add(bar)
	call	__tls_get_addr, %tldm_call(bar)
	sethi	%tldo_hix22(bar), %l1
	xor	%l1, %tldo_lox10(bar), %l1
	add	%o0, %l1, %l1, %tldo_add(bar)
	sethi	%tie_hi22(foo), %l1
	add	%l1, %tie_lo10(foo), %l1
	ldx	[%l7 + %l1], %l1, %tie_ldx(foo)
	add	%g7, %l1, %l1, %tie_add(foo)
	sethi	%tle_hix22(foo), %l1
	xor	%l1, %tle_lox10(foo), %l1
EOF
if { ac_try='${CC-cc} -o conftest.bin $CFLAGS $LDFLAGS conftest.s -nostdlib -nostartfiles 1>&5'
  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
  (eval $ac_try) 2>&5
  ac_status=$?
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  test $ac_status = 0; }; }; then
  libc_cv_sparc64_tls=yes
else
  libc_cv_sparc64_tls=no
fi
rm -f conftest*
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_sparc64_tls" >&5
$as_echo "$libc_cv_sparc64_tls" >&6; }
if test $libc_cv_sparc64_tls = no; then
  as_fn_error $? "the assembler must support TLS" "$LINENO" 5
fi

# Check for broken WDISP22 in the linker.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sparc64 ld WDISP22 handling" >&5
$as_echo_n "checking for sparc64 ld WDISP22 handling... " >&6; }
if ${libc_cv_sparc64_wdisp22+:} false; then :
  $as_echo_n "(cached) " >&6
else
  echo 'bne foo; nop' > conftest1.s
echo '.globl foo; .hidden foo; foo: nop' > conftest2.s
libc_cv_sparc64_wdisp22=unknown
if { ac_try='${CC-cc} -nostdlib -shared $CFLAGS conftest1.s conftest2.s -o conftest.so 1>&5'
  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
  (eval $ac_try) 2>&5
  ac_status=$?
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  test $ac_status = 0; }; }; then
  if readelf -r conftest.so | grep -q R_SPARC_WDISP22; then
    libc_cv_sparc64_wdisp22=broken
  else
    libc_cv_sparc64_wdisp22=ok
  fi
fi
rm -f conftest*
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_sparc64_wdisp22" >&5
$as_echo "$libc_cv_sparc64_wdisp22" >&6; }
if test $libc_cv_sparc64_wdisp22 != ok; then
  $as_echo "#define BROKEN_SPARC_WDISP22 1" >>confdefs.h

fi