Summary: | emulators/qemu-user-static: causes build failure in games/dobutsu while running xz(1) | ||||||
---|---|---|---|---|---|---|---|
Product: | Ports & Packages | Reporter: | Robert Clausecker <fuz> | ||||
Component: | Individual Port(s) | Assignee: | Kyle Evans <kevans> | ||||
Status: | Closed FIXED | ||||||
Severity: | Affects Some People | CC: | emulation, kevans, ports-bugs | ||||
Priority: | --- | ||||||
Version: | Latest | ||||||
Hardware: | Any | ||||||
OS: | Any | ||||||
Attachments: |
|
Description
Robert Clausecker
2021-02-09 15:04:31 UTC
A commit references this bug: Author: kevans Date: Fri Feb 26 04:53:22 UTC 2021 New revision: 566578 URL: https://svnweb.freebsd.org/changeset/ports/566578 Log: emulators/qemu-user-static: update to f7fd10d7677c This features a number of fixes; highlights: - Handle aarch64 YIELD instructions - Bump ARG_MAX to match the FreeBSD default on LP64 platforms - Implement __specialfd(2) and copy_file_range(2) - Style fixes - Fix an issue with binary execution[0] - Fix page fault handling for self-modifying binaries[1] - Suppress noise from CIOGSESSION usage and restore CRIOGET handling - Patch _umtx_op(2) through to the kernel where possible[2] [0] Attempting to execute a binary by name was broken when there was an unrelated entry by the same name in PWD. The report below observed it in the cluster while building games/dobutsu, which tried to execute `xz` in a directory that had an `xz` directory inside of it. [1] From the fixing commit, qemu mprotect()s pages contained translated code to PROT_READ | PROT_EXEC and upgrades protections as needed upon page fault. This was broken in a previous commit that misidentified by the trap # that should have been observed. The observed issue a broken JIT compiler in libpcre. [2] _umtx_op can now be handled by the kernel in cases where the target long size is not longer than the host, and the target and host are the same endianness. This is much more reliable than our previous emulation of these operations, and should reduce hangs sometimes observed in threaded applications. Note that this requires a recent stable/12 or 13.x/-CURRENT. PR: 253375 [0] PR: 253335 [1] MFH: 2021Q1 Changes: head/emulators/qemu-user-static/Makefile head/emulators/qemu-user-static/distinfo A commit references this bug: Author: kevans Date: Fri Feb 26 04:54:03 UTC 2021 New revision: 566579 URL: https://svnweb.freebsd.org/changeset/ports/566579 Log: MFH: r566578 emulators/qemu-user-static: update to f7fd10d7677c This features a number of fixes; highlights: - Handle aarch64 YIELD instructions - Bump ARG_MAX to match the FreeBSD default on LP64 platforms - Implement __specialfd(2) and copy_file_range(2) - Style fixes - Fix an issue with binary execution[0] - Fix page fault handling for self-modifying binaries[1] - Suppress noise from CIOGSESSION usage and restore CRIOGET handling - Patch _umtx_op(2) through to the kernel where possible[2] [0] Attempting to execute a binary by name was broken when there was an unrelated entry by the same name in PWD. The report below observed it in the cluster while building games/dobutsu, which tried to execute `xz` in a directory that had an `xz` directory inside of it. [1] From the fixing commit, qemu mprotect()s pages contained translated code to PROT_READ | PROT_EXEC and upgrades protections as needed upon page fault. This was broken in a previous commit that misidentified by the trap # that should have been observed. The observed issue a broken JIT compiler in libpcre. [2] _umtx_op can now be handled by the kernel in cases where the target long size is not longer than the host, and the target and host are the same endianness. This is much more reliable than our previous emulation of these operations, and should reduce hangs sometimes observed in threaded applications. Note that this requires a recent stable/12 or 13.x/-CURRENT. PR: 253375 [0] PR: 253335 [1] Changes: _U branches/2021Q1/ branches/2021Q1/emulators/qemu-user-static/Makefile branches/2021Q1/emulators/qemu-user-static/distinfo Thanks for the report! |