(_): Define only #ifndef ASSEMBLER.
[kopensolaris-gnu/glibc.git] / libc-symbols.h
index 12c18b7..50631d1 100644 (file)
@@ -45,8 +45,29 @@ Cambridge, MA 02139, USA.  */
    Some library code that is shared with other packages also
    tests this symbol to see if it is being compiled as part
    of the C library.  */
-#define _LIBC
+#define _LIBC  1
+/*
+\f
+*/
+
+#ifndef        ASSEMBLER
+/*  Define the macro `_' for conveniently marking translatable strings
+    in the libc source code.  */
+#include <libintl.h>
+extern const char _libc_intl_domainname[];
+#ifdef dgettext
+/* This is defined as an optimizing macro, so use it.  */
+#define        _(msgid)        dgettext (_libc_intl_domainname, (msgid))
+#else
+/* Be sure to use only the __ name when `dgettext' is a plain function
+   instead of an optimizing macro.  */
+#define        _(msgid)        __dgettext (_libc_intl_domainname, (msgid))
+#endif
+#endif
 
+/*
+\f
+*/
 /* The symbols in all the user (non-_) macros are C symbols.  Predefined
    should be HAVE_WEAK_SYMBOLS and/or HAVE_ELF and/or HAVE_GNU_LD.
    HAVE_WEAK_SYMBOLS is implied by the other two.  HAVE_GNU_LD without
@@ -165,7 +186,7 @@ Cambridge, MA 02139, USA.  */
 #else
 #define link_warning(symbol, msg)              \
   asm(".stabs \"" msg "\",30,0,0,0\n"  \
-      ".stabs \"" __SYMBOL_PREFIX #symbol \",1,0,0,0\n");
+      ".stabs \"" __SYMBOL_PREFIX #symbol "\",1,0,0,0\n");
 #endif
 #else
 /* We will never be heard; they will all die horribly.  */
@@ -214,7 +235,8 @@ Cambridge, MA 02139, USA.  */
 
 /* Declare SET for use in this module, if defined in another module.  */
 #define symbol_set_declare(set)        \
-  extern void *const __start_##set, *const __stop_##set;
+  extern void *const __start_##set __attribute__ ((__weak__)); \
+  extern void *const __stop_##set __attribute__ ((__weak__));
 
 /* Return a pointer (void *const *) to the first element of SET.  */
 #define symbol_set_first_element(set)  (&__start_##set)