<?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</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>e20ab7d4 - LoongArch: Enable jump table for objtool</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/loongarch/Makefile#e20ab7d4</link>
        <description>LoongArch: Enable jump table for objtoolFor now, it is time to remove -fno-jump-tables to enable jump table forobjtool if the compiler has -mannotate-tablejump, otherwise it is betterto remain -fno-jump-tables to keep compatibility with older compilers.Signed-off-by: Tiezhu Yang &lt;yangtiezhu@loongson.cn&gt;Link: https://lore.kernel.org/r/20241217010905.13054-8-yangtiezhu@loongson.cnAcked-by: Huacai Chen &lt;chenhuacai@loongson.cn&gt;Signed-off-by: Josh Poimboeuf &lt;jpoimboe@kernel.org&gt;

            List of files:
            /linux-6.15/arch/loongarch/Makefile</description>
        <pubDate>Tue, 17 Dec 2024 01:09:03 +0000</pubDate>
        <dc:creator>Tiezhu Yang &lt;yangtiezhu@loongson.cn&gt;</dc:creator>
    </item>
<item>
        <title>e67e0eb6 - LoongArch: Explicitly specify code model in Makefile</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/loongarch/Makefile#e67e0eb6</link>
        <description>LoongArch: Explicitly specify code model in MakefileLoongArch&apos;s toolchain may change the default code model from normal tomedium. This is unnecessary for kernel, and generates some relocationswhich cannot be handled by the module loader. So explicitly specify thecode model to normal in Makefile (for Rust &apos;normal&apos; is &apos;small&apos;).Cc: stable@vger.kernel.orgTested-by: Haiyong Sun &lt;sunhaiyong@loongson.cn&gt;Signed-off-by: Huacai Chen &lt;chenhuacai@loongson.cn&gt;

            List of files:
            /linux-6.15/arch/loongarch/Makefile</description>
        <pubDate>Fri, 22 Nov 2024 07:47:47 +0000</pubDate>
        <dc:creator>Huacai Chen &lt;chenhuacai@loongson.cn&gt;</dc:creator>
    </item>
<item>
        <title>0d3a6322 - LoongArch: Use rustc option -Zdirect-access-external-data</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/loongarch/Makefile#0d3a6322</link>
        <description>LoongArch: Use rustc option -Zdirect-access-external-data-Zdirect-access-external-data is a new Rust compiler option added inRust 1.78, which we use to optimize the access of external data in theLinux kernel&apos;s Rust code. This patch modifies the Rust code in vmlinuxto directly access externa data, using PC-REL instead of GOT. However,Rust code whithin modules is constrained by the PC-REL addressing rangeand is explicitly set to use an indirect method.Acked-by: Miguel Ojeda &lt;ojeda@kernel.org&gt;Signed-off-by: WANG Rui &lt;wangrui@loongson.cn&gt;Signed-off-by: Huacai Chen &lt;chenhuacai@loongson.cn&gt;

            List of files:
            /linux-6.15/arch/loongarch/Makefile</description>
        <pubDate>Sat, 20 Jul 2024 14:41:07 +0000</pubDate>
        <dc:creator>WANG Rui &lt;wangrui@loongson.cn&gt;</dc:creator>
    </item>
