Browse Source

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.
Brad King 10 years ago
parent
commit
a2df4a3f76

+ 6 - 0
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)

+ 0 - 3
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"