From a608559cbf079924a2cb8fccaef823e52fe5e610 Mon Sep 17 00:00:00 2001 From: Garhoogin Date: Sat, 6 May 2023 17:57:39 -0500 Subject: [PATCH] Get rid of old alignment hack --- rcm_sample/linker.x | 5 ----- rcmreloc/RCMRelocator.class | Bin 7413 -> 7591 bytes rcmreloc/RCMRelocator.java | 9 ++++++++- rcmreloc/Relocation.class | Bin 2346 -> 2346 bytes 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/rcm_sample/linker.x b/rcm_sample/linker.x index 9a5db34..ffc5123 100644 --- a/rcm_sample/linker.x +++ b/rcm_sample/linker.x @@ -37,9 +37,4 @@ SECTIONS { _end = __bss_end__ ; __end__ = __bss_end__ ; } - - .fill : { - . = ALIGN(4); - LONG(0) /* hack to make GCC actually align */ - } } diff --git a/rcmreloc/RCMRelocator.class b/rcmreloc/RCMRelocator.class index 34bfabc926d98846cfe49d2f4cb80f3bcda8729d..5525d4519bf80d583176b8d96e37b37c66ee8ff8 100644 GIT binary patch delta 3924 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 Tf+#j3U4B0ie}%0>> 16) & 0xFF); b[offset + 3] = (byte) ((n >>> 24) & 0xFF); } + + public static byte[] padBytes(byte[] b, int alignment) { + int paddedSize = ((b.length + (alignment - 1)) / alignment) * alignment; + byte[] padded = new byte[paddedSize]; + System.arraycopy(b, 0, padded, 0, b.length); + return padded; + } public static void main(String[] args) { //read arguments. First RCM name, then relocation output from objdump, then symbol output @@ -127,7 +134,7 @@ public class RCMRelocator { //generate relocation section try { - byte[] rcm = Files.readAllBytes(Paths.get(rcmPath)); + byte[] rcm = padBytes(Files.readAllBytes(Paths.get(rcmPath)), 4); ByteArrayOutputStream baos = new ByteArrayOutputStream(); //relocation table ByteArrayOutputStream thunks = new ByteArrayOutputStream(); //thunks (for ARM->THUMB B) int nRelocations = 0; diff --git a/rcmreloc/Relocation.class b/rcmreloc/Relocation.class index 68021faab973445c583114fdc2f5a691f270b4da..83fef493ed2c1d5d2ee2fb7d0757e929495404b6 100644 GIT binary patch delta 124 zcmZ1_v`T2hIX2xu1{TI3h7!gQhAPHzhFZo*h8c{pj5dt%jP{I)jE;=Sj4q6+jP8u- zj9!eHlYg`2OBMrllrV5ImNM`$mN5u3mNQ5)RxrpjR!(kak7KOc{D@tMQL=+Ugs~GS a(aWH~*vFvC*v}BjIE`T!I- delta 124 zcmZ1_v`T2hIW}D{1{Owdh7v|!hAPGYhFZoTh8c`uj5drBjP{ICjE;;kj4q6EjP8sH zj9!dMlYg`2OXdJ|Rigs}-I a(Z-;_*v_EJ*ufCV*w3(warR_hPFVnV9~wFU