{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":321154,"defaultBranch":"master","name":"libffi","ownerLogin":"libffi","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2009-09-29T15:05:17.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/7063475?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1708266216.0","currentOid":""},"activityList":{"items":[{"before":"9c9e8368e49804c4f7c35ac9f0d7c1d0d533308b","after":"8e3ef965c2d0015ed129a06d0f11f30c2120a413","ref":"refs/heads/master","pushedAt":"2024-06-28T08:08:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"atgreen","name":"Anthony Green","path":"/atgreen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89993?s=80&v=4"},"commit":{"message":"Fix struct args (Rainer Orth)","shortMessageHtmlLink":"Fix struct args (Rainer Orth)"}},{"before":"6993bc14dad1cd24294d64bf91e4503a4d7835d6","after":"9c9e8368e49804c4f7c35ac9f0d7c1d0d533308b","ref":"refs/heads/master","pushedAt":"2024-06-04T11:13:08.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"atgreen","name":"Anthony Green","path":"/atgreen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89993?s=80&v=4"},"commit":{"message":"aarch64: Add a missing no-op define of SIGN_LR_LINUX_ONLY (#838)\n\nThis is needed at least if building for Linux, with a toolchain\r\nthat doesn't default to having PAC enabled, fixing build errors\r\nsince 45d284f2d066cc3a080c5be88e51b4d934349797.","shortMessageHtmlLink":"aarch64: Add a missing no-op define of SIGN_LR_LINUX_ONLY (#838)"}},{"before":"00bf6e679160886cfa12de617ae1640721455ca5","after":"6993bc14dad1cd24294d64bf91e4503a4d7835d6","ref":"refs/heads/master","pushedAt":"2024-06-01T17:43:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"atgreen","name":"Anthony Green","path":"/atgreen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89993?s=80&v=4"},"commit":{"message":"Import from upstream","shortMessageHtmlLink":"Import from upstream"}},{"before":"45d284f2d066cc3a080c5be88e51b4d934349797","after":"00bf6e679160886cfa12de617ae1640721455ca5","ref":"refs/heads/master","pushedAt":"2024-06-01T17:39:24.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"atgreen","name":"Anthony Green","path":"/atgreen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89993?s=80&v=4"},"commit":{"message":"A fix to the struct type example (#837)\n\nSection 2.3.2 Structures of the docs declare `ffi_type`'s `elements` field to be of type `ffi_type **`.","shortMessageHtmlLink":"A fix to the struct type example (#837)"}},{"before":"38732240c125b6af9db66d940c0725a69292cc49","after":"45d284f2d066cc3a080c5be88e51b4d934349797","ref":"refs/heads/master","pushedAt":"2024-06-01T17:34:53.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"atgreen","name":"Anthony Green","path":"/atgreen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89993?s=80&v=4"},"commit":{"message":"aarch64: support pointer authentication (#834)\n\n* aarch64: fix callstack in ffi_call_SYSV\r\n\r\nThe debug stack gets corrupted between the frame and stack pivots, update\r\nthe CFI directives so the call stack stays correct in the debugger.\r\n\r\nstr x9, [x1, #32] // stack is ffi_call_SYSV() -> ffi_call_int() -> ffi_call_int() -> main() (good)\r\nmov x29, x1 // stack is ffi_call_SYSV() -> ffi_call_int() -> ffi_call_int() -> ffi_call() -> main() (bad)\r\nmov sp, x0 // stack is ffi_call_SYSV() -> ffi_call_int() -> ffi_call_int() -> main() (good)\r\n\r\nThe CFA data needs to be updated around the pivots, after this patch the\r\ncallstack stays correct.\r\n\r\nSigned-off-by: Bill Roberts \r\n\r\n* aarch64: remove uneeded CFI directive\r\n\r\nThis directive doesn't actually set the CFA to anything valid, and\r\nduring unwinding this isn't even used. Note that the PAC/Darwin usage\r\nis quite suspect as well, as the CFA is either x1 or x29 after the frame\r\npivot, and the CFA address is what's used as the modifier when verifying\r\nthe PAC. At least this is the behavior on Linux with PAC, I need to\r\nverify ARME ABI unwinding. So for now leave Darwin as is.\r\n\r\nSigned-off-by: Bill Roberts \r\n\r\n* ptrauth: rename define for clarity\r\n\r\nRename the HAVE_PTRAUTH define for clarity that its associated with the\r\nARM64E ABI and not the ARM64 ABI that can be supported on Linux and\r\nenabled with -mbranch-protection=standard.\r\n\r\nSigned-off-by: Bill Roberts \r\n\r\n* aarch64: add PAC support to ffi_call_SYSV\r\n\r\nSupport AARCH64 Pointer Authentication Codes (PAC) within ffi_call_SYSV\r\nand support exception unwinding.\r\n\r\nThe Linux ABI for PAC is to use paciasp/autiasp instructions which also\r\nhave hint space equivelent instructions. They sign the LR (x30) with the\r\nA key and the current stack pointer as the salt. Note that this can also be\r\nconfigured to use the B key and will use pacibsp/autibsp hint instructions.\r\n\r\nThe Linux ABI for exception frame data when PAC is enabled assumes that the\r\nConnonical Frame Address, or CFA is equal to the stack pointer. I.E sp is\r\nequal to x29 (fp). When the unwinder is invoked the cfa will point to\r\nthe frame which will include the *signed* return address from the LR.\r\nThis will then be passed to __builtin_aarch64_autia1716 where the CFA\r\nwill be used as the salt and stored to register x16 and register x17\r\nwill contain the signed address to demangle. This can be noted in:\r\n - https://github.com/gcc-mirror/gcc/blob/d6d7afcdbc04adb0ec42a44b2d7e05600945af42/libgcc/config/aarch64/aarch64-unwind.h#L56\r\n\r\nThe other required portion of this is to indicate to the unwinder that\r\nthis is a signed address that needs to go the special demangle route in\r\nthe unwinder. This is accomplished by using CFI directive \"cfi_window_save\"\r\nwhich marks that frame as being signed.\r\n\r\nPutting all of this together is a bit tricky, as the internals of\r\nffi_call_SYSV the callee allocates its stack and frame and passes it in\r\narg1 (x0) and arg2 (x1) to the called function, where that function\r\npivots its stack, so care must be taken to get the sp == fp before\r\npaciasp is called and also restore that state before autiasp is called.\r\n\r\nSigned-off-by: Bill Roberts \r\n\r\n---------\r\n\r\nSigned-off-by: Bill Roberts ","shortMessageHtmlLink":"aarch64: support pointer authentication (#834)"}},{"before":"f64141ee3f9e455a060bd09e9ab72b6c94653d7c","after":"38732240c125b6af9db66d940c0725a69292cc49","ref":"refs/heads/master","pushedAt":"2024-06-01T17:33:28.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"atgreen","name":"Anthony Green","path":"/atgreen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89993?s=80&v=4"},"commit":{"message":"ffi: fix spelling mistake (#833)\n\nSigned-off-by: Bill Roberts ","shortMessageHtmlLink":"ffi: fix spelling mistake (#833)"}},{"before":"3d0ce1e6fcf19f853894862abcbac0ae78a7be60","after":"f64141ee3f9e455a060bd09e9ab72b6c94653d7c","ref":"refs/heads/master","pushedAt":"2024-03-19T16:44:55.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"atgreen","name":"Anthony Green","path":"/atgreen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89993?s=80&v=4"},"commit":{"message":"Fix bti support (#830)\n\n* bti: add identifier to ffi_closure_SYSV_V_alt\r\n\r\nThis was missing BTI_C identifier.\r\n\r\nOld Code:\r\nffi_closure_SYSV_V_alt:\r\n0000fffff7f70500: ldr x17, [sp, #8]\r\n\r\nSigned-off-by: Bill Roberts \r\n\r\n* testsuite: fix whitespace in Makefile.am\r\n\r\nSigned-off-by: Bill Roberts \r\n\r\n* aarch64: correct comment describing BTI\r\n\r\nThe comment is incorrect, BTI is enabled per mapping via mprotect with\r\nPROT_BTI flag set, not per-process. When the loader loads the library,\r\nif the GNU Notes section is missing this, PROT_BTI will not be enabled\r\nfor that mapping, but is independent of other mappings.\r\n\r\nSigned-off-by: Bill Roberts \r\n\r\n---------\r\n\r\nSigned-off-by: Bill Roberts ","shortMessageHtmlLink":"Fix bti support (#830)"}},{"before":"94eaedb40e67e26d2fa35d1c22d8818f4d9f4c2d","after":"3d0ce1e6fcf19f853894862abcbac0ae78a7be60","ref":"refs/heads/master","pushedAt":"2024-02-18T14:23:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"atgreen","name":"Anthony Green","path":"/atgreen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89993?s=80&v=4"},"commit":{"message":"chore: update version to 3.4.6 and fix long double regression on mips64 and alpha","shortMessageHtmlLink":"chore: update version to 3.4.6 and fix long double regression on mips…"}},{"before":"e1dcf03b4642e75a1058799a3023e0ebd0024258","after":"94eaedb40e67e26d2fa35d1c22d8818f4d9f4c2d","ref":"refs/heads/master","pushedAt":"2024-02-18T13:41:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"atgreen","name":"Anthony Green","path":"/atgreen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89993?s=80&v=4"},"commit":{"message":"Update sparc64 host","shortMessageHtmlLink":"Update sparc64 host"}},{"before":"cd78b539125ae615d76df5a57039fe70ebd56c27","after":"e1dcf03b4642e75a1058799a3023e0ebd0024258","ref":"refs/heads/master","pushedAt":"2024-02-18T13:02:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"atgreen","name":"Anthony Green","path":"/atgreen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89993?s=80&v=4"},"commit":{"message":"Update cfarm hostnames","shortMessageHtmlLink":"Update cfarm hostnames"}},{"before":"012fcaf96c87ab617ba34babce9b6b259188fcf0","after":"cd78b539125ae615d76df5a57039fe70ebd56c27","ref":"refs/heads/master","pushedAt":"2024-02-18T12:49:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"atgreen","name":"Anthony Green","path":"/atgreen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89993?s=80&v=4"},"commit":{"message":"Always define long double types.","shortMessageHtmlLink":"Always define long double types."}},{"before":"d1597239af492240770692b8e453f0dca70fc551","after":"012fcaf96c87ab617ba34babce9b6b259188fcf0","ref":"refs/heads/master","pushedAt":"2024-02-15T13:35:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"atgreen","name":"Anthony Green","path":"/atgreen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89993?s=80&v=4"},"commit":{"message":"Update","shortMessageHtmlLink":"Update"}},{"before":"91739a1a912476adbf1e0e4dcb091b9a2c5007d9","after":"d1597239af492240770692b8e453f0dca70fc551","ref":"refs/heads/master","pushedAt":"2024-02-15T13:34:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"atgreen","name":"Anthony Green","path":"/atgreen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89993?s=80&v=4"},"commit":{"message":"update copyright year in libffi.texi","shortMessageHtmlLink":"update copyright year in libffi.texi"}},{"before":"9752a622d12e696eaf9a4c46d4f09b58bca6bb83","after":"91739a1a912476adbf1e0e4dcb091b9a2c5007d9","ref":"refs/heads/master","pushedAt":"2024-02-15T13:30:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"atgreen","name":"Anthony Green","path":"/atgreen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89993?s=80&v=4"},"commit":{"message":"Update version, copyright and testsuite info.","shortMessageHtmlLink":"Update version, copyright and testsuite info."}},{"before":"404355317b3314da14a9ead0c0a50c040212e1fc","after":"9752a622d12e696eaf9a4c46d4f09b58bca6bb83","ref":"refs/heads/master","pushedAt":"2024-02-15T13:03:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"atgreen","name":"Anthony Green","path":"/atgreen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89993?s=80&v=4"},"commit":{"message":"Fix test filename reference","shortMessageHtmlLink":"Fix test filename reference"}},{"before":"04f6fa310ddec494cfcf32fd3685cefe35a8d2a2","after":"404355317b3314da14a9ead0c0a50c040212e1fc","ref":"refs/heads/master","pushedAt":"2024-02-15T13:01:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"atgreen","name":"Anthony Green","path":"/atgreen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89993?s=80&v=4"},"commit":{"message":"docs(README): update release details for libffi-3.4.5","shortMessageHtmlLink":"docs(README): update release details for libffi-3.4.5"}},{"before":"00c0c87773910a320d82f026bb481eea31b50206","after":"04f6fa310ddec494cfcf32fd3685cefe35a8d2a2","ref":"refs/heads/master","pushedAt":"2024-02-15T12:52:13.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"atgreen","name":"Anthony Green","path":"/atgreen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89993?s=80&v=4"},"commit":{"message":"mips: Fix N32 ABI return value handling (#813)\n\nIn N32 ABI, 8-bit or 16-bit integers should be extended following the\r\nsignedness of the integer, but 32-bit integers should always be\r\nsign-extended to 64-bit (note that N32 ABI only works on 64-bit CPUs).\r\n\r\nSo handling this in everything using libffi would be nasty. And the\r\nlibffi code for architectures with a similar rule (LoongArch & RISC-V)\r\nalso properly handle this. Let's do this work in libffi for MIPS N32\r\ntoo.\r\n\r\nThis fixes two failures in Python 3.12.1 ctypes test.","shortMessageHtmlLink":"mips: Fix N32 ABI return value handling (#813)"}},{"before":"b3091029ed85339c856224c243826022ae93c041","after":"00c0c87773910a320d82f026bb481eea31b50206","ref":"refs/heads/master","pushedAt":"2024-02-15T12:51:40.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"atgreen","name":"Anthony Green","path":"/atgreen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89993?s=80&v=4"},"commit":{"message":"Fix loongarch64 soft-float build (#816) (#817)","shortMessageHtmlLink":"Fix loongarch64 soft-float build (#816) (#817)"}},{"before":"98881ecb8eec6d5f2beaaced96d9f625b0dee499","after":"b3091029ed85339c856224c243826022ae93c041","ref":"refs/heads/master","pushedAt":"2024-02-15T12:51:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"atgreen","name":"Anthony Green","path":"/atgreen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89993?s=80&v=4"},"commit":{"message":"Emscripten: Don't unbox single element structs if they are larger than 16 bytes (#818)\n\nThis arguably is a compensation for a Python ctypes bug / strange behavior\r\ndescribed here:\r\nhttps://github.com/python/cpython/blob/a16a9f978f42b8a09297c1efbf33877f6388c403/Modules/_ctypes/stgdict.c#L718-L779\r\n\r\nIf a struct is larger than 16 bytes, Python does not bother to accurately report\r\nits contents figuring that we don't need to know.","shortMessageHtmlLink":"Emscripten: Don't unbox single element structs if they are larger tha…"}},{"before":"f9da12e944c947e797e5f3a98f3860c2a0ed055e","after":"98881ecb8eec6d5f2beaaced96d9f625b0dee499","ref":"refs/heads/master","pushedAt":"2024-02-15T12:50:40.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"atgreen","name":"Anthony Green","path":"/atgreen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89993?s=80&v=4"},"commit":{"message":"aarch64: add BTI flag to ELF notes (#822)\n\nWhen a program is loaded and linked, the first ELF file that doesn't\r\ndeclare that BTI is supported in the GNU NOTES section disables BTI\r\nsupport.\r\n\r\nExample:\r\nreadelf -n ./aarch64-unknown-linux-gnu/.libs/libffi.so\r\nDisplaying notes found in: .note.gnu.property\r\n Owner Data size \tDescription\r\n GNU 0x00000010\tNT_GNU_PROPERTY_TYPE_0\r\n Properties: AArch64 feature: BTI\r\n\r\nFixes: #823\r\n\r\nSigned-off-by: Bill Roberts ","shortMessageHtmlLink":"aarch64: add BTI flag to ELF notes (#822)"}},{"before":"f8ed78f1b2e65f2741455612d38477424e321850","after":"f9da12e944c947e797e5f3a98f3860c2a0ed055e","ref":"refs/heads/master","pushedAt":"2024-02-15T12:50:13.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"atgreen","name":"Anthony Green","path":"/atgreen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89993?s=80&v=4"},"commit":{"message":"don't skip ffi_type_longdouble symbols (#814) (#824)\n\nSeems there are configurations (ppc64 or ppc64le) that define\r\nHAVE_LONG_DOUBLE_VARIANT in fficonfig.h, but do not define\r\nHAVE_LONG_DOUBLE, and still want ffi_type_{,complex_}longdouble\r\nsymbols. Update the condition in libffi.map.in accordingly.","shortMessageHtmlLink":"don't skip ffi_type_longdouble symbols (#814) (#824)"}},{"before":"0b1dd62bef4192b61153182f7687edf7e885611c","after":"f8ed78f1b2e65f2741455612d38477424e321850","ref":"refs/heads/master","pushedAt":"2024-02-15T12:49:27.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"atgreen","name":"Anthony Green","path":"/atgreen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89993?s=80&v=4"},"commit":{"message":"LoongArch: Fix a build error with GCC 14 (#825)\n\nFix the build error with GCC 14:\r\n\r\n ../src/loongarch64/ffi.c: In function 'ffi_prep_closure_loc':\r\n ../src/loongarch64/ffi.c:525:7: error: implicit declaration of\r\n function 'ffi_tramp_set_parms' [-Wimplicit-function-declaration]","shortMessageHtmlLink":"LoongArch: Fix a build error with GCC 14 (#825)"}},{"before":"c07c40ee9444e029bc595860a669de32b7af282a","after":"0b1dd62bef4192b61153182f7687edf7e885611c","ref":"refs/heads/master","pushedAt":"2024-02-01T03:54:57.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"atgreen","name":"Anthony Green","path":"/atgreen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89993?s=80&v=4"},"commit":{"message":"Update README.md (#820)\n\nFor cygwin/MSVC build, CXXCPP is also needed to pass configure checks","shortMessageHtmlLink":"Update README.md (#820)"}},{"before":"622caabcd25f4e11f752241417d06c9062acdf1f","after":"c07c40ee9444e029bc595860a669de32b7af282a","ref":"refs/heads/master","pushedAt":"2024-02-01T03:43:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"atgreen","name":"Anthony Green","path":"/atgreen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89993?s=80&v=4"},"commit":{"message":"`feat(github-actions): add new build workflow for warp`","shortMessageHtmlLink":"feat(github-actions): add new build workflow for warp"}},{"before":"a1c391bd8e604c611c7e9c8f6705dc723d403eb5","after":"622caabcd25f4e11f752241417d06c9062acdf1f","ref":"refs/heads/master","pushedAt":"2023-12-24T15:38:32.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"atgreen","name":"Anthony Green","path":"/atgreen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89993?s=80&v=4"},"commit":{"message":"Put more optional symbols behind ifdefs (#812)","shortMessageHtmlLink":"Put more optional symbols behind ifdefs (#812)"}},{"before":"3a62a08af7bd0b5d540a087590dc54cdc312416b","after":"a1c391bd8e604c611c7e9c8f6705dc723d403eb5","ref":"refs/heads/master","pushedAt":"2023-12-22T10:30:50.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"atgreen","name":"Anthony Green","path":"/atgreen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89993?s=80&v=4"},"commit":{"message":"Fix a variety of warnings (#811)","shortMessageHtmlLink":"Fix a variety of warnings (#811)"}},{"before":"d96fa2117cc6ca2923de9a2f34311ef0219b7590","after":"3a62a08af7bd0b5d540a087590dc54cdc312416b","ref":"refs/heads/master","pushedAt":"2023-12-21T20:19:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"atgreen","name":"Anthony Green","path":"/atgreen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89993?s=80&v=4"},"commit":{"message":"Remove warnings","shortMessageHtmlLink":"Remove warnings"}},{"before":"5b1944b4ce4b03e28a5843d36812756168d66b08","after":"d96fa2117cc6ca2923de9a2f34311ef0219b7590","ref":"refs/heads/master","pushedAt":"2023-12-21T19:04:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"atgreen","name":"Anthony Green","path":"/atgreen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89993?s=80&v=4"},"commit":{"message":"Eliminate warning","shortMessageHtmlLink":"Eliminate warning"}},{"before":"11af2196d5f4e8c756758cf86e4ab79dda89f405","after":"5b1944b4ce4b03e28a5843d36812756168d66b08","ref":"refs/heads/master","pushedAt":"2023-11-28T22:38:13.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"atgreen","name":"Anthony Green","path":"/atgreen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89993?s=80&v=4"},"commit":{"message":"aarch64: Write the BTI instructions as \"hint\" instructions (#810)\n\nGNU binutils refuses to assemble the direct BTI instructions unless\r\nthe target architecture explicitly supports BTI, ending up with errors\r\nsuch as\r\n\r\n ../src/aarch64/sysv.S: Assembler messages:\r\n ../src/aarch64/sysv.S:87: Error: selected processor does not support `bti c'\r\n ../src/aarch64/sysv.S:156: Error: selected processor does not support `bti j'\r\n\r\nBuilding with -march=armv8.5-a fixes building this.\r\n\r\nHowever, the BTI instructions assemble into hint instructions, that\r\nare ignored by processors that don't implement them. Therefore it is\r\npossible to assemble them for the baseline armv8.0-a target as well,\r\nby replacing \"bti j\" with \"hint #36\", \"bti c\" with \"hint #34\" and\r\n\"bti jc\" with \"hint #38\"; this assembles into the same instruction\r\nbits.","shortMessageHtmlLink":"aarch64: Write the BTI instructions as \"hint\" instructions (#810)"}},{"before":"d7f5e98b437a242ac712cda8df3e47b205339711","after":"11af2196d5f4e8c756758cf86e4ab79dda89f405","ref":"refs/heads/master","pushedAt":"2023-11-23T14:22:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"atgreen","name":"Anthony Green","path":"/atgreen","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89993?s=80&v=4"},"commit":{"message":"Reference recent changes","shortMessageHtmlLink":"Reference recent changes"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEcZ8MhAA","startCursor":null,"endCursor":null}},"title":"Activity · libffi/libffi"}