<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in Makefile.aarch64</title>
    <link>http://nxr.netbsd.org/rss/src/sys/arch/aarch64/conf/Makefile.aarch64</link>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2005</copyright>
    <generator>Java</generator>
    
<item>
    <title>Simplify fix for PR toolchain/57146<br/><br/>Introduce ARCH_STRIP_SYMBOLS variable to centralize logic for debug<br/>symbols from MD Makefile's to Makefile.kern.inc.</title>
    <description>/src/sys/arch/aarch64/conf/Makefile.aarch64 - 1.25</description>
    <pubDate>Fri Jul 28 02:41:30 UTC 2023</pubDate>
    <dc:creator>rin</dc:creator>
</item>

<item>
    <title>Fix kernel size inflation for arm and aarch64 (PR toolchain/57146)<br/><br/>For some conditions, SYSTEM_LD_TAIL is set for arm and aarch64.<br/>Then, ctfmerge(1) in default SYSTEM_LD_TAIL is unintentionally<br/>skipped, which results in the catastrophic kernel size inflation,<br/>as reported in the PR.<br/><br/>Also, introduce and use OBJCOPY_STRIPFLAGS variable instead of<br/>STRIPFLAGS, as strip(1) is replaced by objcopy(1) during MI<br/>kernel build procedure.<br/><br/>XXX<br/>For Makefile.{arm,aarch64}, weird logic is used to determine how<br/>to handle debug symbols; MKDEBUG{,KERNEL} are taken into account<br/>later in sys/conf/Makefile.kern.inc.</title>
    <description>/src/sys/arch/aarch64/conf/Makefile.aarch64 - 1.24</description>
    <pubDate>Wed Jul 26 03:39:55 UTC 2023</pubDate>
    <dc:creator>rin</dc:creator>
</item>

<item>
    <title>branches:  1.23.12;<br/>In gcc10, -msign-return-address is no longer supported.<br/>Instead, (LLVM-compatible) -mbranch-protection option is supported.</title>
    <description>/src/sys/arch/aarch64/conf/Makefile.aarch64 - 1.23</description>
    <pubDate>Thu May 27 06:19:38 UTC 2021</pubDate>
    <dc:creator>ryo</dc:creator>
</item>

<item>
    <title>branches:  1.22.4;  1.22.6;<br/>add support kernel profiling on aarch64<br/><br/>- add MCOUNT_ENTER, MCOUNT_EXIT macro<br/>- __mcount() function should be aligned<br/>- add "-fno-optimize-sibling-calls" option when PROF. for accurate profiling, it is better to suppress the tail call.</title>
    <description>/src/sys/arch/aarch64/conf/Makefile.aarch64 - 1.22</description>
    <pubDate>Wed Feb 10 08:25:01 UTC 2021</pubDate>
    <dc:creator>ryo</dc:creator>
</item>

<item>
    <title>branches:  1.21.2;<br/>"options ARMV83_PAC" is now supported for gcc as well.<br/><br/>- add "-msign-return-address=all" to CFLAGS for gcc when specified options ARMV83_PAC<br/>- AARCH64REG_{READ,WRITE}_INLINE3 macro can now use the APIAKey registers in both gcc and llvm.<br/>  llvm requires asm(".arch armv8.3-a"), whereas gcc requires __attribute__((target("arch=armv8.3-a"))).<br/>- use ".arch armv8.3-a" rather than ".arch armv8.3-a+pac" in *.S for llvm.</title>
    <description>/src/sys/arch/aarch64/conf/Makefile.aarch64 - 1.21</description>
    <pubDate>Mon May 11 03:00:57 UTC 2020</pubDate>
    <dc:creator>ryo</dc:creator>
</item>

<item>
    <title>Add KASAN instrumentation on on-stack VLAs, same as amd64.</title>
    <description>/src/sys/arch/aarch64/conf/Makefile.aarch64 - 1.20</description>
    <pubDate>Mon Apr 13 07:32:36 UTC 2020</pubDate>
    <dc:creator>maxv</dc:creator>
</item>

