graphic: 0.759 device: 0.747 performance: 0.531 architecture: 0.489 register: 0.460 semantic: 0.447 debug: 0.396 network: 0.372 user-level: 0.274 vnc: 0.256 PID: 0.225 socket: 0.213 files: 0.205 arm: 0.188 permissions: 0.163 mistranslation: 0.139 VMM: 0.137 boot: 0.132 risc-v: 0.115 ppc: 0.111 virtual: 0.105 TCG: 0.104 peripherals: 0.094 kernel: 0.089 hypervisor: 0.073 i386: 0.072 x86: 0.060 KVM: 0.037 assembly: 0.029 qemu-binfmt-conf.sh handles errors inconsistently Description of problem: We are installing qemu via multiarch/qemu-user-static docker image. https://github.com/multiarch/qemu-user-static What we have noticed is that because qemu-binfmt-conf.sh does not use `set -e`, its behavior with regards to failures is inconsistent. In short, registering the same thing into binfmt twice is an error (you get EEXIST). However, the exit code of qemu-binfmt-conf.sh itself seems to depend only on whether the last interpreter succeeded, leading to confusing and inconsistent results. Steps to reproduce: 1. Register only qemu-arm-static interpreter with binfmt. 2. Run qemu-binfmt-conf.sh. Observe that the exit code is zero, and logs show the duplicate interpreter was rejected. 3. Remove all qemu interpreters. 3. Register only qemu-loongarch64-static interpreter (currently last in qemu_target_list) with binfmt. 3. Run qemu-binfmt-conf.sh. Observe that the exit code is non-zero, and logs show the duplicate interpreter was rejected.