use new weaken_symbol() to fix another real-world corner case

This commit is contained in:
Joe Soroka 2011-03-07 01:05:09 -08:00
parent 8bcb2ae1b2
commit 4fbe3cda33
2 changed files with 4 additions and 1 deletions

View File

@ -5600,7 +5600,7 @@ ST_FUNC void decl(int l)
sym = external_sym(v, &type, r, asm_label);
if (type.t & VT_WEAK)
sym->type.t |= VT_WEAK;
weaken_symbol(sym);
if (ad.alias_target) {
Section tsec;

View File

@ -2374,6 +2374,9 @@ int some_lib_func(void);
int dummy_impl_of_slf(void) { return 444; }
int some_lib_func(void) __attribute__((weak, alias("dummy_impl_of_slf")));
int weak_toolate() { return 0; }
int weak_toolate() __attribute__((weak));
void __attribute__((weak)) weak_test(void)
{
printf("weak_f1=%d\n", weak_f1 ? weak_f1() : 123);