Patch "ACPI: Don't build ACPICA with '-Os'" has been added to the 5.4-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    ACPI: Don't build ACPICA with '-Os'

to the 5.4-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     acpi-don-t-build-acpica-with-os.patch
and it can be found in the queue-5.4 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit a9e4ead6d57c760bdaec9a4ebb994c54a598dac6
Author: Mark Rutland <mark.rutland@xxxxxxx>
Date:   Mon Jan 23 13:45:58 2023 +0000

    ACPI: Don't build ACPICA with '-Os'
    
    [ Upstream commit 8f9e0a52810dd83406c768972d022c37e7a18f1f ]
    
    The ACPICA code has been built with '-Os' since the beginning of git
    history, though there's no explanatory comment as to why.
    
    This is unfortunate as GCC drops the alignment specificed by
    '-falign-functions=N' when '-Os' is used, as reported in GCC bug 88345:
    
      https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88345
    
    This prevents CONFIG_FUNCTION_ALIGNMENT and
    CONFIG_DEBUG_FORCE_FUNCTION_ALIGN_64B from having their expected effect
    on the ACPICA code. This is doubly unfortunate as in subsequent patches
    arm64 will depend upon CONFIG_FUNCTION_ALIGNMENT for its ftrace
    implementation.
    
    Drop the '-Os' flag when building the ACPICA code. With this removed,
    the code builds cleanly and works correctly in testing so far.
    
    I've tested this by selecting CONFIG_DEBUG_FORCE_FUNCTION_ALIGN_64B=y,
    building and booting a kernel using ACPI, and looking for misaligned
    text symbols:
    
    * arm64:
    
      Before, v6.2-rc3:
        # uname -rm
        6.2.0-rc3 aarch64
        # grep ' [Tt] ' /proc/kallsyms | grep -iv '[048c]0 [Tt] ' | wc -l
        5009
    
      Before, v6.2-rc3 + fixed __cold:
        # uname -rm
        6.2.0-rc3-00001-g2a2bedf8bfa9 aarch64
        # grep ' [Tt] ' /proc/kallsyms | grep -iv '[048c]0 [Tt] ' | wc -l
        919
    
      After:
        # uname -rm
        6.2.0-rc3-00002-g267bddc38572 aarch64
        # grep ' [Tt] ' /proc/kallsyms | grep -iv '[048c]0 [Tt] ' | wc -l
        323
        # grep ' [Tt] ' /proc/kallsyms | grep -iv '[048c]0 [Tt] ' | grep acpi | wc -l
        0
    
    * x86_64:
    
      Before, v6.2-rc3:
        # uname -rm
        6.2.0-rc3 x86_64
        # grep ' [Tt] ' /proc/kallsyms | grep -iv '[048c]0 [Tt] ' | wc -l
        11537
    
      Before, v6.2-rc3 + fixed __cold:
        # uname -rm
        6.2.0-rc3-00001-g2a2bedf8bfa9 x86_64
        # grep ' [Tt] ' /proc/kallsyms | grep -iv '[048c]0 [Tt] ' | wc -l
        2805
    
      After:
        # uname -rm
        6.2.0-rc3-00002-g267bddc38572 x86_64
        # grep ' [Tt] ' /proc/kallsyms | grep -iv '[048c]0 [Tt] ' | wc -l
        1357
        # grep ' [Tt] ' /proc/kallsyms | grep -iv '[048c]0 [Tt] ' | grep acpi | wc -l
        0
    
    With the patch applied, the remaining unaligned text labels are a
    combination of static call trampolines and labels in assembly, which can
    be dealt with in subsequent patches.
    
    Signed-off-by: Mark Rutland <mark.rutland@xxxxxxx>
    Acked-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
    Cc: Florent Revest <revest@xxxxxxxxxxxx>
    Cc: Len Brown <lenb@xxxxxxxxxx>
    Cc: Masami Hiramatsu <mhiramat@xxxxxxxxxx>
    Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
    Cc: Robert Moore <robert.moore@xxxxxxxxx>
    Cc: Steven Rostedt <rostedt@xxxxxxxxxxx>
    Cc: Will Deacon <will@xxxxxxxxxx>
    Cc: linux-acpi@xxxxxxxxxxxxxxx
    Link: https://lore.kernel.org/r/20230123134603.1064407-4-mark.rutland@xxxxxxx
    Signed-off-by: Catalin Marinas <catalin.marinas@xxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/acpi/acpica/Makefile b/drivers/acpi/acpica/Makefile
index 59700433a96e5..f919811156b1f 100644
--- a/drivers/acpi/acpica/Makefile
+++ b/drivers/acpi/acpica/Makefile
@@ -3,7 +3,7 @@
 # Makefile for ACPICA Core interpreter
 #
 
-ccflags-y			:= -Os -D_LINUX -DBUILDING_ACPICA
+ccflags-y			:= -D_LINUX -DBUILDING_ACPICA
 ccflags-$(CONFIG_ACPI_DEBUG)	+= -DACPI_DEBUG_OUTPUT
 
 # use acpi.o to put all files here into acpi.o modparam namespace



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux