OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [binutils-2.20.1/] [gold/] [configure.ac] - Blame information for rev 438

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 205 julius
dnl Process this file with autoconf to produce a configure script.
2
 
3
AC_PREREQ(2.59)
4
 
5
AC_INIT(gold, 0.1)
6
AC_CONFIG_SRCDIR(gold.cc)
7
 
8
AC_CANONICAL_TARGET
9
 
10
AM_INIT_AUTOMAKE
11
 
12
AM_CONFIG_HEADER(config.h:config.in)
13
 
14
AC_ARG_WITH(sysroot,
15
[  --with-sysroot[=DIR]    search for usr/lib et al within DIR],
16
[sysroot=$withval], [sysroot=no])
17
 
18
if test "$sysroot" = "yes"; then
19
  sysroot='${exec_prefix}/${target_alias}/sys-root'
20
elif test "$sysroot" = "no"; then
21
  sysroot=
22
fi
23
 
24
sysroot_relocatable=0
25
if test -n "$sysroot"; then
26
  case "sysroot" in
27
    "${prefix}" | "${prefix}/"* | \
28
    "${exec_prefix}" | "${exec_prefix}/"* | \
29
    '${prefix}' | '${prefix}/'*| \
30
    '${exec_prefix}' | '${exec_prefix}/'*)
31
      sysroot_relocatable=1
32
      ;;
33
  esac
34
fi
35
 
36
AC_DEFINE_UNQUOTED(TARGET_SYSTEM_ROOT, "$sysroot",
37
  [System root for target files])
38
AC_DEFINE_UNQUOTED(TARGET_SYSTEM_ROOT_RELOCATABLE, $sysroot_relocatable,
39
  [Whether the system root can be relocated])
40
 
41
dnl For now threads are a configure time option.
42
AC_ARG_ENABLE([threads],
43
[  --enable-threads        multi-threaded linking],
44
[case "${enableval}" in
45
  yes | "") threads=yes ;;
46
  no) threads=no ;;
47
  *) threads=yes ;;
48
 esac],
49
[threads=no])
50
if test "$threads" = "yes"; then
51
  AC_DEFINE(ENABLE_THREADS, 1,
52
            [Define to do multi-threaded linking])
53
fi
54
AM_CONDITIONAL(THREADS, test "$threads" = "yes")
55
 
56
AC_ARG_ENABLE([plugins],
57
[  --enable-plugins        linker plugins],
58
[case "${enableval}" in
59
  yes | "") plugins=yes ;;
60
  no) plugins=no ;;
61
  *) plugins=yes ;;
62
 esac],
63
[plugins=no])
64
if test "$plugins" = "yes"; then
65
  AC_DEFINE(ENABLE_PLUGINS, 1,
66
            [Define to enable linker plugins])
67
fi
68
AM_CONDITIONAL(PLUGINS, test "$plugins" = "yes")
69
 
70
AC_ARG_ENABLE([targets],
71
[  --enable-targets        alternative target configurations],
72
[case "${enableval}" in
73
  yes | "")
74
    AC_MSG_ERROR([--enable-targets option must specify target names or 'all'])
75
    ;;
76
  no)
77
    enable_targets=
78
    ;;
79
  *)
80
    enable_targets=$enableval
81
    ;;
82
esac],
83
[# For now, enable all targets by default
84
 enable_targets=all
85
])
86
 
87
# Canonicalize the enabled targets.
88
if test -n "$enable_targets"; then
89
  for targ in `echo $enable_targets | sed -e 's/,/ /g'`; do
90
    result=`$ac_config_sub $targ 2>/dev/null`
91
    if test -n "$result"; then
92
      canon_targets="$canon_targets $result"
93
    else
94
      # Permit unrecognized target names, like "all".
95
      canon_targets="$canon_targets $targ"
96
    fi
97
  done
98
fi
99
 
100
# See which specific instantiations we need.
101
targetobjs=
102
all_targets=
103
default_machine=
104
default_size=
105
default_big_endian=
106
default_osabi=ELFOSABI_NONE
107
targ_32_little=
108
targ_32_big=
109
targ_64_little=
110
targ_64_big=
111
for targ in $target $canon_targets; do
112
  if test "$targ" = "all"; then
113
    targ_32_little=yes
114
    targ_32_big=yes
115
    targ_64_little=yes
116
    targ_64_big=yes
117
    all_targets=yes
118
  else
119
    . ${srcdir}/configure.tgt
120
 
