crossconfig.m4 revision 169691
1dnl 2dnl This file contains details for non-native builds. 3dnl 4 5AC_DEFUN([GLIBCXX_CROSSCONFIG],[ 6# Base decisions on target environment. 7case "${host}" in 8 arm*-*-symbianelf*) 9 # This is a freestanding configuration; there is nothing to do here. 10 ;; 11 12 *-darwin*) 13 # Darwin versions vary, but the linker should work in a cross environment, 14 # so we just check for all the features here. 15 # Check for available headers. 16 AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h machine/endian.h \ 17 machine/param.h sys/machine.h fp.h locale.h float.h inttypes.h gconv.h \ 18 sys/types.h]) 19 20 # Don't call GLIBCXX_CHECK_LINKER_FEATURES, Darwin doesn't have a GNU ld 21 GLIBCXX_CHECK_MATH_SUPPORT 22 GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT 23 GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT 24 GLIBCXX_CHECK_ICONV_SUPPORT 25 GLIBCXX_CHECK_STDLIB_SUPPORT 26 27 # For showmanyc_helper(). 28 AC_CHECK_HEADERS(sys/ioctl.h sys/filio.h) 29 GLIBCXX_CHECK_POLL 30 GLIBCXX_CHECK_S_ISREG_OR_S_IFREG 31 32 # For xsputn_2(). 33 AC_CHECK_HEADERS(sys/uio.h) 34 GLIBCXX_CHECK_WRITEV 35 36 AC_DEFINE(HAVE_LC_MESSAGES) 37 38 AC_TRY_COMPILE( 39 [#include <setjmp.h>], 40 [sigjmp_buf env; 41 while (! sigsetjmp (env, 1)) 42 siglongjmp (env, 1); 43 ], 44 [AC_DEFINE(HAVE_SIGSETJMP, 1, [Define if sigsetjmp is available.])]) 45 46 AC_DEFINE(HAVE_MMAP) 47 ;; 48 49 *djgpp) 50 AC_CHECK_HEADERS([float.h ieeefp.h inttypes.h locale.h \ 51 memory.h stdint.h stdlib.h strings.h string.h unistd.h \ 52 wchar.h wctype.h machine/endian.h sys/ioctl.h sys/param.h \ 53 sys/resource.h sys/stat.h sys/time.h sys/types.h sys/uio.h]) 54 GLIBCXX_CHECK_LINKER_FEATURES 55 GLIBCXX_CHECK_MATH_SUPPORT 56 GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT 57 GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT 58 GLIBCXX_CHECK_ICONV_SUPPORT 59 GLIBCXX_CHECK_STDLIB_SUPPORT 60 GLIBCXX_CHECK_S_ISREG_OR_S_IFREG 61 AC_DEFINE(HAVE_WRITEV) 62 ;; 63 64 *-freebsd*) 65 AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \ 66 machine/endian.h machine/param.h sys/machine.h sys/types.h \ 67 fp.h locale.h float.h inttypes.h sys/resource.h sys/stat.h \ 68 sys/time.h unistd.h]) 69 SECTION_FLAGS='-ffunction-sections -fdata-sections' 70 AC_SUBST(SECTION_FLAGS) 71 GLIBCXX_CHECK_LINKER_FEATURES 72 GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT 73 GLIBCXX_CHECK_ICONV_SUPPORT 74 AC_DEFINE(HAVE_LC_MESSAGES) 75 AC_DEFINE(HAVE_GETPAGESIZE) 76 AC_DEFINE(HAVE_SETENV) 77 AC_DEFINE(HAVE_SIGSETJMP) 78 AC_DEFINE(HAVE_COPYSIGN) 79 AC_DEFINE(HAVE_COPYSIGNF) 80 AC_DEFINE(HAVE_FINITEF) 81 AC_DEFINE(HAVE_FINITE) 82 AC_DEFINE(HAVE_FREXPF) 83 AC_DEFINE(HAVE_HYPOT) 84 AC_DEFINE(HAVE_HYPOTF) 85 AC_DEFINE(HAVE_ISINF) 86 AC_DEFINE(HAVE_ISNAN) 87 AC_DEFINE(HAVE_ISNANF) 88 89 AC_DEFINE(HAVE_MMAP) 90 AC_DEFINE(HAVE_ACOSF) 91 AC_DEFINE(HAVE_ASINF) 92 AC_DEFINE(HAVE_ATAN2F) 93 AC_DEFINE(HAVE_ATANF) 94 AC_DEFINE(HAVE_CEILF) 95 AC_DEFINE(HAVE_COPYSIGN) 96 AC_DEFINE(HAVE_COPYSIGNF) 97 AC_DEFINE(HAVE_COSF) 98 AC_DEFINE(HAVE_COSHF) 99 AC_DEFINE(HAVE_EXPF) 100 AC_DEFINE(HAVE_FABSF) 101 AC_DEFINE(HAVE_FLOORF) 102 AC_DEFINE(HAVE_FMODF) 103 AC_DEFINE(HAVE_FREXPF) 104 AC_DEFINE(HAVE_LDEXPF) 105 AC_DEFINE(HAVE_LOG10F) 106 AC_DEFINE(HAVE_LOGF) 107 AC_DEFINE(HAVE_MODFF) 108 AC_DEFINE(HAVE_POWF) 109 AC_DEFINE(HAVE_SINF) 110 AC_DEFINE(HAVE_SINHF) 111 AC_DEFINE(HAVE_SQRTF) 112 AC_DEFINE(HAVE_TANF) 113 AC_DEFINE(HAVE_TANHF) 114 if test x"long_double_math_on_this_cpu" = x"yes"; then 115 AC_DEFINE(HAVE_FINITEL) 116 AC_DEFINE(HAVE_ISINFL) 117 AC_DEFINE(HAVE_ISNANL) 118 fi 119 ;; 120 *-hpux*) 121 AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \ 122 machine/endian.h machine/param.h sys/machine.h sys/types.h \ 123 fp.h locale.h float.h inttypes.h]) 124 SECTION_FLAGS='-ffunction-sections -fdata-sections' 125 AC_SUBST(SECTION_FLAGS) 126 GLIBCXX_CHECK_LINKER_FEATURES 127 GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT 128 GLIBCXX_CHECK_ICONV_SUPPORT 129 AC_DEFINE(HAVE_COPYSIGN) 130 AC_DEFINE(HAVE_COPYSIGNF) 131 AC_DEFINE(HAVE_FREXPF) 132 AC_DEFINE(HAVE_HYPOT) 133 case "$target" in 134 *-hpux10*) 135 AC_DEFINE(HAVE_FINITE) 136 AC_DEFINE(HAVE_FINITEF) 137 AC_DEFINE(HAVE_ISINF) 138 AC_DEFINE(HAVE_ISINFF) 139 AC_DEFINE(HAVE_ISNAN) 140 AC_DEFINE(HAVE_ISNANF) 141 ;; 142 esac 143 ;; 144 *-linux* | *-uclinux* | *-gnu* | *-kfreebsd*-gnu | *-knetbsd*-gnu) 145 AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \ 146 machine/endian.h machine/param.h sys/machine.h sys/types.h \ 147 fp.h float.h endian.h inttypes.h locale.h float.h stdint.h]) 148 SECTION_FLAGS='-ffunction-sections -fdata-sections' 149 AC_SUBST(SECTION_FLAGS) 150 GLIBCXX_CHECK_COMPILER_FEATURES 151 GLIBCXX_CHECK_LINKER_FEATURES 152 GLIBCXX_CHECK_MATH_SUPPORT 153 GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT 154 GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT 155 GLIBCXX_CHECK_ICONV_SUPPORT 156 GLIBCXX_CHECK_STDLIB_SUPPORT 157 158 # For LFS. 159 AC_DEFINE(HAVE_INT64_T) 160 GLIBCXX_CHECK_LFS 161 162 # For showmanyc_helper(). 163 AC_CHECK_HEADERS(sys/ioctl.h sys/filio.h) 164 GLIBCXX_CHECK_POLL 165 GLIBCXX_CHECK_S_ISREG_OR_S_IFREG 166 167 # For xsputn_2(). 168 AC_CHECK_HEADERS(sys/uio.h) 169 GLIBCXX_CHECK_WRITEV 170 ;; 171 *-mingw32*) 172 AC_CHECK_HEADERS([sys/types.h locale.h float.h]) 173 GLIBCXX_CHECK_LINKER_FEATURES 174 GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT 175 ;; 176 *-netbsd*) 177 AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \ 178 machine/endian.h machine/param.h sys/machine.h sys/types.h \ 179 fp.h locale.h float.h inttypes.h]) 180 SECTION_FLAGS='-ffunction-sections -fdata-sections' 181 AC_SUBST(SECTION_FLAGS) 182 GLIBCXX_CHECK_LINKER_FEATURES 183 GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT 184 GLIBCXX_CHECK_ICONV_SUPPORT 185 AC_DEFINE(HAVE_COPYSIGN) 186 AC_DEFINE(HAVE_COPYSIGNF) 187 AC_DEFINE(HAVE_FINITEF) 188 AC_DEFINE(HAVE_FINITE) 189 AC_DEFINE(HAVE_FREXPF) 190 AC_DEFINE(HAVE_HYPOTF) 191 AC_DEFINE(HAVE_ISINF) 192 AC_DEFINE(HAVE_ISINFF) 193 AC_DEFINE(HAVE_ISNAN) 194 AC_DEFINE(HAVE_ISNANF) 195 if test x"long_double_math_on_this_cpu" = x"yes"; then 196 AC_DEFINE(HAVE_FINITEL) 197 AC_DEFINE(HAVE_ISINFL) 198 AC_DEFINE(HAVE_ISNANL) 199 fi 200 ;; 201 *-netware) 202 AC_CHECK_HEADERS([nan.h ieeefp.h sys/isa_defs.h sys/machine.h \ 203 sys/types.h locale.h float.h inttypes.h]) 204 SECTION_FLAGS='-ffunction-sections -fdata-sections' 205 AC_SUBST(SECTION_FLAGS) 206 GLIBCXX_CHECK_LINKER_FEATURES 207 GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT 208 GLIBCXX_CHECK_ICONV_SUPPORT 209 AC_DEFINE(HAVE_HYPOT) 210 AC_DEFINE(HAVE_ISINF) 211 AC_DEFINE(HAVE_ISNAN) 212 213 # For showmanyc_helper(). 214 AC_CHECK_HEADERS(sys/ioctl.h sys/filio.h) 215 GLIBCXX_CHECK_POLL 216 GLIBCXX_CHECK_S_ISREG_OR_S_IFREG 217 218 # For xsputn_2(). 219 AC_CHECK_HEADERS(sys/uio.h) 220 GLIBCXX_CHECK_WRITEV 221 ;; 222 *-qnx6.1* | *-qnx6.2*) 223 SECTION_FLAGS='-ffunction-sections -fdata-sections' 224 AC_SUBST(SECTION_FLAGS) 225 GLIBCXX_CHECK_LINKER_FEATURES 226 GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT 227 GLIBCXX_CHECK_ICONV_SUPPORT 228 AC_DEFINE(HAVE_COSF) 229 AC_DEFINE(HAVE_COSL) 230 AC_DEFINE(HAVE_COSHF) 231 AC_DEFINE(HAVE_COSHL) 232 AC_DEFINE(HAVE_LOGF) 233 AC_DEFINE(HAVE_LOGL) 234 AC_DEFINE(HAVE_LOG10F) 235 AC_DEFINE(HAVE_LOG10L) 236 AC_DEFINE(HAVE_SINF) 237 AC_DEFINE(HAVE_SINL) 238 AC_DEFINE(HAVE_SINHF) 239 AC_DEFINE(HAVE_SINHL) 240 ;; 241 *-solaris*) 242 case "$target" in 243 # *-solaris2.5) 244 # os_include_dir="os/solaris/solaris2.5" 245 # ;; 246 # *-solaris2.6) 247 # os_include_dir="os/solaris/solaris2.6" 248 # ;; 249 *-solaris2.7 | *-solaris2.8 | *-solaris2.9 | *-solaris2.10) 250 GLIBCXX_CHECK_LINKER_FEATURES 251 AC_DEFINE(HAVE_GETPAGESIZE) 252 AC_DEFINE(HAVE_SIGSETJMP) 253 AC_DEFINE(HAVE_MBSTATE_T) 254 AC_DEFINE(HAVE_POLL) 255 AC_DEFINE(HAVE_S_ISREG) 256 AC_DEFINE(HAVE_LC_MESSAGES) 257 AC_DEFINE(HAVE_FINITE) 258 AC_DEFINE(HAVE_FPCLASS) 259 AC_DEFINE(HAVE_GETPAGESIZE) 260 AC_DEFINE(HAVE_NL_LANGINFO) 261 AC_DEFINE(HAVE_ICONV) 262 AC_DEFINE(HAVE_ICONV_CLOSE) 263 AC_DEFINE(HAVE_ICONV_OPEN) 264 # Look for the pieces required for wchar_t support in order to 265 # get all the right HAVE_* macros defined. 266 GLIBCXX_CHECK_ICONV_SUPPORT 267 # All of the dependencies for wide character support are here, so 268 # turn it on. This requires some syncronization with the 269 # GLIBCXX_CHECK_ICONV_SUPPORT in acinclude.m4 270 AC_DEFINE(_GLIBCXX_USE_WCHAR_T) 271 # Are these tested for even when cross? 272 AC_DEFINE(HAVE_FLOAT_H) 273 AC_DEFINE(HAVE_IEEEFP_H) 274 AC_DEFINE(HAVE_INTTYPES_H) 275 AC_DEFINE(HAVE_LOCALE_H) 276 AC_DEFINE(HAVE_NAN_H) 277 AC_DEFINE(HAVE_SYS_FILIO_H) 278 AC_DEFINE(HAVE_SYS_IOCTL_H) 279 AC_DEFINE(HAVE_SYS_ISA_DEFS_H) 280 AC_DEFINE(HAVE_SYS_RESOURCE_H) 281 AC_DEFINE(HAVE_SYS_TIME_H) 282 AC_DEFINE(HAVE_SYS_TYPES_H) 283 AC_DEFINE(HAVE_UNISTD_H) 284 AC_DEFINE(HAVE_WCHAR_H) 285 AC_DEFINE(HAVE_WCTYPE_H) 286 AC_DEFINE(HAVE_LIBM) 287 ;; 288 esac 289 case "$target" in 290 sparc*-*-solaris2.8 | sparc*-*-solaris2.9 | sparc*-*-solaris2.10) 291 # I saw these on sparc-sun-solaris2.8, but not 2.6, and not on i386 292 AC_DEFINE(HAVE___BUILTIN_ABS) 293 AC_DEFINE(HAVE___BUILTIN_LABS) 294 AC_DEFINE(HAVE___BUILTIN_FABS) 295 AC_DEFINE(HAVE___BUILTIN_FABSF) 296 AC_DEFINE(HAVE___BUILTIN_FABSL) 297 AC_DEFINE(HAVE___BUILTIN_COS) 298 AC_DEFINE(HAVE___BUILTIN_COSF) 299 AC_DEFINE(HAVE___BUILTIN_SIN) 300 AC_DEFINE(HAVE___BUILTIN_SINF) 301 ;; 302 esac 303 case "$target" in 304 *-*-solaris2.10) 305 # These two C99 functions are present only in Solaris >= 10 306 AC_DEFINE(HAVE_STRTOF) 307 AC_DEFINE(HAVE_STRTOLD) 308 ;; 309 esac 310 AC_DEFINE(HAVE_MMAP) 311 AC_DEFINE(HAVE_COPYSIGN) 312 AC_DEFINE(HAVE_ISNAN) 313 AC_DEFINE(HAVE_ISNANF) 314 AC_DEFINE(HAVE_MODFF) 315 AC_DEFINE(HAVE_HYPOT) 316 ;; 317 *-tpf) 318 AC_CHECK_HEADERS([nan.h endian.h machine/endian.h \ 319 sys/param.h sys/types.h locale.h float.h inttypes.h]) 320 SECTION_FLAGS='-ffunction-sections -fdata-sections' 321 AC_SUBST(SECTION_FLAGS) 322 GLIBCXX_CHECK_LINKER_FEATURES 323 GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT 324 GLIBCXX_CHECK_ICONV_SUPPORT 325 AC_DEFINE(HAVE_COPYSIGN) 326 AC_DEFINE(HAVE_COPYSIGNF) 327 AC_DEFINE(HAVE_FINITE) 328 AC_DEFINE(HAVE_FINITEF) 329 AC_DEFINE(HAVE_FREXPF) 330 AC_DEFINE(HAVE_HYPOTF) 331 AC_DEFINE(HAVE_ISINF) 332 AC_DEFINE(HAVE_ISINFF) 333 AC_DEFINE(HAVE_ISNAN) 334 AC_DEFINE(HAVE_ISNANF) 335 AC_DEFINE(HAVE_SINCOS) 336 AC_DEFINE(HAVE_SINCOSF) 337 if test x"long_double_math_on_this_cpu" = x"yes"; then 338 AC_DEFINE(HAVE_FINITEL) 339 AC_DEFINE(HAVE_HYPOTL) 340 AC_DEFINE(HAVE_ISINFL) 341 AC_DEFINE(HAVE_ISNANL) 342 fi 343 ;; 344 *-vxworks) 345 AC_DEFINE(HAVE_MMAP) 346 AC_DEFINE(HAVE_ACOSF) 347 AC_DEFINE(HAVE_ASINF) 348 AC_DEFINE(HAVE_ATAN2F) 349 AC_DEFINE(HAVE_ATANF) 350 AC_DEFINE(HAVE_CEILF) 351 AC_DEFINE(HAVE_COSF) 352 AC_DEFINE(HAVE_COSHF) 353 AC_DEFINE(HAVE_EXPF) 354 AC_DEFINE(HAVE_FABSF) 355 AC_DEFINE(HAVE_FLOORF) 356 AC_DEFINE(HAVE_FMODF) 357 AC_DEFINE(HAVE_HYPOT) 358 AC_DEFINE(HAVE_LOG10F) 359 AC_DEFINE(HAVE_LOGF) 360 AC_DEFINE(HAVE_POWF) 361 AC_DEFINE(HAVE_SINF) 362 AC_DEFINE(HAVE_SINHF) 363 AC_DEFINE(HAVE_SQRTF) 364 AC_DEFINE(HAVE_TANF) 365 AC_DEFINE(HAVE_TANHF) 366 ;; 367 *-windiss*) 368 AC_DEFINE(HAVE_ACOSF) 369 AC_DEFINE(HAVE_ACOSL) 370 AC_DEFINE(HAVE_ASINF) 371 AC_DEFINE(HAVE_ASINL) 372 AC_DEFINE(HAVE_ATAN2F) 373 AC_DEFINE(HAVE_ATAN2L) 374 AC_DEFINE(HAVE_ATANF) 375 AC_DEFINE(HAVE_ATANL) 376 AC_DEFINE(HAVE_CEILF) 377 AC_DEFINE(HAVE_CEILL) 378 AC_DEFINE(HAVE_COPYSIGN) 379 AC_DEFINE(HAVE_COPYSIGNF) 380 AC_DEFINE(HAVE_COSF) 381 AC_DEFINE(HAVE_COSL) 382 AC_DEFINE(HAVE_COSHF) 383 AC_DEFINE(HAVE_COSHL) 384 AC_DEFINE(HAVE_EXPF) 385 AC_DEFINE(HAVE_EXPL) 386 AC_DEFINE(HAVE_FABSF) 387 AC_DEFINE(HAVE_FABSL) 388 AC_DEFINE(HAVE_FLOORF) 389 AC_DEFINE(HAVE_FLOORL) 390 AC_DEFINE(HAVE_FMODF) 391 AC_DEFINE(HAVE_FMODL) 392 AC_DEFINE(HAVE_FREXPF) 393 AC_DEFINE(HAVE_FREXPL) 394 AC_DEFINE(HAVE_LDEXPF) 395 AC_DEFINE(HAVE_LDEXPL) 396 AC_DEFINE(HAVE_LOG10F) 397 AC_DEFINE(HAVE_LOG10L) 398 AC_DEFINE(HAVE_LOGF) 399 AC_DEFINE(HAVE_MODFF) 400 AC_DEFINE(HAVE_MODFL) 401 AC_DEFINE(HAVE_POWF) 402 AC_DEFINE(HAVE_POWL) 403 AC_DEFINE(HAVE_SINF) 404 AC_DEFINE(HAVE_SINL) 405 AC_DEFINE(HAVE_SINHF) 406 AC_DEFINE(HAVE_SINHL) 407 AC_DEFINE(HAVE_SQRTF) 408 AC_DEFINE(HAVE_SQRTL) 409 AC_DEFINE(HAVE_TANF) 410 AC_DEFINE(HAVE_TANL) 411 AC_DEFINE(HAVE_TANHF) 412 AC_DEFINE(HAVE_TANHL) 413 ;; 414 *) 415 AC_MSG_ERROR([No support for this host/target combination.]) 416 ;; 417esac 418]) 419