bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug ld/23078] Weak alias to a weak symbol is not resolved correctly.


From: pftbest at gmail dot com
Subject: [Bug ld/23078] Weak alias to a weak symbol is not resolved correctly.
Date: Thu, 19 Jul 2018 04:07:05 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=23078

--- Comment #2 from Vadzim Dambrouski <pftbest at gmail dot com> ---
Hello Nick,

Thank you for suggestion, I've tried weakref, and does help with the case I
have posted above, but it still doesn't do exactly what I need.

Here is updated code:

// main.c -------------------

void _start() {}

void DEFAULT_HANDLER() {
  *((int*)0x10) = 5;
}

void BUS_FAULT() {
  *((int*)0x10) = 7;
}

// foo.c --------------------

__attribute__((weak)) void DEFAULT_HANDLER() {
    *((int*)0x10) = 1;
}

static __attribute__((weakref ("DEFAULT_HANDLER"))) void HARD_FAULT();
static __attribute__((weakref ("DEFAULT_HANDLER"))) void BUS_FAULT();

void (*VECTORS[])() = {
    HARD_FAULT,
    BUS_FAULT,
};

// ----------------------

In this new example I have created a strong symbols for both default handler
and for one of specific handlers. I expect that VECTORS table would contain
pointers to functions 5 and 7, but in practice it contains pointers to 5 and 5.
This is not what I need, unfortunately.

Regards,
Vadzim

-- 
You are receiving this mail because:
You are on the CC list for the bug.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]