<item>
        <title>372f6623 - LoongArch: implement ARCH_HAS_KERNEL_FPU_SUPPORT</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/loongarch/Makefile#372f6623</link>
        <description>LoongArch: implement ARCH_HAS_KERNEL_FPU_SUPPORTLoongArch already provides kernel_fpu_begin() and kernel_fpu_end() inasm/fpu.h, so it only needs to add kernel_fpu_available() and export theCFLAGS adjustments.Link: https://lkml.kernel.org/r/20240329072441.591471-8-samuel.holland@sifive.comSigned-off-by: Samuel Holland &lt;samuel.holland@sifive.com&gt;Acked-by: WANG Xuerui &lt;git@xen0n.name&gt;Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;Acked-by: Christian K&#246;nig &lt;christian.koenig@amd.com&gt; Cc: Alex Deucher &lt;alexander.deucher@amd.com&gt;Cc: Borislav Petkov (AMD) &lt;bp@alien8.de&gt;Cc: Catalin Marinas &lt;catalin.marinas@arm.com&gt;Cc: Dave Hansen &lt;dave.hansen@linux.intel.com&gt;Cc: Huacai Chen &lt;chenhuacai@kernel.org&gt;Cc: Ingo Molnar &lt;mingo@redhat.com&gt;Cc: Jonathan Corbet &lt;corbet@lwn.net&gt;Cc: Masahiro Yamada &lt;masahiroy@kernel.org&gt;Cc: Michael Ellerman &lt;mpe@ellerman.id.au&gt;Cc: Nathan Chancellor &lt;nathan@kernel.org&gt;Cc: Nicolas Schier &lt;nicolas@fjasle.eu&gt;Cc: Palmer Dabbelt &lt;palmer@rivosinc.com&gt;Cc: Russell King &lt;linux@armlinux.org.uk&gt;Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;Cc: Will Deacon &lt;will@kernel.org&gt;Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;

            List of files:
            /linux-6.15/arch/loongarch/Makefile</description>
        <pubDate>Fri, 29 Mar 2024 07:18:22 +0000</pubDate>
        <dc:creator>Samuel Holland &lt;samuel.holland@sifive.com&gt;</dc:creator>
    </item>
<item>
        <title>8f8d74ee - LoongArch: rust: Switch to use built-in rustc target</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/loongarch/Makefile#8f8d74ee</link>
        <description>LoongArch: rust: Switch to use built-in rustc targetThis commit switches to use the LoongArch&apos;s built-in rustc target&apos;loongarch64-unknown-none-softfloat&apos;. The Rust samples have been tested.Acked-by: Miguel Ojeda &lt;ojeda@kernel.org&gt;Tested-by: Miguel Ojeda &lt;ojeda@kernel.org&gt;Signed-off-by: WANG Rui &lt;wangrui@loongson.cn&gt;Signed-off-by: Huacai Chen &lt;chenhuacai@loongson.cn&gt;

            List of files:
            /linux-6.15/arch/loongarch/Makefile</description>
        <pubDate>Tue, 14 May 2024 04:24:18 +0000</pubDate>
        <dc:creator>WANG Rui &lt;wangrui@loongson.cn&gt;</dc:creator>
    </item>
<item>
        <title>cb8a2ef0 - LoongArch: Add ORC stack unwinder support</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/loongarch/Makefile#cb8a2ef0</link>
        <description>LoongArch: Add ORC stack unwinder supportThe kernel CONFIG_UNWINDER_ORC option enables the ORC unwinder, which issimilar in concept to a DWARF unwinder. The difference is that the formatof the ORC data is much simpler than DWARF, which in turn allows the ORCunwinder to be much simpler and faster.The ORC data consists of unwind tables which are generated by objtool.After analyzing all the code paths of a .o file, it determines informationabout the stack state at each instruction address in the file and outputsthat information to the .orc_unwind and .orc_unwind_ip sections.The per-object ORC sections are combined at link time and are sorted andpost-processed at boot time. The unwinder uses the resulting data tocorrelate instruction addresses with their stack states at run time.Most of the logic are similar with x86, in order to get ra info before rais saved into stack, add ra_reg and ra_offset into orc_entry. At the sametime, modify some arch-specific code to silence the objtool warnings.Co-developed-by: Jinyang He &lt;hejinyang@loongson.cn&gt;Signed-off-by: Jinyang He &lt;hejinyang@loongson.cn&gt;Co-developed-by: Youling Tang &lt;tangyouling@loongson.cn&gt;Signed-off-by: Youling Tang &lt;tangyouling@loongson.cn&gt;Signed-off-by: Tiezhu Yang &lt;yangtiezhu@loongson.cn&gt;Signed-off-by: Huacai Chen &lt;chenhuacai@loongson.cn&gt;

            List of files:
            /linux-6.15/arch/loongarch/Makefile</description>
        <pubDate>Mon, 11 Mar 2024 14:23:47 +0000</pubDate>
        <dc:creator>Tiezhu Yang &lt;yangtiezhu@loongson.cn&gt;</dc:creator>
    </item>
