{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":13812233,"defaultBranch":"main","name":"cheribsd","ownerLogin":"CTSRD-CHERI","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2013-10-23T19:18:29.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/810768?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1727347662.0","currentOid":""},"activityList":{"items":[{"before":"4489a4dc7e6d7f3c92cf73812fdad18725ab3c1d","after":"3325f44ee2c86e4298030773683e03ddb485d849","ref":"refs/heads/demo-2024-10","pushedAt":"2024-09-27T04:28:29.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dpgao","name":"Dapeng Gao","path":"/dpgao","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/31944689?s=80&v=4"},"commit":{"message":"c18n: Prototype support for multi-library ELFs\n\nELF files created with the `objcopy -T` option, which can consist of\nmultiple shared libraries, are now minimally supported when executed as\nan argument to ld-elf.so.1. E.g.,\n\n\t/libexec/ld-elf.so.1 ./multi_obj_binary\n\nis supported. Directly executing the binary is NOT supported.\n\nEach of the sub-libraries should have an SONAME associated with them.\nOtherwise there would be no way for libraries that depend on them to\nlocate them.\n\nFeatures such as TLS and RELRO are not well supported and should be\navoided.","shortMessageHtmlLink":"c18n: Prototype support for multi-library ELFs"}},{"before":"d997bf43d873fe40b32f0cc73e13fc0ce4c19ddf","after":"a04b3a559c9d1422b9fa3c7525c98fd5aa1155ec","ref":"refs/heads/kernel-c18n","pushedAt":"2024-09-26T23:39:35.000Z","pushType":"push","commitsCount":13,"pusher":{"login":"kwitaszczyk","name":"Konrad Witaszczyk","path":"/kwitaszczyk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12050339?s=80&v=4"},"commit":{"message":"zlib_mo: add to the build system","shortMessageHtmlLink":"zlib_mo: add to the build system"}},{"before":"b14810de33d482bd5c2c3973490b9b9e470b9003","after":"d997bf43d873fe40b32f0cc73e13fc0ce4c19ddf","ref":"refs/heads/kernel-c18n","pushedAt":"2024-09-26T21:30:55.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"kwitaszczyk","name":"Konrad Witaszczyk","path":"/kwitaszczyk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12050339?s=80&v=4"},"commit":{"message":"[DO NOT MERGE] Jenkinsfile: don't build for amd64\n\nThe branch does not boot on amd64 at the moment.","shortMessageHtmlLink":"[DO NOT MERGE] Jenkinsfile: don't build for amd64"}},{"before":"3e3b2292c0934c82800ef35b3920cb856b33bc9a","after":"b14810de33d482bd5c2c3973490b9b9e470b9003","ref":"refs/heads/kernel-c18n","pushedAt":"2024-09-26T15:08:30.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"kwitaszczyk","name":"Konrad Witaszczyk","path":"/kwitaszczyk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12050339?s=80&v=4"},"commit":{"message":"Makefile.inc1: install extra aarch64c kernels\n\nSet NO_INSTALLEXTRAKERNELS to \"no\" to install extra kernels when\nexecuting the distributekernel target for aarch64c.\n\nDiscussed with:\tjrtc27\n\nThis partially reverts commit afb31e4c33a42fd6a9c35a016951690637f99dc1\n\n(cherry picked from commit bdeff30fb6b1744816f43ed8a3c2f0a133d872c1)","shortMessageHtmlLink":"Makefile.inc1: install extra aarch64c kernels"}},{"before":"66d37ed689236e7665843468bb0ac6b91e70f40f","after":null,"ref":"refs/heads/kernel-c18n-jenkins","pushedAt":"2024-09-26T10:47:42.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"kwitaszczyk","name":"Konrad Witaszczyk","path":"/kwitaszczyk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12050339?s=80&v=4"}},{"before":"9e352b5e6f13b0652d18fabfa2cc1d07199da529","after":"3e3b2292c0934c82800ef35b3920cb856b33bc9a","ref":"refs/heads/kernel-c18n","pushedAt":"2024-09-26T10:47:38.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"kwitaszczyk","name":"Konrad Witaszczyk","path":"/kwitaszczyk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12050339?s=80&v=4"},"commit":{"message":"Jenkinsfile: archive the kernel-c18n branch","shortMessageHtmlLink":"Jenkinsfile: archive the kernel-c18n branch"}},{"before":null,"after":"66d37ed689236e7665843468bb0ac6b91e70f40f","ref":"refs/heads/kernel-c18n-jenkins","pushedAt":"2024-09-26T10:30:09.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"kwitaszczyk","name":"Konrad Witaszczyk","path":"/kwitaszczyk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12050339?s=80&v=4"},"commit":{"message":"Jenkinsfile: archive the kernel-c18n branch","shortMessageHtmlLink":"Jenkinsfile: archive the kernel-c18n branch"}},{"before":"644213ec34f384081d1ae9802cae48b4b9545714","after":"9e352b5e6f13b0652d18fabfa2cc1d07199da529","ref":"refs/heads/kernel-c18n","pushedAt":"2024-09-26T10:25:51.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"kwitaszczyk","name":"Konrad Witaszczyk","path":"/kwitaszczyk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12050339?s=80&v=4"},"commit":{"message":"kernel-c18n: handle nested trampoline calles\n\nFor a call chain between compartments A->B->C (where C can be equal to\nA), the current Restricted stack pointer of B is overwritten on its\nstack when branching into C. The trampoline code did not restore it when\nreturning to A.","shortMessageHtmlLink":"kernel-c18n: handle nested trampoline calles"}},{"before":null,"after":"4489a4dc7e6d7f3c92cf73812fdad18725ab3c1d","ref":"refs/heads/demo-2024-10","pushedAt":"2024-09-25T14:50:43.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dpgao","name":"Dapeng Gao","path":"/dpgao","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/31944689?s=80&v=4"},"commit":{"message":"c18n: [WIP] Prototype support for multi-library ELFs\n\nELF files created with the `objcopy -T` option, which can consist of\nmultiple shared libraries, are now minimally supported when executed as\nan argument to ld-elf.so.1. E.g.,\n\n\t/libexec/ld-elf.so.1 ./multi_obj_binary\n\nis supported. Directly executing the binary is NOT supported.\n\nEach of the sub-libraries should have an SONAME associated with them.\nOtherwise there would be no way for libraries that depend on them to\nlocate them.\n\nFeatures such as TLS and RELRO are not well supported and should be\navoided.","shortMessageHtmlLink":"c18n: [WIP] Prototype support for multi-library ELFs"}},{"before":"9a50d47cd92e915e13090ca3bad60f1839a2640b","after":"644213ec34f384081d1ae9802cae48b4b9545714","ref":"refs/heads/kernel-c18n","pushedAt":"2024-09-23T17:15:51.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"kwitaszczyk","name":"Konrad Witaszczyk","path":"/kwitaszczyk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12050339?s=80&v=4"},"commit":{"message":"amd64: adapt relocation interface to the multi-object ELF\n\nNote that the kernel linker does not implement support for multi-object\nkernel modules on amd64 (link_elf_obj). This change makes CheriBSD\ncompile for amd64 and it will be reverted as soon as we have a static\nlinker that can produce files in the multi-partition ELF format.","shortMessageHtmlLink":"amd64: adapt relocation interface to the multi-object ELF"}},{"before":"a6704a1e5888073d9c2e9031fba1e77e61358d43","after":"9a50d47cd92e915e13090ca3bad60f1839a2640b","ref":"refs/heads/kernel-c18n","pushedAt":"2024-09-23T15:31:38.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"kwitaszczyk","name":"Konrad Witaszczyk","path":"/kwitaszczyk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12050339?s=80&v=4"},"commit":{"message":"riscv: adapt relocation interface to the multi-object ELF","shortMessageHtmlLink":"riscv: adapt relocation interface to the multi-object ELF"}},{"before":"65c520ce55c1ea7b5ff35b3e3e3b7e2ca35ac56d","after":"a6704a1e5888073d9c2e9031fba1e77e61358d43","ref":"refs/heads/kernel-c18n","pushedAt":"2024-09-23T14:12:39.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"kwitaszczyk","name":"Konrad Witaszczyk","path":"/kwitaszczyk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12050339?s=80&v=4"},"commit":{"message":"kernel linker: always compute an object size\n\nDon't rely on a capability length to compute an object size. This allows\nto use the multi-object ELF format on non-CHERI architectures.","shortMessageHtmlLink":"kernel linker: always compute an object size"}},{"before":"a1d50e9652ed15221cb9714f5a70ef0c19a9b63e","after":null,"ref":"refs/heads/kernel-c18n-objcopy","pushedAt":"2024-09-23T12:22:35.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"kwitaszczyk","name":"Konrad Witaszczyk","path":"/kwitaszczyk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12050339?s=80&v=4"}},{"before":"8c75e953ba9b9136e846a230d965768e080f8336","after":"d9f4ac8cdd374c2bb4057e199e32be954a138a82","ref":"refs/heads/c18n-objcopy","pushedAt":"2024-09-23T12:22:31.000Z","pushType":"pr_merge","commitsCount":9,"pusher":{"login":"kwitaszczyk","name":"Konrad Witaszczyk","path":"/kwitaszczyk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12050339?s=80&v=4"},"commit":{"message":"readelf: dump object headers\n\nIntroduce the -o flag that dumps object headers from the .object\nsection.","shortMessageHtmlLink":"readelf: dump object headers"}},{"before":"f01527876e6577c5085769bf128dba86231a922d","after":"a1d50e9652ed15221cb9714f5a70ef0c19a9b63e","ref":"refs/heads/kernel-c18n-objcopy","pushedAt":"2024-09-23T12:21:07.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"kwitaszczyk","name":"Konrad Witaszczyk","path":"/kwitaszczyk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12050339?s=80&v=4"},"commit":{"message":"readelf: dump object headers\n\nIntroduce the -o flag that dumps object headers from the .object\nsection.","shortMessageHtmlLink":"readelf: dump object headers"}},{"before":null,"after":"2de28627fba618cc94eda090268b18b39ebe7bbb","ref":"refs/heads/c18n-subobj","pushedAt":"2024-09-21T07:27:02.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dpgao","name":"Dapeng Gao","path":"/dpgao","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/31944689?s=80&v=4"},"commit":{"message":"c18n: [WIP] Prototype support for multi-library ELFs\n\nELF files created with the `objcopy -T` option, which can consist of\nmultiple shared libraries, are minimally supported.\n\nEach of the sub-libraries should have an SONAME associated with them.\nOtherwise there would be no way for libraries that depend on them to\nlocate them.","shortMessageHtmlLink":"c18n: [WIP] Prototype support for multi-library ELFs"}},{"before":"763bd940ffe5827347d5a226e0f78af3986613dd","after":"65c520ce55c1ea7b5ff35b3e3e3b7e2ca35ac56d","ref":"refs/heads/kernel-c18n","pushedAt":"2024-09-20T16:00:26.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"kwitaszczyk","name":"Konrad Witaszczyk","path":"/kwitaszczyk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12050339?s=80&v=4"},"commit":{"message":"kernel linker: narrow objects' PCC bounds\n\n* Allocate a compartment identifier for each linked object that is used\nwhen lazily instantiating a compartment;\n* Narrow the bounds of the object's base address to the object itself.","shortMessageHtmlLink":"kernel linker: narrow objects' PCC bounds"}},{"before":"c2be6dba60ba3d4f80b861c2acc90951909d604b","after":"f01527876e6577c5085769bf128dba86231a922d","ref":"refs/heads/kernel-c18n-objcopy","pushedAt":"2024-09-19T16:36:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kwitaszczyk","name":"Konrad Witaszczyk","path":"/kwitaszczyk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12050339?s=80&v=4"},"commit":{"message":"objcopy: only use PT_LOAD to calculate bounds\n\nDon't consider PT_DYNAMIC or other segments to calculate an object size\nin memory for capability bounds.","shortMessageHtmlLink":"objcopy: only use PT_LOAD to calculate bounds"}},{"before":"67993ce463cf5152f1ee46b643b4fb59ce6062a6","after":"c2be6dba60ba3d4f80b861c2acc90951909d604b","ref":"refs/heads/kernel-c18n-objcopy","pushedAt":"2024-09-19T15:13:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kwitaszczyk","name":"Konrad Witaszczyk","path":"/kwitaszczyk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12050339?s=80&v=4"},"commit":{"message":"objcopy: transplant all sections\n\nIn order to transplant selected sections, we would have to patch\n.dynamic section entries with their updated addresses/offsets.\n\nBefore this change, SHT_REL sections were not transplanted whilst\nDT_REL{,A} .dynamic entries referenced them. This resulted in a dynamic\nlinker trying to relocate symbols using different sections that were\nmapped in place of SHT_REL sections.","shortMessageHtmlLink":"objcopy: transplant all sections"}},{"before":"f188becb7eed0b46c391d488aa701f0edb0b6732","after":"57837a6111f5d4f5c8e849b93b72c40d8d26c20c","ref":"refs/heads/c18n-riscv-new","pushedAt":"2024-09-17T08:48:12.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dpgao","name":"Dapeng Gao","path":"/dpgao","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/31944689?s=80&v=4"},"commit":{"message":"c18n: Workaround CHERI-RISC-V's lack of memarg ABI","shortMessageHtmlLink":"c18n: Workaround CHERI-RISC-V's lack of memarg ABI"}},{"before":"006832903d30f0492482546688862490a8ff9aee","after":"a6bd531f022b1d04c4b6689f7eb645c42ca14421","ref":"refs/heads/c18n-ccnt","pushedAt":"2024-09-14T12:00:48.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dpgao","name":"Dapeng Gao","path":"/dpgao","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/31944689?s=80&v=4"},"commit":{"message":"c18n: Workaround CHERI-RISC-V's lack of memarg ABI","shortMessageHtmlLink":"c18n: Workaround CHERI-RISC-V's lack of memarg ABI"}},{"before":"1428329e85427a232a5d1a80cd38cce48e2761b4","after":"3b3d25b47ae931b62e8fbd2d8085992e1446cc8d","ref":"refs/heads/c18n-sigdetect","pushedAt":"2024-09-14T10:35:55.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dpgao","name":"Dapeng Gao","path":"/dpgao","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/31944689?s=80&v=4"},"commit":{"message":"c18n: Improve detection of interrupted compartment\n\nPreviously, the interrupted compartment is identified by checking\nwhether its untrusted stack is a subset of the canonical copy of that\nstack. However, this subset relation should actually be inverted, that\nis, the untrusted stack of the interrupted compartment should be a\nsuperset of the canonical stack. Otherwise, a compartment which holds a\nportion of another compartment's stack would be able to impersonate it.\n(The SW_VMEM permission on the canonical stack has to be stripped before\nthe comparison.)\n\nIn addition, a bounds-check was missing for the tail-call scenario,\nwhich might result in reading from the stack table using an invalid\nindex.\n\nAlso, the tail-call scenario cannot be ruled-out even when the\npresumptive callee's stack is not allocated---we might be interrupted\nwhen a tail-call is taking place _and_ the callee's stack is\nunallocated.","shortMessageHtmlLink":"c18n: Improve detection of interrupted compartment"}},{"before":"34c38053dcce9220b946877764c9e38d43311229","after":"f188becb7eed0b46c391d488aa701f0edb0b6732","ref":"refs/heads/c18n-riscv-new","pushedAt":"2024-09-14T04:13:48.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dpgao","name":"Dapeng Gao","path":"/dpgao","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/31944689?s=80&v=4"},"commit":{"message":"c18n: Workaround CHERI-RISC-V's lack of memarg ABI","shortMessageHtmlLink":"c18n: Workaround CHERI-RISC-V's lack of memarg ABI"}},{"before":"f34445de5cf8a39fc1d9d059b15e92978f4eb22d","after":"34c38053dcce9220b946877764c9e38d43311229","ref":"refs/heads/c18n-riscv-new","pushedAt":"2024-09-13T13:45:43.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dpgao","name":"Dapeng Gao","path":"/dpgao","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/31944689?s=80&v=4"},"commit":{"message":"c18n: Workaround CHERI-RISC-V's lack of memarg ABI","shortMessageHtmlLink":"c18n: Workaround CHERI-RISC-V's lack of memarg ABI"}},{"before":"1b19f4e5e048d1be922d7dda5600d14488ff7c2a","after":null,"ref":"refs/heads/no-map-aligned-cheri","pushedAt":"2024-09-13T13:14:34.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"bsdjhb","name":"John Baldwin","path":"/bsdjhb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8976613?s=80&v=4"}},{"before":"d2f37a3c056676d399bdf9a186f3f4f7a4e64078","after":"c3d7e5b588ea267a859d2bd50c5746deabe1ad05","ref":"refs/heads/dev","pushedAt":"2024-09-13T13:13:34.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"bsdjhb","name":"John Baldwin","path":"/bsdjhb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8976613?s=80&v=4"},"commit":{"message":"mmap: Remove support for MAP_ALIGNED_CHERI\n\nKernel reservation managment code takes care of alignment (and size)\nrounding for CheriABI binaries. Hybrid binaries that need CHERI\nalignment can, and for length must, do their own rounding in code that\nwill already be CHERI-aware.","shortMessageHtmlLink":"mmap: Remove support for MAP_ALIGNED_CHERI"}},{"before":"674ece819199b16977d293043c58243fdcd48a6b","after":null,"ref":"refs/heads/mmap-cap-prot3","pushedAt":"2024-09-13T13:11:09.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"bsdjhb","name":"John Baldwin","path":"/bsdjhb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8976613?s=80&v=4"}},{"before":"9482c03edb3da77b9075ffa63ec05c59858cfd5c","after":"d2f37a3c056676d399bdf9a186f3f4f7a4e64078","ref":"refs/heads/dev","pushedAt":"2024-09-13T13:11:05.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"bsdjhb","name":"John Baldwin","path":"/bsdjhb","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8976613?s=80&v=4"},"commit":{"message":"mmap: explicitly expose capability permissions\n\nIntroduce two new PROT_ values PROT_CAP and PROT_NO_CAP. They combine\nto allow capability permissions to be implied in unmodified code using\nPROT_READ and PROT_WRITE which allowing capability permissions to be set\nor unset explicity.\n\nIf either of PROT_CAP or PROT_NO_CAP are set, then the value of\nthe PROT_CAP flag bit defines the page protections and capability\npermissions for a given mapping.\n\nIn the underlying implementation, PROT_CAP maps to VM_PROT_READ_CAP and\nVM_PROT_WRITE_CAP depending on the values of PROT_READ and PROT_WRITE.\nPROT_NO_CAP maps to a new VM_PROT_NO_IMPLY_CAP. VM_PROT_NO_IMPLY_CAP\nis used transiently in fo_mmap implementations to avoid accidently\nadding capability permission and is also added to vm_entry's\nmax_protection to allow superset tests to succeed when reducing\ncapability permissions on a mapping via mmap or mprotect.","shortMessageHtmlLink":"mmap: explicitly expose capability permissions"}},{"before":"2c3b1edea1d21ec39261618f7c93ee4fc72fb838","after":"763bd940ffe5827347d5a226e0f78af3986613dd","ref":"refs/heads/kernel-c18n","pushedAt":"2024-09-13T12:21:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kwitaszczyk","name":"Konrad Witaszczyk","path":"/kwitaszczyk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12050339?s=80&v=4"},"commit":{"message":"kernel linker: read program headers from mutliple pages\n\nAllow at most 100 objects to be linked into a multi-object kernel\nmodule. Limit the number of allowed program headers accordingly to the\nlimit of objects. Since the maximum of number program headers can exceed\na single page, allocate as many pagea as necessary to store all program\nheaders.\n\nOnce we start experimenting with the multi-object/partition kernel\nbinary, the number of objects will exceed 1,700 and we will have to\nchange this logic to read program headers sequentially rather than all\nat once not to allocate a huge number of pages.","shortMessageHtmlLink":"kernel linker: read program headers from mutliple pages"}},{"before":"40be92c9d617afa7fd9c32ce2b657716e279f614","after":"2c3b1edea1d21ec39261618f7c93ee4fc72fb838","ref":"refs/heads/kernel-c18n","pushedAt":"2024-09-13T12:16:46.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"kwitaszczyk","name":"Konrad Witaszczyk","path":"/kwitaszczyk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12050339?s=80&v=4"},"commit":{"message":"conf/kmod.mk: introduce KMODMO\n\nA kernel module with KMODMO set to YES is compiled into a multi-object\nkernel module.\n\nThe wrapper script tools/ld_mo.sh links each object file into a kernel\nmodule. After processing object files, the script merges them into a\nsingle multi-object kernel module.","shortMessageHtmlLink":"conf/kmod.mk: introduce KMODMO"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0yN1QwNDoyODoyOS4wMDAwMDBazwAAAATCMICA","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xM1QxMjoxNjo0Ni4wMDAwMDBazwAAAAS1cwzC"}},"title":"Activity ยท CTSRD-CHERI/cheribsd"}