)]}'
{
  "commit": "7a8d9f3a0e882df50681e40f09c29cfb4966ea2d",
  "tree": "420c17e6e6ddaef84c89c4e0094eb8982e03cc6b",
  "parents": [
    "ea9812d93f9c3e1a308ac33097021c50d581d10e"
  ],
  "author": {
    "name": "Pierrick Bouvier",
    "email": "pierrick.bouvier@linaro.org",
    "time": "Wed Jul 05 14:10:23 2023 +0200"
  },
  "committer": {
    "name": "Richard Henderson",
    "email": "richard.henderson@linaro.org",
    "time": "Sat Jul 15 08:02:32 2023 +0100"
  },
  "message": "linux-user/syscall: Implement execve without execveat\n\nSupport for execveat syscall was implemented in 55bbe4 and is available\nsince QEMU 8.0.0. It relies on host execveat, which is widely available\non most of Linux kernels today.\n\nHowever, this change breaks qemu-user self emulation, if \"host\" qemu\nversion is less than 8.0.0. Indeed, it does not implement yet execveat.\nThis strange use case happens with most of distribution today having\nbinfmt support.\n\nWith a concrete failing example:\n$ qemu-x86_64-7.2 qemu-x86_64-8.0 /bin/bash -c /bin/ls\n/bin/bash: line 1: /bin/ls: Function not implemented\n-\u003e not implemented means execve returned ENOSYS\n\nqemu-user-static 7.2 and 8.0 can be conveniently grabbed from debian\npackages qemu-user-static* [1].\n\nOne usage of this is running wine-arm64 from linux-x64 (details [2]).\nThis is by updating qemu embedded in docker image that we ran into this\nissue.\n\nThe solution to update host qemu is not always possible. Either it\u0027s\ncomplicated or ask you to recompile it, or simply is not accessible\n(GitLab CI, GitHub Actions). Thus, it could be worth to implement execve\nwithout relying on execveat, which is the goal of this patch.\n\nThis patch was tested with example presented in this commit message.\n\n[1] http://ftp.us.debian.org/debian/pool/main/q/qemu/\n[1] https://www.linaro.org/blog/emulate-windows-on-arm/\n\nSigned-off-by: Pierrick Bouvier \u003cpierrick.bouvier@linaro.org\u003e\nReviewed-by: Richard Henderson \u003crichard.henderson@linaro.org\u003e\nReviewed-by: Michael Tokarev \u003cmjt@tls.msk.ru\u003e\nMessage-Id: \u003c20230705121023.973284-1-pierrick.bouvier@linaro.org\u003e\nSigned-off-by: Richard Henderson \u003crichard.henderson@linaro.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "420bab7c68b96f359bf9662610d4409dfcadb07f",
      "old_mode": 33188,
      "old_path": "linux-user/syscall.c",
      "new_id": "c15d9ad743b485dcc272cbc5f5217bec7d64b994",
      "new_mode": 33188,
      "new_path": "linux-user/syscall.c"
    }
  ]
}
