)]}' { "commit": "6e86c1660cd0c8f0af4575b41f83150a560d3941", "tree": "c8a57e634bb86935da969757daf7eaaa3f0713cb", "parents": [ "45c83da934bc2f2f7cb68b2602753753cb0929f4" ], "author": { "name": "Evgeniy Stepanov", "email": "eugeni.stepanov@gmail.com", "time": "Thu Oct 17 20:32:54 2019" }, "committer": { "name": "Evgeniy Stepanov", "email": "eugeni.stepanov@gmail.com", "time": "Thu Oct 17 20:32:54 2019" }, "message": "libhwasan initialisation include kernel syscall ABI relaxation\n\nSummary:\nUntil now AArch64 development has been on patched kernels that have an always\non relaxed syscall ABI where tagged pointers are accepted.\nThe patches that have gone into the mainline kernel rely on each process opting\nin to this relaxed ABI.\n\nThis commit adds code to choose that ABI into __hwasan_init.\n\nThe idea has already been agreed with one of the hwasan developers\n(http://lists.llvm.org/pipermail/llvm-dev/2019-September/135328.html).\n\nThe patch ignores failures of `EINVAL` for Android, since there are older versions of the Android kernel that don\u0027t require this `prctl` or even have the relevant values. Avoiding EINVAL will let the library run on them.\n\nI\u0027ve tested this on an AArch64 VM running a kernel that requires this\nprctl, having compiled both with clang and gcc.\n\nPatch by Matthew Malcomson.\n\nReviewers: eugenis, kcc, pcc\n\nReviewed By: eugenis\n\nSubscribers: srhines, kristof.beyls, #sanitizers, llvm-commits\n\nTags: #sanitizers, #llvm\n\nDifferential Revision: https://reviews.llvm.org/D68794\n\ngit-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@375166 91177308-0d34-0410-b5e6-96231b3b80d8\n", "tree_diff": [ { "type": "modify", "old_id": "3a5b8791a22c6b2bb64b840a331d029d9fe94db7", "old_mode": 33188, "old_path": "lib/hwasan/hwasan.cpp", "new_id": "7b5c6c694be9046aeb319061a7a7c031c60202b8", "new_mode": 33188, "new_path": "lib/hwasan/hwasan.cpp" }, { "type": "modify", "old_id": "817cee65016ee60f5cf6b5dc716a30e192e51e73", "old_mode": 33188, "old_path": "lib/hwasan/hwasan.h", "new_id": "9e0ced93b55d361cd5aae787db7562741683944c", "new_mode": 33188, "new_path": "lib/hwasan/hwasan.h" }, { "type": "modify", "old_id": "051ec2fb9cc3aa333f4079dde6e5052173f84723", "old_mode": 33188, "old_path": "lib/hwasan/hwasan_linux.cpp", "new_id": "948e40154fec9295a451a3bc4e6a6914f619d6e3", "new_mode": 33188, "new_path": "lib/hwasan/hwasan_linux.cpp" } ] }