<item>
        <title>f82811e2 - rust: Refactor the build target to allow the use of builtin targets</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/loongarch/Makefile#f82811e2</link>
        <description>rust: Refactor the build target to allow the use of builtin targetsEventually we want all architectures to be using the target as definedby rustc. However currently some architectures can&apos;t do that and areusing the target.json specification. This puts in place the foundationto allow the use of the builtin target definition or a target.jsonspecification.Signed-off-by: Jamie Cunliffe &lt;Jamie.Cunliffe@arm.com&gt;Acked-by: Masahiro Yamada &lt;masahiroy@kernel.org&gt;Tested-by: Alice Ryhl &lt;aliceryhl@google.com&gt;Link: https://lore.kernel.org/r/20231020155056.3495121-2-Jamie.Cunliffe@arm.com[catalin.marinas@arm.com: squashed loongarch ifneq fix from WANG Rui]Signed-off-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;

            List of files:
            /linux-6.15/arch/loongarch/Makefile</description>
        <pubDate>Fri, 20 Oct 2023 15:50:55 +0000</pubDate>
        <dc:creator>Jamie Cunliffe &lt;Jamie.Cunliffe@arm.com&gt;</dc:creator>
    </item>
<item>
        <title>5f346a6e - LoongArch: Allow device trees be built into the kernel</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/loongarch/Makefile#5f346a6e</link>
        <description>LoongArch: Allow device trees be built into the kernelDuring the upstream progress of those DT-based drivers, DT propertiesare changed a lot so very different from those in existing bootloaders.It is inevitably that some existing systems do not provide a standard,canonical device tree to the kernel at boot time. So let&apos;s provide adevice tree table in the kernel, keyed by the dts filename, containingthe relevant DTBs.We can use the built-in dts files as references. Each SoC has only onebuilt-in dts file which describes all possible device information ofthat SoC, so the dts files are good examples during development.And as a reference, our built-in dts file only enables the most basicbootable combinations (so it is generic enough), acts as an alternativein case the dts in the bootloader is unexpected.Signed-off-by: Binbin Zhou &lt;zhoubinbin@loongson.cn&gt;Signed-off-by: Huacai Chen &lt;chenhuacai@loongson.cn&gt;

            List of files:
            /linux-6.15/arch/loongarch/Makefile</description>
        <pubDate>Wed, 17 Jan 2024 04:43:00 +0000</pubDate>
        <dc:creator>Binbin Zhou &lt;zhoubinbin@loongson.cn&gt;</dc:creator>
    </item>
<item>
        <title>90868ff9 - LoongArch: Enable initial Rust support</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/loongarch/Makefile#90868ff9</link>
        <description>LoongArch: Enable initial Rust supportEnable initial Rust support for LoongArch.Tested-by: Miguel Ojeda &lt;ojeda@kernel.org&gt;Signed-off-by: WANG Rui &lt;wangrui@loongson.cn&gt;Signed-off-by: Huacai Chen &lt;chenhuacai@loongson.cn&gt;

            List of files:
            /linux-6.15/arch/loongarch/Makefile</description>
        <pubDate>Wed, 17 Jan 2024 04:43:00 +0000</pubDate>
        <dc:creator>WANG Rui &lt;wangrui@loongson.cn&gt;</dc:creator>
    </item>
