m4-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

./configure --disable-shared


From: Eric Blake
Subject: ./configure --disable-shared
Date: Tue, 5 Sep 2006 16:55:43 +0000 (UTC)
User-agent: Loom/3.14 (http://gmane.org/)

This allows the testsuite to skip tests when --disable-shared makes it 
impossible for m4 to find modules that were not preloaded.  This brings the 
testsuite results to the same 1 failure that --enable-shared is currently 
seeing.  It also preloads all modules when --enable-debug, to ease static 
debugging.  The testsuite still fails miserably when --enable-debug, because 
tests/m4 is not filtering out all the junk that is being added to stderr, so 
maybe I will improve that in a later patch.

2006-09-05  Eric Blake  <address@hidden>

        * m4/input.c (lex_debug): Remove dead code that broke compilation
        with --enable-debug.
        * m4/module.c (install_builtin_table, install_macro_table)
        (m4__module_init, m4__module_open, module_close)
        (module_remove): Fix compilation when --enable-debug.
        * m4/output.c (m4_shipout_text): Likewise.
        * ltdl/m4/debug.m4 (M4_CHECK_DEBUGGING): Preload all static
        libraries when --enable-debug.
        * configure.ac (DYNAMIC_MODULES): New variable, to pass
        information to testsuite.
        (modules to preload): Determine modules after we know whether
        shared libraries are supported.
        * tests/atlocal.in (DYNAMIC_MODULES): Substitute this into
        testsuite.
        * tests/testsuite.at (AT_CHECK_DYNAMIC_MODULE): New macro.
        * tests/modules.at (Freezing modules, AT_CHECK_M4_MODTEST)
        (modules: shadow, modules: unload, modules: importing)
        (modules: trace): Use new macro.
        * tests/builtins.at (gmp): Likewise.

Index: configure.ac
===================================================================
RCS file: /sources/m4/m4/configure.ac,v
retrieving revision 1.54
diff -u -r1.54 configure.ac
--- configure.ac        22 Aug 2006 16:16:47 -0000      1.54
+++ configure.ac        5 Sep 2006 16:50:57 -0000
@@ -20,7 +20,7 @@
 AC_PREREQ([2.60])
 
 ## ------------------------ ##
-## Autoconf initialisation. ##
+## Autoconf initialization. ##
 ## ------------------------ ##
 AC_INIT([GNU M4], [1.9a], address@hidden)
 
@@ -59,39 +59,14 @@
 dnl the m4_ namespace provided by m4sugar, so we prefer M4_ as our
 dnl package-specific prefix.  FIXME - consistently use M4_ in the m4 macros
 dnl that feed the creation of configure.
-m4_pattern_forbid([^M4_])
-m4_pattern_allow([^M4_cv_])
+m4_pattern_forbid([^M4_[A-Z]])
 
 AC_DEFUN([M4_DEFAULT_PRELOAD], [m4 traditional gnu])
-AC_MSG_CHECKING([for modules to preload])
-  DLPREOPEN=
-
-  AC_ARG_WITH([modules],
-    [AS_HELP_STRING([--with-modules=MODULES],
-                   [preload MODULES @<:@default: ]M4_DEFAULT_PRELOAD[@:>@])],
-    [use_modules="$withval"],
-    [use_modules="M4_DEFAULT_PRELOAD"])
-
-  PREOPEN_DEPENDENCIES=
-  DLPREOPEN="-dlpreopen force"
-  if test -z "$use_modules"; then
-    use_modules=none
-  else
-    if test "$use_modules" != yes; then
-      for module in $use_modules; do
-       DLPREOPEN="$DLPREOPEN -dlpreopen modules/$module.la"
-       PREOPEN_DEPENDENCIES="$PREOPEN_DEPENDENCIES modules/$module.la"
-      done
-    fi
-  fi
-AC_MSG_RESULT([$use_modules])
-AC_SUBST([DLPREOPEN])
-AC_SUBST([PREOPEN_DEPENDENCIES])
-
+M4_default_preload="M4_DEFAULT_PRELOAD"
 
 
 ## ------------------------ ##
-## Automake Initialisation. ##
+## Automake Initialization. ##
 ## ------------------------ ##
 AM_INIT_AUTOMAKE([1.9b subdir-objects dist-bzip2 gnits])
 
@@ -110,7 +85,7 @@
 
 
 ## ----------------------- ##
-## Libtool initialisation. ##
+## Libtool initialization. ##
 ## ----------------------- ##
 LT_PREREQ([2.0])
 LT_CONFIG_LTDL_DIR([ltdl])
@@ -127,6 +102,37 @@
              ;;
 esac
 
+## ------------------------------- ##
+## Preloaded module configuration. ##
+## ------------------------------- ##
+AS_IF([test "x$enable_shared" != xno],
+      [DYNAMIC_MODULES=yes], [DYNAMIC_MODULES=no])
+AC_SUBST([DYNAMIC_MODULES], [$DYNAMIC_MODULES])
+
+AC_MSG_CHECKING([for modules to preload])
+  DLPREOPEN=
+
+  AC_ARG_WITH([modules],
+    [AS_HELP_STRING([--with-modules=MODULES],
+                   [preload MODULES @<:@default: ]M4_DEFAULT_PRELOAD[@:>@])],
+    [use_modules="$withval"],
+    [use_modules="$M4_default_preload"])
+
+  PREOPEN_DEPENDENCIES=
+  DLPREOPEN="-dlpreopen force"
+  if test -z "$use_modules"; then
+    use_modules=none
+  else
+    if test "$use_modules" != yes; then
+      for module in $use_modules; do
+       DLPREOPEN="$DLPREOPEN -dlpreopen modules/$module.la"
+       PREOPEN_DEPENDENCIES="$PREOPEN_DEPENDENCIES modules/$module.la"
+      done
+    fi
+  fi
+AC_MSG_RESULT([$use_modules])
+AC_SUBST([DLPREOPEN])
+AC_SUBST([PREOPEN_DEPENDENCIES])
 
 
 ## ---------------- ##
Index: ltdl/m4/debug.m4
===================================================================
RCS file: /sources/m4/m4/ltdl/m4/debug.m4,v
retrieving revision 1.3
diff -u -r1.3 debug.m4
--- ltdl/m4/debug.m4    16 Jun 2006 03:51:29 -0000      1.3
+++ ltdl/m4/debug.m4    5 Sep 2006 16:50:57 -0000
@@ -28,7 +28,7 @@
 AC_DEFUN([M4_CHECK_DEBUGGING],
 [AC_REQUIRE([AC_PROG_CC])
 AC_ARG_ENABLE([debug], [AS_HELP_STRING([--enable-debug],
-                           [build for debugging [default=no]])])
+                          [build for debugging [default=no]])])
 AC_MSG_CHECKING([for compilation debug mode])
 AC_MSG_RESULT([${enable_debug-no}])
 
