svn commit: r292620 - head/sys/kern
Konstantin Belousov
kostikbel at gmail.com
Thu Dec 24 20:57:41 UTC 2015
On Wed, Dec 23, 2015 at 08:02:10AM +1100, Bruce Evans wrote:
> On Tue, 22 Dec 2015, Konstantin Belousov wrote:
>
> > Log:
> > If we annoy user with the terminal output due to failed load of
> > interpreter, also show the actual error code instead of some
> > interpretation.
>
> This and nearby messages are of annoyingly low quality. They don't
> even print the program name(s).
>
> I use the following partial fixes. I forget if they print the program
> name or the interpeter name.
>
> X Index: imgact_elf.c
> X ===================================================================
> X RCS file: /home/ncvs/src/sys/kern/imgact_elf.c,v
> X retrieving revision 1.151
> X diff -u -2 -r1.151 imgact_elf.c
> X --- imgact_elf.c 5 Jun 2004 02:18:28 -0000 1.151
> X +++ imgact_elf.c 5 Jun 2004 06:51:25 -0000
> X @@ -694,6 +693,6 @@
> X brand_info = __elfN(get_brandinfo)(hdr, interp);
> X if (brand_info == NULL) {
> X - uprintf("ELF binary type \"%u\" not known.\n",
> X - hdr->e_ident[EI_OSABI]);
> X + uprintf("%s: ELF binary type \"%u\" not known.\n",
> X + imgp->stringbase, hdr->e_ident[EI_OSABI]);
This cannot be a fix. there is no stringbase member in struct imgact.
In fact, there is no available path to the executable in the image activation
routine, and due to things like fexecve(2), it may have been not passed
to the kernel at all.
The present structure of the messages is forced by this fact, and it is
usually obvious what is the image kernel complained about, since it is
the image that was just executed.
More information about the svn-src-head
mailing list