summaryrefslogtreecommitdiffstats
path: root/libgloss/libnosys/warning.h
diff options
context:
space:
mode:
authorRanjith Kumaran <ranjith@cygnus.com>2000-03-17 22:48:54 +0000
committerRanjith Kumaran <ranjith@cygnus.com>2000-03-17 22:48:54 +0000
commit03261851a10dd2d6900a0a00a7515a0a46fb5d76 (patch)
tree7c22ac6cbbc99fd5cd1b5426853be8d4fd7bfcf1 /libgloss/libnosys/warning.h
parentfae4c299f14fc23e2829c8656992eba21f79242a (diff)
downloadcygnal-03261851a10dd2d6900a0a00a7515a0a46fb5d76.tar.gz
cygnal-03261851a10dd2d6900a0a00a7515a0a46fb5d76.tar.bz2
cygnal-03261851a10dd2d6900a0a00a7515a0a46fb5d76.zip
20000317 sourceware import
Diffstat (limited to 'libgloss/libnosys/warning.h')
-rw-r--r--libgloss/libnosys/warning.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/libgloss/libnosys/warning.h b/libgloss/libnosys/warning.h
new file mode 100644
index 000000000..99f3e0df7
--- /dev/null
+++ b/libgloss/libnosys/warning.h
@@ -0,0 +1,39 @@
+#ifndef __WARNING_H__
+#define __WARNING_H__
+
+#ifdef HAVE_GNU_LD
+# ifdef HAVE_ELF
+
+/* We want the .gnu.warning.SYMBOL section to be unallocated. */
+# ifdef HAVE_ASM_PREVIOUS_DIRECTIVE
+# define __make_section_unallocated(section_string) \
+ asm(".section " section_string "; .previous");
+# elif defined (HAVE_ASM_POPSECTION_DIRECTIVE)
+# define __make_section_unallocated(section_string) \
+ asm(".pushsection " section_string "; .popsection");
+# else
+# define __make_section_unallocated(section_string)
+# endif
+
+# define link_warning(symbol, msg) \
+ __make_section_unallocated (".gnu.warning." #symbol) \
+ static const char __evoke_link_warning_##symbol[] \
+ __attribute__ ((section (".gnu.warning." #symbol))) = msg;
+
+#else /* !ELF */
+
+# define link_warning(symbol, msg) \
+ asm(".stabs \"" msg "\",30,0,0,0\n" \
+ ".stabs \"" __SYMBOL_PREFIX #symbol "\",1,0,0,0\n");
+# endif
+#else /* !GNULD */
+/* We will never be heard; they will all die horribly. */
+# define link_warning(symbol, msg)
+#endif
+
+/* A canned warning for sysdeps/stub functions. */
+#define stub_warning(name) \
+ link_warning (name, \
+ "warning: " #name " is not implemented and will always fail")
+
+#endif /* __WARNING_H__ */