@@ -43,48 +43,50 @@
   AC_DISABLE_SHARED
   AC_DEFINE([DEBUG], [1],
       [Define this to enable additional runtime debugging])
+  M4_default_preload="m4 traditional gnu load \
+import modtest mpeval shadow stdlib time"
   if test "$GCC" = yes; then
     case "$CFLAGS" in
       *-O* ) CFLAGS=`echo $CFLAGS | $SED 's/-O[[^ ]]* / /;s/-O[[^ ]]*$//'` ;;
     esac
     case "$CFLAGS" in
-        *-g* ) ;;
-         * ) AC_LIBTOOL_COMPILER_OPTION([if $compiler accepts -ggdb3],
-                 [M4_cv_prog_compiler_ggdb3],
-                 [-ggdb3 -c conftest.$ac_ext], [],
-                 [CFLAGS="$CFLAGS -ggdb3"],
-               [CFLAGS="$CFLAGS -g"])
-             ;;
+       *-g* ) ;;
+        * ) AC_LIBTOOL_COMPILER_OPTION([if $compiler accepts -ggdb3],
+                [M4_cv_prog_compiler_ggdb3],
+                [-ggdb3 -c conftest.$ac_ext], [],
+                [CFLAGS="$CFLAGS -ggdb3"],
+              [CFLAGS="$CFLAGS -g"])
+            ;;
     esac
     CFLAGS="$CFLAGS -Wall"
     WMORE="-Wshadow -Wpointer-arith -Wcast-align -Wnested-externs"
     WMORE="$WMORE -Wmissing-prototypes -Wmissing-declarations -Winline"
     AC_LIBTOOL_COMPILER_OPTION([if $compiler accepts $WMORE],
-        [M4_cv_prog_compiler_warning_flags],
-        [$WMORE -c conftest.$ac_ext], [],
-        [CFLAGS="$CFLAGS $WMORE"])
+       [M4_cv_prog_compiler_warning_flags],
+       [$WMORE -c conftest.$ac_ext], [],
+       [CFLAGS="$CFLAGS $WMORE"])
 
     AC_LIBTOOL_COMPILER_OPTION([if $compiler accepts -Wno-long-long],
-        [M4_cv_prog_compiler_wnolonglong],
-        [-Wno-long-long -c conftest.$ac_ext], [],
-        [CFLAGS="$CFLAGS -Wno-long-long"])
+       [M4_cv_prog_compiler_wnolonglong],
+       [-Wno-long-long -c conftest.$ac_ext], [],
+       [CFLAGS="$CFLAGS -Wno-long-long"])
   else
     case "$CFLAGS" in
