Message ID | 20190602003003.46487-1-jrtc27@jrtc27.com |
---|---|
State | New |
Headers | show |
Series | Put __dso_handle in .sdata/.sbss on ia64 | expand |
On 6/1/19 6:30 PM, James Clarke wrote: > The symbol is exposed to C by dso_handle.h, and since it's a single > 8-byte pointer, it is just within the threshold for being in the small > data (or bss) section, so code accessing it will use GP-relative > addressing. Therefore we must put it in .sdata/.sbss in case our other > data sections grow too big and we overflow the 22-bit relocation. > > libgcc/ > * config/ia64/crtbegin.S (__dso_handle): Put in .sdata/.sbss > rather than .data/.bss so it can be accessed via gp-relative > addressing. THanks. Ive installed this on the trunk. jeff
diff --git a/libgcc/config/ia64/crtbegin.S b/libgcc/config/ia64/crtbegin.S index 5b2f55936dd..213ccd7ab8b 100644 --- a/libgcc/config/ia64/crtbegin.S +++ b/libgcc/config/ia64/crtbegin.S @@ -45,11 +45,11 @@ dtor_ptr: .type __dso_handle,@object .size __dso_handle,8 #ifdef SHARED - .section .data + .section .sdata __dso_handle: data8 __dso_handle #else - .section .bss + .section .sbss .align 8 __dso_handle: .skip 8