svn commit: r292620 - head/sys/kern

Bruce Evans brde at optusnet.com.au
Thu Dec 24 22:05:36 UTC 2015


On Thu, 24 Dec 2015, Konstantin Belousov wrote:

> 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.

There was in FreeBSD-5.

> 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.

argv[0] and the string being interpreted must be known at some point.

> 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.

Not if it is one of many commands in a script.

Bruce


More information about the svn-src-all mailing list