[PATCH] qe.h: assure gcc-3.4 will not drop initcall/exitcall sections
Guido Classen <[email protected]> Tue, 7 Jun 2005 16:10:10 +0200
| Newsgroups | gmane.editors.qemacs.devel |
|---|---|
| Message-ID | <[email protected]> |
This patch uses the new attribute __used__ for the initcall/exitcall sections to prevent gcc 3.4 and above from droping contents of this sections. _______________________________________________ Qemacs-devel mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/qemacs-devel
qe.h.patch
(application/octet-stream, 858 B)
--- qemacs-0.3.1/qe.h 2003-04-22 00:01:42.000000000 +0200
+++ qemacs-0.3.1-gc/qe.h 2005-06-07 16:02:27.000000000 +0200
@@ -576,10 +576,18 @@
/* make sure that the keyword is not disabled by glibc (TINYC case) */
#undef __attribute__
-
+#if __GNUC__ < 3 || (__GNUC__ == 3 && __GNUC_MINOR__ < 3)
/* same method as the linux kernel... */
#define __init_call __attribute__ ((unused,__section__ (".initcall.init")))
#define __exit_call __attribute__ ((unused,__section__ (".exitcall.exit")))
+#else
+#undef __attribute_used__
+#define __attribute_used__ __attribute__((__used__))
+#define __init_call __attribute_used__ __attribute__((__section__ (".initcall.init")))
+#define __exit_call __attribute_used__ __attribute__((__section__ (".exitcall.exit")))
+
+#endif
+
#define qe_module_init(fn) \
static int (*__initcall_##fn)(void) __init_call = fn