Browse Source

Fix crt0 overwriting.

On AArch64 we currently always link in crt0 regardless of if another
one is being provided by something else, like rdimon.a. This was never
an issue before as nosys was not supported on AArch64.

This updates the specs to supply a different crt0 when a semihosting
call is required.

Signed-off-by: Tamar Christina <tamar.christina@arm.com>
topic/ssp
Tamar Christina 9 years ago
committed by Corinna Vinschen
parent
commit
61ddc7a436
  1. 2
      libgloss/aarch64/Makefile.in
  2. 3
      libgloss/aarch64/elf-aem-validation.specs
  3. 3
      libgloss/aarch64/elf-aem-ve.specs
  4. 3
      libgloss/aarch64/elf-rdimon.specs

2
libgloss/aarch64/Makefile.in

@ -118,7 +118,7 @@ test:
# #
crt0.o: crt0.S crt0.o: crt0.S
$(CC) $(CFLAGS_FOR_TARGET) $($(MULTI_FLAGS_FOR_TARGET)) $(CFLAGS) $(INCLUDES) -DARM_RDI_MONITOR -o $@ -c $< $(CC) $(CFLAGS_FOR_TARGET) $($(MULTI_FLAGS_FOR_TARGET)) $(CFLAGS) $(INCLUDES) -o $@ -c $<
rdimon-crt0${${MULTILIBNAME}}.o: crt0.S rdimon-crt0${${MULTILIBNAME}}.o: crt0.S
$(CC) $(CFLAGS_FOR_TARGET) $($(MULTI_FLAGS_FOR_TARGET)) $(CFLAGS) $(INCLUDES) -DARM_RDI_MONITOR -o $@ -c $< $(CC) $(CFLAGS_FOR_TARGET) $($(MULTI_FLAGS_FOR_TARGET)) $(CFLAGS) $(INCLUDES) -DARM_RDI_MONITOR -o $@ -c $<

3
libgloss/aarch64/elf-aem-validation.specs

@ -10,3 +10,6 @@
*lib: *lib:
cpu-init/rdimon-aem-el3.o%s --start-group %(libc) %(libgloss) --end-group cpu-init/rdimon-aem-el3.o%s --start-group %(libc) %(libgloss) --end-group
*startfile:
crti%O%s crtbegin%O%s %{!pg:rdimon-crt0%O%s} %{pg:rdimon-crt0%O%s}

3
libgloss/aarch64/elf-aem-ve.specs

@ -17,3 +17,6 @@
*lib: *lib:
cpu-init/rdimon-aem-el3.o%s --start-group %(libc) %(libgloss) --end-group cpu-init/rdimon-aem-el3.o%s --start-group %(libc) %(libgloss) --end-group
*startfile:
crti%O%s crtbegin%O%s %{!pg:rdimon-crt0%O%s} %{pg:rdimon-crt0%O%s}

3
libgloss/aarch64/elf-rdimon.specs

@ -10,3 +10,6 @@
*lib: *lib:
--start-group %(libc) %(libgloss) --end-group --start-group %(libc) %(libgloss) --end-group
*startfile:
crti%O%s crtbegin%O%s %{!pg:rdimon-crt0%O%s} %{pg:rdimon-crt0%O%s}
Loading…
Cancel
Save