121
    if test "$targ_obj" = "UNKNOWN"; then
122
      AC_MSG_ERROR("unsupported target $targ")
123
    else
124
      targetobjs="$targetobjs ${targ_obj}.\$(OBJEXT)"
125
      if test "$targ_extra_obj" != ""; then
126
        targetobjs="$targetobjs ${targ_extra_obj}.\$(OBJEXT)"
127
      fi
128
      if test "$targ_size" = "32" -o "$targ_extra_size" = "32"; then
129
          if test "$targ_big_endian" = "true" \
130
              -o "$targ_extra_big_endian" = "true"; then
131
              targ_32_big=yes
132
          fi
133
          if test "$targ_big_endian" = "false" \
134
              -o "$targ_extra_big_endian" = "false"; then
135
              targ_32_little=yes
136
          fi
137
      fi
138
      if test "$targ_size" = "64" -o "$targ_extra_size" = "64"; then
139
          if test "$targ_big_endian" = "true" \
140
              -o "$targ_extra_big_endian" = "true"; then
141
              targ_64_big=yes
142
          fi
143
          if test "$targ_big_endian" = "false" \
144
              -o "$targ_extra_big_endian" = "false"; then
145
              targ_64_little=yes
146
          fi
147
      fi
148
 
149
      if test "$target" = "$targ"; then
150
        default_machine=$targ_machine
151
        default_size=$targ_size
152
        default_big_endian=$targ_big_endian
153
        default_osabi=$targ_osabi
154
 
155
        AM_CONDITIONAL(DEFAULT_TARGET_ARM, test "$targ_obj" = "arm")
156
        AM_CONDITIONAL(DEFAULT_TARGET_I386, test "$targ_obj" = "i386")
157
        AM_CONDITIONAL(DEFAULT_TARGET_POWERPC, test "$targ_obj" = "powerpc")
158
        AM_CONDITIONAL(DEFAULT_TARGET_SPARC, test "$targ_obj" = "sparc")
159
        AM_CONDITIONAL(DEFAULT_TARGET_X86_64, test "$targ_obj" = "x86_64")
160
      fi
161
    fi
162
  fi
163
done
164
 
165
if test -n "$targ_32_little"; then
166
  AC_DEFINE(HAVE_TARGET_32_LITTLE, 1,
167
              [Define to support 32-bit little-endian targets])
168
fi
169
if test -n "$targ_32_big"; then
170
  AC_DEFINE(HAVE_TARGET_32_BIG, 1,
171
              [Define to support 32-bit big-endian targets])
172
fi
173
if test -n "$targ_64_little"; then
174
  AC_DEFINE(HAVE_TARGET_64_LITTLE, 1,
175
              [Define to support 64-bit little-endian targets])
176
fi
177
if test -n "$targ_64_big"; then
178
  AC_DEFINE(HAVE_TARGET_64_BIG, 1,
179
              [Define to support 64-bit big-endian targets])
180
fi
181
 
182
if test -n "$all_targets"; then
183
  TARGETOBJS='$(ALL_TARGETOBJS)'
184
else
185
  TARGETOBJS="$targetobjs"
186
fi
187
AC_SUBST(TARGETOBJS)
188
 
189
AC_DEFINE_UNQUOTED(GOLD_DEFAULT_MACHINE, $default_machine,
190
                   [Default machine code])
191
AC_DEFINE_UNQUOTED(GOLD_DEFAULT_SIZE, $default_size,
192
                   [Default size (32 or 64)])
193
AC_DEFINE_UNQUOTED(GOLD_DEFAULT_BIG_ENDIAN, $default_big_endian,
194
                   [Default big endian (true or false)])
195
AC_DEFINE_UNQUOTED(GOLD_DEFAULT_OSABI, $default_osabi,
196
                   [Default OSABI code])
197
 
198
AC_PROG_CC
199
AC_PROG_CXX
200
AC_PROG_YACC
201
AC_PROG_RANLIB
202
AC_PROG_INSTALL
203
AC_PROG_LN_S
204
 
205
AC_GNU_SOURCE
206
 
207
ZW_GNU_GETTEXT_SISTER_DIR
208
AM_PO_SUBDIRS
209
 
210
AC_C_BIGENDIAN
211
 
212
AC_EXEEXT
213
 
214
AM_CONDITIONAL(NATIVE_LINKER,
215
  test "x$target_alias" = "x" -o "x$host_alias" = "x$target_alias")
