diff options
author | Brad King <brad.king@kitware.com> | 2015-04-08 17:07:44 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2015-04-08 17:08:53 (GMT) |
commit | a2df4a3f769a63822144c874660eb9461f233c22 (patch) | |
tree | 74728e509fb0a30a8b08d50c45dae535965324ac /Utilities | |
parent | 82c51a8ac6c4a8fba127402d96f8269492f3a115 (diff) | |
download | CMake-a2df4a3f769a63822144c874660eb9461f233c22.zip CMake-a2df4a3f769a63822144c874660eb9461f233c22.tar.gz CMake-a2df4a3f769a63822144c874660eb9461f233c22.tar.bz2 |
liblzma: Disable XL compiler optimizations altogether
Revert commit 82c51a8a (liblzma: Disable XL compiler optimizations in
one source to avoid crash, 2015-04-02) and instead add a compiler flag
to disable optimizations in every source of liblzma. Somehow the XL
compiler optimizations create incorrect behavior in liblzma and lead
to crashes or truncated output during compression.
Diffstat (limited to 'Utilities')
-rw-r--r-- | Utilities/cmliblzma/CMakeLists.txt | 6 | ||||
-rw-r--r-- | Utilities/cmliblzma/liblzma/lzma/lzma_encoder_optimum_normal.c | 3 |
2 files changed, 6 insertions, 3 deletions
diff --git a/Utilities/cmliblzma/CMakeLists.txt b/Utilities/cmliblzma/CMakeLists.txt index d991438..991c699 100644 --- a/Utilities/cmliblzma/CMakeLists.txt +++ b/Utilities/cmliblzma/CMakeLists.txt @@ -211,4 +211,10 @@ ENDIF() ADD_LIBRARY(cmliblzma ${LZMA_SRCS}) +IF(CMAKE_C_COMPILER_ID STREQUAL "XL") + # Disable the XL compiler optimizer because it causes crashes + # and other bad behavior in liblzma code. + SET_PROPERTY(TARGET cmliblzma PROPERTY COMPILE_FLAGS "-qnooptimize") +ENDIF() + INSTALL(FILES COPYING DESTINATION ${CMAKE_DOC_DIR}/cmliblzma) diff --git a/Utilities/cmliblzma/liblzma/lzma/lzma_encoder_optimum_normal.c b/Utilities/cmliblzma/liblzma/lzma/lzma_encoder_optimum_normal.c index fc54d8d..d3a6348 100644 --- a/Utilities/cmliblzma/liblzma/lzma/lzma_encoder_optimum_normal.c +++ b/Utilities/cmliblzma/liblzma/lzma/lzma_encoder_optimum_normal.c @@ -8,9 +8,6 @@ // You can do whatever you want with this file. // /////////////////////////////////////////////////////////////////////////////// -#if defined(__IBMC__) -# pragma options optimize=0 -#endif #include "lzma_encoder_private.h" #include "fastpos.h" |