]> granicus.if.org Git - yasm/commitdiff
macho: Fix relocation table file location.
authorPeter Johnson <peter@tortall.net>
Sun, 1 Aug 2010 01:05:04 +0000 (01:05 -0000)
committerPeter Johnson <peter@tortall.net>
Sun, 1 Aug 2010 01:05:04 +0000 (01:05 -0000)
svn path=/trunk/yasm/; revision=2344

modules/objfmts/macho/macho-objfmt.c
modules/objfmts/macho/tests/nasm32/macho32-sect.hex

index e982ac5b52577a44b40445a47bd4e1b7a7a8cab1..a3caae177e4a56ee24a7db3618d535d826967f11 100644 (file)
@@ -1188,7 +1188,7 @@ macho_objfmt_output(yasm_object *object, FILE *f, int all_syms,
 
     /* next: section headers */
     /* offset to relocs for first section */
-    info.rel_base = align32((long)fileoffset + (long)info.filesize);
+    info.rel_base = align32((long)fileoff_sections);
     info.s_reloff = 0;          /* offset for relocs of following sections */
     yasm_object_sections_traverse(object, &info, macho_objfmt_output_secthead);
 
@@ -1217,8 +1217,8 @@ macho_objfmt_output(yasm_object *object, FILE *f, int all_syms,
     }
 
     /* padding to long boundary */
-    if (info.rel_base - (fileoffset + info.filesize)) {
-        fwrite(pad_data, info.rel_base - (fileoffset + info.filesize), 1, f);
+    if ((info.rel_base - fileoff_sections) > 0) {
+        fwrite(pad_data, info.rel_base - fileoff_sections, 1, f);
     }
 
     /* relocation data */
index eff781a5c1f30fbb123fc1d50e9f977fdef8ebb2..aeaec6f9f429dfb6aec32a395a7c66a67b068b4d 100644 (file)
@@ -770,16 +770,16 @@ fc
 00 
 00 
 00 
-fc 
-02 
+14 
+03 
 00 
 00 
 00 
 00 
 00 
 00 
-fc 
-02 
+14 
+03 
 00 
 00 
 01