commit c1e1df2ac4a400eae9b97a01106a95cc927f83db
parent 6abf674372bf77c7bcd7ed762b3791c67b7fdf47
Author: Roberto E. Vargas Caballero <k0ga@shike2.net>
Date: Fri, 8 May 2026 18:52:07 +0200
libmach: Use 32BE for index in elf
Archive of elf always use offset of 4 bytes and being big endian
independently of the architecture used in the object files.
Diffstat:
3 files changed, 1 insertion(+), 35 deletions(-)
diff --git a/src/libmach/Makefile b/src/libmach/Makefile
@@ -32,7 +32,6 @@ OBJS =\
rebase.o\
setindex.o\
setidx32.o\
- setidx64.o\
mapsec.o\
mapseg.o\
setsec.o\
diff --git a/src/libmach/elf/elfsetidx.c b/src/libmach/elf/elfsetidx.c
@@ -9,9 +9,5 @@
int
elfsetidx(int type, long nsymbols, char *names[], long offs[], FILE *fp)
{
- int (*f)(int, long, char *[], long[], FILE *);
-
- f = (BITS(type) == OBJ32) ? setidx32 : setidx64;
-
- return (*f)(ORDER(type), nsymbols, names, offs, fp);
+ return setidx32(BIG_ENDIAN, nsymbols, names, offs, fp);
}
diff --git a/src/libmach/setidx64.c b/src/libmach/setidx64.c
@@ -1,29 +0,0 @@
-#include <stdio.h>
-#include <string.h>
-
-#include <scc/mach.h>
-
-#include "libmach.h"
-
-int
-setidx64(int order, long nsyms, char *names[], long offs[], FILE *fp)
-{
- long i;
- size_t len;
- unsigned char buff[8];
-
- pack(order, buff, "q", (long long) nsyms);
- fwrite(buff, 8, 1, fp);
-
- for (i = 0; i < nsyms; i++) {
- pack(order, buff, "q", (long long) offs[i]);
- fwrite(buff, 8, 1, fp);
- }
-
- for (i = 0; i < nsyms; i++) {
- len = strlen(names[i]) + 1;
- fwrite(names[i], len, 1, fp);
- }
-
- return fflush(fp) == EOF ? -1 : 0;
-}