Package: hwinfo Version: 8.38-3 Severity: normal Tags: patch When building 'hwinfo' on amd64/unstable, I get the following error:
gcc -c -Wall -O2 -pipe -g -I../../src/hd cpu.c {standard input}: Assembler messages: {standard input}:386: Error: suffix or operands invalid for `push' {standard input}:391: Error: suffix or operands invalid for `pop' make[4]: *** [cpu.o] Error 1 make[4]: Leaving directory `/hwinfo-8.38/build-tree/hwinfo-8.38/src/hd' With the attached patch 'hwinfo' can be compiled on amd64. The patch also contains the gcc4 fix from #304079. Regards Andreas Jochens diff -urN ../tmp-orig/hwinfo-8.38/debian/patches/830_amd64_fix ./debian/patches/amd64_fix --- ../tmp-orig/hwinfo-8.38/debian/patches/830_amd64_fix 1970-01-01 00:00:00.000000000 +0000 +++ ./debian/patches/830_amd64_fix 2005-09-20 06:57:40.000000000 +0000 @@ -0,0 +1,24 @@ +diff -urN ../hwinfo-8.38/src/hd/cpu.c hwinfo-8.38/src/hd/cpu.c +--- ../hwinfo-8.38/src/hd/cpu.c 2004-02-20 10:51:02.000000000 +0000 ++++ hwinfo-8.38/src/hd/cpu.c 2005-09-20 06:56:47.000000000 +0000 +@@ -501,12 +501,20 @@ + unsigned u; + + asm( ++#ifdef __x86_64__ ++ "push %%rbx\n\t" ++#else + "push %%ebx\n\t" ++#endif + "mov $1,%%eax\n\t" + "cpuid\n\t" + "shr $8,%%ebx\n\t" + "movzx %%bh,%%eax\n\t" ++#ifdef __x86_64__ ++ "pop %%rbx" ++#else + "pop %%ebx" ++#endif + : "=a" (u) + :: "%ecx", "%edx" + ); diff -urN ../tmp-orig/hwinfo-8.38/debian/patches/820_gcc4_fix ./debian/patches/820_gcc4_fix --- ../tmp-orig/hwinfo-8.38/debian/patches/820_gcc4_fix 1970-01-01 00:00:00.000000000 +0000 +++ ./debian/patches/820_gcc4_fix 2005-09-20 06:51:28.000000000 +0000 @@ -0,0 +1,70 @@ +diff -urN tmp/src/int10/i10_v86.c hwinfo-8.38/src/int10/i10_v86.c +--- tmp/src/int10/i10_v86.c 2003-10-28 11:44:31.000000000 +0100 ++++ hwinfo-8.38/src/int10/i10_v86.c 2005-04-10 15:16:13.637536983 +0200 +@@ -230,7 +230,8 @@ + SEG_ADR((CARD8 *),es,di), + CPU_REG_LW(eflags)&DF, + (is_rep? LWECX:1)); +- if (is_rep) LWECX = 0; ++ if (is_rep) { if (prefix66 ^ prefix67) CPU_REG(ecx) = 0; else CPU_REG_LW(ecx) = 0;} ++ + CPU_REG_LW(eip)++; + break; + +@@ -249,7 +250,7 @@ + CPU_REG_LW(eflags)&DF, + (is_rep? LWECX:1)); + } +- if (is_rep) LWECX = 0; ++ if (is_rep) { if (prefix66 ^ prefix67) CPU_REG(ecx) = 0; else CPU_REG_LW(ecx) = 0;} + CPU_REG_LW(eip)++; + break; + +@@ -259,7 +260,7 @@ + CPU_REG_LW(esi) += port_rep_outb(CPU_REG_LW(edx),(CARD8*)INT2PTR(LIN_PREF_SI), + CPU_REG_LW(eflags)&DF, + (is_rep? LWECX:1)); +- if (is_rep) LWECX = 0; ++ if (is_rep) { if (prefix66 ^ prefix67) CPU_REG(ecx) = 0; else CPU_REG_LW(ecx) = 0;} + CPU_REG_LW(eip)++; + break; + +@@ -278,7 +279,7 @@ + CPU_REG_LW(eflags)&DF, + (is_rep? LWECX:1)); + } +- if (is_rep) LWECX = 0; ++ if (is_rep) { if (prefix66 ^ prefix67) CPU_REG(ecx) = 0; else CPU_REG_LW(ecx) = 0;} + CPU_REG_LW(eip)++; + break; + +diff -urN tmp/src/ids/check_hd.c hwinfo-8.38/src/ids/check_hd.c +--- tmp/src/ids/check_hd.c 2003-09-08 18:30:31.000000000 +0200 ++++ hwinfo-8.38/src/ids/check_hd.c 2005-04-10 19:42:41.546703368 +0200 +@@ -2818,7 +2818,7 @@ + hddb.strings_len, hddb.strings_len + ); + +- fprintf(f, "hddb_list_t hddb_internal_list[%u] = {\n", hddb.list_len); ++ fprintf(f, "static hddb_list_t hddb_internal_list[%u] = {\n", hddb.list_len); + for(u = 0; u < hddb.list_len; u++) { + fprintf(f, + " { 0x%08x, 0x%08x, 0x%08x, 0x%08x }%s\n", +@@ -2829,7 +2829,7 @@ + } + fprintf(f, "};\n\n"); + +- fprintf(f, "unsigned hddb_internal_ids[%u] = {\n", hddb.ids_len); ++ fprintf(f, "static unsigned hddb_internal_ids[%u] = {\n", hddb.ids_len); + for(u = 0; u < hddb.ids_len; u++) { + if((u % 6) == 0) fputc(' ', f); + fprintf(f, " 0x%08x", hddb.ids[u]); +@@ -2840,7 +2840,7 @@ + + qstr = quote_string(hddb.strings, hddb.strings_len); + qstr_len = qstr ? strlen(qstr) : 0; +- fprintf(f, "char hddb_internal_strings[%u] = \"\\\n", hddb.strings_len); ++ fprintf(f, "static char hddb_internal_strings[%u] = \"\\\n", hddb.strings_len); + for(u = 0; u < qstr_len; ) { + len = qstr_len - u; + if(len > 72) len = 72; -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]