~ubuntu-branches/ubuntu/natty/diffutils/natty

« back to all changes in this revision

Viewing changes to m4/malloc.m4

  • Committer: Bazaar Package Importer
  • Author(s): Santiago Vila
  • Date: 2010-05-04 20:38:00 UTC
  • mfrom: (2.1.7 sid)
  • Revision ID: james.westby@ubuntu.com-20100504203800-f67xd9rsa9xl9qqj
Tags: 1:3.0-1
New upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#serial 5
2
 
 
3
 
dnl From Jim Meyering.
4
 
dnl Determine whether malloc accepts 0 as its argument.
5
 
dnl If it doesn't, arrange to use the replacement function.
6
 
dnl
7
 
 
8
 
AC_DEFUN([jm_FUNC_MALLOC],
 
1
# malloc.m4 serial 9
 
2
dnl Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
 
3
dnl This file is free software; the Free Software Foundation
 
4
dnl gives unlimited permission to copy and/or distribute it,
 
5
dnl with or without modifications, as long as this notice is preserved.
 
6
 
 
7
# gl_FUNC_MALLOC_POSIX
 
8
# --------------------
 
9
# Test whether 'malloc' is POSIX compliant (sets errno to ENOMEM when it
 
10
# fails), and replace malloc if it is not.
 
11
AC_DEFUN([gl_FUNC_MALLOC_POSIX],
9
12
[
10
 
 dnl xmalloc.c requires that this symbol be defined so it doesn't
11
 
 dnl mistakenly use a broken malloc -- as it might if this test were omitted.
12
 
 AC_DEFINE(HAVE_DONE_WORKING_MALLOC_CHECK, 1,
13
 
           [Define if the malloc check has been performed. ])
14
 
 
15
 
 AC_CACHE_CHECK([for working malloc], jm_cv_func_working_malloc,
16
 
  [AC_TRY_RUN([
17
 
    char *malloc ();
18
 
    int
19
 
    main ()
20
 
    {
21
 
      exit (malloc (0) ? 0 : 1);
22
 
    }
23
 
          ],
24
 
         jm_cv_func_working_malloc=yes,
25
 
         jm_cv_func_working_malloc=no,
26
 
         dnl When crosscompiling, assume malloc is broken.
27
 
         jm_cv_func_working_malloc=no)
28
 
  ])
29
 
  if test $jm_cv_func_working_malloc = no; then
30
 
    AC_LIBOBJ(malloc)
31
 
    AC_DEFINE(malloc, rpl_malloc,
32
 
      [Define to rpl_malloc if the replacement function should be used.])
 
13
  AC_REQUIRE([gl_CHECK_MALLOC_POSIX])
 
14
  if test $gl_cv_func_malloc_posix = yes; then
 
15
    HAVE_MALLOC_POSIX=1
 
16
    AC_DEFINE([HAVE_MALLOC_POSIX], [1],
 
17
      [Define if the 'malloc' function is POSIX compliant.])
 
18
  else
 
19
    AC_LIBOBJ([malloc])
 
20
    HAVE_MALLOC_POSIX=0
33
21
  fi
 
22
  AC_SUBST([HAVE_MALLOC_POSIX])
 
23
])
 
24
 
 
25
# Test whether malloc, realloc, calloc are POSIX compliant,
 
26
# Set gl_cv_func_malloc_posix to yes or no accordingly.
 
27
AC_DEFUN([gl_CHECK_MALLOC_POSIX],
 
28
[
 
29
  AC_CACHE_CHECK([whether malloc, realloc, calloc are POSIX compliant],
 
30
    [gl_cv_func_malloc_posix],
 
31
    [
 
32
      dnl It is too dangerous to try to allocate a large amount of memory:
 
33
      dnl some systems go to their knees when you do that. So assume that
 
34
      dnl all Unix implementations of the function are POSIX compliant.
 
35
      AC_TRY_COMPILE([],
 
36
        [#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
 
37
         choke me
 
38
         #endif
 
39
        ], [gl_cv_func_malloc_posix=yes], [gl_cv_func_malloc_posix=no])
 
40
    ])
34
41
])