Hi,

I was looking at building NetSurf with the current work-in-progress GCC
10 to see what sort of performance benefits we could see.

Sadly I can't get it to build in a way that it doesn't generate (or
think it has generated) code that requires ARMv7.

Is building code for ARMv3 (or v4?) supported and I'm being an idiot, or
is this totally out of scope of the endeavour?

I essentially did this to autobuilder/develop/gcc/setvars:

Index: setvars
===================================================================
--- setvars     (revision 7692)
+++ setvars     (working copy)
@@ -182,9 +182,8 @@
               --with-pkgversion='GCCSDK GCC 10.2.0 Release 1' \
               --with-bugurl=http://gccsdk.riscos.info/ \
               --with-abi=aapcs-linux \
-              --with-float=hard \
-              --with-fpu=vfpv3 \
-              --with-arch=armv7-a
+              --with-float=soft \
+              --with-arch=armv4
 
   make -j4 && make install
 
@@ -215,9 +214,8 @@
               --with-pkgversion='GCCSDK GCC 10.2.0 Release 1' \
               --with-bugurl=http://gccsdk.riscos.info/ \
               --with-abi=aapcs-linux \
-              --with-float=hard \
-              --with-fpu=vfpv3 \
-              --with-arch=armv7-a \
+              --with-float=soft \
+              --with-arch=armv4 \
               --with-stage1-ldflags="" \
               --with-diagnostics-color=never

I also needed to hack elf2aif to ignore the headers:

ndex: src/elf2aif.c
===================================================================
--- src/elf2aif.c       (revision 7692)
+++ src/elf2aif.c       (working copy)
@@ -203,8 +203,8 @@
 
   if (elf_ehdr.e_ident[EI_OSABI] != ELFOSABI_ARM)
     {
-      fprintf (stderr, "ELF file '%s' is not for ARM\n", elf_filename);
-      return EXIT_FAILURE;
+      fprintf (stderr, "ELF file '%s' is not for ARM (OS ABI field is %d)\n", 
elf_filename, elf_ehdr.e_ident[EI_OSABI]);
+//      return EXIT_FAILURE;
     }

(GCCSDK 10 sets the OSABI field in the ELF to 0, meaning unspecified.)

Sadly the resulting binary still says the CPU is too old.

B.

_______________________________________________
GCCSDK mailing list gcc@gccsdk.riscos.info
Bugzilla: http://www.riscos.info/bugzilla/index.cgi
List Info: http://www.riscos.info/mailman/listinfo/gcc
Main Page: http://www.riscos.info/index.php/GCCSDK

Reply via email to