[PATCH] D149273: [LLD][ELF] Fix compressed-debug-level test on SystemZ

Ulrich Weigand via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 26 10:49:32 PDT 2023


uweigand created this revision.
uweigand added reviewers: ruiu, MaskRay, smeenai.
Herald added a subscriber: emaste.
Herald added a project: All.
uweigand requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

The libz compression library on SystemZ by default makes use of the platform's hardware-accelerated compression facility.  This is much faster than the regular software implementation, but often results in slightly different outputs.  This causes failures with the compressed-debug-level test case.

To fix this, run this test while setting the DFLTCC environment variable to zero, which prevents use of hardware compression and falls back to the software implementation.  (This should not have any effect on other platforms.)


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D149273

Files:
  lld/test/ELF/compressed-debug-level.test


Index: lld/test/ELF/compressed-debug-level.test
===================================================================
--- lld/test/ELF/compressed-debug-level.test
+++ lld/test/ELF/compressed-debug-level.test
@@ -2,18 +2,22 @@
 
 # RUN: yaml2obj %s -o %t.o
 
-# RUN: ld.lld %t.o -o %t.default --compress-debug-sections=zlib
+## The environment variable DFLTCC=0 disables use of the hardware compression
+## facility on SystemZ.  When this facility is enabled, slightly different
+## compression results can be seen, which would throw off the tests below.
+
+# RUN: DFLTCC=0 ld.lld %t.o -o %t.default --compress-debug-sections=zlib
 # RUN: llvm-readelf --sections %t.default | FileCheck -check-prefixes=HEADER,LEVEL1 %s
 
-# RUN: ld.lld -O0 %t.o -o %t.O0 --compress-debug-sections=zlib
+# RUN: DFLTCC=0 ld.lld -O0 %t.o -o %t.O0 --compress-debug-sections=zlib
 # RUN: llvm-readelf --sections %t.O0 | FileCheck -check-prefixes=HEADER,LEVEL1 %s
 # RUN: cmp %t.default %t.O0
 
-# RUN: ld.lld -O1 %t.o -o %t.O1 --compress-debug-sections=zlib
+# RUN: DFLTCC=0 ld.lld -O1 %t.o -o %t.O1 --compress-debug-sections=zlib
 # RUN: llvm-readelf --sections %t.O1 | FileCheck -check-prefixes=HEADER,LEVEL1 %s
 # RUN: cmp %t.default %t.O1
 
-# RUN: ld.lld -O2 %t.o -o %t.O2 --compress-debug-sections=zlib
+# RUN: DFLTCC=0 ld.lld -O2 %t.o -o %t.O2 --compress-debug-sections=zlib
 # RUN: llvm-readelf --sections %t.O2 | FileCheck -check-prefixes=HEADER,LEVEL6 %s
 
 ## LLD uses zlib compression of level 1 when -O0, -O1 and level 6 when -O2.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D149273.517223.patch
Type: text/x-patch
Size: 1519 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230426/021e4717/attachment.bin>


More information about the llvm-commits mailing list