On 8/26/23 09:44, Angelo Dureghello wrote:
Hi Marek,

thanks a lot for the job i should have done.

Tested on real hw:

m5282evb   worked out of the box
mcf54415   not working,
had a lot of unsupported relocation type for R_68K_JMP_SLOT
mcf5307    need to fix the hw, will do in short

i had to add this fix:

diff --git a/tools/relocate-rela.c b/tools/relocate-rela.c
index 2d008c7f60..9722a6291a 100644
--- a/tools/relocate-rela.c
+++ b/tools/relocate-rela.c
@@ -40,6 +40,10 @@
  #define R_68K_GLOB_DAT         20
  #endif

+#ifndef R_68K_JMP_SLOT
+#define R_68K_JMP_SLOT          21
+#endif
+
  #ifndef R_68K_RELATIVE
  #define R_68K_RELATIVE         22
  #endif
@@ -531,6 +535,9 @@ static bool supported_rela32(Elf32_Rela *rela, uint32_t *type)
                 case R_68K_RELATIVE:
                         debug("R_68K_RELATIVE\n");
                         return true;
+               case R_68K_JMP_SLOT:
+                        debug("R_68K_JMP_SLOT\n");
+                        return true;
                 }
         } else {
                 switch (*type) {
@@ -631,8 +638,9 @@ static int rela_elf32(char **argv, FILE *f)
                                 return 4;
                         }
                 } else if ((machine == EM_M68K &&
-                           (type == R_68K_32 || type == R_68K_GLOB_DAT)) ||
-                          (machine == EM_MICROBLAZE &&
+                           (type == R_68K_32 || type == R_68K_GLOB_DAT ||
+                            type == R_68K_JMP_SLOT)) ||
+                           (machine == EM_MICROBLAZE &&
                             (type == R_MICROBLAZE_32 ||
                              type == R_MICROBLAZE_GLOB_DAT))) {
                         /* global symbols read it and add reloc offset */

Wrapped into V2, thanks

Reply via email to