
memmem is not POSIX so the system may lack it. Then libiberty will provide an implementation, but it's a "supplemental function" and not declared in libiberty.h. We need to declare the prototype to use it then. See libiberty doc at https://gcc.gnu.org/onlinedocs/libiberty/Supplemental-Functions.html. Tested by bootstrapping GCC in the following container environments on x86_64-linux-gnu: 1. "Vanilla" system with memmem in Glibc. 2. memmem removed from string.h. 3. memmem removed from both string.h and libc.so. For 3, also verified that memmem from libiberty is linked into fixincl executable. Ok for trunk? fixincludes/ChangeLog: PR other/109293 * configure.ac (AC_CHECK_DECLS): Add memmem. * configure: Regenerate. * config.h.in: Regenerate. * system.h (memmem): Declare if HAVE_DECL_MEMMEM is zero.
121 lines
3.5 KiB
Text
121 lines
3.5 KiB
Text
|
|
AC_INIT(fixincludes, [ ])
|
|
AC_CONFIG_SRCDIR(inclhack.def)
|
|
AC_CONFIG_AUX_DIR(..)
|
|
m4_sinclude(../libtool.m4)
|
|
AC_CANONICAL_SYSTEM
|
|
AC_PROG_CC
|
|
AC_USE_SYSTEM_EXTENSIONS
|
|
AC_PROG_SED
|
|
|
|
# Figure out what compiler warnings we can enable.
|
|
# See config/warnings.m4 for details.
|
|
|
|
ACX_PROG_CC_WARNING_OPTS([-W -Wall -Wwrite-strings -Wstrict-prototypes \
|
|
-Wmissing-prototypes -Wold-style-definition \
|
|
-Wmissing-format-attribute -Wno-overlength-strings])
|
|
ACX_PROG_CC_WARNING_ALMOST_PEDANTIC([-Wno-long-long])
|
|
|
|
# Only enable with --enable-werror-always until existing warnings are
|
|
# corrected.
|
|
ACX_PROG_CC_WARNINGS_ARE_ERRORS([manual])
|
|
|
|
# Determine the noncanonical target name, for directory use.
|
|
ACX_NONCANONICAL_TARGET
|
|
|
|
# Specify the local prefix
|
|
local_prefix=
|
|
AC_ARG_WITH(local-prefix,
|
|
[ --with-local-prefix=DIR specifies directory to put local include],
|
|
[case "${withval}" in
|
|
yes) AC_MSG_ERROR(bad value ${withval} given for local include directory prefix) ;;
|
|
no) ;;
|
|
*) local_prefix=$with_local_prefix ;;
|
|
esac])
|
|
|
|
# Default local prefix if it is empty
|
|
if test x$local_prefix = x; then
|
|
local_prefix=/usr/local
|
|
fi
|
|
|
|
# Choose one or two-process fix methodology. Systems that cannot handle
|
|
# bi-directional pipes must use the two process method.
|
|
#
|
|
AC_ARG_ENABLE([twoprocess],
|
|
[ --enable-twoprocess Use a separate process to apply the fixes],
|
|
[if test "x$enable_twoprocess" = xyes; then
|
|
TARGET=twoprocess
|
|
else
|
|
TARGET=oneprocess
|
|
fi],
|
|
[case $host in
|
|
i?86-*-msdosdjgpp* | \
|
|
i?86-*-mingw32* | \
|
|
x86_64-*-mingw32* | \
|
|
*-*-beos* | \
|
|
*-*-*vms*)
|
|
TARGET=twoprocess
|
|
;;
|
|
|
|
* )
|
|
TARGET=oneprocess
|
|
;;
|
|
esac])
|
|
AC_SUBST(TARGET)
|
|
|
|
if test $TARGET = twoprocess; then
|
|
AC_DEFINE(SEPARATE_FIX_PROC, 1,
|
|
[Define if testing and fixing are done by separate process])
|
|
fi
|
|
|
|
case $host in
|
|
vax-dec-bsd* )
|
|
AC_DEFINE(exit, xexit, [Define to xexit if the host system does not support atexit])
|
|
AC_DEFINE(atexit, xatexit, [Define to xatexit if the host system does not support atexit])
|
|
;;
|
|
esac
|
|
|
|
AC_DEFINE_UNQUOTED([EXE_EXT], "$ac_exeext",
|
|
[Defined to the executable file extension on the host system])
|
|
|
|
# Checks for header files.
|
|
AC_HEADER_STDC
|
|
AC_CHECK_HEADERS([stddef.h stdlib.h strings.h unistd.h fcntl.h sys/file.h \
|
|
sys/stat.h])
|
|
define(fixincludes_UNLOCKED_FUNCS, clearerr_unlocked feof_unlocked dnl
|
|
ferror_unlocked fflush_unlocked fgetc_unlocked fgets_unlocked dnl
|
|
fileno_unlocked fprintf_unlocked fputc_unlocked fputs_unlocked dnl
|
|
fread_unlocked fwrite_unlocked getchar_unlocked getc_unlocked dnl
|
|
putchar_unlocked putc_unlocked)
|
|
AC_CHECK_FUNCS(fixincludes_UNLOCKED_FUNCS)
|
|
AC_CHECK_DECLS([abort, asprintf, basename(char *), errno, vasprintf, memmem])
|
|
AC_CHECK_DECLS(m4_split(m4_normalize(fixincludes_UNLOCKED_FUNCS)))
|
|
|
|
# Checks for typedefs, structures, and compiler characteristics.
|
|
AC_C_CONST
|
|
|
|
# Checks for library functions.
|
|
GCC_AC_FUNC_MMAP_BLACKLIST
|
|
|
|
AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
|
|
AC_ARG_ENABLE(maintainer-mode,
|
|
[ --enable-maintainer-mode enable make rules and dependencies not useful
|
|
(and sometimes confusing) to the casual installer],
|
|
USE_MAINTAINER_MODE=$enableval,
|
|
USE_MAINTAINER_MODE=no)
|
|
AC_MSG_RESULT($USE_MAINTAINER_MODE)
|
|
if test "$USE_MAINTAINER_MODE" = yes; then
|
|
MAINT=
|
|
else
|
|
MAINT='#'
|
|
fi
|
|
AC_SUBST(MAINT)
|
|
AC_DEFINE_UNQUOTED([SED_PROGRAM], "${SED}",
|
|
[Defined to the best working sed program on the host system])
|
|
|
|
# Determine what GCC version number to use in filesystem paths.
|
|
GCC_BASE_VER
|
|
|
|
AC_CONFIG_HEADERS(config.h, [echo timestamp > stamp-h])
|
|
AC_CONFIG_FILES(Makefile mkheaders.almost:mkheaders.in)
|
|
AC_OUTPUT
|