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);