216
AM_CONDITIONAL(GCC, test "$GCC" = yes)
217
 
218
dnl Some architectures do not support taking pointers of functions
219
dnl defined in shared libraries except in -fPIC mode.  We need to
220
dnl tell the unittest framework if we're compiling for one of those
221
dnl targets, so it doesn't try to run the tests that do that.
222
AM_CONDITIONAL(FN_PTRS_IN_SO_WITHOUT_PIC, [
223
  case $target_cpu in
224
    i?86) true;;
225
    x86_64) false;;
226
    sparc64) false;;
227
    *) true;;
228
  esac])
229
 
230
dnl Whether we can test -mcmodel=medium.
231
AM_CONDITIONAL(MCMODEL_MEDIUM, [test "$target_cpu" = "x86_64"])
232
 
233
dnl Test for __thread support.
234
AC_CACHE_CHECK([for thread support], [gold_cv_c_thread],
235
[AC_COMPILE_IFELSE([__thread int i = 1;],
236
[gold_cv_c_thread=yes], [gold_cv_c_thread=no])])
237
 
238
AM_CONDITIONAL(TLS, test "$gold_cv_c_thread" = "yes")
239
 
240
dnl On GNU/Linux TLS in static programs only works when using glibc
241
dnl 2.4 or later.
242
AC_CACHE_CHECK([for glibc >= 2.4], [gold_cv_lib_glibc24],
243
[AC_COMPILE_IFELSE([
244
#include 
245
#if !defined __GLIBC__
246
error
247
#elif __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 4)
248
error
249
#endif
250
], [gold_cv_lib_glibc24=yes], [gold_cv_lib_glibc24=no])])
251
 
252
AM_CONDITIONAL(STATIC_TLS, test "$gold_cv_lib_glibc24" = "yes")
253
 
