#include "ldso.h"
-/* Some arches may need to override this in dl-startup.h */
-#define ELFMAGIC ELFMAG
-
/* This is a poor man's malloc, used prior to resolving our internal poor man's malloc */
#define LD_MALLOC(SIZE) ((void *) (malloc_buffer += SIZE, malloc_buffer - SIZE)) ; REALIGN();
/* Check the ELF header to make sure everything looks ok. */
if (!header || header->e_ident[EI_CLASS] != ELFCLASS32 ||
header->e_ident[EI_VERSION] != EV_CURRENT
-#if !defined(__powerpc__) && !defined(__mips__) && !defined(__sh__)
- || _dl_strncmp((void *) header, ELFMAGIC, SELFMAG) != 0
-#else
+ /* Do not use an inline _dl_strncmp here or some arches
+ * will blow chunks, i.e. those that need to relocate all
+ * string constants... */
|| header->e_ident[EI_MAG0] != ELFMAG0
|| header->e_ident[EI_MAG1] != ELFMAG1
|| header->e_ident[EI_MAG2] != ELFMAG2
- || header->e_ident[EI_MAG3] != ELFMAG3
-#endif
- ) {
+ || header->e_ident[EI_MAG3] != ELFMAG3)
+ {
SEND_STDERR("Invalid ELF header\n");
_dl_exit(0);
}