summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAttilio Rao <attilio@FreeBSD.org>2009-02-10 15:50:19 +0000
committerAttilio Rao <attilio@FreeBSD.org>2009-02-10 15:50:19 +0000
commita1d7ce03ea70fb29b37f07706534ac41f722d0f1 (patch)
treecbc7f972e68875419580625b01212e8ca9a248e6
parentfc94457307a2df92744f9f5b0970381cc711cdc0 (diff)
Notes
-rw-r--r--sys/kern/kern_linker.c8
-rw-r--r--sys/kern/link_elf.c6
-rw-r--r--sys/kern/link_elf_obj.c3
3 files changed, 11 insertions, 6 deletions
diff --git a/sys/kern/kern_linker.c b/sys/kern/kern_linker.c
index 7805b0163fd5..93507134da69 100644
--- a/sys/kern/kern_linker.c
+++ b/sys/kern/kern_linker.c
@@ -425,6 +425,14 @@ linker_load_file(const char *filename, linker_file_t *result)
* the module was not found.
*/
if (foundfile) {
+
+ /*
+ * If the file type has not been recognized by the last try
+ * printout a message before to fail.
+ */
+ if (error == ENOSYS)
+ printf("linker_load_file: Unsupported file type\n");
+
/*
* Format not recognized or otherwise unloadable.
* When loading a module that is statically built into
diff --git a/sys/kern/link_elf.c b/sys/kern/link_elf.c
index 52b3f8f0ba68..c17dd1561357 100644
--- a/sys/kern/link_elf.c
+++ b/sys/kern/link_elf.c
@@ -638,8 +638,7 @@ link_elf_load_file(linker_class_t cls, const char* filename,
goto out;
}
if (hdr->e_type != ET_EXEC && hdr->e_type != ET_DYN) {
- link_elf_error(filename, "Unsupported file type");
- error = ENOEXEC;
+ error = ENOSYS;
goto out;
}
if (hdr->e_machine != ELF_TARG_MACH) {
@@ -694,8 +693,7 @@ link_elf_load_file(linker_class_t cls, const char* filename,
break;
case PT_INTERP:
- link_elf_error(filename, "Unsupported file type");
- error = ENOEXEC;
+ error = ENOSYS;
goto out;
}
diff --git a/sys/kern/link_elf_obj.c b/sys/kern/link_elf_obj.c
index 29165fe0fe9f..773474553246 100644
--- a/sys/kern/link_elf_obj.c
+++ b/sys/kern/link_elf_obj.c
@@ -474,8 +474,7 @@ link_elf_load_file(linker_class_t cls, const char *filename,
goto out;
}
if (hdr->e_type != ET_REL) {
- link_elf_error(filename, "Unsupported file type");
- error = ENOEXEC;
+ error = ENOSYS;
goto out;
}
if (hdr->e_machine != ELF_TARG_MACH) {