<item>
    <title>Add support for Branch Target Identification (BTI).<br/><br/>On the executable pages that have the GP (Guarded Page) bit, the semantic<br/>of the "br" and "blr" instructions is changed: the CPU expects the first<br/>instruction of the jump/call target to be "bti", and faults if it isn't.<br/><br/>We add the GP bit on the kernel .text pages (and incidentally the .rodata<br/>pages, but we don't care). The compiler adds a "bti c" instruction at the<br/>beginning of each C function. We modify the ENTRY() macros to manually add<br/>"bti c" in the asm functions.<br/><br/>cpuswitch.S needs a specific change: with "br x27" the CPU expects "bti j",<br/>which is bad because the functions begin with "bti c"; switch to "br x16",<br/>for the CPU to accept "bti c".<br/><br/>BTI helps defend against JOP/COP. Tested on Qemu.</title>
    <description>/src/sys/arch/aarch64/conf/Makefile.aarch64 - 1.19</description>
    <pubDate>Mon Apr 13 05:40:25 UTC 2020</pubDate>
    <dc:creator>maxv</dc:creator>
</item>

<item>
    <title>Add support for Pointer Authentication (PAC).<br/><br/>We use the "pac-ret" option, to sign the return instruction pointer on<br/>function entry, and authenticate it on function exit. This acts as a<br/>mitigation against ROP.<br/><br/>The authentication uses a per-lwp (secret) I-A key stored in the 128bit<br/>APIAKey register and part of the lwp context. During lwp creation, the<br/>kernel generates a random key, and during context switches, it installs<br/>the key of the target lwp on the CPU.<br/><br/>Userland cannot read the APIAKey register directly. However, it can sign<br/>its pointers with it, because the register is architecturally shared<br/>between userland and the kernel. Although part of the CPU design, it is<br/>a bit of an undesired behavior, because it allows to forge valid kernel<br/>pointers from userland. To avoid that, we don't share the key with<br/>userland, and rather switch it in EL0&lt;-&gt;EL1 transitions. This means that<br/>when userland executes, a different key is loaded in APIAKey than the one<br/>the kernel uses. For now the userland key is a fixed 128bit zero value.<br/><br/>The DDB stack unwinder is changed to strip the authentication code from<br/>the pointers in lr.<br/><br/>Two problems are known:<br/><br/> * Currently the idlelwps' keys are not really secret. This is because<br/>   the RNG is not yet available when we spawn these lwps. Not overly<br/>   important, but would be nice to fix with UEFI RNG.<br/> * The key switching in EL0&lt;-&gt;EL1 transitions is not the most optimized<br/>   code on the planet. Instead of checking aarch64_pac_enabled, it would<br/>   be better to hot-patch the code at boot time, but there currently is<br/>   no hot-patch support on aarch64.<br/><br/>Tested on Qemu.</title>
    <description>/src/sys/arch/aarch64/conf/Makefile.aarch64 - 1.18</description>
    <pubDate>Sun Apr 12 07:49:58 UTC 2020</pubDate>
    <dc:creator>maxv</dc:creator>
</item>

<item>
    <title>branches:  1.17.2;<br/>change kernel vm base address to use more than 256GB of memory. (up to 64TB)<br/><br/>also enlarge KSEG(direct map) region from 512GB to 64TB.<br/>KASAN works ok.<br/><br/>Note: -fasan-shadow-offset=<br/>      KASAN_SHADOW_START - (CANONICAL_BASE &gt;&gt; 3) =<br/>      0xFFFF400000000000 - (0xFFFF000000000000 &gt;&gt; 3) =<br/>      0xDFFF600000000000</title>
    <description>/src/sys/arch/aarch64/conf/Makefile.aarch64 - 1.17</description>
    <pubDate>Wed Mar 04 19:28:04 UTC 2020</pubDate>
    <dc:creator>ryo</dc:creator>
</item>

<item>
    <title>Fix alignment of .text section by changing load address to<br/>0xffffffc000000000 and adding 64 bytes of padding before the entry point.</title>
    <description>/src/sys/arch/aarch64/conf/Makefile.aarch64 - 1.16</description>
    <pubDate>Wed Dec 04 11:24:31 UTC 2019</pubDate>
    <dc:creator>jmcneill</dc:creator>
</item>

