This is the mail archive of the newlib-cvs@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[newlib-cygwin] Fix crt0 overwriting.


https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=61ddc7a436dee9ef40782400ba618be8dee9a0e8

commit 61ddc7a436dee9ef40782400ba618be8dee9a0e8
Author: Tamar Christina <tamar.christina@arm.com>
Date:   Tue Aug 8 15:47:54 2017 +0100

    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>

Diff:
---
 libgloss/aarch64/Makefile.in              | 2 +-
 libgloss/aarch64/elf-aem-validation.specs | 3 +++
 libgloss/aarch64/elf-aem-ve.specs         | 3 +++
 libgloss/aarch64/elf-rdimon.specs         | 3 +++
 4 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/libgloss/aarch64/Makefile.in b/libgloss/aarch64/Makefile.in
index 8111f26..546557e 100644
--- a/libgloss/aarch64/Makefile.in
+++ b/libgloss/aarch64/Makefile.in
@@ -118,7 +118,7 @@ test:
 
 #
 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
 	$(CC) $(CFLAGS_FOR_TARGET) $($(MULTI_FLAGS_FOR_TARGET)) $(CFLAGS) $(INCLUDES) -DARM_RDI_MONITOR -o $@ -c $<
diff --git a/libgloss/aarch64/elf-aem-validation.specs b/libgloss/aarch64/elf-aem-validation.specs
index 800791a..db31441 100644
--- a/libgloss/aarch64/elf-aem-validation.specs
+++ b/libgloss/aarch64/elf-aem-validation.specs
@@ -10,3 +10,6 @@
 
 *lib:
 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}
\ No newline at end of file
diff --git a/libgloss/aarch64/elf-aem-ve.specs b/libgloss/aarch64/elf-aem-ve.specs
index 8d86de1..d5c48ed 100644
--- a/libgloss/aarch64/elf-aem-ve.specs
+++ b/libgloss/aarch64/elf-aem-ve.specs
@@ -17,3 +17,6 @@
 
 *lib:
 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}
\ No newline at end of file
diff --git a/libgloss/aarch64/elf-rdimon.specs b/libgloss/aarch64/elf-rdimon.specs
index a1d84c2..be23735 100644
--- a/libgloss/aarch64/elf-rdimon.specs
+++ b/libgloss/aarch64/elf-rdimon.specs
@@ -10,3 +10,6 @@
 
 *lib:
 --start-group %(libc) %(libgloss) --end-group
+
+*startfile:
+crti%O%s crtbegin%O%s %{!pg:rdimon-crt0%O%s} %{pg:rdimon-crt0%O%s}
\ No newline at end of file


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]