Hi folks, I've compiled up xz 5.0.4 on the following machines:
xz.5.0.4.SPARC.32bit.Solaris.10.pkg xz.5.0.4.SPARC.32bit.Solaris.8.pkg xz.5.0.4.SPARC.32bit.Solaris.9.pkg xz.5.0.4.SPARC.64bit.Solaris.10.pkg xz.5.0.4.SPARC.64bit.Solaris.11.pkg xz.5.0.4.SPARC.64bit.Solaris.7.pkg xz.5.0.4.SPARC.64bit.Solaris.8.pkg xz.5.0.4.SPARC.64bit.Solaris.9.pkg xz.5.0.4.i86pc.64bit.Solaris.11.pkg xz.5.0.4.i86pc.Solaris.10.pkg xz.5.0.4.i86pc.Solaris.11.pkg Compilers used (the highest version that will work on that O.S.): Solaris 7: Sun Studio 8 Solaris 8: Sun Studio 11 Solaris 9: Solaris Studio 12 Solaris 10 and Solaris 11: Sun Studio 12.3 The Solaris 7 was more problematic, the C99 support is very minimal in Sun Studio 8. I took out the C99 specific code in the xz source tree, making it C89 friendly (and thus portable to a lot more compilers - you should do this to the main code base IMHO). See the attached diff. I didn't do this in the test/* files. The packages are now on: http://www.ibiblio.org/pub/packages/solaris/sparc/ ta, Mark.
diff -ruN xz-5.0.4.orig/configure xz-5.0.4/configure --- xz-5.0.4.orig/configure 2012-06-22 11:56:05.000000000 +0000 +++ xz-5.0.4/configure 2014-03-02 02:03:07.921913000 +0000 @@ -5661,22 +5661,6 @@ for (int i = 0; i < ia->datasize; ++i) ia->data[i] = i * 1.234; - // Check named initializers. - struct named_init ni = { - .number = 34, - .name = L"Test wide string", - .average = 543.34343, - }; - - ni.number = 58; - - int dynamic_array[ni.number]; - dynamic_array[ni.number - 1] = 543; - - // work around unused variable warnings - return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x' - || dynamic_array[ni.number - 1] != 543); - ; return 0; } diff -ruN xz-5.0.4.orig/debug/known_sizes.c xz-5.0.4/debug/known_sizes.c --- xz-5.0.4.orig/debug/known_sizes.c 2012-06-22 06:22:30.000000000 +0000 +++ xz-5.0.4/debug/known_sizes.c 2014-03-02 03:28:57.714970000 +0000 @@ -47,19 +47,19 @@ lzma_filter filters[] = { { - .id = LZMA_FILTER_LZMA2, - .options = &opt_lzma + LZMA_FILTER_LZMA2, + &opt_lzma }, { - .id = LZMA_VLI_UNKNOWN + LZMA_VLI_UNKNOWN } }; lzma_block block = { - .check = LZMA_CHECK_CRC32, - .compressed_size = BUFFER_SIZE, // Worst case reserve - .uncompressed_size = in_size, - .filters = filters, + LZMA_CHECK_CRC32, + BUFFER_SIZE, // Worst case reserve + in_size, + filters, }; lzma_stream strm = LZMA_STREAM_INIT; diff -ruN xz-5.0.4.orig/src/liblzma/common/alone_decoder.c xz-5.0.4/src/liblzma/common/alone_decoder.c --- xz-5.0.4.orig/src/liblzma/common/alone_decoder.c 2012-06-22 06:22:30.000000000 +0000 +++ xz-5.0.4/src/liblzma/common/alone_decoder.c 2014-03-02 02:37:02.687316000 +0000 @@ -126,10 +126,10 @@ lzma_filter_info filters[2] = { { - .init = &lzma_lzma_decoder_init, - .options = &coder->options, + &lzma_lzma_decoder_init, + &coder->options, }, { - .init = NULL, + NULL, } }; diff -ruN xz-5.0.4.orig/src/liblzma/common/alone_encoder.c xz-5.0.4/src/liblzma/common/alone_encoder.c --- xz-5.0.4.orig/src/liblzma/common/alone_encoder.c 2012-06-22 06:22:30.000000000 +0000 +++ xz-5.0.4/src/liblzma/common/alone_encoder.c 2014-03-02 02:25:40.335544000 +0000 @@ -122,12 +122,12 @@ memset(next->coder->header + 1 + 4, 0xFF, 8); // Initialize the LZMA encoder. - const lzma_filter_info filters[2] = { + lzma_filter_info filters[2] = { { - .init = &lzma_lzma_encoder_init, - .options = (void *)(options), + &lzma_lzma_encoder_init, + (void *)(options), }, { - .init = NULL, + NULL, } }; diff -ruN xz-5.0.4.orig/src/liblzma/common/block_buffer_encoder.c xz-5.0.4/src/liblzma/common/block_buffer_encoder.c --- xz-5.0.4.orig/src/liblzma/common/block_buffer_encoder.c 2012-06-22 06:22:30.000000000 +0000 +++ xz-5.0.4/src/liblzma/common/block_buffer_encoder.c 2014-03-02 02:26:09.805622000 +0000 @@ -89,7 +89,7 @@ // all, but LZMA2 always requires a dictionary, so use the minimum // value to minimize memory usage of the decoder. lzma_options_lzma lzma2 = { - .dict_size = LZMA_DICT_SIZE_MIN, + LZMA_DICT_SIZE_MIN, }; lzma_filter filters[2]; diff -ruN xz-5.0.4.orig/src/liblzma/common/common.h xz-5.0.4/src/liblzma/common/common.h --- xz-5.0.4.orig/src/liblzma/common/common.h 2012-06-22 06:22:30.000000000 +0000 +++ xz-5.0.4/src/liblzma/common/common.h 2014-03-02 02:13:17.033574000 +0000 @@ -155,18 +155,28 @@ const lzma_filter *reversed_filters); }; +/// (lzma_next_coder){ \ +/// .coder = NULL, \ +/// .id = LZMA_VLI_UNKNOWN, \ +/// .init = (uintptr_t)(NULL), \ +/// .code = NULL, \ +/// .end = NULL, \ +/// .get_check = NULL, \ +/// .memconfig = NULL, \ +/// .update = NULL, \ +/// } /// Macro to initialize lzma_next_coder structure #define LZMA_NEXT_CODER_INIT \ (lzma_next_coder){ \ - .coder = NULL, \ - .init = (uintptr_t)(NULL), \ - .id = LZMA_VLI_UNKNOWN, \ - .code = NULL, \ - .end = NULL, \ - .get_check = NULL, \ - .memconfig = NULL, \ - .update = NULL, \ + NULL, \ + LZMA_VLI_UNKNOWN, \ + (uintptr_t)(NULL), \ + NULL, \ + NULL, \ + NULL, \ + NULL, \ + NULL, \ } diff -ruN xz-5.0.4.orig/src/liblzma/common/filter_common.c xz-5.0.4/src/liblzma/common/filter_common.c --- xz-5.0.4.orig/src/liblzma/common/filter_common.c 2012-06-22 06:22:30.000000000 +0000 +++ xz-5.0.4/src/liblzma/common/filter_common.c 2014-03-02 02:20:29.894746000 +0000 @@ -36,87 +36,91 @@ } features[] = { #if defined (HAVE_ENCODER_LZMA1) || defined(HAVE_DECODER_LZMA1) { - .id = LZMA_FILTER_LZMA1, - .options_size = sizeof(lzma_options_lzma), - .non_last_ok = false, - .last_ok = true, - .changes_size = true, + LZMA_FILTER_LZMA1, + sizeof(lzma_options_lzma), + false, + true, + true, }, #endif #if defined(HAVE_ENCODER_LZMA2) || defined(HAVE_DECODER_LZMA2) { - .id = LZMA_FILTER_LZMA2, - .options_size = sizeof(lzma_options_lzma), - .non_last_ok = false, - .last_ok = true, - .changes_size = true, + LZMA_FILTER_LZMA2, + sizeof(lzma_options_lzma), + false, + true, + true, }, #endif #if defined(HAVE_ENCODER_X86) || defined(HAVE_DECODER_X86) { - .id = LZMA_FILTER_X86, - .options_size = sizeof(lzma_options_bcj), - .non_last_ok = true, - .last_ok = false, - .changes_size = false, + LZMA_FILTER_X86, + sizeof(lzma_options_bcj), + true, + false, + false, }, #endif #if defined(HAVE_ENCODER_POWERPC) || defined(HAVE_DECODER_POWERPC) { - .id = LZMA_FILTER_POWERPC, - .options_size = sizeof(lzma_options_bcj), - .non_last_ok = true, - .last_ok = false, - .changes_size = false, + LZMA_FILTER_POWERPC, + sizeof(lzma_options_bcj), + true, + false, + false, }, #endif #if defined(HAVE_ENCODER_IA64) || defined(HAVE_DECODER_IA64) { - .id = LZMA_FILTER_IA64, - .options_size = sizeof(lzma_options_bcj), - .non_last_ok = true, - .last_ok = false, - .changes_size = false, + LZMA_FILTER_IA64, + sizeof(lzma_options_bcj), + true, + false, + false, }, #endif #if defined(HAVE_ENCODER_ARM) || defined(HAVE_DECODER_ARM) { - .id = LZMA_FILTER_ARM, - .options_size = sizeof(lzma_options_bcj), - .non_last_ok = true, - .last_ok = false, - .changes_size = false, + LZMA_FILTER_ARM, + sizeof(lzma_options_bcj), + true, + false, + false, }, #endif #if defined(HAVE_ENCODER_ARMTHUMB) || defined(HAVE_DECODER_ARMTHUMB) { - .id = LZMA_FILTER_ARMTHUMB, - .options_size = sizeof(lzma_options_bcj), - .non_last_ok = true, - .last_ok = false, - .changes_size = false, + LZMA_FILTER_ARMTHUMB, + sizeof(lzma_options_bcj), + true, + false, + false, }, #endif #if defined(HAVE_ENCODER_SPARC) || defined(HAVE_DECODER_SPARC) { - .id = LZMA_FILTER_SPARC, - .options_size = sizeof(lzma_options_bcj), - .non_last_ok = true, - .last_ok = false, - .changes_size = false, + LZMA_FILTER_SPARC, + sizeof(lzma_options_bcj), + true, + false, + false, }, #endif #if defined(HAVE_ENCODER_DELTA) || defined(HAVE_DECODER_DELTA) { - .id = LZMA_FILTER_DELTA, - .options_size = sizeof(lzma_options_delta), - .non_last_ok = true, - .last_ok = false, - .changes_size = false, + LZMA_FILTER_DELTA, + sizeof(lzma_options_delta), + true, + false, + false, }, #endif { - .id = LZMA_VLI_UNKNOWN + LZMA_VLI_UNKNOWN, + NULL, + 0, + 0, + 0, } }; diff -ruN xz-5.0.4.orig/src/liblzma/common/filter_decoder.c xz-5.0.4/src/liblzma/common/filter_decoder.c --- xz-5.0.4.orig/src/liblzma/common/filter_decoder.c 2012-06-22 06:22:30.000000000 +0000 +++ xz-5.0.4/src/liblzma/common/filter_decoder.c 2014-03-02 02:38:01.287487000 +0000 @@ -44,74 +44,74 @@ static const lzma_filter_decoder decoders[] = { #ifdef HAVE_DECODER_LZMA1 { - .id = LZMA_FILTER_LZMA1, - .init = &lzma_lzma_decoder_init, - .memusage = &lzma_lzma_decoder_memusage, - .props_decode = &lzma_lzma_props_decode, + LZMA_FILTER_LZMA1, + &lzma_lzma_decoder_init, + &lzma_lzma_decoder_memusage, + &lzma_lzma_props_decode, }, #endif #ifdef HAVE_DECODER_LZMA2 { - .id = LZMA_FILTER_LZMA2, - .init = &lzma_lzma2_decoder_init, - .memusage = &lzma_lzma2_decoder_memusage, - .props_decode = &lzma_lzma2_props_decode, + LZMA_FILTER_LZMA2, + &lzma_lzma2_decoder_init, + &lzma_lzma2_decoder_memusage, + &lzma_lzma2_props_decode, }, #endif #ifdef HAVE_DECODER_X86 { - .id = LZMA_FILTER_X86, - .init = &lzma_simple_x86_decoder_init, - .memusage = NULL, - .props_decode = &lzma_simple_props_decode, + LZMA_FILTER_X86, + &lzma_simple_x86_decoder_init, + NULL, + &lzma_simple_props_decode, }, #endif #ifdef HAVE_DECODER_POWERPC { - .id = LZMA_FILTER_POWERPC, - .init = &lzma_simple_powerpc_decoder_init, - .memusage = NULL, - .props_decode = &lzma_simple_props_decode, + LZMA_FILTER_POWERPC, + &lzma_simple_powerpc_decoder_init, + NULL, + &lzma_simple_props_decode, }, #endif #ifdef HAVE_DECODER_IA64 { - .id = LZMA_FILTER_IA64, - .init = &lzma_simple_ia64_decoder_init, - .memusage = NULL, - .props_decode = &lzma_simple_props_decode, + LZMA_FILTER_IA64, + &lzma_simple_ia64_decoder_init, + NULL, + &lzma_simple_props_decode, }, #endif #ifdef HAVE_DECODER_ARM { - .id = LZMA_FILTER_ARM, - .init = &lzma_simple_arm_decoder_init, - .memusage = NULL, - .props_decode = &lzma_simple_props_decode, + LZMA_FILTER_ARM, + &lzma_simple_arm_decoder_init, + NULL, + &lzma_simple_props_decode, }, #endif #ifdef HAVE_DECODER_ARMTHUMB { - .id = LZMA_FILTER_ARMTHUMB, - .init = &lzma_simple_armthumb_decoder_init, - .memusage = NULL, - .props_decode = &lzma_simple_props_decode, + LZMA_FILTER_ARMTHUMB, + &lzma_simple_armthumb_decoder_init, + NULL, + &lzma_simple_props_decode, }, #endif #ifdef HAVE_DECODER_SPARC { - .id = LZMA_FILTER_SPARC, - .init = &lzma_simple_sparc_decoder_init, - .memusage = NULL, - .props_decode = &lzma_simple_props_decode, + LZMA_FILTER_SPARC, + &lzma_simple_sparc_decoder_init, + NULL, + &lzma_simple_props_decode, }, #endif #ifdef HAVE_DECODER_DELTA { - .id = LZMA_FILTER_DELTA, - .init = &lzma_delta_decoder_init, - .memusage = &lzma_delta_coder_memusage, - .props_decode = &lzma_delta_props_decode, + LZMA_FILTER_DELTA, + &lzma_delta_decoder_init, + &lzma_delta_coder_memusage, + &lzma_delta_props_decode, }, #endif }; diff -ruN xz-5.0.4.orig/src/liblzma/common/filter_encoder.c xz-5.0.4/src/liblzma/common/filter_encoder.c --- xz-5.0.4.orig/src/liblzma/common/filter_encoder.c 2012-06-22 06:22:30.000000000 +0000 +++ xz-5.0.4/src/liblzma/common/filter_encoder.c 2014-03-02 02:34:20.856903000 +0000 @@ -53,98 +53,104 @@ } lzma_filter_encoder; -static const lzma_filter_encoder encoders[] = { +lzma_filter_encoder encoders[] = { #ifdef HAVE_ENCODER_LZMA1 { - .id = LZMA_FILTER_LZMA1, - .init = &lzma_lzma_encoder_init, - .memusage = &lzma_lzma_encoder_memusage, - .chunk_size = NULL, // FIXME - .props_size_get = NULL, - .props_size_fixed = 5, - .props_encode = &lzma_lzma_props_encode, + LZMA_FILTER_LZMA1, + &lzma_lzma_encoder_init, + &lzma_lzma_encoder_memusage, + NULL, // FIXME + NULL, + 5, + &lzma_lzma_props_encode, }, #endif #ifdef HAVE_ENCODER_LZMA2 { - .id = LZMA_FILTER_LZMA2, - .init = &lzma_lzma2_encoder_init, - .memusage = &lzma_lzma2_encoder_memusage, - .chunk_size = NULL, // FIXME - .props_size_get = NULL, - .props_size_fixed = 1, - .props_encode = &lzma_lzma2_props_encode, + LZMA_FILTER_LZMA2, + &lzma_lzma2_encoder_init, + &lzma_lzma2_encoder_memusage, + NULL, // FIXME + NULL, + 1, + &lzma_lzma2_props_encode, }, #endif #ifdef HAVE_ENCODER_X86 { - .id = LZMA_FILTER_X86, - .init = &lzma_simple_x86_encoder_init, - .memusage = NULL, - .chunk_size = NULL, - .props_size_get = &lzma_simple_props_size, - .props_encode = &lzma_simple_props_encode, + LZMA_FILTER_X86, + &lzma_simple_x86_encoder_init, + NULL, + NULL, + &lzma_simple_props_size, + 1, + &lzma_simple_props_encode, }, #endif #ifdef HAVE_ENCODER_POWERPC { - .id = LZMA_FILTER_POWERPC, - .init = &lzma_simple_powerpc_encoder_init, - .memusage = NULL, - .chunk_size = NULL, - .props_size_get = &lzma_simple_props_size, - .props_encode = &lzma_simple_props_encode, + LZMA_FILTER_POWERPC, + &lzma_simple_powerpc_encoder_init, + NULL, + NULL, + &lzma_simple_props_size, + 1, + &lzma_simple_props_encode, }, #endif #ifdef HAVE_ENCODER_IA64 { - .id = LZMA_FILTER_IA64, - .init = &lzma_simple_ia64_encoder_init, - .memusage = NULL, - .chunk_size = NULL, - .props_size_get = &lzma_simple_props_size, - .props_encode = &lzma_simple_props_encode, + LZMA_FILTER_IA64, + &lzma_simple_ia64_encoder_init, + NULL, + NULL, + &lzma_simple_props_size, + 1, + &lzma_simple_props_encode, }, #endif #ifdef HAVE_ENCODER_ARM { - .id = LZMA_FILTER_ARM, - .init = &lzma_simple_arm_encoder_init, - .memusage = NULL, - .chunk_size = NULL, - .props_size_get = &lzma_simple_props_size, - .props_encode = &lzma_simple_props_encode, + LZMA_FILTER_ARM, + &lzma_simple_arm_encoder_init, + NULL, + NULL, + &lzma_simple_props_size, + 1, + &lzma_simple_props_encode, }, #endif #ifdef HAVE_ENCODER_ARMTHUMB { - .id = LZMA_FILTER_ARMTHUMB, - .init = &lzma_simple_armthumb_encoder_init, - .memusage = NULL, - .chunk_size = NULL, - .props_size_get = &lzma_simple_props_size, - .props_encode = &lzma_simple_props_encode, + LZMA_FILTER_ARMTHUMB, + &lzma_simple_armthumb_encoder_init, + NULL, + NULL, + &lzma_simple_props_size, + 1, + &lzma_simple_props_encode, }, #endif #ifdef HAVE_ENCODER_SPARC { - .id = LZMA_FILTER_SPARC, - .init = &lzma_simple_sparc_encoder_init, - .memusage = NULL, - .chunk_size = NULL, - .props_size_get = &lzma_simple_props_size, - .props_encode = &lzma_simple_props_encode, + LZMA_FILTER_SPARC, + &lzma_simple_sparc_encoder_init, + NULL, + NULL, + &lzma_simple_props_size, + 1, + &lzma_simple_props_encode, }, #endif #ifdef HAVE_ENCODER_DELTA { - .id = LZMA_FILTER_DELTA, - .init = &lzma_delta_encoder_init, - .memusage = &lzma_delta_coder_memusage, - .chunk_size = NULL, - .props_size_get = NULL, - .props_size_fixed = 1, - .props_encode = &lzma_delta_props_encode, + LZMA_FILTER_DELTA, + &lzma_delta_encoder_init, + &lzma_delta_coder_memusage, + NULL, + NULL, + 1, + &lzma_delta_props_encode, }, #endif }; diff -ruN xz-5.0.4.orig/src/liblzma/common/index.c xz-5.0.4/src/liblzma/common/index.c --- xz-5.0.4.orig/src/liblzma/common/index.c 2012-06-22 06:22:30.000000000 +0000 +++ xz-5.0.4/src/liblzma/common/index.c 2014-03-02 02:23:35.705250000 +0000 @@ -834,12 +834,12 @@ // Add all the Streams from src to dest. Update the base offsets // of each Stream from src. - const index_cat_info info = { - .uncompressed_size = dest->uncompressed_size, - .file_size = dest_file_size, - .stream_number_add = dest->streams.count, - .block_number_add = dest->record_count, - .streams = &dest->streams, + index_cat_info info= { + dest->uncompressed_size, + dest_file_size, + dest->streams.count, + dest->record_count, + &dest->streams, }; index_cat_helper(&info, (index_stream *)(src->streams.root)); diff -ruN xz-5.0.4.orig/src/liblzma/common/index_hash.c xz-5.0.4/src/liblzma/common/index_hash.c --- xz-5.0.4.orig/src/liblzma/common/index_hash.c 2012-06-22 06:22:30.000000000 +0000 +++ xz-5.0.4/src/liblzma/common/index_hash.c 2014-03-02 02:38:25.717558000 +0000 @@ -130,7 +130,7 @@ + lzma_vli_size(uncompressed_size); ++info->count; - const lzma_vli sizes[2] = { unpadded_size, uncompressed_size }; + lzma_vli sizes[2] = { unpadded_size, uncompressed_size }; lzma_check_update(&info->check, LZMA_CHECK_BEST, (const uint8_t *)(sizes), sizeof(sizes)); diff -ruN xz-5.0.4.orig/src/liblzma/common/stream_buffer_encoder.c xz-5.0.4/src/liblzma/common/stream_buffer_encoder.c --- xz-5.0.4.orig/src/liblzma/common/stream_buffer_encoder.c 2012-06-22 06:22:30.000000000 +0000 +++ xz-5.0.4/src/liblzma/common/stream_buffer_encoder.c 2014-03-02 02:35:03.147014000 +0000 @@ -74,8 +74,8 @@ // Encode the Stream Header. lzma_stream_flags stream_flags = { - .version = 0, - .check = check, + 0, + check, }; if (lzma_stream_header_encode(&stream_flags, out + out_pos) @@ -86,9 +86,9 @@ // Encode a Block but only if there is at least one byte of input. lzma_block block = { - .version = 0, - .check = check, - .filters = filters, + 0, + check, + filters, }; if (in_size > 0) diff -ruN xz-5.0.4.orig/src/liblzma/common/stream_encoder.c xz-5.0.4/src/liblzma/common/stream_encoder.c --- xz-5.0.4.orig/src/liblzma/common/stream_encoder.c 2012-06-22 06:22:30.000000000 +0000 +++ xz-5.0.4/src/liblzma/common/stream_encoder.c 2014-03-02 02:36:12.297188000 +0000 @@ -184,10 +184,10 @@ return ret; // Encode the Stream Footer into coder->buffer. - const lzma_stream_flags stream_flags = { - .version = 0, - .backward_size = lzma_index_size(coder->index), - .check = coder->block_options.check, + lzma_stream_flags stream_flags = { + 0, + lzma_index_size(coder->index), + coder->block_options.check, }; if (lzma_stream_footer_encode(&stream_flags, coder->buffer) @@ -299,8 +299,8 @@ // Encode the Stream Header lzma_stream_flags stream_flags = { - .version = 0, - .check = check, + 0, + check, }; return_if_error(lzma_stream_header_encode( &stream_flags, next->coder->buffer)); Binary files xz-5.0.4.orig/src/liblzma/core and xz-5.0.4/src/liblzma/core differ diff -ruN xz-5.0.4.orig/src/liblzma/lz/lz_decoder.h xz-5.0.4/src/liblzma/lz/lz_decoder.h --- xz-5.0.4.orig/src/liblzma/lz/lz_decoder.h 2012-06-22 06:22:30.000000000 +0000 +++ xz-5.0.4/src/liblzma/lz/lz_decoder.h 2014-03-02 02:40:50.077977000 +0000 @@ -74,11 +74,11 @@ #define LZMA_LZ_DECODER_INIT \ (lzma_lz_decoder){ \ - .coder = NULL, \ - .code = NULL, \ - .reset = NULL, \ - .set_uncompressed = NULL, \ - .end = NULL, \ + NULL, \ + NULL, \ + NULL, \ + NULL, \ + NULL, \ } diff -ruN xz-5.0.4.orig/src/liblzma/lz/lz_encoder.c xz-5.0.4/src/liblzma/lz/lz_encoder.c --- xz-5.0.4.orig/src/liblzma/lz/lz_encoder.c 2012-06-22 06:22:30.000000000 +0000 +++ xz-5.0.4/src/liblzma/lz/lz_encoder.c 2014-03-02 02:39:29.177754000 +0000 @@ -443,10 +443,10 @@ { // Old buffers must not exist when calling lz_encoder_prepare(). lzma_mf mf = { - .buffer = NULL, - .hash = NULL, - .hash_size_sum = 0, - .sons_count = 0, + NULL, + NULL, + 0, + 0, }; // Setup the size information into mf. diff -ruN xz-5.0.4.orig/src/liblzma/lzma/lzma_decoder.c xz-5.0.4/src/liblzma/lzma/lzma_decoder.c --- xz-5.0.4.orig/src/liblzma/lzma/lzma_decoder.c 2012-06-22 06:22:30.000000000 +0000 +++ xz-5.0.4/src/liblzma/lzma/lzma_decoder.c 2014-03-02 03:16:38.853062000 +0000 @@ -853,6 +853,7 @@ static void lzma_decoder_reset(lzma_coder *coder, const void *opt) { + uint32_t num_pos_states; const lzma_options_lzma *options = opt; // NOTE: We assume that lc/lp/pb are valid since they were @@ -900,7 +901,7 @@ bittree_reset(coder->pos_align, ALIGN_BITS); // Len decoders (also bit/bittree) - const uint32_t num_pos_states = 1U << options->pb; + num_pos_states = 1U << options->pb; bit_reset(coder->match_len_decoder.choice); bit_reset(coder->match_len_decoder.choice2); bit_reset(coder->rep_len_decoder.choice); diff -ruN xz-5.0.4.orig/src/liblzma/lzma/lzma_encoder_optimum_normal.c xz-5.0.4/src/liblzma/lzma/lzma_encoder_optimum_normal.c --- xz-5.0.4.orig/src/liblzma/lzma/lzma_encoder_optimum_normal.c 2012-06-22 06:22:30.000000000 +0000 +++ xz-5.0.4/src/liblzma/lzma/lzma_encoder_optimum_normal.c 2014-03-02 03:15:47.112926000 +0000 @@ -276,6 +276,7 @@ { const uint32_t nice_len = mf->nice_len; + uint32_t len; uint32_t len_main; uint32_t matches_count; @@ -384,7 +385,7 @@ for (uint32_t i = 0; i < REP_DISTANCES; ++i) coder->opts[0].backs[i] = coder->reps[i]; - uint32_t len = len_end; + len = len_end; do { coder->opts[len].price = RC_INFINITY_PRICE; } while (--len >= 2); @@ -456,6 +457,12 @@ uint32_t new_len = coder->longest_match_length; uint32_t pos_prev = coder->opts[cur].pos_prev; lzma_lzma_state state; + uint32_t cur_price; + uint32_t pos_state; + uint32_t cur_and_1_price; + uint8_t current_byte; + uint8_t match_byte; + bool next_is_literal; if (coder->opts[cur].prev_1_is_literal) { --pos_prev; @@ -521,19 +528,19 @@ for (uint32_t i = 0; i < REP_DISTANCES; ++i) coder->opts[cur].backs[i] = reps[i]; - const uint32_t cur_price = coder->opts[cur].price; + cur_price = coder->opts[cur].price; - const uint8_t current_byte = *buf; - const uint8_t match_byte = *(buf - reps[0] - 1); + current_byte = *buf; + match_byte = *(buf - reps[0] - 1); - const uint32_t pos_state = position & coder->pos_mask; + pos_state = position & coder->pos_mask; - const uint32_t cur_and_1_price = cur_price + cur_and_1_price = cur_price + rc_bit_0_price(coder->is_match[state][pos_state]) + get_literal_price(coder, position, buf[-1], !is_literal_state(state), match_byte, current_byte); - bool next_is_literal = false; + next_is_literal = false; if (cur_and_1_price < coder->opts[cur + 1].price) { coder->opts[cur + 1].price = cur_and_1_price; diff -ruN xz-5.0.4.orig/src/liblzma/simple/ia64.c xz-5.0.4/src/liblzma/simple/ia64.c --- xz-5.0.4.orig/src/liblzma/simple/ia64.c 2012-06-22 06:22:30.000000000 +0000 +++ xz-5.0.4/src/liblzma/simple/ia64.c 2014-03-02 03:18:04.443290000 +0000 @@ -19,6 +19,7 @@ uint32_t now_pos, bool is_encoder, uint8_t *buffer, size_t size) { + uint64_t inst_norm; static const uint32_t BRANCH_TABLE[32] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -45,7 +46,7 @@ buffer[i + j + byte_pos]) << (8 * j); - uint64_t inst_norm = instruction >> bit_res; + inst_norm = instruction >> bit_res; if (((inst_norm >> 37) & 0xF) == 0x5 && ((inst_norm >> 9) & 0x7) == 0 diff -ruN xz-5.0.4.orig/src/lzmainfo/lzmainfo.c xz-5.0.4/src/lzmainfo/lzmainfo.c --- xz-5.0.4.orig/src/lzmainfo/lzmainfo.c 2012-06-22 06:22:30.000000000 +0000 +++ xz-5.0.4/src/lzmainfo/lzmainfo.c 2014-03-02 03:25:41.314446000 +0000 @@ -100,6 +100,7 @@ static bool lzmainfo(const char *name, FILE *f) { + lzma_options_lzma *opt; uint8_t buf[13]; const size_t size = fread(buf, 1, sizeof(buf), f); if (size != 13) { @@ -109,7 +110,7 @@ return true; } - lzma_filter filter = { .id = LZMA_FILTER_LZMA1 }; + lzma_filter filter = { LZMA_FILTER_LZMA1 }; // Parse the first five bytes. switch (lzma_properties_decode(&filter, NULL, buf, 5)) { @@ -152,7 +153,7 @@ / (1024 * 1024), uncompressed_size); - lzma_options_lzma *opt = filter.options; + opt = filter.options; printf("\nDictionary size: " "%" PRIu32 " MB (2^%" PRIu32 " bytes)\n" diff -ruN xz-5.0.4.orig/src/xz/coder.c xz-5.0.4/src/xz/coder.c --- xz-5.0.4.orig/src/xz/coder.c 2012-06-22 06:22:30.000000000 +0000 +++ xz-5.0.4/src/xz/coder.c 2014-03-02 03:19:34.523542000 +0000 @@ -116,6 +116,8 @@ coder_set_compression_settings(void) { // Options for LZMA1 or LZMA2 in case we are using a preset. + uint64_t memory_limit; + uint64_t memory_usage; static lzma_options_lzma opt_lzma; if (filters_count == 0) { @@ -171,8 +173,7 @@ // If using --format=raw, we can be decoding. The memusage function // also validates the filter chain and the options used for the // filters. - const uint64_t memory_limit = hardware_memlimit_get(opt_mode); - uint64_t memory_usage; + memory_limit = hardware_memlimit_get(opt_mode); if (opt_mode == MODE_COMPRESS) memory_usage = lzma_raw_encoder_memusage(filters); else @@ -300,7 +301,7 @@ return false; // Decode the LZMA1 properties. - lzma_filter filter = { .id = LZMA_FILTER_LZMA1 }; + lzma_filter filter = { LZMA_FILTER_LZMA1 }; if (lzma_properties_decode(&filter, NULL, in_buf.u8, 5) != LZMA_OK) return false; diff -ruN xz-5.0.4.orig/src/xz/file_io.c xz-5.0.4/src/xz/file_io.c --- xz-5.0.4.orig/src/xz/file_io.c 2012-06-22 06:22:30.000000000 +0000 +++ xz-5.0.4/src/xz/file_io.c 2014-03-02 03:19:58.713609000 +0000 @@ -518,13 +518,13 @@ static file_pair pair; pair = (file_pair){ - .src_name = src_name, - .dest_name = NULL, - .src_fd = -1, - .dest_fd = -1, - .src_eof = false, - .dest_try_sparse = false, - .dest_pending_sparse = 0, + src_name, + NULL, + -1, + -1, + false, + false, + 0, }; // Block the signals, for which we have a custom signal handler, so diff -ruN xz-5.0.4.orig/src/xz/options.c xz-5.0.4/src/xz/options.c --- xz-5.0.4.orig/src/xz/options.c 2012-06-22 06:22:30.000000000 +0000 +++ xz-5.0.4/src/xz/options.c 2014-03-02 03:20:31.943696000 +0000 @@ -173,8 +173,8 @@ lzma_options_delta *options = xmalloc(sizeof(lzma_options_delta)); *options = (lzma_options_delta){ // It's hard to give a useful default for this. - .type = LZMA_DELTA_TYPE_BYTE, - .dist = LZMA_DELTA_DIST_MIN, + LZMA_DELTA_TYPE_BYTE, + LZMA_DELTA_DIST_MIN, }; parse_options(str, opts, &set_delta, options); @@ -215,7 +215,7 @@ lzma_options_bcj *options = xmalloc(sizeof(lzma_options_bcj)); *options = (lzma_options_bcj){ - .start_offset = 0, + 0, }; parse_options(str, opts, &set_bcj, options); diff -ruN xz-5.0.4.orig/src/xz/signals.c xz-5.0.4/src/xz/signals.c --- xz-5.0.4.orig/src/xz/signals.c 2012-06-22 06:22:30.000000000 +0000 +++ xz-5.0.4/src/xz/signals.c 2014-03-02 03:24:28.314262000 +0000 @@ -49,6 +49,7 @@ signals_init(void) { // List of signals for which we establish the signal handler. + struct sigaction mysa; static const int sigs[] = { SIGINT, SIGTERM, @@ -77,17 +78,16 @@ sigaddset(&hooked_signals, message_progress_sigs[i]); #endif - struct sigaction sa; // All the signals that we handle we also blocked while the signal // handler runs. - sa.sa_mask = hooked_signals; + mysa.sa_mask = hooked_signals; // Don't set SA_RESTART, because we want EINTR so that we can check // for user_abort and cleanup before exiting. We block the signals // for which we have established a handler when we don't want EINTR. - sa.sa_flags = 0; - sa.sa_handler = &signal_handler; + mysa.sa_flags = 0; + mysa.sa_handler = &signal_handler; for (size_t i = 0; i < ARRAY_SIZE(sigs); ++i) { // If the parent process has left some signals ignored, @@ -98,7 +98,7 @@ continue; // Establish the signal handler. - if (sigaction(sigs[i], &sa, NULL)) + if (sigaction(sigs[i], &mysa, NULL)) message_signal_handler(); } diff -ruN xz-5.0.4.orig/stdbool.h xz-5.0.4/stdbool.h --- xz-5.0.4.orig/stdbool.h 1970-01-01 00:00:00.000000000 +0000 +++ xz-5.0.4/stdbool.h 2014-03-02 02:03:08.061926000 +0000 @@ -0,0 +1,5 @@ +#if !defined(bool) +#define bool int +#endif +#define false 0 +#define true 1 diff -ruN xz-5.0.4.orig/tests/test_block_header.c xz-5.0.4/tests/test_block_header.c --- xz-5.0.4.orig/tests/test_block_header.c 2012-06-22 06:22:30.000000000 +0000 +++ xz-5.0.4/tests/test_block_header.c 2014-03-02 03:28:09.384859000 +0000 @@ -21,58 +21,58 @@ static lzma_filter filters_none[1] = { { - .id = LZMA_VLI_UNKNOWN, + LZMA_VLI_UNKNOWN, }, }; static lzma_filter filters_one[2] = { { - .id = LZMA_FILTER_LZMA2, - .options = &opt_lzma, + LZMA_FILTER_LZMA2, + &opt_lzma, }, { - .id = LZMA_VLI_UNKNOWN, + LZMA_VLI_UNKNOWN, } }; static lzma_filter filters_four[5] = { { - .id = LZMA_FILTER_X86, - .options = NULL, + LZMA_FILTER_X86, + NULL, }, { - .id = LZMA_FILTER_X86, - .options = NULL, + LZMA_FILTER_X86, + NULL, }, { - .id = LZMA_FILTER_X86, - .options = NULL, + LZMA_FILTER_X86, + NULL, }, { - .id = LZMA_FILTER_LZMA2, - .options = &opt_lzma, + LZMA_FILTER_LZMA2, + &opt_lzma, }, { - .id = LZMA_VLI_UNKNOWN, + LZMA_VLI_UNKNOWN, } }; static lzma_filter filters_five[6] = { { - .id = LZMA_FILTER_X86, - .options = NULL, + LZMA_FILTER_X86, + NULL, }, { - .id = LZMA_FILTER_X86, - .options = NULL, + LZMA_FILTER_X86, + NULL, }, { - .id = LZMA_FILTER_X86, - .options = NULL, + LZMA_FILTER_X86, + NULL, }, { - .id = LZMA_FILTER_X86, - .options = NULL, + LZMA_FILTER_X86, + NULL, }, { - .id = LZMA_FILTER_LZMA2, - .options = &opt_lzma, + LZMA_FILTER_LZMA2, + &opt_lzma, }, { - .id = LZMA_VLI_UNKNOWN, + LZMA_VLI_UNKNOWN, } }; @@ -110,10 +110,10 @@ test1(void) { known_options = (lzma_block){ - .check = LZMA_CHECK_NONE, - .compressed_size = LZMA_VLI_UNKNOWN, - .uncompressed_size = LZMA_VLI_UNKNOWN, - .filters = NULL, + LZMA_CHECK_NONE, + LZMA_VLI_UNKNOWN, + LZMA_VLI_UNKNOWN, + NULL, }; expect(lzma_block_header_size(&known_options) == LZMA_PROG_ERROR); diff -ruN xz-5.0.4.orig/tests/test_filter_flags.c xz-5.0.4/tests/test_filter_flags.c --- xz-5.0.4.orig/tests/test_filter_flags.c 2012-06-22 06:22:30.000000000 +0000 +++ xz-5.0.4/tests/test_filter_flags.c 2014-03-02 03:26:34.004613000 +0000 @@ -117,8 +117,8 @@ // Test 2 lzma_options_delta options = { - .type = LZMA_DELTA_TYPE_BYTE, - .dist = 0 + LZMA_DELTA_TYPE_BYTE, + 0 }; known_flags.options = &options; expect(encode(99));