<item>
        <title>eea673e9 - LoongArch: Apply dynamic relocations for LLD</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/loongarch/Makefile#eea673e9</link>
        <description>LoongArch: Apply dynamic relocations for LLDFor the following assembly code:     .text     .global func func:     nop     .data var:     .dword funcWhen linked with `-pie`, GNU LD populates the `var` variable with thepre-relocated value of `func`. However, LLVM LLD does not exhibit thesame behavior. This issue also arises with the `kernel_entry` in arch/loongarch/kernel/head.S: _head:     .word   MZ_MAGIC                /* &quot;MZ&quot;, MS-DOS header */     .org    0x8     .dword  kernel_entry            /* Kernel entry point */The correct kernel entry from the MS-DOS header is crucial for jumpingto vmlinux from zboot. This necessity is why the compressed relocatablekernel compiled by Clang encounters difficulties in booting.To address this problem, it is proposed to apply dynamic relocations toplace with `--apply-dynamic-relocs`.Link: https://github.com/ClangBuiltLinux/linux/issues/1962Signed-off-by: WANG Rui &lt;wangrui@loongson.cn&gt;Signed-off-by: Huacai Chen &lt;chenhuacai@loongson.cn&gt;

            List of files:
            /linux-6.15/arch/loongarch/Makefile</description>
        <pubDate>Sat, 09 Dec 2023 07:49:15 +0000</pubDate>
        <dc:creator>WANG Rui &lt;wangrui@loongson.cn&gt;</dc:creator>
    </item>
<item>
        <title>cbfd44bd - LoongArch: Explicitly set -fdirect-access-external-data for vmlinux</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/loongarch/Makefile#cbfd44bd</link>
        <description>LoongArch: Explicitly set -fdirect-access-external-data for vmlinuxAfter this llvm commit [1], The -fno-pic does not imply direct accessexternal data. Explicitly set -fdirect-access-external-data for vmlinuxthat can avoids GOT entries.Link: https://github.com/llvm/llvm-project/commit/47eeee297775347cbdb7624d6a766c2a3eec4a59Suggested-by: Xi Ruoyao &lt;xry111@xry111.site&gt;Signed-off-by: WANG Rui &lt;wangrui@loongson.cn&gt;Signed-off-by: Huacai Chen &lt;chenhuacai@loongson.cn&gt;

            List of files:
            /linux-6.15/arch/loongarch/Makefile</description>
        <pubDate>Tue, 21 Nov 2023 07:03:25 +0000</pubDate>
        <dc:creator>WANG Rui &lt;wangrui@loongson.cn&gt;</dc:creator>
    </item>
