Fix wrong codegen; the 'native' tools do no emit the longcall in this
position.
2019-09-04 Iain Sandoe <iain@sandoe.co.uk>
Backport from mainline
2019-06-27 Iain Sandoe <iain@sandoe.co.uk>
* config/rs6000/rs6000.c (darwin_rs6000_override_options): Do not
use longcall for 64b code.
From-SVN: r275384
+2019-09-04 Iain Sandoe <iain@sandoe.co.uk>
+
+ Backport from mainline
+ 2019-06-27 Iain Sandoe <iain@sandoe.co.uk>
+
+ * config/rs6000/rs6000.c (darwin_rs6000_override_options): Do not
+ use longcall for 64b code.
+
2019-09-04 Iain Sandoe <iain@sandoe.co.uk>
Backport from mainline
rs6000_isa_flags |= OPTION_MASK_POWERPC64;
warning (0, "-m64 requires PowerPC64 architecture, enabling");
}
+
+ /* The linkers [ld64] that support 64Bit do not need the JBSR longcall
+ optimisation, and will not work with the most generic case (where the
+ symbol is undefined external, but there is no symbl stub). */
+ if (TARGET_64BIT)
+ rs6000_default_long_calls = 0;
+
+ /* ld_classic is (so far) still used for kernel (static) code, and supports
+ the JBSR longcall / branch islands. */
if (flag_mkernel)
{
rs6000_default_long_calls = 1;