This is the mail archive of the mailing list for the binutils project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Issue while using -rdynamic with binutils 2.22-8

On 29/01/14 06:26 PM, H.J. Lu wrote:
On Wed, Jan 29, 2014 at 2:12 PM, H.J. Lu<>  wrote:
On Wed, Jan 29, 2014 at 1:31 PM, Makarand Pradhan
<>  wrote:
Hi All,

We are in the process of migrating from binutils 2.20.1-16 to 2.22-8.

I notice an issue while using linker option -rdynamic. Details below:

I'm using the sample code given at the end of this email for the test. The
code links fine in 2.20.1-16, but fails in 2.22-8.

In 2.20.1-16:
# g++ -ffunction-sections -fdata-sections -rdynamic -Wl,--gc-sections t.cpp

In 2.22-8:
# g++ -ffunction-sections -fdata-sections -rdynamic -Wl,--gc-sections t.cpp
/tmp/ccU6re3d.o: In function `c1_type::c1_func1()':
t.cpp:(.text._ZN7c1_type8c1_func1Ev+0x12): undefined reference to
t.cpp:(.text._ZN7c1_type8c1_func1Ev+0x1e): undefined reference to
collect2: ld returned 1 exit status

The unused code is supposed to be stripped of by -Wl,--gc-sections. When
used alone it works as expected. All the same when paied with ïrdynamic the
build fails in the newer version.

Would appreciate any opinions if this is a bug or if I'm missing anything.

Warm Rgds,

System configuration:
# uname -a
Linux makarandpradhan-ppc 3.2.0-0.bpo.4-powerpc64 #1 SMP Debian
3.2.41-2+deb7u2~bpo60+1 ppc GNU/Linux # cat /etc/*release
PRETTY_NAME="Debian GNU/Linux 7 (wheezy)"
NAME="Debian GNU/Linux"
VERSION="7 (wheezy)"

File: t.cpp

class c1_type
static int int_1;

void c1_func1(void);

void c1_type::c1_func1()
int_1 = 25;

int main()
return 0;

This regression is caused by

I think your code is invalid.  You need either to provide definition

static int int_1;

or drop -rdynamic.

Hi H.J. Lu,

Appreciate your replies.

The definition is intentionally dropped so that it is stripped by -Wl,--gc-sections. Only when used in conjunction with -rdynamic it causes a problem.

I could successfully use both -Wl,--gc-sections and -rdynamic in 2.20.1-16 but it fails in 2.22-8.

That's why I was wondering if any commit has caused this change. And if this is intentional or a bug.

Warm Rgds,

Makarand Pradhan
Software Engineer Ruggedcom
Siemens Canada Limited
Industry Sector
300 Applewood Crescent,
Vaughan, ON, L4K 5C7
Tel: 905 482 4572

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]