<item>
        <title>d3ec75bc - LoongArch: Add dependency between vmlinuz.efi and vmlinux.efi</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/loongarch/Makefile#d3ec75bc</link>
        <description>LoongArch: Add dependency between vmlinuz.efi and vmlinux.efiA common issue in Makefile is a race in parallel building.You need to be careful to prevent multiple threads from writing to thesame file simultaneously.Commit 3939f3345050 (&quot;ARM: 8418/1: add boot image dependencies to notgenerate invalid images&quot;) addressed such a bad scenario.A similar symptom occurs with the following command:  $ make -j$(nproc) ARCH=loongarch vmlinux.efi vmlinuz.efi    [ snip ]    SORTTAB vmlinux    OBJCOPY arch/loongarch/boot/vmlinux.efi    OBJCOPY arch/loongarch/boot/vmlinux.efi    PAD     arch/loongarch/boot/vmlinux.bin    GZIP    arch/loongarch/boot/vmlinuz    OBJCOPY arch/loongarch/boot/vmlinuz.o    LD      arch/loongarch/boot/vmlinuz.efi.elf    OBJCOPY arch/loongarch/boot/vmlinuz.efiThe log &quot;OBJCOPY arch/loongarch/boot/vmlinux.efi&quot; is displayed twice.It indicates that two threads simultaneously enter arch/loongarch/boot/and write to arch/loongarch/boot/vmlinux.efi.It occasionally leads to a build failure:  $ make -j$(nproc) ARCH=loongarch vmlinux.efi vmlinuz.efi    [ snip ]    SORTTAB vmlinux    OBJCOPY arch/loongarch/boot/vmlinux.efi    PAD     arch/loongarch/boot/vmlinux.bin  truncate: Invalid number: &#8216;arch/loongarch/boot/vmlinux.bin&#8217;  make[2]: *** [drivers/firmware/efi/libstub/Makefile.zboot:13:  arch/loongarch/boot/vmlinux.bin] Error 1  make[2]: *** Deleting file &apos;arch/loongarch/boot/vmlinux.bin&apos;  make[1]: *** [arch/loongarch/Makefile:146: vmlinuz.efi] Error 2  make[1]: *** Waiting for unfinished jobs....  make: *** [Makefile:234: __sub-make] Error 2vmlinuz.efi depends on vmlinux.efi, but such a dependency is notspecified in arch/loongarch/Makefile.Signed-off-by: Masahiro Yamada &lt;masahiroy@kernel.org&gt;Signed-off-by: Huacai Chen &lt;chenhuacai@loongson.cn&gt;

            List of files:
            /linux-6.15/arch/loongarch/Makefile</description>
        <pubDate>Tue, 21 Nov 2023 07:03:25 +0000</pubDate>
        <dc:creator>Masahiro Yamada &lt;masahiroy@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>21eb2bfe - LoongArch: Disable module from accessing external data directly</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/loongarch/Makefile#21eb2bfe</link>
        <description>LoongArch: Disable module from accessing external data directlyThe distance between vmlinux and the module is too far so that PC-RELcannot be accessed directly, only GOT.When compiling module with GCC, the option `-mdirect-extern-access` isdisabled by default. The Clang option `-fdirect-access-external-data` isenabled by default, so it needs to be explicitly disabled.Signed-off-by: WANG Rui &lt;wangrui@loongson.cn&gt;Signed-off-by: Huacai Chen &lt;chenhuacai@loongson.cn&gt;

            List of files:
            /linux-6.15/arch/loongarch/Makefile</description>
        <pubDate>Wed, 08 Nov 2023 06:12:07 +0000</pubDate>
        <dc:creator>WANG Rui &lt;wangrui@loongson.cn&gt;</dc:creator>
    </item>
