[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug ld/17590] New: Order of multiple defsym commands irrelevant
From: |
climberking2000 at gmail dot com |
Subject: |
[Bug ld/17590] New: Order of multiple defsym commands irrelevant |
Date: |
Wed, 12 Nov 2014 22:17:37 +0000 |
https://sourceware.org/bugzilla/show_bug.cgi?id=17590
Bug ID: 17590
Summary: Order of multiple defsym commands irrelevant
Product: binutils
Version: 2.24
Status: NEW
Severity: normal
Priority: P2
Component: ld
Assignee: unassigned at sourceware dot org
Reporter: climberking2000 at gmail dot com
Hey all,
So I may be misunderstanding something basic about linking, if it sounds like
I'm asking something crazy I probably am.
I'm trying to redefine some symbols using defsym in an attempt to emulate
wrapping in a context where -wrap doesn't work. I have symbols (representing
functions) one, two, and three.
I want one to get the value of two, where two will call one.. To do this, I set
one to two, have two call three, and have three overridden by the original
address of one.
In gcc world, this leaves me with
g++ symboltest.o -Wl,-defsym=_three=_one -Wl,-defsym=_one=_two
But this results in all three symbols having the same value. I tested for
whether perhaps things were done backwards and reversed the defsyms, only to
get the same result. Why does this happen?
Note that I'm in a situation where I *can't* require shared linking and
LD_PRELOAD as I would prefer to, nor can I modify the code such that symbols
will be unresolved and thus copacetic for use with wrap. I am game for writing
linker scripts if it becomes necessary, but would prefer to handle this with
command line flags.
Thanks,
David
--
You are receiving this mail because:
You are on the CC list for the bug.
- [Bug ld/17590] New: Order of multiple defsym commands irrelevant,
climberking2000 at gmail dot com <=