x86_64 support, requiring a slight refactor to the build system.
[tpg/acess2.git] / Kernel / bin / elf.c
index ad8edb0..3209c04 100644 (file)
@@ -297,7 +297,7 @@ int Elf_Relocate(void *Base)
                                Warning("ELF", "Elf_Relocate - Multiple PT_DYNAMIC segments\n");\r
                                continue;\r
                        }\r
-                       dynamicTab = (void *) phtab[i].VAddr;\r
+                       dynamicTab = (void *) (tVAddr) phtab[i].VAddr;\r
                        j = i;  // Save Dynamic Table ID\r
                        break;\r
                }\r
@@ -326,20 +326,20 @@ int Elf_Relocate(void *Base)
                // --- Symbol Table ---\r
                case DT_SYMTAB:\r
                        dynamicTab[j].d_val += iBaseDiff;\r
-                       dynsymtab = (void*)(dynamicTab[j].d_val);\r
+                       dynsymtab = (void*) (tVAddr) dynamicTab[j].d_val;\r
                        hdr->misc.SymTable = dynamicTab[j].d_val;       // Saved in unused bytes of ident\r
                        break;\r
                \r
                // --- String Table ---\r
                case DT_STRTAB:\r
                        dynamicTab[j].d_val += iBaseDiff;\r
-                       dynstrtab = (void*)(dynamicTab[j].d_val);\r
+                       dynstrtab = (void*) (tVAddr) dynamicTab[j].d_val;\r
                        break;\r
                \r
                // --- Hash Table --\r
                case DT_HASH:\r
                        dynamicTab[j].d_val += iBaseDiff;\r
-                       iSymCount = ((Uint*)(dynamicTab[j].d_val))[1];\r
+                       iSymCount = ((Uint*)((tVAddr)dynamicTab[j].d_val))[1];\r
                        hdr->misc.HashTable = dynamicTab[j].d_val;      // Saved in unused bytes of ident\r
                        break;\r
                }\r

UCC git Repository :: git.ucc.asn.au