Silent relocation truncations considered harmful
This follows up from my msg re GMP-ECM failing its 'make check' on the main list https://cygwin.com/ml/cygwin/2016-02/msg00147.html . There's an error that ought to be reported during dynamic linking if the linked-to address is too far from the relocation site. However the error is not reported if __OPTIMIZE__ was #defined when building the Cygwin DLL. I can't see why optimization settings should affect this. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
parent
4c59f62ef9
commit
70e7f94e9f
@ -342,7 +342,7 @@ do_pseudo_reloc (void * start, void * end, void * base)
|
||||
__write_memory ((void *) reloc_target, &reldata, 2);
|
||||
break;
|
||||
case 32:
|
||||
#if defined (__CYGWIN__) && defined (__x86_64__) && !defined (__OPTIMIZE__)
|
||||
#if defined (__CYGWIN__) && defined (__x86_64__)
|
||||
if (reldata > (ptrdiff_t) __INT32_MAX__
|
||||
|| reldata < -((ptrdiff_t) __INT32_MAX__) - 1)
|
||||
__report_error ("Invalid relocation. Offset %p at address %p "
|
||||
|
Loading…
x
Reference in New Issue
Block a user