diff options
Diffstat (limited to 'libgcc/config/mmix/t-mmix')
-rw-r--r-- | libgcc/config/mmix/t-mmix | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/libgcc/config/mmix/t-mmix b/libgcc/config/mmix/t-mmix index 9d66737e256..2ee4f001ad6 100644 --- a/libgcc/config/mmix/t-mmix +++ b/libgcc/config/mmix/t-mmix @@ -1,14 +1,22 @@ +HOST_LIBGCC2_CFLAGS += -mlibfuncs -O2 + +# We need to turn off some assumptions on normality for code in crtstuff.c +# and crt{i,n}.S, specifically about execution not continuing past the +# end of the section in the file being compiled. Thus we must stop the +# assembler from generating stubbable PUSHJ relocs, because that will add +# stubs at the end of the current section when necessary. +CRTSTUFF_T_CFLAGS = -Wa,--no-stubs + # Don't use global registers in libraries. # FIXME: Not applied at "root" level, so disabled at the moment to stop # incorrect comparisons with -mabi=gnu. #MULTILIB_EXTRA_OPTS = mno-base-addresses -$(T)crti.o: $(gcc_srcdir)/config/mmix/crti.asm $(GCC_PASSES) - $(crt_compile) $(INCLUDES) \ - $(CRTSTUFF_T_CFLAGS) -c -x assembler-with-cpp \ - $(gcc_srcdir)/config/mmix/crti.asm +# Cannot use default rules due to $(CRTSTUFF_T_CFLAGS). +CUSTOM_CRTIN = yes + +crti.o: $(srcdir)/config/mmix/crti.S + $(crt_compile) $(CRTSTUFF_T_CFLAGS) -c $< -$(T)crtn.o: $(gcc_srcdir)/config/mmix/crtn.asm $(GCC_PASSES) - $(crt_compile) $(INCLUDES) \ - $(CRTSTUFF_T_CFLAGS) -c -x assembler-with-cpp \ - $(gcc_srcdir)/config/mmix/crtn.asm +crtn.o: $(srcdir)/config/mmix/crtn.S + $(crt_compile) $(CRTSTUFF_T_CFLAGS) -c $< |