-        *-g* ) ;;
-           * ) CFLAGS="$CFLAGS -g" ;;
+       *-g* ) ;;
+          * ) CFLAGS="$CFLAGS -g" ;;
     esac
   fi
 else
   AC_ENABLE_SHARED
   case "$CFLAGS" in
     *-g* ) CFLAGS=`echo "$CFLAGS" |\
-               $SED -e 's/ -g / /g;s/ -g$//;s/^-g //g;s/^-g$//'`
-           ;;
+              $SED -e 's/ -g / /g;s/ -g$//;s/^-g //g;s/^-g$//'`
+          ;;
   esac
   case "$CXXFLAGS" in
     *-g* ) CXXFLAGS=`echo "$CXXFLAGS" |\
-               $SED -e 's/ -g / /g;s/ -g$//;s/^-g //g;s/^-g$//'`
-           ;;
+              $SED -e 's/ -g / /g;s/ -g$//;s/^-g //g;s/^-g$//'`
+          ;;
   esac
 fi
 ])# M4_CHECK_DEBUGGING
Index: m4/input.c
===================================================================
RCS file: /sources/m4/m4/m4/input.c,v
retrieving revision 1.44
diff -u -r1.44 input.c
--- m4/input.c  23 Aug 2006 11:39:26 -0000      1.44
+++ m4/input.c  5 Sep 2006 16:50:57 -0000
@@ -955,8 +955,6 @@
 
 #ifdef DEBUG_INPUT
 
-static void  lex_debug (void);
-
 int
 m4_print_token (const char *s, m4__token_type type, m4_symbol_value *token)
 {
@@ -993,14 +991,4 @@
     }
   return 0;
 }
-
-static void
-lex_debug (void)
-{
-  m4__token_type type;
-  m4_symbol_value token;
-
-  while ((type = next_token (&token)) != NULL)
-    m4_print_token ("lex", type, &token);
-}
 #endif
Index: m4/module.c
===================================================================
RCS file: /sources/m4/m4/m4/module.c,v
retrieving revision 1.43
diff -u -r1.43 module.c
--- m4/module.c 5 Sep 2006 13:25:24 -0000       1.43
+++ m4/module.c 5 Sep 2006 16:50:57 -0000
@@ -45,7 +45,7 @@
  *
  * To load a module, call m4_module_load(), which uses the libltdl
  * API to find the module in the module search path.  The search
- * path is initialised from the environment variable M4MODPATH, followed
+ * path is initialized from the environment variable M4MODPATH, followed
  * by the configuration time default where the modules shipped with M4
  * itself are installed.  Libltdl reads the libtool .la file to
  * get the real library name (which can be system dependent), returning
@@ -176,7 +176,7 @@
        }
 
 #ifdef DEBUG_MODULES
-      M4_DEBUG_MESSAGE1("module %s: builtins loaded",
+      M4_DEBUG_MESSAGE1(context, "module %s: builtins loaded",
                        m4_get_module_name (handle));
 #endif /* DEBUG_MODULES */
     }
@@ -207,7 +207,7 @@
        }
 
 #ifdef DEBUG_MODULES
-      M4_DEBUG_MESSAGE1("module %s: macros loaded",
+      M4_DEBUG_MESSAGE1(context, "module %s: macros loaded",
                        m4_get_module_name (handle));
 #endif /* DEBUG_MODULES */
     }
@@ -309,8 +309,8 @@
 }
 
 
-/* Initialisation.  Currently the module search path in path.c is
-   initialised from M4MODPATH.  Only absolute path names are accepted to
+/* Initialization.  Currently the module search path in path.c is
+   initialized from M4MODPATH.  Only absolute path names are accepted to
    prevent the path search of the dlopen library from finding wrong
    files. */
 void
