strerror_r.m4

来自「linux平台中」· M4 代码 · 共 70 行

M4
70
字号
#serial 1002, but ported to autoconf 2.13 by eggert# Experimental replacement for the function in the latest CVS autoconf.# If the compile-test says strerror_r doesn't work, then resort to a# `run'-test that works on BeOS and segfaults on DEC Unix.# Use with the error.c file in ../lib.undefine([AC_FUNC_STRERROR_R])# AC_FUNC_STRERROR_R# ------------------AC_DEFUN([AC_FUNC_STRERROR_R],[jm_CHECK_DECLARATION(strerror_r, [#include <string.h>])test $jm_cv_func_decl_strerror_r != yesAC_DEFINE_UNQUOTED(HAVE_DECL_STRERROR_R, $?,  [Define to 1 if strerror_r is declared.])AC_CHECK_FUNCS([strerror_r])if test $ac_cv_func_strerror_r = yes; then  AC_CHECK_HEADERS(string.h)  AC_CACHE_CHECK([for working strerror_r],		 ac_cv_func_strerror_r_works,   [    AC_TRY_COMPILE(     [#       include <stdio.h>#       if HAVE_STRING_H#        include <string.h>#       endif     ],     [       char buf[100];       char x = *strerror_r (0, buf, sizeof buf);     ],     ac_cv_func_strerror_r_works=yes,     ac_cv_func_strerror_r_works=no    )    if test $ac_cv_func_strerror_r_works = no; then      # strerror_r seems not to work, but now we have to choose between      # systems that have relatively inaccessible declarations for the      # function.  BeOS and DEC UNIX 4.0 fall in this category, but the      # former has a strerror_r that returns char*, while the latter      # has a strerror_r that returns int.      # This test should segfault on the DEC system.      AC_TRY_RUN(       [#       include <stdio.h>#       include <string.h>#       include <ctype.h>	extern char *strerror_r ();	int	main ()	{	  char buf[100];	  char x = *strerror_r (0, buf, sizeof buf);	  exit (!isalpha (x));	}       ],       ac_cv_func_strerror_r_works=yes,       ac_cv_func_strerror_r_works=no,       ac_cv_func_strerror_r_works=no)    fi  ])  if test $ac_cv_func_strerror_r_works = yes; then    AC_DEFINE_UNQUOTED(HAVE_WORKING_STRERROR_R, 1,      [Define to 1 if strerror_r returns a string.])  fifi])# AC_FUNC_STRERROR_R

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?