Re: [xz-devel] The right data for Embedded XZ?
Mike Melanson dixit: gcc -std=gnu89 -I../linux/include/linux -I. -DXZ_DEC_X86 -DXZ_DEC_POWERPC ^^ You probably want -std=gnu99 here. -DXZ_DEC_IA64 -DXZ_DEC_ARM -DXZ_DEC_ARMTHUMB -DXZ_DEC_SPARC -DXZ_DEC_ANY_CHECK -ggdb3 -O2 -pedantic -Wall -Wextra -c -o boottest.o boottest.c In file included from ../linux/lib/decompress_unxz.c:235:0, from boottest.c:22: ../linux/lib/xz/xz_dec_lzma2.c: In function xz_dec_lzma2_run: /usr/include/bits/string3.h:56:1: sorry, unimplemented: inlining failed in call to memmove: redefined extern inline functions are not considered for inlining Yes well, that will of course break. (Huh. So there i̲s̲ a legitimate case for that error message. I usually only see it when compiling mksh with -fwhole-program --combine on about three differently broken GCC versions. Luckily there is now LTO which usually works.) bye, //mirabilos -- Hi, does anyone sell openbsd stickers by themselves and not packaged with other products? No, the only way I've seen them sold is for $40 with a free OpenBSD CD. -- Haroon Khalid and Steve Shockley in gmane.os.openbsd.misc
Re: [xz-devel] The right data for Embedded XZ?
- Mail original - De: Mike Melanson m...@multimedia.cx À: xz-devel@tukaani.org Envoyé: Jeudi 29 Mars 2012 01:52:42 Objet: Re: [xz-devel] The right data for Embedded XZ? Yes, using cd userspace make should compile xzminidec for you. I hacked the makefile a bit more to compile against klibc. Ah, I hadn't seen this sample app before. Unfortunately, building on my Ubuntu Linux system failed with: gcc -std=gnu89 -I../linux/include/linux -I. -DXZ_DEC_X86 -DXZ_DEC_POWERPC -DXZ_DEC_IA64 -DXZ_DEC_ARM -DXZ_DEC_ARMTHUMB -DXZ_DEC_SPARC -DXZ_DEC_ANY_CHECK -ggdb3 -O2 -pedantic -Wall -Wextra -c -o boottest.o boottest.c In file included from ../linux/lib/decompress_unxz.c:235:0, from boottest.c:22: ../linux/lib/xz/xz_dec_lzma2.c: In function ‘xz_dec_lzma2_run’: /usr/include/bits/string3.h:56:1: sorry, unimplemented: inlining failed in call to ‘memmove’: redefined extern inline functions are not considered for inlining ../linux/lib/xz/xz_dec_lzma2.c:884:11: sorry, unimplemented: called from here make: *** [boottest.o] Error 1 Before to compile xzminidec, I used sed -i -e 's/^CC.*$$/CC = klcc -std=gnu99/' userspace/Makefile klcc is to compile against klibc Gilles
Re: [xz-devel] The right data for Embedded XZ?
On 3/27/2012 11:47 PM, g@free.fr wrote: I have used xzminidec code unchanged and --check=crc32 has to be used during compression with xz as this is the onlyt crc supported by xzminidec. Depending of data to be compressed size, setting dictionary size on compression to the size of uncompressed data help to minimize memory requirement on decompression. To create a floppy image, Lasse advised me to use xz --check=crc32 --lzma2=dict=2MiB,nice=273,depth=512 Thanks for the tips. I'm still having the same difficulty with these options, though (xz_dec_run() just returns XZ_DATA_ERROR). Is xzminidec the same as Embedded XZ that I'm trying to use? Thanks, -- -Mike Melanson
Re: [xz-devel] The right data for Embedded XZ?
Yes, using cd userspace make should compile xzminidec for you. I hacked the makefile a bit more to compile against klibc. Ah, I hadn't seen this sample app before. Unfortunately, building on my Ubuntu Linux system failed with: gcc -std=gnu89 -I../linux/include/linux -I. -DXZ_DEC_X86 -DXZ_DEC_POWERPC -DXZ_DEC_IA64 -DXZ_DEC_ARM -DXZ_DEC_ARMTHUMB -DXZ_DEC_SPARC -DXZ_DEC_ANY_CHECK -ggdb3 -O2 -pedantic -Wall -Wextra -c -o boottest.o boottest.c In file included from ../linux/lib/decompress_unxz.c:235:0, from boottest.c:22: ../linux/lib/xz/xz_dec_lzma2.c: In function xz_dec_lzma2_run: /usr/include/bits/string3.h:56:1: sorry, unimplemented: inlining failed in call to memmove: redefined extern inline functions are not considered for inlining ../linux/lib/xz/xz_dec_lzma2.c:884:11: sorry, unimplemented: called from here make: *** [boottest.o] Error 1 *However!* Studying the source code in that directory demonstrated what was wrong in my own sample app-- I need to call xz_crc32_init() before the other functions. I see that's mentioned near the end of xz.h; perhaps it warrants an earlier mention. Anyway, I got past that problem. It should be noted that --check=crc32 really is necessary for compressed data if Embedded XZ will be chewing on it. The library returns XZ_OPTIONS_ERROR otherwise, but only on the first call. If you call xz_dec_run() again, decoding will proceed fine (and accurately). I figured this out when I made a mistake in my decode loop and didn't terminate on error. Thanks for all the hints! -- -Mike Melanson