Re: cygwin vs. --disable-static

Eric Blake <[email protected]>
Newsgroups gmane.comp.gnu.m4.patches
Message-ID <[email protected]>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

According to Eric Blake on 10/3/2006 9:56 PM:
> So with that, I removed all the global variable exports from libm4, which
> allowed --disable-static to work on cygwin again.  It would be nice to see
> libtool patched, but at least this breaks the dependency on that.

Then I promptly went and broke this again, by adding a dependence of
modules/m4.c on the gnulib global exit_failure.

2006-10-07  Eric Blake  <[email protected]>

	* m4/m4module.h (m4_set_exit_failure): New prototype.
	* m4/utility.c (m4_set_exit_failure): New function.
	* modules/m4.c (m4exit): Use it to avoid yet another global
	variable export in libm4.

- --
Life is short - so eat dessert first!

Eric Blake             [email protected]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.1 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFFJ9+V84KuGfSFAYARAhyuAJ4/Hvl/aReQXxNRtuNlDvAhmr3QswCgjCJm
R+gT8bDzzAQOyu+NwFqeCcg=
=RYHL
-----END PGP SIGNATURE-----

_______________________________________________
M4-patches mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/m4-patches
m4.patch178 (text/plain, 2 KB)
Index: m4/m4module.h
===================================================================
RCS file: /sources/m4/m4/m4/m4module.h,v
retrieving revision 1.91
diff -u -p -r1.91 m4module.h
--- m4/m4module.h	4 Oct 2006 03:57:00 -0000	1.91
+++ m4/m4module.h	7 Oct 2006 17:08:48 -0000
@@ -120,6 +120,7 @@ extern void m4_warn_at_line  (m4 *, int,
 
 extern const char *	m4_get_program_name (void);
 extern void		m4_set_program_name (const char *);
+extern void		m4_set_exit_failure (int);
 
 
 /* --- CONTEXT MANAGEMENT --- */
Index: m4/utility.c
===================================================================
RCS file: /sources/m4/m4/m4/utility.c,v
retrieving revision 1.51
diff -u -p -r1.51 utility.c
--- m4/utility.c	6 Oct 2006 15:24:10 -0000	1.51
+++ m4/utility.c	7 Oct 2006 17:08:48 -0000
@@ -21,6 +21,8 @@
 #include <config.h>
 
 #include "m4private.h"
+
+#include "exitfail.h"
 #include "progname.h"
 #include "verror.h"
 #include "xvasprintf.h"
@@ -224,3 +226,12 @@ m4_set_program_name (const char *name)
 {
   set_program_name (name);
 }
+
+/* Wrap the gnulib exitfail module, to avoid exporting a global
+   variable from a library.  Set the exit status for use in gnulib
+   modules and atexit handlers.  */
+void
+m4_set_exit_failure (int status)
+{
+  exit_failure = status;
+}
Index: modules/m4.c
===================================================================
RCS file: /sources/m4/m4/modules/m4.c,v
retrieving revision 1.80
diff -u -p -r1.80 m4.c
--- modules/m4.c	6 Oct 2006 13:31:41 -0000	1.80
+++ modules/m4.c	7 Oct 2006 17:08:48 -0000
@@ -39,8 +39,6 @@
 #  include "m4private.h"
 #endif
 
-#include "exitfail.h"
-
 /* Rename exported symbols for dlpreload()ing.  */
 #define m4_export_table		m4_LTX_m4_export_table
 #define m4_builtin_table	m4_LTX_m4_builtin_table
@@ -719,7 +717,7 @@ M4BUILTIN_HANDLER (m4exit)
 
   /* Ensure that atexit handlers see correct nonzero status.  */
   if (exit_code != EXIT_SUCCESS)
-    exit_failure = exit_code;
+    m4_set_exit_failure (exit_code);
 
   /* Ensure any module exit callbacks are executed.  */
   m4__module_exit (context);
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.