<item>
        <title>56769ba4 - kbuild: unify vdso_install rules</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/loongarch/Makefile#56769ba4</link>
        <description>kbuild: unify vdso_install rulesCurrently, there is no standard implementation for vdso_install,leading to various issues: 1. Code duplication    Many architectures duplicate similar code just for copying files    to the install destination.    Some architectures (arm, sparc, x86) create build-id symlinks,    introducing more code duplication. 2. Unintended updates of in-tree build artifacts    The vdso_install rule depends on the vdso files to install.    It may update in-tree build artifacts. This can be problematic,    as explained in commit 19514fc665ff (&quot;arm, kbuild: make    &quot;make install&quot; not depend on vmlinux&quot;). 3. Broken code in some architectures    Makefile code is often copied from one architecture to another    without proper adaptation.    &apos;make vdso_install&apos; for parisc does not work.    &apos;make vdso_install&apos; for s390 installs vdso64, but not vdso32.To address these problems, this commit introduces a generic vdso_installrule.Architectures that support vdso_install need to define vdso-install-yin arch/*/Makefile. vdso-install-y lists the files to install.For example, arch/x86/Makefile looks like this:  vdso-install-$(CONFIG_X86_64)           += arch/x86/entry/vdso/vdso64.so.dbg  vdso-install-$(CONFIG_X86_X32_ABI)      += arch/x86/entry/vdso/vdsox32.so.dbg  vdso-install-$(CONFIG_X86_32)           += arch/x86/entry/vdso/vdso32.so.dbg  vdso-install-$(CONFIG_IA32_EMULATION)   += arch/x86/entry/vdso/vdso32.so.dbgThese files will be installed to $(MODLIB)/vdso/ with the .dbg suffix,if exists, stripped away.vdso-install-y can optionally take the second field after the colonseparator. This is needed because some architectures install a vdsofile as a different base name.The following is a snippet from arch/arm64/Makefile.  vdso-install-$(CONFIG_COMPAT_VDSO)      += arch/arm64/kernel/vdso32/vdso.so.dbg:vdso32.soThis will rename vdso.so.dbg to vdso32.so during installation. If sucharchitectures change their implementation so that the base names match,this workaround will go away.Signed-off-by: Masahiro Yamada &lt;masahiroy@kernel.org&gt;Acked-by: Sven Schnelle &lt;svens@linux.ibm.com&gt; # s390Reviewed-by: Nicolas Schier &lt;nicolas@fjasle.eu&gt;Reviewed-by: Guo Ren &lt;guoren@kernel.org&gt;Acked-by: Helge Deller &lt;deller@gmx.de&gt;  # pariscAcked-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;Acked-by: Russell King (Oracle) &lt;rmk+kernel@armlinux.org.uk&gt;

            List of files:
            /linux-6.15/arch/loongarch/Makefile</description>
        <pubDate>Sat, 14 Oct 2023 10:54:35 +0000</pubDate>
        <dc:creator>Masahiro Yamada &lt;masahiroy@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>5aa4ac64 - LoongArch: Add KASAN (Kernel Address Sanitizer) support</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/loongarch/Makefile#5aa4ac64</link>
        <description>LoongArch: Add KASAN (Kernel Address Sanitizer) support1/8 of kernel addresses reserved for shadow memory. But for LoongArch,There are a lot of holes between different segments and valid addressspace (256T available) is insufficient to map all these segments to kasanshadow memory with the common formula provided by kasan core, saying(addr &gt;&gt; KASAN_SHADOW_SCALE_SHIFT) + KASAN_SHADOW_OFFSETSo LoongArch has a arch-specific mapping formula, different segments aremapped individually, and only limited space lengths of these specificsegments are mapped to shadow.At early boot stage the whole shadow region populated with just onephysical page (kasan_early_shadow_page). Later, this page is reused asreadonly zero shadow for some memory that kasan currently don&apos;t track.After mapping the physical memory, pages for shadow memory are allocatedand mapped.Functions like memset()/memcpy()/memmove() do a lot of memory accesses.If bad pointer passed to one of these function it is important to becaught. Compiler&apos;s instrumentation cannot do this since these functionsare written in assembly.KASan replaces memory functions with manually instrumented variants.Original functions declared as weak symbols so strong definitions inmm/kasan/kasan.c could replace them. Original functions have aliaseswith &apos;__&apos; prefix in names, so we could call non-instrumented variantif needed.Signed-off-by: Qing Zhang &lt;zhangqing@loongson.cn&gt;Signed-off-by: Huacai Chen &lt;chenhuacai@loongson.cn&gt;

            List of files:
            /linux-6.15/arch/loongarch/Makefile</description>
        <pubDate>Wed, 06 Sep 2023 14:54:16 +0000</pubDate>
        <dc:creator>Qing Zhang &lt;zhangqing@loongson.cn&gt;</dc:creator>
    </item>
<item>
        <title>3f301dc2 - LoongArch: Replace -ffreestanding with finer-grained -fno-builtin&apos;s</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/loongarch/Makefile#3f301dc2</link>
        <description>LoongArch: Replace -ffreestanding with finer-grained -fno-builtin&apos;sAs explained by Nick in the original issue: the kernel usually does agood job of providing library helpers that have similar semantics astheir ordinary userspace libc equivalents, but -ffreestanding disablessuch libcall optimization and other related features in the compiler,which can lead to unexpected things such as CONFIG_FORTIFY_SOURCE notworking (!).However, due to the desire for better control over unaligned accesseswith respect to CONFIG_ARCH_STRICT_ALIGN, and also for avoiding theGCC bug https://gcc.gnu.org/PR109465, we do want to still disableoptimizations for the memory libcalls (memcpy, memmove and memset fornow). Use finer-grained -fno-builtin-* toggles to achieve this withoutlosing source fortification and other libcall optimizations.Closes: https://github.com/ClangBuiltLinux/linux/issues/1897Reported-by: Nathan Chancellor &lt;nathan@kernel.org&gt;Suggested-by: Nick Desaulniers &lt;ndesaulniers@google.com&gt;Signed-off-by: WANG Xuerui &lt;git@xen0n.name&gt;Signed-off-by: Huacai Chen &lt;chenhuacai@loongson.cn&gt;

            List of files:
            /linux-6.15/arch/loongarch/Makefile</description>
        <pubDate>Fri, 25 Aug 2023 15:40:26 +0000</pubDate>
        <dc:creator>WANG Xuerui &lt;git@xen0n.name&gt;</dc:creator>
    </item>
<item>
        <title>03c53eb9 - LoongArch: Fix module relocation error with binutils 2.41</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/loongarch/Makefile#03c53eb9</link>
        <description>LoongArch: Fix module relocation error with binutils 2.41Binutils 2.41 enables linker relaxation by default, but the kernelmodule loader doesn&apos;t support that, so just disable it. Otherwise weget such an error when loading modules:&quot;Unknown relocation type 102&quot;As an alternative, we could add linker relaxation support in the kernelmodule loader. But it is relatively large complexity that may or may notbring a similar gain, and we don&apos;t really want to include this linkerpass in the kernel.Reviewed-by: WANG Xuerui &lt;git@xen0n.name&gt;Signed-off-by: Huacai Chen &lt;chenhuacai@loongson.cn&gt;

            List of files:
            /linux-6.15/arch/loongarch/Makefile</description>
        <pubDate>Fri, 28 Jul 2023 02:30:42 +0000</pubDate>
        <dc:creator>Huacai Chen &lt;chenhuacai@loongson.cn&gt;</dc:creator>
    </item>
<item>
        <title>54c2c9df - LoongArch: Only fiddle with CHECKFLAGS if `need-compiler&apos;</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/loongarch/Makefile#54c2c9df</link>
        <description>LoongArch: Only fiddle with CHECKFLAGS if `need-compiler&apos;This is a port of commit 4fe4a6374c4db9ae2b (&quot;MIPS: Only fiddle withCHECKFLAGS if `need-compiler&apos;&quot;) to LoongArch.We have originally guarded fiddling with CHECKFLAGS in our arch Makefileby checking for the CONFIG_LOONGARCH variable, not set for targets suchas `distclean&apos;, etc. that neither include `.config&apos; nor use the compiler.Starting from commit 805b2e1d427aab4 (&quot;kbuild: include Makefile.compileronly when compiler is needed&quot;) we have had a generic `need-compiler&apos;variable explicitly telling us if the compiler will be used and thus itscapabilities need to be checked and expressed in the form of compilationflags.  If this variable is not set, then `make&apos; functions such as`cc-option&apos; are undefined, causing all kinds of weirdness to happen ifwe expect specific results to be returned.It doesn&apos;t cause problems on LoongArch now. But as a guard we replacethe check for CONFIG_LOONGARCH with one for `need-compiler&apos; instead, soas to prevent the compiler from being ever called for CHECKFLAGS whennot needed.Signed-off-by: Huacai Chen &lt;chenhuacai@loongson.cn&gt;

            List of files:
            /linux-6.15/arch/loongarch/Makefile</description>
        <pubDate>Fri, 28 Jul 2023 02:30:42 +0000</pubDate>
        <dc:creator>Huacai Chen &lt;chenhuacai@loongson.cn&gt;</dc:creator>
    </item>
<item>
        <title>5ddc7a37 - LoongArch: Include KBUILD_CPPFLAGS in CHECKFLAGS invocation</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/loongarch/Makefile#5ddc7a37</link>
        <description>LoongArch: Include KBUILD_CPPFLAGS in CHECKFLAGS invocationThis is a port of commit 08f6554ff90e (&quot;mips: Include KBUILD_CPPFLAGS inCHECKFLAGS invocation&quot;) to arch/loongarch, for fixing cross-compilationof Linux/LoongArch with Clang, where previously the `--target` flagwould no longer be present for the CHECKFLAGS cc invocation leading tobuild failure.Reported-by: Nathan Chancellor &lt;nathan@kernel.org&gt;Reviewed-by: Nathan Chancellor &lt;nathan@kernel.org&gt;Link: https://github.com/ClangBuiltLinux/linux/issues/1787#issuecomment-1608306002Signed-off-by: WANG Xuerui &lt;git@xen0n.name&gt;Signed-off-by: Huacai Chen &lt;chenhuacai@loongson.cn&gt;

            List of files:
            /linux-6.15/arch/loongarch/Makefile</description>
        <pubDate>Thu, 29 Jun 2023 12:58:43 +0000</pubDate>
        <dc:creator>WANG Xuerui &lt;git@xen0n.name&gt;</dc:creator>
    </item>
<item>
        <title>38b10b26 - LoongArch: Tweak CFLAGS for Clang compatibility</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/loongarch/Makefile#38b10b26</link>
        <description>LoongArch: Tweak CFLAGS for Clang compatibilityNow the arch code is mostly ready for LLVM/Clang consumption, it is timeto re-organize the CFLAGS a little to actually enable the LLVM build.Namely, all -G0 switches from CFLAGS are removed, and -mexplicit-relocsand -mdirect-extern-access are now wrapped with cc-option (with therelated asm/percpu.h definition guarded against toolchain combos thatare known to not work).A build with !RELOCATABLE &amp;&amp; !MODULE is confirmed working within a QEMUenvironment; support for the two features are currently blocked onLLVM/Clang, and will come later.Why -G0 can be removed:In GCC, -G stands for &quot;small data threshold&quot;, that instructs thecompiler to put data smaller than the specified threshold in a dedicated&quot;small data&quot; section (called .sdata on LoongArch and several otherarches).However, benefiting from this would require ABI cooperation, which isnot the case for LoongArch; and current GCC behave the same whether -G0(equal to disabling this optimization) is given or not. So, remove -G0from CFLAGS altogether for one less thing to care about. This alsobenefits LLVM/Clang compatibility where the -G switch is not supported.Why -mexplicit-relocs can now be conditionally applied withoutregressions:Originally -mexplicit-relocs is unconditionally added to CFLAGS in caseof CONFIG_AS_HAS_EXPLICIT_RELOCS, because not having it (i.e. old GCC +new binutils) would not work: modules will have R_LARCH_ABS_* relocsinside, but given the rarity of such toolchain combo in the wild, it maynot be worthwhile to support it, so support for such relocs in moduleswere not added back when explicit relocs support was upstreamed, and-mexplicit-relocs is unconditionally added to fail the build early.Now that Clang compatibility is desired, given Clang is behaving like-mexplicit-relocs from day one but without support for the CLI flag, wemust ensure the flag is not passed in case of Clang. However, explicitcompiler flavor checks can be more brittle than feature detection: inthis case what actually matters is support for __attribute__((model))when building modules. Given neither older GCC nor current Clang supportthis attribute, probing for the attribute support and #error&apos;ing outwould allow proper UX without checking for Clang, and also automaticallywork when Clang support for the attribute is to be added in the future.Why -mdirect-extern-access is now conditionally applied:This is actually a nice-to-have optimization that can reduce GOTaccesses, but not having it is harmless either. Because Clang does notsupport the option currently, but might do so in the future, conditionalapplication via cc-option ensures compatibility with both current andfuture Clang versions.Suggested-by: Xi Ruoyao &lt;xry111@xry111.site&gt; # cc-option changesSigned-off-by: WANG Xuerui &lt;git@xen0n.name&gt;Signed-off-by: Huacai Chen &lt;chenhuacai@loongson.cn&gt;

            List of files:
            /linux-6.15/arch/loongarch/Makefile</description>
        <pubDate>Thu, 29 Jun 2023 12:58:43 +0000</pubDate>
        <dc:creator>WANG Xuerui &lt;git@xen0n.name&gt;</dc:creator>
    </item>
</channel>
</rss>
