[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