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

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-dev/] [fsf-gcc-snapshot-1-mar-12/] [or1k-gcc/] [libiberty/] [aclocal.m4] - Diff between revs 736 and 783

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 736 Rev 783
sinclude(../config/acx.m4)
sinclude(../config/acx.m4)
sinclude(../config/no-executables.m4)
sinclude(../config/no-executables.m4)
sinclude(../config/override.m4)
sinclude(../config/override.m4)
sinclude(../config/picflag.m4)
sinclude(../config/picflag.m4)
sinclude(../config/warnings.m4)
sinclude(../config/warnings.m4)
 
 
dnl See whether strncmp reads past the end of its string parameters.
dnl See whether strncmp reads past the end of its string parameters.
dnl On some versions of SunOS4 at least, strncmp reads a word at a time
dnl On some versions of SunOS4 at least, strncmp reads a word at a time
dnl but erroneously reads past the end of strings.  This can cause
dnl but erroneously reads past the end of strings.  This can cause
dnl a SEGV in some cases.
dnl a SEGV in some cases.
AC_DEFUN(libiberty_AC_FUNC_STRNCMP,
AC_DEFUN(libiberty_AC_FUNC_STRNCMP,
[AC_REQUIRE([AC_FUNC_MMAP])
[AC_REQUIRE([AC_FUNC_MMAP])
AC_CACHE_CHECK([for working strncmp], ac_cv_func_strncmp_works,
AC_CACHE_CHECK([for working strncmp], ac_cv_func_strncmp_works,
[AC_TRY_RUN([
[AC_TRY_RUN([
/* Test by Jim Wilson and Kaveh Ghazi.
/* Test by Jim Wilson and Kaveh Ghazi.
   Check whether strncmp reads past the end of its string parameters. */
   Check whether strncmp reads past the end of its string parameters. */
#include <sys/types.h>
#include <sys/types.h>
 
 
#ifdef HAVE_FCNTL_H
#ifdef HAVE_FCNTL_H
#include <fcntl.h>
#include <fcntl.h>
#endif
#endif
 
 
#ifdef HAVE_SYS_MMAN_H
#ifdef HAVE_SYS_MMAN_H
#include <sys/mman.h>
#include <sys/mman.h>
#endif
#endif
 
 
#ifndef MAP_ANON
#ifndef MAP_ANON
#ifdef MAP_ANONYMOUS
#ifdef MAP_ANONYMOUS
#define MAP_ANON MAP_ANONYMOUS
#define MAP_ANON MAP_ANONYMOUS
#else
#else
#define MAP_ANON MAP_FILE
#define MAP_ANON MAP_FILE
#endif
#endif
#endif
#endif
 
 
#ifndef MAP_FILE
#ifndef MAP_FILE
#define MAP_FILE 0
#define MAP_FILE 0
#endif
#endif
#ifndef O_RDONLY
#ifndef O_RDONLY
#define O_RDONLY 0
#define O_RDONLY 0
#endif
#endif
 
 
#define MAP_LEN 0x10000
#define MAP_LEN 0x10000
 
 
main ()
main ()
{
{
#if defined(HAVE_MMAP) || defined(HAVE_MMAP_ANYWHERE)
#if defined(HAVE_MMAP) || defined(HAVE_MMAP_ANYWHERE)
  char *p;
  char *p;
  int dev_zero;
  int dev_zero;
 
 
  dev_zero = open ("/dev/zero", O_RDONLY);
  dev_zero = open ("/dev/zero", O_RDONLY);
  if (dev_zero < 0)
  if (dev_zero < 0)
    exit (1);
    exit (1);
 
 
  p = (char *) mmap (0, MAP_LEN, PROT_READ|PROT_WRITE,
  p = (char *) mmap (0, MAP_LEN, PROT_READ|PROT_WRITE,
                     MAP_ANON|MAP_PRIVATE, dev_zero, 0);
                     MAP_ANON|MAP_PRIVATE, dev_zero, 0);
  if (p == (char *)-1)
  if (p == (char *)-1)
    p = (char *) mmap (0, MAP_LEN, PROT_READ|PROT_WRITE,
    p = (char *) mmap (0, MAP_LEN, PROT_READ|PROT_WRITE,
                       MAP_ANON|MAP_PRIVATE, -1, 0);
                       MAP_ANON|MAP_PRIVATE, -1, 0);
  if (p == (char *)-1)
  if (p == (char *)-1)
    exit (2);
    exit (2);
  else
  else
    {
    {
      char *string = "__si_type_info";
      char *string = "__si_type_info";
      char *q = (char *) p + MAP_LEN - strlen (string) - 2;
      char *q = (char *) p + MAP_LEN - strlen (string) - 2;
      char *r = (char *) p + 0xe;
      char *r = (char *) p + 0xe;
 
 
      strcpy (q, string);
      strcpy (q, string);
      strcpy (r, string);
      strcpy (r, string);
      strncmp (r, q, 14);
      strncmp (r, q, 14);
    }
    }
#endif /* HAVE_MMAP || HAVE_MMAP_ANYWHERE */
#endif /* HAVE_MMAP || HAVE_MMAP_ANYWHERE */
  exit (0);
  exit (0);
}
}
], ac_cv_func_strncmp_works=yes, ac_cv_func_strncmp_works=no,
], ac_cv_func_strncmp_works=yes, ac_cv_func_strncmp_works=no,
  ac_cv_func_strncmp_works=yes)
  ac_cv_func_strncmp_works=yes)
rm -f core core.* *.core])
rm -f core core.* *.core])
if test $ac_cv_func_strncmp_works = no ; then
if test $ac_cv_func_strncmp_works = no ; then
  AC_LIBOBJ([strncmp])
  AC_LIBOBJ([strncmp])
fi
fi
])
])
 
 
dnl See if errno must be declared even when <errno.h> is included.
dnl See if errno must be declared even when <errno.h> is included.
AC_DEFUN(libiberty_AC_DECLARE_ERRNO,
AC_DEFUN(libiberty_AC_DECLARE_ERRNO,
[AC_CACHE_CHECK(whether errno must be declared, libiberty_cv_declare_errno,
[AC_CACHE_CHECK(whether errno must be declared, libiberty_cv_declare_errno,
[AC_TRY_COMPILE(
[AC_TRY_COMPILE(
[#include <errno.h>],
[#include <errno.h>],
[int x = errno;],
[int x = errno;],
libiberty_cv_declare_errno=no,
libiberty_cv_declare_errno=no,
libiberty_cv_declare_errno=yes)])
libiberty_cv_declare_errno=yes)])
if test $libiberty_cv_declare_errno = yes
if test $libiberty_cv_declare_errno = yes
then AC_DEFINE(NEED_DECLARATION_ERRNO, 1,
then AC_DEFINE(NEED_DECLARATION_ERRNO, 1,
  [Define if errno must be declared even when <errno.h> is included.])
  [Define if errno must be declared even when <errno.h> is included.])
fi
fi
])
])
 
 
dnl See whether we need a declaration for a function.
dnl See whether we need a declaration for a function.
AC_DEFUN(libiberty_NEED_DECLARATION,
AC_DEFUN(libiberty_NEED_DECLARATION,
[AC_MSG_CHECKING([whether $1 must be declared])
[AC_MSG_CHECKING([whether $1 must be declared])
AC_CACHE_VAL(libiberty_cv_decl_needed_$1,
AC_CACHE_VAL(libiberty_cv_decl_needed_$1,
[AC_TRY_COMPILE([
[AC_TRY_COMPILE([
#include "confdefs.h"
#include "confdefs.h"
#include <stdio.h>
#include <stdio.h>
#ifdef HAVE_STRING_H
#ifdef HAVE_STRING_H
#include <string.h>
#include <string.h>
#else
#else
#ifdef HAVE_STRINGS_H
#ifdef HAVE_STRINGS_H
#include <strings.h>
#include <strings.h>
#endif
#endif
#endif
#endif
#ifdef HAVE_STDLIB_H
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#include <stdlib.h>
#endif
#endif
#ifdef HAVE_UNISTD_H
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#include <unistd.h>
#endif],
#endif],
[char *(*pfn) = (char *(*)) $1],
[char *(*pfn) = (char *(*)) $1],
libiberty_cv_decl_needed_$1=no, libiberty_cv_decl_needed_$1=yes)])
libiberty_cv_decl_needed_$1=no, libiberty_cv_decl_needed_$1=yes)])
AC_MSG_RESULT($libiberty_cv_decl_needed_$1)
AC_MSG_RESULT($libiberty_cv_decl_needed_$1)
if test $libiberty_cv_decl_needed_$1 = yes; then
if test $libiberty_cv_decl_needed_$1 = yes; then
  AC_DEFINE([NEED_DECLARATION_]translit($1, [a-z], [A-Z]), 1,
  AC_DEFINE([NEED_DECLARATION_]translit($1, [a-z], [A-Z]), 1,
            [Define if $1 is not declared in system header files.])
            [Define if $1 is not declared in system header files.])
fi
fi
])dnl
])dnl
 
 
# We always want a C version of alloca() compiled into libiberty,
# We always want a C version of alloca() compiled into libiberty,
# because native-compiler support for the real alloca is so !@#$%
# because native-compiler support for the real alloca is so !@#$%
# unreliable that GCC has decided to use it only when being compiled
# unreliable that GCC has decided to use it only when being compiled
# by GCC.  This is the part of AC_FUNC_ALLOCA that calculates the
# by GCC.  This is the part of AC_FUNC_ALLOCA that calculates the
# information alloca.c needs.
# information alloca.c needs.
AC_DEFUN(libiberty_AC_FUNC_C_ALLOCA,
AC_DEFUN(libiberty_AC_FUNC_C_ALLOCA,
[AC_CACHE_CHECK(whether alloca needs Cray hooks, ac_cv_os_cray,
[AC_CACHE_CHECK(whether alloca needs Cray hooks, ac_cv_os_cray,
[AC_EGREP_CPP(webecray,
[AC_EGREP_CPP(webecray,
[#if defined(CRAY) && ! defined(CRAY2)
[#if defined(CRAY) && ! defined(CRAY2)
webecray
webecray
#else
#else
wenotbecray
wenotbecray
#endif
#endif
], ac_cv_os_cray=yes, ac_cv_os_cray=no)])
], ac_cv_os_cray=yes, ac_cv_os_cray=no)])
if test $ac_cv_os_cray = yes; then
if test $ac_cv_os_cray = yes; then
  for ac_func in _getb67 GETB67 getb67; do
  for ac_func in _getb67 GETB67 getb67; do
    AC_CHECK_FUNC($ac_func,
    AC_CHECK_FUNC($ac_func,
      [AC_DEFINE_UNQUOTED(CRAY_STACKSEG_END, $ac_func,
      [AC_DEFINE_UNQUOTED(CRAY_STACKSEG_END, $ac_func,
  [Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP
  [Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP
   systems. This function is required for alloca.c support on those
   systems. This function is required for alloca.c support on those
   systems.])  break])
   systems.])  break])
  done
  done
fi
fi
 
 
AC_CACHE_CHECK(stack direction for C alloca, ac_cv_c_stack_direction,
AC_CACHE_CHECK(stack direction for C alloca, ac_cv_c_stack_direction,
[AC_TRY_RUN([find_stack_direction ()
[AC_TRY_RUN([find_stack_direction ()
{
{
  static char *addr = 0;
  static char *addr = 0;
  auto char dummy;
  auto char dummy;
  if (addr == 0)
  if (addr == 0)
    {
    {
      addr = &dummy;
      addr = &dummy;
      return find_stack_direction ();
      return find_stack_direction ();
    }
    }
  else
  else
    return (&dummy > addr) ? 1 : -1;
    return (&dummy > addr) ? 1 : -1;
}
}
main ()
main ()
{
{
  exit (find_stack_direction() < 0);
  exit (find_stack_direction() < 0);
}],
}],
  ac_cv_c_stack_direction=1,
  ac_cv_c_stack_direction=1,
  ac_cv_c_stack_direction=-1,
  ac_cv_c_stack_direction=-1,
  ac_cv_c_stack_direction=0)])
  ac_cv_c_stack_direction=0)])
AC_DEFINE_UNQUOTED(STACK_DIRECTION, $ac_cv_c_stack_direction,
AC_DEFINE_UNQUOTED(STACK_DIRECTION, $ac_cv_c_stack_direction,
  [Define if you know the direction of stack growth for your system;
  [Define if you know the direction of stack growth for your system;
   otherwise it will be automatically deduced at run-time.
   otherwise it will be automatically deduced at run-time.
        STACK_DIRECTION > 0 => grows toward higher addresses
        STACK_DIRECTION > 0 => grows toward higher addresses
        STACK_DIRECTION < 0 => grows toward lower addresses
        STACK_DIRECTION < 0 => grows toward lower addresses
        STACK_DIRECTION = 0 => direction of growth unknown])
        STACK_DIRECTION = 0 => direction of growth unknown])
])
])
 
 

powered by: WebSVN 2.1.0

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