[comp.unix.microport] compress.c & GNU C 1.25

james@bigtex.uucp (James Van Artsdalen) (08/09/88)

compress.c does not work as is with GNU C.  I don't know if this is a
bug or a mysterious feature of ANSI C.  The problem is that string
constants have the high order bit cleared.  To get compress working
again, make the following change near line 126:

< char_type magic_header[] = { "\037\235" };	/* 1F 9D */
---
> char_type magic_header[] = { 0x1f, 0x9d, 0x00 };	/* 1F 9D */
-- 
James R. Van Artsdalen    ...!uunet!utastro!bigtex!james     "Live Free or Die"
Home: 512-346-2444 Work: 328-0282; 110 Wild Basin Rd. Ste #230, Austin TX 78746

james@bigtex.uucp (James Van Artsdalen) (08/09/88)

It turns out that the problem really was a bug in GNU C in the 386
configuration.  To fix, include this in the config.h file for gcc
and recompile gcc:

#undef ASM_OUTPUT_ASCII
#define ASM_OUTPUT_ASCII(asm_out_file, p, size) \
{int i=0; \
  while (i < size) \
    { if (i%10 ==0) { if(i!=0)fprintf(asm_out_file,"\n"); \
		      fprintf(asm_out_file,ASM_BYTE); } \
        else fprintf(asm_out_file,","); \
	  fprintf (asm_out_file, "0x%x",p[i++]);} \
	fprintf(asm_out_file,"\n"); }
-- 
James R. Van Artsdalen    ...!uunet!utastro!bigtex!james     "Live Free or Die"
Home: 512-346-2444 Work: 328-0282; 110 Wild Basin Rd. Ste #230, Austin TX 78746