Mercurial > hg > octave-kai > gnulib-hg
view m4/ceilf.m4 @ 9600:99268e709d31
Avoid quadratic strstr implementations.
* lib/strstr.c: New file.
* m4/strstr.m4: Likewise.
* modules/strstr: Likewise.
* modules/strstr-tests: Likewise.
* tests/test-strstr.c: Likewise.
* lib/string.in.h (rpl_strstr): Declare.
(memmem) [GNULIB_POSIXCHECK]: Document speed issue.
* m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Support strstr.
* modules/string (Makefile.am): Likewise.
* MODULES.html.sh (string handling): Mention new module.
* doc/functions/strstr.texi (strstr): Document the bug.
Signed-off-by: Eric Blake <ebb9@byu.net>
author | Eric Blake <ebb9@byu.net> |
---|---|
date | Thu, 10 Jan 2008 07:38:11 -0700 |
parents | b60ac48de79f |
children | 6dad92faecd1 |
line wrap: on
line source
# ceilf.m4 serial 3 dnl Copyright (C) 2007 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_CEILF], [ AC_REQUIRE([gl_MATH_H_DEFAULTS]) dnl Persuade glibc <math.h> to declare ceilf(). AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) dnl Test whether ceilf() is declared. AC_CHECK_DECLS([ceilf], , , [#include <math.h>]) if test "$ac_cv_have_decl_ceilf" = yes; then dnl Test whether ceilf() can be used without libm. gl_FUNC_CEILF_LIBS if test "$CEILF_LIBM" = "?"; then dnl Sun C 5.0 on Solaris declares ceilf() and has it in the system-wide dnl libm.so, but not in the libm.so that the compiler uses. REPLACE_CEILF=1 fi else REPLACE_CEILF=1 fi if test $REPLACE_CEILF = 1; then AC_LIBOBJ([ceilf]) CEILF_LIBM= fi AC_SUBST([REPLACE_CEILF]) AC_SUBST([CEILF_LIBM]) ]) # Determines the libraries needed to get the ceilf() function. # Sets CEILF_LIBM. AC_DEFUN([gl_FUNC_CEILF_LIBS], [ AC_CACHE_VAL([gl_cv_func_ceilf_libm], [ gl_cv_func_ceilf_libm=? AC_TRY_LINK([ #ifndef __NO_MATH_INLINES # define __NO_MATH_INLINES 1 /* for glibc */ #endif #include <math.h> float x;], [x = ceilf(x);], [gl_cv_func_ceilf_libm=]) if test "$gl_cv_func_ceilf_libm" = "?"; then save_LIBS="$LIBS" LIBS="$LIBS -lm" AC_TRY_LINK([ #ifndef __NO_MATH_INLINES # define __NO_MATH_INLINES 1 /* for glibc */ #endif #include <math.h> float x;], [x = ceilf(x);], [gl_cv_func_ceilf_libm="-lm"]) LIBS="$save_LIBS" fi ]) CEILF_LIBM="$gl_cv_func_ceilf_libm" ])