254
dnl Test for #pragma omp threadprivate
255
AC_CACHE_CHECK([for omp support], [gold_cv_c_threadprivate],
256
[save_CFLAGS="$CFLAGS"
257
CFLAGS="$CFLAGS -fopenmp"
258
AC_COMPILE_IFELSE([
259
#include 
260
int i;
261
#pragma omp threadprivate (i)
262
], [gold_cv_c_threadprivate=yes], [gold_cv_c_threadprivate=no])
263
CFLAGS="$save_CFLAGS"])
264
if test "$gold_cv_c_threadprivate" = "yes"; then
265
  AC_DEFINE(HAVE_OMP_SUPPORT, 1,
266
            [Define if compiler supports #pragma omp threadprivate])
267
fi
268
AM_CONDITIONAL(OMP_SUPPORT, test "$gold_cv_c_threadprivate" = "yes")
269
 
270
dnl Test for the -ftls-dialect=gnu2 option.
271
save_CFLAGS="$CFLAGS"
272
CFLAGS="$CFLAGS -mtls-dialect=gnu2"
273
AC_COMPILE_IFELSE([int i;], [have_tls_gnu2=yes], [have_tls_gnu2=no])
274
CFLAGS="$save_CFLAGS"
275
AM_CONDITIONAL(TLS_GNU2_DIALECT, test "$have_tls_gnu2" = "yes")
276
 
277
dnl On GNU/Linux TLS descriptors are supported by the dynamic loader
278
dnl only with glibc 2.9 or later.
279
AC_CACHE_CHECK([for glibc >= 2.9], [gold_cv_lib_glibc29],
280
[AC_COMPILE_IFELSE([
281
#include 
282
#if !defined __GLIBC__
283
error
284
#elif __GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 9)
285
error
286
#endif
287
], [gold_cv_lib_glibc29=yes], [gold_cv_lib_glibc29=no])])
288
 
289
AM_CONDITIONAL(TLS_DESCRIPTORS, test "$gold_cv_lib_glibc29" = "yes")
290
 
291
dnl Check whether the compiler supports constructor priorities in
292
dnl attributes, which were added in gcc 4.3.
293
AC_CACHE_CHECK([for constructor priorities], [gold_cv_c_conprio],
294
[AC_COMPILE_IFELSE([void f() __attribute__ ((constructor (1)));],
295
[gold_cv_c_conprio=yes], [gold_cv_c_conprio=no])])
296
 
297
AM_CONDITIONAL(CONSTRUCTOR_PRIORITY, test "$gold_cv_c_conprio" = "yes")
298
 
299
dnl Test for the -frandom-seed option.
300
AC_CACHE_CHECK([for -frandom-seed support], [gold_cv_c_random_seed],
301
[save_CFLAGS="$CFLAGS"
302
CFLAGS="$CFLAGS -frandom-seed=foo"
303
AC_COMPILE_IFELSE([int i;], [gold_cv_c_random_seed=yes],
304
[gold_cv_c_random_seed=no])
305
CFLAGS="$save_CFLAGS"])
306
if test "$gold_cv_c_random_seed" = "yes"; then
307
  # In Makefile, '$@' will be expanded to be the name of the file
308
  # being built, providing a unique seed for each file.
309
  RANDOM_SEED_CFLAGS=-frandom-seed=\$@
310
fi
311
AC_SUBST(RANDOM_SEED_CFLAGS)
312
 
313
AM_BINUTILS_WARNINGS
314
 
315
WARN_CXXFLAGS=`echo ${WARN_CFLAGS} | sed -e 's/-Wstrict-prototypes//' -e 's/-Wmissing-prototypes//'`
316
AC_SUBST(WARN_CXXFLAGS)
317
 
318
dnl Force support for large files by default.  This may need to be
319
dnl host dependent.  If build == host, we can check getconf LFS_CFLAGS.
320
LFS_CFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
321
AC_SUBST(LFS_CFLAGS)
322
 
323
AC_CHECK_FUNCS(chsize)
324
AC_REPLACE_FUNCS(pread ftruncate mremap ffsll)
325
 
326
# Link in zlib if we can.  This allows us to write compressed sections.
327
AC_SEARCH_LIBS(zlibVersion, z, [AC_CHECK_HEADERS(zlib.h)])
328
AM_CONDITIONAL(HAVE_ZLIB, test "$ac_cv_search_zlibVersion" != "no")
329
 
330
dnl We have to check these in C, not C++, because autoconf generates
331
dnl tests which have no type information, and current glibc provides
332
dnl multiple declarations of functions like basename when compiling
333
dnl with C++.
334
AC_CHECK_DECLS([basename, ffs, asprintf, vasprintf, snprintf, vsnprintf, strverscmp])
335
 
336
AC_LANG_PUSH(C++)
337
 
338
AC_CHECK_HEADERS(tr1/unordered_set tr1/unordered_map)
339
AC_CHECK_HEADERS(ext/hash_map ext/hash_set)
340
AC_CHECK_HEADERS(byteswap.h)
341
AC_CHECK_FUNCS(mallinfo posix_fallocate readv)
342
AC_CHECK_DECLS([basename, ffs, asprintf, vasprintf, snprintf, vsnprintf, strverscmp, strndup, memmem])
343
 
344
# Use of ::std::tr1::unordered_map::rehash causes undefined symbols
345
# at link time with some versions of GCC.
346
AC_CACHE_CHECK([whether ::std::tr1::unordered_map::rehash is usable.],
347
[gold_cv_unordered_map_rehash],
348
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[
349
#include 
350
void bar() { ::std::tr1::unordered_map x; x.rehash(10); }
351
]])], [gold_cv_unordered_map_rehash=yes], [gold_cv_unordered_map_rehash=no])])
352
if test "$gold_cv_unordered_map_rehash" = "yes"; then
353
  AC_DEFINE(HAVE_TR1_UNORDERED_MAP_REHASH, 1,
354
            [Define if ::std::tr1::unordered_map::rehash is usable])
355
fi
356
 
357
# gcc 4.3.0 doesn't recognize the printf attribute on a template
358
# function.  Check for that.  This is gcc bug 35546.  This test can
359
# probably be removed after the bug has been fixed for a while.
360
AC_CACHE_CHECK([whether we can use attributes with template functions],
361
[gold_cv_template_attribute],
362
[AC_COMPILE_IFELSE([
363
template extern void foo(const char*, ...)
364
  __attribute__ ((__format__ (__printf__, 1, 2)));
365
template void foo(const char* format, ...) {}
366
void bar() { foo("%s\n", "foo"); }
367
], [gold_cv_template_attribute=yes], [gold_cv_template_attribute=no])])
368
if test "$gold_cv_template_attribute" = "yes"; then
369
  AC_DEFINE(HAVE_TEMPLATE_ATTRIBUTES, 1,
370
            [Define if attributes work on C++ templates])
371
fi
372
 
373
AC_LANG_POP(C++)
374
 
375
AM_MAINTAINER_MODE
376
 
377
AC_OUTPUT(Makefile testsuite/Makefile po/Makefile.in:po/Make-in)

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.