Re: [xz-devel] The right data for Embedded XZ?

2012-03-29 Thread Thorsten Glaser
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?

2012-03-29 Thread g . esp


- 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?

2012-03-28 Thread Mike Melanson

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?

2012-03-28 Thread Mike Melanson
 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