@@ -319,7 +319,7 @@
   int errors = 0;
 
   /* Do this only once!  If we already have an iface_id, then the
-     module system has already been initialised.  */
+     module system has already been initialized.  */
   if (iface_id)
     {
       m4_error (context, 0, 0, _("multiple module loader initializations"));
@@ -360,14 +360,14 @@
        errors = lt_dlinsertsearchdir (lt_dlgetsearchpath (), path);
     }
 
-  /* Couldn't initialise the module system; diagnose and exit.  */
+  /* Couldn't initialize the module system; diagnose and exit.  */
   if (errors)
     m4_error (context, EXIT_FAILURE, 0,
              _("failed to initialize module loader: %s"),
              module_dlerror ());
 
 #ifdef DEBUG_MODULES
-  M4_DEBUG_MESSAGE ("Module loader initialised.");
+  M4_DEBUG_MESSAGE (context, "Module loader initialized.");
 #endif /* DEBUG_MODULES */
 }
 
@@ -392,11 +392,11 @@
       /* If we have a handle, there must be handle info.  */
       assert (info);
 
-      M4_DEBUG_MESSAGE2("module %s: opening at %s",
+      M4_DEBUG_MESSAGE2(context, "module %s: opening at %s",
                        name ? name : MODULE_SELF_NAME, info->filename);
 #endif
 
-      /* Find and run any initialising function in the opened module,
+      /* Find and run any initializing function in the opened module,
         each time the module is opened.  */
       init_func = (m4_module_init_func *) lt_dlsym (handle, INIT_SYMBOL);
       if (init_func)
@@ -404,7 +404,7 @@
          (*init_func) (context, handle, obs);
 
 #ifdef DEBUG_MODULES
-         M4_DEBUG_MESSAGE1("module %s: init hook called", name);
+         M4_DEBUG_MESSAGE1(context, "module %s: init hook called", name);
 #endif /* DEBUG_MODULES */
        }
 
@@ -418,7 +418,7 @@
        }
 
 #ifdef DEBUG_MODULES
-      M4_DEBUG_MESSAGE1("module %s: opened", name);
+      M4_DEBUG_MESSAGE1(context, "module %s: opened", name);
 #endif /* DEBUG_MODULES */
     }
   else
@@ -498,7 +498,7 @@
       (*finish_func) (context, handle, obs);
 
 #ifdef DEBUG_MODULES
-      M4_DEBUG_MESSAGE1("module %s: finish hook called", name);
+      M4_DEBUG_MESSAGE1(context, "module %s: finish hook called", name);
 #endif /* DEBUG_MODULES */
     }
 
@@ -508,13 +508,13 @@
       if (!errors)
        {
 #ifdef DEBUG_MODULES
-         M4_DEBUG_MESSAGE1("module %s: closed", name);
+          M4_DEBUG_MESSAGE1(context, "module %s: closed", name);
 #endif /* DEBUG_MODULES */
        }
     }
 #ifdef DEBUG_MODULES
   else
-    M4_DEBUG_MESSAGE1("module %s: resident module not closed", name);
+    M4_DEBUG_MESSAGE1(context, "module %s: resident module not closed", name);
 #endif /* DEBUG_MODULES */
 
   if (errors)
@@ -552,7 +552,7 @@
 #ifdef DEBUG_MODULES
   if (info->ref_count > 1)
     {
-      M4_DEBUG_MESSAGE2("module %s: now has %d references.",
+      M4_DEBUG_MESSAGE2(context, "module %s: now has %d references.",
                        name, info->ref_count -1);
     }
 #endif /* DEBUG_MODULES */
@@ -566,7 +566,7 @@
       m4__symtab_remove_module_references (M4SYMTAB, handle);
 
 #ifdef DEBUG_MODULES
-      M4_DEBUG_MESSAGE1("module %s: symbols unloaded", name);
+      M4_DEBUG_MESSAGE1(context, "module %s: symbols unloaded", name);
 #endif /* DEBUG_MODULES */
     }
 
