Bug#349206: FTBFS: static declaration of ???MGAchipset??? follows non-static declaration
tag 349206 patch
thanks
Ryan Underwood <nemesis@icequake.net> writes:
> On Sat, Jan 21, 2006 at 11:08:37AM -0500, Justin Pryzby wrote:
>> I can confirm this problem. The upstream development branch (1.3.3)
>> compiles without error (gcc version 4.0.3 20051201 (prerelease)
>> (Debian 4.0.2-5)).
>>
>> It might be good if someone would upload a new copy, if even with a
>> minimally modified .diff.gz. The new upstream doesn't appear to be
>> heavily changed, and this may be all thats necessary.
>
> The upload of 1.2.2 will fix this by build-depending on gcc-3.4. We are
> waiting for 1.4.0 upstream for a real "new" release.
Please don't do that. We're trying to get rid of gcc-3.4 for etch,
and 1.4.0 might not be released in time. Anyway, here's a patch that
allows 1.2.2 to compile.
(If you don't expect to upload soon, I can upload 1.2.1 with the
equivalent patch.)
Thanks,
Matej
diff -ruN dosemu-1.2.2.orig/src/base/init/config.c dosemu-1.2.2/src/base/init/config.c
--- dosemu-1.2.2.orig/src/base/init/config.c 2004-02-10 20:45:49.000000000 +0100
+++ dosemu-1.2.2/src/base/init/config.c 2006-01-24 06:51:59.000000000 +0100
@@ -406,7 +406,7 @@
char *opt;
int runningsuid = can_do_root_stuff && !under_root_login;
- static char * get_option(char *key, int with_arg)
+ char * get_option(char *key, int with_arg)
{
char *p;
char *basename;
diff -ruN dosemu-1.2.2.orig/src/dosext/dpmi/dpmi.c dosemu-1.2.2/src/dosext/dpmi/dpmi.c
--- dosemu-1.2.2.orig/src/dosext/dpmi/dpmi.c 2004-07-05 09:19:23.000000000 +0200
+++ dosemu-1.2.2/src/dosext/dpmi/dpmi.c 2006-01-24 06:36:17.000000000 +0100
@@ -2939,7 +2939,7 @@
#endif
{
-#define LWORD32(x,y) {if (DPMI_CLIENT.is_32) (unsigned long) _##x y; else _LWORD(x) y;}
+#define LWORD32(x,y) {if (DPMI_CLIENT.is_32) _##x y; else _LWORD(x) y;}
#define _LWECX (DPMI_CLIENT.is_32 ^ prefix67 ? _ecx : _LWORD(ecx))
#define set_LWECX(x) {if (DPMI_CLIENT.is_32 ^ prefix67) _ecx=(x); else _LWORD(ecx) = (x);}
diff -ruN dosemu-1.2.2.orig/src/dosext/dpmi/msdos.c dosemu-1.2.2/src/dosext/dpmi/msdos.c
--- dosemu-1.2.2.orig/src/dosext/dpmi/msdos.c 2004-07-05 09:24:34.000000000 +0200
+++ dosemu-1.2.2/src/dosext/dpmi/msdos.c 2006-01-24 06:33:37.000000000 +0100
@@ -1477,28 +1477,28 @@
*segment = (*lp >> 16) & 0xffff;
switch (reg) {
case 0:
- (unsigned short)_LWORD(eax) = offset;
+ _LWORD(eax) = offset;
break;
case 1:
- (unsigned short)_LWORD(ecx) = offset;
+ _LWORD(ecx) = offset;
break;
case 2:
- (unsigned short)_LWORD(edx) = offset;
+ _LWORD(edx) = offset;
break;
case 3:
- (unsigned short)_LWORD(ebx) = offset;
+ _LWORD(ebx) = offset;
break;
case 4:
- (unsigned short)_LWORD(esp) = offset;
+ _LWORD(esp) = offset;
break;
case 5:
- (unsigned short)_LWORD(ebp) = offset;
+ _LWORD(ebp) = offset;
break;
case 6:
- (unsigned short)_LWORD(esi) = offset;
+ _LWORD(esi) = offset;
break;
case 7:
- (unsigned short)_LWORD(edi) = offset;
+ _LWORD(edi) = offset;
break;
}
return len;
diff -ruN dosemu-1.2.2.orig/src/env/video/X.c dosemu-1.2.2/src/env/video/X.c
--- dosemu-1.2.2.orig/src/env/video/X.c 2004-07-04 07:39:55.000000000 +0200
+++ dosemu-1.2.2/src/env/video/X.c 2006-01-24 06:58:45.000000000 +0100
@@ -422,6 +422,7 @@
#endif
Display *display; /* used in plugin/?/keyb_X_keycode.c */
+#define screen private_screen /* conflicts with src/include/emu.h */
static int screen;
static Visual *visual;
static Window rootwindow, mainwindow, parentwindow, normalwindow, fullscreenwindow;
@@ -443,6 +444,7 @@
static Font vga_font;
static Atom proto_atom = None, delete_atom = None;
static XFontStruct *font = NULL;
+#define font_height private_font_height /* conflicts with src/include/video.h */
static int font_width, font_height, font_shift, shift_x, shift_y;
static int prev_cursor_row = -1, prev_cursor_col = -1;
static ushort prev_cursor_shape = NO_CURSOR;
diff -ruN dosemu-1.2.2.orig/src/env/video/matrox.h dosemu-1.2.2/src/env/video/matrox.h
--- dosemu-1.2.2.orig/src/env/video/matrox.h 2004-01-17 22:59:09.000000000 +0100
+++ dosemu-1.2.2/src/env/video/matrox.h 2006-01-24 06:10:09.000000000 +0100
@@ -64,9 +64,6 @@
#define RAMDAC_OFFSET 0x3c00
-extern int MGAchipset;
-extern u_char *MGAMMIOBase;
-
extern void vga_init_matrox(void);
extern void matrox_set_bank_read(u_char bank);
diff -ruN dosemu-1.2.2.orig/src/include/dos2linux.h dosemu-1.2.2/src/include/dos2linux.h
--- dosemu-1.2.2.orig/src/include/dos2linux.h 2004-01-17 22:59:10.000000000 +0100
+++ dosemu-1.2.2/src/include/dos2linux.h 2006-01-24 06:34:37.000000000 +0100
@@ -94,8 +94,6 @@
#define sft_fd(sft) (*(u_char *)&sft[sft_fd_off])
typedef u_char *cds_t;
-extern cds_t cds_base;
-extern cds_t cds;
extern int cds_current_path_off;
extern int cds_rootlen_off;
extern int cds_record_size;
diff -ruN dosemu-1.2.2.orig/src/plugin/commands/comcom.c dosemu-1.2.2/src/plugin/commands/comcom.c
--- dosemu-1.2.2.orig/src/plugin/commands/comcom.c 2004-05-19 11:05:32.000000000 +0200
+++ dosemu-1.2.2/src/plugin/commands/comcom.c 2006-01-24 06:53:33.000000000 +0100
@@ -256,7 +256,7 @@
int screenw, screenpage, posx, posy, leftmostx, linelen;
int dumbterm = config.cardtype == CARD_NONE;
- static void start_line(void)
+ void start_line(void)
{
screenw = com_biosvideo(0x0f00) >> 8;
if (dumbterm) screenw = 79;
@@ -271,14 +271,14 @@
if (!attrib) attrib = 7;
}
- static void putkey(int key)
+ void putkey(int key)
{
LWORD(ebx) = screenpage;
com_biosvideo((key & 255) | 0x0e00);
cursor++;
}
- static void setcursorpos(int x)
+ void setcursorpos(int x)
{
HI(dx) = posy;
LO(dx) = posx + x;
@@ -286,7 +286,7 @@
com_biosvideo(0x200);
}
- static void refresh_dumb(int len)
+ void refresh_dumb(int len)
{
static char bspaces[128] = "";
int commonlen, i;
@@ -313,7 +313,7 @@
lastblen = len;
}
- static void update_display(int forcerefresh)
+ void update_display(int forcerefresh)
{
int len;
@@ -373,7 +373,7 @@
setcursorpos(cursor);
}
- static void insert(int c)
+ void insert(int c)
{
int i, j = winstart + cursor;
for (i = count; i > j; i--) p[i] = p[i-1];
@@ -382,7 +382,7 @@
cursor++;
}
- static void insertstring(const char *s, const int len)
+ void insertstring(const char *s, const int len)
{
int i, j = winstart + cursor;
@@ -394,7 +394,7 @@
cursor += len;
}
- static void delete(int pos)
+ void delete(int pos)
{
int i, j = cursor+pos+winstart;
if (j < 0) return;
@@ -409,7 +409,7 @@
}
}
- static void replace_line(char *line)
+ void replace_line(char *line)
{
memcpy(buf, line, line[0]+2);
p = buf+1;
@@ -421,7 +421,7 @@
}
}
- static void from_history(int direction)
+ void from_history(int direction)
{
if (history_empty) return;
switch (lastkey) {
@@ -447,7 +447,7 @@
replace_line(history[histl]);
}
- static int readline(char *buf)
+ int readline(char *buf)
{
int c, d;
@@ -811,7 +811,7 @@
int ret, this_echo;
char *p;
- static void substitute_positional(char **t_, char **s_)
+ void substitute_positional(char **t_, char **s_)
{
struct batchdata *pd = bdta->parent;
char *s = *s_, *t = *t_, *p;
@@ -832,7 +832,7 @@
return;
}
- static void substitute_env(char **t, char **s_, char *p)
+ void substitute_env(char **t, char **s_, char *p)
{
char *s = *s_;
char buf[128];
@@ -860,7 +860,7 @@
*s_ = p + 1;
}
- static void variable_substitution(void)
+ void variable_substitution(void)
{
char buf[1024]; /* big enough to catch overflows */
char *s = STR0A, *p, *t;
@@ -917,7 +917,7 @@
LEN0A = len;
}
- static void echo_handling(void)
+ void echo_handling(void)
{
this_echo = STR0A[0] != '@';
if (!this_echo) {
@@ -1321,7 +1321,7 @@
int repli, replen;
char replbuf[256], callbuf[256];
- static void do_command(char *varcontents)
+ void do_command(char *varcontents)
{
int i, j, vlen = strlen(varcontents);
anyDTA saved_dta;
@@ -1544,7 +1544,7 @@
char s[256];
int len, opt_p;
- static int delit(void)
+ int delit(void)
{
if (dta->attrib & DOS_ATTR_PROTECTED) return 0;
strcpy(s+len, dta->name);
@@ -1611,7 +1611,7 @@
int excmask = DOS_ATTR_HIDDEN | DOS_ATTR_SYSTEM;
char commastring [100];
- static int expand_wild(char *b)
+ int expand_wild(char *b)
{
if (isalpha(b[0]) && (b[1]==':')) {
char buf[256];
@@ -1635,7 +1635,7 @@
return com_exist_file(b) ? 0 : DOS_ENOENT;
}
- static void cache_it(void)
+ void cache_it(void)
{
if (cachei >= maxfiles) return; /* ... silently */
if (!dta->attrib) dta->attrib = 0x80;
@@ -1654,14 +1654,14 @@
memcpy(cache+(cachei++), &dta->attrib, sizeof(struct tiny_dta));
}
- static void sort_it(void)
+ void sort_it(void)
{
if (!cachei) return;
qsort(cache, cachei, sizeof(struct tiny_dta), qsort_dircmp);
}
/* returns num as a string, with commas separating groups of 3 digits */
- static char *get_comma_string (const unsigned num)
+ char *get_comma_string (const unsigned num)
{
int i;
char *s;
@@ -1686,12 +1686,12 @@
return commastring;
}
- static void displ_b(int i)
+ void displ_b(int i)
{
com_printf("%s\n", cache[i].name);
}
- static void displ_w(int i)
+ void displ_w(int i)
{
struct tiny_dta *e = &cache[i];
char b[32];
@@ -1704,7 +1704,7 @@
else com_printf("%-16s", f);
}
- static void displ(int i)
+ void displ(int i)
{
struct tiny_dta *e = &cache[i];
int d = e->filedate;
@@ -1730,7 +1730,7 @@
);
}
- static void displ_header(void)
+ void displ_header(void)
{
char *volume = "no label", *p;
char drive[] = "X:\\*.*";
@@ -1748,7 +1748,7 @@
com_printf(" Directory of %s\n\n", dirname);
}
- static void displ_footer(void)
+ void displ_footer(void)
{
unsigned info[4];
int ret;
@@ -1761,7 +1761,7 @@
num_dirs, get_comma_string (info[0] * info[1] * info[2]));
}
- static void display_it(void)
+ void display_it(void)
{
int i;
void (*xx)(int);
@@ -1780,7 +1780,7 @@
displ_footer();
}
- static void flush_it(void)
+ void flush_it(void)
{
com_printf("\n");
}
@@ -1853,7 +1853,7 @@
char *w;
int i, j;
- static int next_wild(void)
+ int next_wild(void)
{
int i;
if (*s && *w1) {
@@ -1906,7 +1906,7 @@
int len1, len2, blen1, blen2;
int ret;
- static int rename_it(void)
+ int rename_it(void)
{
char b[256];
int l = rename_wild(b, dta->name, b1, b2);
@@ -1987,7 +1987,7 @@
char targd[256], targ[128];
char buf[256], *s;
- static int appendbslash(char *b)
+ int appendbslash(char *b)
{
int l = strlen(b);
if (!l || (b[l-1] != '\\')) {
@@ -1997,7 +1997,7 @@
return l;
}
- static int exist_dir(char *b)
+ int exist_dir(char *b)
{
if (isalpha(b[0]) && (b[1]==':') && (b[2]=='\\') && !b[3]) {
char dummy[256];
@@ -2006,7 +2006,7 @@
return com_exist_dir(b);
}
- static int expand_drive(char *b)
+ int expand_drive(char *b)
{
if (isalpha(b[0]) && (b[1]==':') && !b[2]) {
if (com_getdriveandpath(toupper(b[0]) -'A' +1, b))
@@ -2016,7 +2016,7 @@
return 0;
}
- static int set_target_to_CWD(void)
+ int set_target_to_CWD(void)
{
if (com_getdriveandpath(0, targd)) return com_errno;
targdlen = appendbslash(targd);
@@ -2029,7 +2029,7 @@
return 0;
}
- static int print_summary(int retcode)
+ int print_summary(int retcode)
{
if (!fcount) return retcode;
com_fprintf(2,
@@ -2037,7 +2037,7 @@
return retcode;
}
- static void touch_all(void)
+ void touch_all(void)
{
int i, dlen, fd;
char dir[256];
@@ -2064,7 +2064,7 @@
}
}
- static int overwrite_check(char *name)
+ int overwrite_check(char *name)
{
/* NOTE: destroyes DTA */
int c;
@@ -2086,7 +2086,7 @@
return 0;
}
- static int same_file(char *a, char *b)
+ int same_file(char *a, char *b)
{
int ret;
char n1[256], n2[256];
@@ -2098,7 +2098,7 @@
return ret;
}
- static int single_copy(char *a, char *b, int textmode)
+ int single_copy(char *a, char *b, int textmode)
{
anyDTA saved_dta = PSP_DTA;
int fdi, fdo;
@@ -2155,7 +2155,7 @@
}
- static int single_append(char *t, char *s, int textmode)
+ int single_append(char *t, char *s, int textmode)
{
anyDTA saved_dta = PSP_DTA;
int ret, err, fdo, fdi;
@@ -2186,7 +2186,7 @@
return ret;
}
- static int copy_wild(int matched)
+ int copy_wild(int matched)
{
char *w1, *w2;
char s[256];
@@ -2194,7 +2194,7 @@
int (*docopy)(void);
int (*initialcombine)(void);
- static int matchcopy(void)
+ int matchcopy(void)
{
char b[256];
int l = rename_wild(b, dta->name, w1, w2);
@@ -2204,7 +2204,7 @@
return single_copy(targd, s, src[0].istext);
}
- static int dircopy(void)
+ int dircopy(void)
{
strcpy(s+slen, dta->name);
strcpy(targd+targdlen, dta->name);
@@ -2212,7 +2212,7 @@
}
- static int combine(void)
+ int combine(void)
{
int i, l;
char s2[256], b[256];
@@ -2255,7 +2255,7 @@
return com_errno = 0;
}
- static int combine_to_single(void)
+ int combine_to_single(void)
{
int i;
int slen;
@@ -2610,7 +2610,7 @@
char buf[128];
int ret, option_q = 0;
- static int changedate(char *s)
+ int changedate(char *s)
{
int month, day, year;
char *p = s;
@@ -2665,7 +2665,7 @@
char buf[128];
int option_q = 0;
- static int entertime(char *s)
+ int entertime(char *s)
{
int hour, min, sec;
char *p;
Reply to: