qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v4 8/10] qemu-binfmt-conf.sh: add option --clear


From: Unai Martinez Corral
Subject: Re: [Qemu-devel] [PATCH v4 8/10] qemu-binfmt-conf.sh: add option --clear
Date: Mon, 11 Mar 2019 14:19:34 +0100

2019/3/11 12:04, Laurent Vivier:
> > +    find /proc/sys/fs/binfmt_misc/ -type f -name $names -exec sh -c 
> > 'printf %s -1 > {}' \;
>
> The qemu-* will be expanded here if you have a qemu-XXX in the current
> directory. You must use "$names".

You are correct. Indeed, I had not spotted it because I introduced a
bug when renaming 'reset' to 'clear'. Precisely, '-c' was being used
twice: for 'credential' and for 'clear'. Both issues will be fixed in
the next version.

> But:
>
> To remove all, you can do:
> sh -c 'printf %s -1 > /proc/sys/fs/binfmt_misc/status'
>
> so something like
>
> if [ $# -eq 0 ] ; then
>   sh -c 'printf %s -1 > /proc/sys/fs/binfmt_misc/status
> fi
> qemu_check_target_list $1
> for t in $checked_target_list ; do
>    sh -c 'printf %s -1 > /proc/sys/fs/binfmt_misc/qemu-$t'
> done

Wouldn't writing to 'status' remove all the interpreters, and not only
those that correspond to qemu?

> But I think you should also taking care of the suffix.

I think that the suffix is not related to the entry in
'/proc/sys/fs/binfmt_misc/'. See, e.g.:

package qemu-$cpu
interpreter $qemu

So, independently of which is the executable (interpreter), the
package name does not include the suffix.

> > +if [ "x$QEMU_CLEAR" = "xyes" ] ; then
> > +  case "$BINFMT_SET" in
> > +    *debian)  BINFMT_CLEAR=qemu_clear_notimplemented ;;
> > +    *systemd) BINFMT_CLEAR=qemu_clear_notimplemented ;;
> > +    *)        BINFMT_CLEAR=qemu_clear_interpreter
> > +  esac
>
> Put this in the previous case for decoding options, please.

It won't work. This if/case block requires all the options to be
already parsed and processed. If I put it in the case for '-r|--clear'
above, it will only work only when '-r' is given after '--debian' or
'--systemd'. Otherwise, BINFMT_SET will always be
qemu_register_interpreter when '-crear' is evaluated. I think that we
should not rely on the users providing the options in a specific
order.

Regards,
Unai



reply via email to

[Prev in Thread] Current Thread [Next in Thread]