On 8/21/26 17:32, [email protected] wrote:
From: Ivan Lipski <[email protected]>

[Why&How]
When building the DML files with clang without any sanitizer or LTO,
the following -Wframe-larger-than errors break the build under
CONFIG_WERROR:

   display_mode_vba_30.c: error: stack frame size (2512) exceeds limit
     (2048) in 'dml30_ModeSupportAndSystemConfigurationFull'
   display_mode_vba_31.c: error: stack frame size (2416) exceeds limit
     (2048) in 'dml31_ModeSupportAndSystemConfigurationFull'
   display_mode_vba_314.c: error: stack frame size (2392) exceeds limit
     (2048) in 'dml314_ModeSupportAndSystemConfigurationFull'

Clang consistently spills more than gcc, pushing the frame past the 2048
byte limit.

Apply an existing approach of increasing the warn stack size to the
non-sanitizer path so plain clang builds use a 3072 byte limit.

Closes: https://gitlab.freedesktop.org/drm/amd/-/work_items/5642
Reviewed-by: Mario Limonciello (AMD) <[email protected]>>
Signed-off-by: Ivan Lipski <[email protected]>
---
  drivers/gpu/drm/amd/display/dc/dml/Makefile | 6 +++++-
  1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/display/dc/dml/Makefile 
b/drivers/gpu/drm/amd/display/dc/dml/Makefile
index 10d4ace04d4f1..99da9dbd62b75 100644
--- a/drivers/gpu/drm/amd/display/dc/dml/Makefile
+++ b/drivers/gpu/drm/amd/display/dc/dml/Makefile
@@ -36,7 +36,11 @@ ifneq ($(CONFIG_FRAME_WARN),0)
              frame_warn_limit := 3072
          endif
      else
-        frame_warn_limit := 2048
+        ifeq ($(CONFIG_CC_IS_CLANG),y)
+            frame_warn_limit := 3072
+        else
+            frame_warn_limit := 2048
+        endif
      endif
ifeq ($(call test-lt, $(CONFIG_FRAME_WARN), $(frame_warn_limit)),y)

Reply via email to