<item>
    <title>branches:  1.15.4;<br/>Add KASAN use-after-scope detection in aarch64, tested by Ryo Shimizu,<br/>thanks.</title>
    <description>/src/sys/arch/aarch64/conf/Makefile.aarch64 - 1.15</description>
    <pubDate>Sun Mar 03 07:04:40 UTC 2019</pubDate>
    <dc:creator>maxv</dc:creator>
</item>

<item>
    <title>Track the stack with kASan on aarch64. Same principle as on amd64. Illegal<br/>accesses occurring there are now detected.<br/><br/>Originally written by me, but reworked by ryo@, thanks.</title>
    <description>/src/sys/arch/aarch64/conf/Makefile.aarch64 - 1.14</description>
    <pubDate>Thu Nov 08 08:28:07 UTC 2018</pubDate>
    <dc:creator>maxv</dc:creator>
</item>

<item>
    <title>Add kASan support for aarch64. Stack tracking needs more investigation<br/>and will come in a separate commit.<br/><br/>Reviewed by ryo@ jmcneill@ skrll@.</title>
    <description>/src/sys/arch/aarch64/conf/Makefile.aarch64 - 1.13</description>
    <pubDate>Thu Nov 01 20:34:49 UTC 2018</pubDate>
    <dc:creator>maxv</dc:creator>
</item>

<item>
    <title>- Determine KERN_AS automatically depending on whether OPT_MODULAR is<br/>  set or not, in the same way as libcompat.<br/><br/>- Specify OPT_MODULAR in the port Makefile instead of KERN_AS.<br/><br/>Now, KERN_AS=library is used for kernels without module(7) for all ports.<br/><br/>OK christos</title>
    <description>/src/sys/arch/aarch64/conf/Makefile.aarch64 - 1.12</description>
    <pubDate>Sat Sep 22 00:24:01 UTC 2018</pubDate>
    <dc:creator>rin</dc:creator>
</item>

<item>
    <title>s/A64/ARM/<br/><br/>no functional change</title>
    <description>/src/sys/arch/aarch64/conf/Makefile.aarch64 - 1.11</description>
    <pubDate>Fri Sep 14 08:51:06 UTC 2018</pubDate>
    <dc:creator>skrll</dc:creator>
</item>

<item>
    <title>branches:  1.10.2;<br/>locore.S is a MD_SFILES.<br/><br/>This keeps the dependency handling in the loop, so rebuilds after<br/>changing options, say EARLYCONS, don't fail.</title>
    <description>/src/sys/arch/aarch64/conf/Makefile.aarch64 - 1.10</description>
    <pubDate>Sat Jun 23 01:51:03 UTC 2018</pubDate>
    <dc:creator>jakllsch</dc:creator>
</item>

<item>
    <title>Add initial support for ARMv8 (AARCH64) (by nisimura@ and ryo@)<br/><br/>- sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. (by skrll@)<br/>- add support fdt. evbarm/conf/GENERIC64 fdt (bcm2837,sunxi,tegra) based generic 64bit kernel config. (by skrll@, jmcneill@)</title>
    <description>/src/sys/arch/aarch64/conf/Makefile.aarch64 - 1.9</description>
    <pubDate>Sun Apr 01 04:35:03 UTC 2018</pubDate>
    <dc:creator>ryo</dc:creator>
</item>

<item>
    <title>branches:  1.8.2;<br/>- Allow multiple .BEGIN targets<br/>- Make their protection consistent</title>
    <description>/src/sys/arch/aarch64/conf/Makefile.aarch64 - 1.8</description>
    <pubDate>Sun Dec 10 14:29:47 UTC 2017</pubDate>
    <dc:creator>christos</dc:creator>
</item>

<item>
    <title>Fix config(1) errors and warnings.<br/><br/>Set up arm headers for the build.</title>
    <description>/src/sys/arch/aarch64/conf/Makefile.aarch64 - 1.7</description>
    <pubDate>Thu May 05 21:14:14 UTC 2016</pubDate>
    <dc:creator>rjs</dc:creator>
</item>

<item>
    <title>Define ${LINKSCRIPT} in one place.</title>
    <description>/src/sys/arch/aarch64/conf/Makefile.aarch64 - 1.6</description>
    <pubDate>Mon Aug 24 14:04:24 UTC 2015</pubDate>
    <dc:creator>uebayasi</dc:creator>
</item>
</channel></rss>

