This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: Using binutils-2.12.1 on sparc64-sun-solaris2.8 to build gcc-3.1 results in relocation errors
- From: Brad Spencer <spencer at infointeractive dot com>
- To: binutils at sources dot redhat dot com
- Date: Tue, 30 Jul 2002 09:04:38 -0300
- Subject: Re: Using binutils-2.12.1 on sparc64-sun-solaris2.8 to build gcc-3.1 results in relocation errors
- References: <20020528114949.H9548@infointeractive.com> <20020730033423.GA15581@nevyn.them.org>
On Mon, Jul 29, 2002 at 11:34:23PM -0400, Daniel Jacobowitz wrote:
> On Tue, May 28, 2002 at 11:49:49AM -0300, Brad Spencer wrote:
> > I've looked through the archives and the comments in gcc-3.1, and it
> > looks like this might be some sort of new feature that doesn't quite
> > work correctly. If I configure gcc-3.1 on top of binutils-2.12.1,
> > then when I link 64-bit objects, I get things to the effect of
>
> Could you try this with a 2.13 snapshot? There's one in
> /pub/binutils/snapshots, marked 2.12.91.
I will try this today and report back. It's my understanding I'll
need >=2.12 for gcc-3.2, so this was a pleasant surprise :)
> >
> > netra-map1:~$ g++ -Wall -m64 -o foo foo.cc -save-temps
> > /opt/gcc-3.1/lib/gcc-lib/sparc-sun-solaris2.8/3.1/../../../sparcv9/libstdc++.a(stl-inst.o)(.eh_frame+0xf0):
> > relocation truncated to fit: R_SPARC_DISP32
> > .gnu.linkonce.t._ZNSt24__default_alloc_templateILb1ELi0EE8allocateEm
> >
> > This is totally a Hello World application:
> >
> > static const char *st_ID __attribute__((unused)) =
> > "$Id$";
> >
> > #include <iostream>
> >
> > int
> > main()
> > {
> > std::cout << "hello world" << std::endl;
> > return 0;
> > }
> >
> > When I configure gcc-3.1 on top of binutils-2.11.2, this doesn't
> > happen.
> >
> > netra-map1:~$ g++ -m64 -Wall -o foo foo.cc -save-temps
> > netra-map1:~$ ./foo
> > hello world
> >
> > Inside gcc-3.1/gcc/config/sparc/sparc.h, I find the following
> > comment:
> >
> > /* [...]
> > binutils 2.12 would emit a R_SPARC_DISP32 dynamic relocation if the
> > symbol %r_disp32() is against was not local, but .hidden. In that
> > case, we have to use DW_EH_PE_absptr for pic personality. */
> >
> > >From what I can tell from this mailing list, the %r_dispX notation is
> > a new feature in gas. Is this a bug?
> >
> > netra-map1:~$ gcc -v
> > Reading specs from
> > /opt/gcc-3.1/lib/gcc-lib/sparc-sun-solaris2.8/3.1/specs
> > Configured with: ../gcc-3.1/configure --with-dwarf2
> > --enable-languages=c,c++ --enable-threads=single --disable-shared
> > --with-gnu-as --with-gnu-ld --with-as=/opt/bin/as
> > --with-ld=/opt/bin/ld --prefix=/opt/gcc-3.1
> > Thread model: single
> > gcc version 3.1
> > netra-map1:~$ gcc -print-prog-name=as
> > /opt/bin/as
> > netra-map1:~$ /opt/bin/as --version
> > GNU assembler 2.11.2
> > netra-map1:~$ gcc -print-prog-name=ld
> > /opt/bin/ld
> > netra-map1:~$ /opt/bin/ld --version
> > GNU ld 2.11.2
> > Copyright 2001 Free Software Foundation, Inc.
> > This program is free software; you may redistribute it under the terms
> > of
> > the GNU General Public License. This program has absolutely no
> > warranty.
> > Supported emulations:
> > elf32_sparc
> > elf64_sparc
> >
> >
> > --
> > -----------------------------------------------------------------
> > Brad Spencer - spencer@infointeractive.com - "It's quite nice..."
> > Systems Architect | InfoInterActive Corp. | An AOL Company
>
> --
> Daniel Jacobowitz Carnegie Mellon University
> MontaVista Software Debian GNU/Linux Developer
--
-----------------------------------------------------------------
Brad Spencer - spencer@infointeractive.com - "It's quite nice..."
Systems Architect | InfoInterActive Corp. | An AOL Company