This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug bootstrap/44146] r159371 breaks bootstrap on x86_64-apple-darwin10
- From: "hubicka at ucw dot cz" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 16 May 2010 17:22:29 -0000
- Subject: [Bug bootstrap/44146] r159371 breaks bootstrap on x86_64-apple-darwin10
- References: <bug-44146-11113@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #21 from hubicka at ucw dot cz 2010-05-16 17:22 -------
Subject: Re: r159371 breaks bootstrap on
x86_64-apple-darwin10
>
> hmmm.. I don't quite understand this..
> the original ld error was:
> ld: codegen problem, can't use rel32 to external symbol
> ___emutls_v._ZZN12_GLOBAL__N_110get_globalEvE6global in ___cxa_get_globals_fast
>
> is the loader not entitled to place .data and .text wherever it likes in the
> 64bit address space?
> ... in any event, potentially, further apart than can be reached by a +/- 31
> bits.
> .. what happens when the data size passes 2Gb?
There -mcmodel=small/medium/large flag to control this. By default compiler
assume
that your binary is smaller than 2GB. For PIC we make same assumption and we
require
loader to keep code and data section together to make RIP relative addressing
work.
Otherwise it would be of no use ;)
Honza
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44146