gcrt1.o to reference a symbol which would be defined by some library
module which has a constructor; but then user code's constructors
would come first, and not be profiled. */
- extern void __gmon_start__ (void) __attribute__ ((weak));
- weak_symbol (__gmon_start__)
+ extern void __gmon_start__ (void); weak_extern (__gmon_start__)
if (__gmon_start__)
__gmon_start__ ();
#define DEFINE_CATEGORY(category, category_name, items, a, b, c, d) \
extern const struct locale_data *_nl_current_##category; \
extern const struct locale_data _nl_C_##category; \
-weak_symbol (_nl_current_##category) weak_symbol (_nl_C_##category)
+weak_extern (_nl_current_##category) weak_extern (_nl_C_##category)
#include "categories.def"
#undef DEFINE_CATEGORY
return 0;
}
-weak_symbol (floor) weak_symbol (log10) weak_symbol (fabs)
+weak_extern (floor) weak_extern (log10) weak_extern (fabs)
int
ecvt_r (value, ndigit, decpt, sign, buf, len)
size_t len;
{
double (*log10_function) (double) = &log10;
-
+
if (log10_function)
{
/* Use the reasonable code if -lm is included. */
RTLD_BOOTSTRAP) because rtld.c contains the common defn for
_dl_rtld_map, which is incompatible with a weak decl in the same
file. */
- weak_symbol (_dl_rtld_map);
+ weak_extern (_dl_rtld_map);
if (map == &_dl_rtld_map)
/* Undo the relocation done here during bootstrapping. Now we will
relocate it anew, possibly using a binding found in the user