This is the mail archive of the binutils@sourceware.org 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 Wed, Jan 29, 2014 at 1:31 PM, Makarand Pradhan
<makarandpradhan@ruggedcom.com> 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.
>
> e.g.:
> 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
> `c1_type::int_1'
> t.cpp:(.text._ZN7c1_type8c1_func1Ev+0x1e): undefined reference to
> `c1_type::int_1'
> collect2: ld returned 1 exit status
>
> Problem:
> 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,
> Makarand.
>
> 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_ID="7"
> VERSION="7 (wheezy)"
> ID=debian
> ANSI_COLOR="1;31"
> HOME_URL="http://www.debian.org/";
> SUPPORT_URL="http://www.debian.org/support/";
> BUG_REPORT_URL="http://bugs.debian.org/";
>
>
> File: t.cpp
> #include <stdio.h>
>
> class c1_type
> {
> public:
> 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

https://sourceware.org/ml/binutils/2011-11/msg00056.html

-- 
H.J.


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