Index: m4/output.c
===================================================================
RCS file: /sources/m4/m4/m4/output.c,v
retrieving revision 1.27
diff -u -r1.27 output.c
--- m4/output.c 22 Aug 2006 22:36:28 -0000      1.27
+++ m4/output.c 5 Sep 2006 16:50:57 -0000
@@ -366,7 +366,7 @@
 
 #ifdef DEBUG_OUTPUT
            printf ("DEBUG: cur %d, cur out %d\n",
-                   current_line, output_current_line);
+                   m4_get_current_line (context), m4_output_current_line);
 #endif
 
            /* Output a `#line NUM' synchronisation directive if needed.
Index: tests/atlocal.in
===================================================================
RCS file: /sources/m4/m4/tests/atlocal.in,v
retrieving revision 1.5
diff -u -r1.5 atlocal.in
--- tests/atlocal.in    22 Aug 2006 16:16:48 -0000      1.5
+++ tests/atlocal.in    5 Sep 2006 16:50:57 -0000
@@ -5,3 +5,4 @@
 
 # Some tests cannot be performed with all the configurations.
 address@hidden@
address@hidden@
Index: tests/builtins.at
===================================================================
RCS file: /sources/m4/m4/tests/builtins.at,v
retrieving revision 1.17
diff -u -r1.17 builtins.at
--- tests/builtins.at   1 Sep 2006 23:11:05 -0000       1.17
+++ tests/builtins.at   5 Sep 2006 16:50:57 -0000
@@ -176,7 +176,7 @@
 ## --- ##
 
 AT_SETUP([gmp])
-AT_KEYWORDS([module])
+AT_CHECK_DYNAMIC_MODULE
 
 # cannot perform test without --with-gmp
 AT_CHECK([test "$USE_GMP" = yes || exit 77])
Index: tests/modules.at
===================================================================
RCS file: /sources/m4/m4/tests/modules.at,v
retrieving revision 1.19
diff -u -r1.19 modules.at
--- tests/modules.at    1 Sep 2006 23:11:05 -0000       1.19
+++ tests/modules.at    5 Sep 2006 16:50:57 -0000
@@ -26,7 +26,7 @@
 
 AT_SETUP([Freezing modules])
 AT_KEYWORDS([frozen])
-AT_KEYWORDS([module])
+AT_CHECK_DYNAMIC_MODULE
 
 AT_DATA([[frozen.m4]],
 [[divert(1)dnl
@@ -77,7 +77,7 @@
 # Skip if modtest is not present (we are not in the package).
 m4_define([AT_CHECK_M4_MODTEST],
 [AT_SETUP([$1])
-AT_KEYWORDS([module])
+AT_CHECK_DYNAMIC_MODULE
 
 AT_CHECK([test -f "$abs_top_builddir/modules/modtest.la" || exit 77])
 
@@ -135,7 +135,7 @@
 ## ------ ##
 
 AT_SETUP([modules: shadow])
-AT_KEYWORDS([module])
+AT_CHECK_DYNAMIC_MODULE
 
 AT_DATA([[input.m4]],
 [[# no modules loaded yet
@@ -276,7 +276,7 @@
 ## ------ ##
 
 AT_SETUP([modules: unload])
-AT_KEYWORDS([module])
+AT_CHECK_DYNAMIC_MODULE
 
 AT_DATA([[input.m4]],
 [[test
@@ -350,7 +350,7 @@
 # from the first command:
 
 AT_SETUP([modules: importing])
-AT_KEYWORDS([module])
+AT_CHECK_DYNAMIC_MODULE
 
 AT_DATA([[input.m4]],
 [[import
@@ -409,7 +409,7 @@
 # memory and then redefined by a subsequent load.
 
 AT_SETUP([modules: trace])
-AT_KEYWORDS([module])
+AT_CHECK_DYNAMIC_MODULE
 
 AT_DATA([[input.m4]],
 [[test
Index: tests/testsuite.at
===================================================================
RCS file: /sources/m4/m4/tests/testsuite.at,v
retrieving revision 1.20
diff -u -r1.20 testsuite.at
--- tests/testsuite.at  25 Aug 2006 19:23:02 -0000      1.20
+++ tests/testsuite.at  5 Sep 2006 16:50:57 -0000
@@ -45,6 +45,17 @@
 # We exercise m4.
 AT_TESTED([m4])
 
+# AT_CHECK_DYNAMIC_MODULE
+# -----------------------
+# Add keyword `module' to the test, and skip the test if dynamic
+# modules were disabled at configure time.
+m4_define([AT_CHECK_DYNAMIC_MODULE],
+[AT_KEYWORDS([module])
+AT_CHECK([if test "x$DYNAMIC_MODULES" = xno ; then
+  echo Dynamic module support not detected, skipping this test.
+  exit 77
+fi])])
+
 ## ----------- ##
 ## The suite.  ##
 ## ----------- ##






reply via email to

[Prev in Thread] Current Thread [Next in Thread]