[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Linux gnu m4 help (was: Re: Error configuring RTEMS 4.7)
- Date: Sun, 20 Feb 2005 10:22:39 -0500
- From: Peter Dufault <dufault at hda dot com>
- Subject: Linux gnu m4 help (was: Re: Error configuring RTEMS 4.7)
On Feb 18, 2005, at 10:10 AM, Peter Dufault wrote:
It is a bug in m4. I tried the latest. On line 734, src/format.c of
GNU m4 1.4.2 it is doing:
sprint(str, fstart, ...
While waiting and hoping that rtem 4.7 now builds for me, I'm trying to
figure out why I'm seeing the stack overflow in M4 on FreeBSD during
"bootstrap" and others are not on Linux and Cygwin.
Looking at m4 1.4.2 I see that the corruption is being detected by
gm4's "src/stackovf.c", which is conditionally included during
configuration, so maybe it isn't in use on Linux.
Could someone with Linux build GNU m4 1.4.2 with debugging and run the
following GDB script against it in their rtems 4.7 source directory to
see if the stack is corrupted but that it isn't being noticed? I've
attached it as a ".txt" file to get past the censors.
Run as:
gdb gm4 -x gm4_gdbinit.txt
(or whatever GNU m4 1.4.2 with debugging is on your system)
On FreeBSD I get:
536 fmt = ARG_STR (argc, argv);
format (obs=0x80637e0, argc=1, argv=0x8124010) at format.c:727
727 if (width != -1 && prec != -1)
sizeof(str) is 256 and the format is "%-349s"
(gdb)
showing that the sprintf into str will corrupt the stack.
Thanks,
Peter
Peter Dufault
HD Associates, Inc.
cd rtems-4.7/c/src/lib/libbsp/powerpc/dmv177
set args --nesting-limit=1024 --include=/usr/local/share/autoconf259 --debug=aflq --fatal-warning --error-output=autom4te.cache/traces.2t --trace=AC_CANONICAL_HOST --trace=AC_CANONICAL_SYSTEM --trace=AC_CHECK_FUNCS --trace=AC_CHECK_HEADERS --trace=AC_CHECK_LIB --trace=AC_CHECK_MEMBERS --trace=AC_CHECK_TYPES --trace=AC_CONFIG_AUX_DIR --trace=AC_CONFIG_FILES --trace=AC_CONFIG_HEADERS --trace=AC_CONFIG_LIBOBJ_DIR --trace=AC_CONFIG_LINKS --trace=AC_CONFIG_SUBDIRS --trace=AC_C_CONST --trace=AC_C_INLINE --trace=AC_C_VOLATILE --trace=AC_DECL_SYS_SIGLIST --trace=AC_DEFINE_TRACE_LITERAL --trace=AC_DEFUN --trace=AC_DEFUN_ONCE --trace=AC_FUNC_ALLOCA --trace=AC_FUNC_CHOWN --trace=AC_FUNC_CLOSEDIR_VOID --trace=AC_FUNC_ERROR_AT_LINE --trace=AC_FUNC_FORK --trace=AC_FUNC_FSEEKO --trace=AC_FUNC_GETGROUPS --trace=AC_FUNC_GETLOADAVG --trace=AC_FUNC_GETMNTENT --trace=AC_FUNC_GETPGRP --trace=AC_FUNC_LSTAT --trace=AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK --trace=AC_FUNC_MALLOC --trace=AC_FUNC_MBRTOWC --trace=AC_FUNC_MEMCMP --trace=AC_FUNC_MKTIME --trace=AC_FUNC_MMAP --trace=AC_FUNC_OBSTACK --trace=AC_FUNC_REALLOC --trace=AC_FUNC_SELECT_ARGTYPES --trace=AC_FUNC_SETPGRP --trace=AC_FUNC_SETVBUF_REVERSED --trace=AC_FUNC_STAT --trace=AC_FUNC_STRCOLL --trace=AC_FUNC_STRERROR_R --trace=AC_FUNC_STRFTIME --trace=AC_FUNC_STRNLEN --trace=AC_FUNC_STRTOD --trace=AC_FUNC_UTIME_NULL --trace=AC_FUNC_VPRINTF --trace=AC_FUNC_WAIT3 --trace=AC_HEADER_DIRENT --trace=AC_HEADER_MAJOR --trace=AC_HEADER_STAT --trace=AC_HEADER_STDC --trace=AC_HEADER_SYS_WAIT --trace=AC_HEADER_TIME --trace=AC_INIT --trace=AC_LIBSOURCE --trace=AC_PATH_X --trace=AC_PROG_AWK --trace=AC_PROG_CC --trace=AC_PROG_CPP --trace=AC_PROG_CXX --trace=AC_PROG_GCC_TRADITIONAL --trace=AC_PROG_INSTALL --trace=AC_PROG_LEX --trace=AC_PROG_LIBTOOL --trace=AC_PROG_LN_S --trace=AC_PROG_MAKE_SET --trace=AC_PROG_RANLIB --trace=AC_PROG_YACC --trace=AC_REPLACE_FNMATCH --trace=AC_STRUCT_ST_BLOCKS --trace=AC_STRUCT_TIMEZONE --trace=AC_STRUCT_TM --trace=AC_SUBST --trace=AC_TYPE_MODE_T --trace=AC_TYPE_OFF_T --trace=AC_TYPE_PID_T --trace=AC_TYPE_SIGNAL --trace=AC_TYPE_SIZE_T --trace=AC_TYPE_UID_T --trace=AH_OUTPUT --trace=AM_AUTOMAKE_VERSION --trace=AM_AUX_DIR_EXPAND --trace=AM_CONDITIONAL --trace=AM_DEP_TRACK --trace=AM_GNU_GETTEXT --trace=AM_INIT_AUTOMAKE --trace=AM_MAINTAINER_MODE --trace=AM_MAKE_INCLUDE --trace=AM_MISSING_HAS_RUN --trace=AM_MISSING_PROG --trace=AM_OUTPUT_DEPENDENCY_COMMANDS --trace=AM_PROG_CC_C_O --trace=AM_PROG_INSTALL_SH --trace=AM_PROG_INSTALL_STRIP --trace=AM_PROG_MKDIR_P --trace=AM_RUN_LOG --trace=AM_SANITY_CHECK --trace=AM_SET_CURRENT_AUTOMAKE_VERSION --trace=AM_SET_DEPDIR --trace=AM_SET_LEADING_DOT --trace=AU_DEFUN --trace=RTEMS_ARG_VAR --trace=RTEMS_BSPOPTS_HELP --trace=RTEMS_BSPOPTS_SET --trace=RTEMS_BSP_CONFIGURE --trace=RTEMS_CANONICALIZE_TOOLS --trace=RTEMS_CANONICAL_TARGET_CPU --trace=RTEMS_CHECK_CUSTOM_BSP --trace=RTEMS_CHECK_MULTIPROCESSING --trace=RTEMS_CHECK_NETWORKING --trace=RTEMS_CHECK_TOOL --trace=RTEMS_ENABLE_MULTILIB --trace=RTEMS_ENABLE_MULTIPROCESSING --trace=RTEMS_ENABLE_NETWORKING --trace=RTEMS_ENABLE_RTEMSBSP --trace=RTEMS_ENV_RTEMSBSP --trace=RTEMS_GCC_ISYSTEM --trace=RTEMS_GCC_PIPE --trace=RTEMS_GCC_SPECS --trace=RTEMS_PPC_EXCEPTIONS --trace=RTEMS_PROG_CC --trace=RTEMS_PROG_CCAS --trace=RTEMS_PROG_CC_FOR_TARGET --trace=RTEMS_PROJECT_ROOT --trace=RTEMS_TOP --trace=RTEMS_VERSIONING --trace=_AC_AM_CONFIG_HEADER_HOOK --trace=_AM_DEPENDENCIES --trace=_AM_IF_OPTION --trace=_AM_MANGLE_OPTION --trace=_AM_OUTPUT_DEPENDENCY_COMMANDS --trace=_AM_PROG_TAR --trace=_AM_SET_OPTION --trace=_AM_SET_OPTIONS --trace=_RTEMS_CHECK_CUSTOM_BSP --trace=_m4_warn --trace=include --trace=jm_MAINTAINER_MODE --trace=m4_include --trace=m4_pattern_allow --trace=m4_pattern_forbid --trace=m4_sinclude --reload-state=/usr/local/share/autoconf259/autoconf/autoconf.m4f /usr/local/share/aclocal19/amversion.m4 /usr/local/share/aclocal19/auxdir.m4 /usr/local/share/aclocal19/cond.m4 /usr/local/share/aclocal19/depend.m4 /usr/local/share/aclocal19/depout.m4 /usr/local/share/aclocal19/init.m4 /usr/local/share/aclocal19/install-sh.m4 /usr/local/share/aclocal19/lead-dot.m4 /usr/local/share/aclocal19/maintainer.m4 /usr/local/share/aclocal19/make.m4 /usr/local/share/aclocal19/missing.m4 /usr/local/share/aclocal19/mkdirp.m4 /usr/local/share/aclocal19/options.m4 /usr/local/share/aclocal19/runlog.m4 /usr/local/share/aclocal19/sanity.m4 /usr/local/share/aclocal19/strip.m4 /usr/local/share/aclocal19/tar.m4 ../../../../aclocal/bsp-configure.m4 ../../../../aclocal/bspopts.m4 ../../../../aclocal/canonical-target-name.m4 ../../../../aclocal/canonicalize-tools.m4 ../../../../aclocal/check-custom-bsp.m4 ../../../../aclocal/check-multiprocessing.m4 ../../../../aclocal/check-networking.m4 ../../../../aclocal/check-tool.m4 ../../../../aclocal/enable-multiprocessing.m4 ../../../../aclocal/enable-networking.m4 ../../../../aclocal/enable-rtemsbsp.m4 ../../../../aclocal/env-rtemsbsp.m4 ../../../../aclocal/gcc-isystem.m4 ../../../../aclocal/gcc-pipe.m4 ../../../../aclocal/gcc-specs.m4 ../../../../aclocal/multilib.m4 ../../../../aclocal/ppc.m4 ../../../../aclocal/prog-cc.m4 ../../../../aclocal/prog-ccas.m4 ../../../../aclocal/project-root.m4 ../../../../aclocal/rtems-top.m4 ../../../../aclocal/version.m4 configure.ac
break format
ignore 1 13
run
until 727
printf "sizeof(str) is %d and the format is \"%s\"\n", sizeof(str), fstart