From: "Ulrich Windl" <ulrich.windl@rz.uni-regensburg.de>
To: linux-kernel@vger.kernel.org
Subject: Fixes to compile 2.4.32 with gcc-4.0.2
Date: Mon, 23 Jan 2006 08:07:42 +0100 [thread overview]
Message-ID: <43D48ECD.12994.EC2CB@Ulrich.Windl.rkdvmks1.ngate.uni-regensburg.de> (raw)
[-- Attachment #1: Mail message body --]
[-- Type: text/plain, Size: 465 bytes --]
Hi,
I'm no real C guru, neither am I a kernel guru, but I managed to compile Linux-
2.4.32 with gcc-4.0.2 (I also could boot that kernel, but couldn't load the
modules as SuSE 10.0 lacks the old mudutils required to do that).
Please have a look at the attached diffs, as som of my fixes seem to wipe out some
real C nonsense, independent of the compiler issues.
Note: gcc still produces a _lot_ of warnings, but at least the kernel compiles.
Regards,
Ulrich
[-- Attachment #2: gcc-4.0.2-fixes.diff --]
[-- Type: Application/Octet-stream, Size: 11000 bytes --]
Index: drivers/i2c/i2c-core.c
===================================================================
RCS file: /root/LinuxCVS/Kernel/drivers/i2c/i2c-core.c,v
retrieving revision 1.1.1.11
diff -u -r1.1.1.11 i2c-core.c
--- drivers/i2c/i2c-core.c 19 Jan 2006 19:19:34 -0000 1.1.1.11
+++ drivers/i2c/i2c-core.c 21 Jan 2006 22:18:28 -0000
@@ -750,7 +750,7 @@
msg.addr = client->addr;
msg.flags = client->flags & I2C_M_TEN;
msg.len = count;
- (const char *)msg.buf = buf;
+ msg.buf = buf;
DEB2(printk(KERN_DEBUG "i2c-core.o: master_send: writing %d bytes on %s.\n",
count,client->adapter->name));
Index: drivers/i2c/i2c-proc.c
===================================================================
RCS file: /root/LinuxCVS/Kernel/drivers/i2c/i2c-proc.c,v
retrieving revision 1.1.1.5
diff -u -r1.1.1.5 i2c-proc.c
--- drivers/i2c/i2c-proc.c 22 Jan 2005 21:04:10 -0000 1.1.1.5
+++ drivers/i2c/i2c-proc.c 21 Jan 2006 22:25:23 -0000
@@ -43,9 +43,9 @@
static int i2c_create_name(char **name, const char *prefix,
struct i2c_adapter *adapter, int addr);
-static int i2c_parse_reals(int *nrels, void *buffer, int bufsize,
+static int i2c_parse_reals(int *nrels, char *buffer, int bufsize,
long *results, int magnitude);
-static int i2c_write_reals(int nrels, void *buffer, int *bufsize,
+static int i2c_write_reals(int nrels, char *buffer, int *bufsize,
long *results, int magnitude);
static int i2c_proc_chips(ctl_table * ctl, int write,
struct file *filp, void *buffer,
@@ -205,7 +205,7 @@
table = i2c_entries[id]->ctl_table;
unregister_sysctl_table(i2c_entries[id]);
/* 2-step kfree needed to keep gcc happy about const points */
- (const char *) temp = table[4].procname;
+ temp = table[4].procname;
kfree(temp);
kfree(table);
i2c_entries[id] = NULL;
@@ -287,7 +287,7 @@
if(copy_to_user(buffer, BUF, buflen))
return -EFAULT;
curbufsize += buflen;
- (char *) buffer += buflen;
+ buffer += buflen;
}
*lenp = curbufsize;
filp->f_pos += curbufsize;
@@ -318,8 +318,7 @@
sizeof(struct
i2c_chips_data)))
return -EFAULT;
- (char *) oldval +=
- sizeof(struct i2c_chips_data);
+ oldval += sizeof(struct i2c_chips_data);
nrels++;
}
oldlen = nrels * sizeof(struct i2c_chips_data);
@@ -456,7 +455,7 @@
WARNING! This is tricky code. I have tested it, but there may still be
hidden bugs in it, even leading to crashes and things!
*/
-int i2c_parse_reals(int *nrels, void *buffer, int bufsize,
+int i2c_parse_reals(int *nrels, char *buffer, int bufsize,
long *results, int magnitude)
{
int maxels, min, mag;
@@ -470,10 +469,10 @@
/* Skip spaces at the start */
while (bufsize &&
- !((ret=get_user(nextchar, (char *) buffer))) &&
+ !((ret=get_user(nextchar, buffer))) &&
isspace((int) nextchar)) {
bufsize--;
- ((char *) buffer)++;
+ buffer++;
}
if (ret)
@@ -488,22 +487,22 @@
mag = magnitude;
/* Check for a minus */
- if (!((ret=get_user(nextchar, (char *) buffer)))
+ if (!((ret=get_user(nextchar, buffer)))
&& (nextchar == '-')) {
min = 1;
bufsize--;
- ((char *) buffer)++;
+ buffer++;
}
if (ret)
return -EFAULT;
/* Digits before a decimal dot */
while (bufsize &&
- !((ret=get_user(nextchar, (char *) buffer))) &&
+ !((ret=get_user(nextchar, buffer))) &&
isdigit((int) nextchar)) {
res = res * 10 + nextchar - '0';
bufsize--;
- ((char *) buffer)++;
+ buffer++;
}
if (ret)
return -EFAULT;
@@ -517,16 +516,16 @@
if (bufsize && (nextchar == '.')) {
/* Skip the dot */
bufsize--;
- ((char *) buffer)++;
+ buffer++;
/* Read digits while they are significant */
while (bufsize && (mag > 0) &&
- !((ret=get_user(nextchar, (char *) buffer))) &&
+ !((ret=get_user(nextchar, buffer))) &&
isdigit((int) nextchar)) {
res = res * 10 + nextchar - '0';
mag--;
bufsize--;
- ((char *) buffer)++;
+ buffer++;
}
if (ret)
return -EFAULT;
@@ -539,10 +538,10 @@
/* Skip everything until we hit whitespace */
while (bufsize &&
- !((ret=get_user(nextchar, (char *) buffer))) &&
+ !((ret=get_user(nextchar, buffer))) &&
!isspace((int) nextchar)) {
bufsize--;
- ((char *) buffer)++;
+ buffer++;
}
if (ret)
return -EFAULT;
@@ -557,7 +556,7 @@
return 0;
}
-int i2c_write_reals(int nrels, void *buffer, int *bufsize,
+int i2c_write_reals(int nrels, char *buffer, int *bufsize,
long *results, int magnitude)
{
#define BUFLEN 20
@@ -571,10 +570,10 @@
mag = magnitude;
if (nr != 0) {
- if(put_user(' ', (char *) buffer))
+ if(put_user(' ', buffer))
return -EFAULT;
curbufsize++;
- ((char *) buffer)++;
+ buffer++;
}
/* Fill BUF with the representation of the next string */
@@ -612,15 +611,15 @@
/* Now copy it to the user-space buffer */
if (buflen + curbufsize > *bufsize)
buflen = *bufsize - curbufsize;
- if(copy_to_user(buffer, BUF, buflen))
+ if (copy_to_user(buffer, BUF, buflen))
return -EFAULT;
curbufsize += buflen;
- (char *) buffer += buflen;
+ buffer += buflen;
nr++;
}
if (curbufsize < *bufsize) {
- if(put_user('\n', (char *) buffer))
+ if(put_user('\n', buffer))
return -EFAULT;
curbufsize++;
}
Index: drivers/scsi/aic7xxx/Makefile
===================================================================
RCS file: /root/LinuxCVS/Kernel/drivers/scsi/aic7xxx/Makefile,v
retrieving revision 1.1.1.6
diff -u -r1.1.1.6 Makefile
--- drivers/scsi/aic7xxx/Makefile 22 Jan 2005 20:43:25 -0000 1.1.1.6
+++ drivers/scsi/aic7xxx/Makefile 20 Jan 2006 20:55:44 -0000
@@ -13,7 +13,7 @@
obj-$(CONFIG_SCSI_AIC79XX) += aic79xx.o
endif
-EXTRA_CFLAGS += -I$(TOPDIR)/drivers/scsi -Werror
+EXTRA_CFLAGS += -I$(TOPDIR)/drivers/scsi #-Werror
#EXTRA_CFLAGS += -g
# Platform Specific Files
Index: drivers/sound/sound_firmware.c
===================================================================
RCS file: /root/LinuxCVS/Kernel/drivers/sound/sound_firmware.c,v
retrieving revision 1.1.1.2
diff -u -r1.1.1.2 sound_firmware.c
--- drivers/sound/sound_firmware.c 11 Mar 2001 13:55:33 -0000 1.1.1.2
+++ drivers/sound/sound_firmware.c 21 Jan 2006 22:27:06 -0000
@@ -7,7 +7,6 @@
#include <linux/unistd.h>
#include <asm/uaccess.h>
-static int errno;
static int do_mod_firmware_load(const char *fn, char **fp)
{
int fd;
Index: drivers/usb/inode.c
===================================================================
RCS file: /root/LinuxCVS/Kernel/drivers/usb/inode.c,v
retrieving revision 1.1.1.8
diff -u -r1.1.1.8 inode.c
--- drivers/usb/inode.c 22 Jan 2005 20:56:55 -0000 1.1.1.8
+++ drivers/usb/inode.c 21 Jan 2006 22:35:17 -0000
@@ -310,7 +310,7 @@
return 1;
}
-static struct dentry_operations usbdevfs_dentry_operations = {
+/*static*/ struct dentry_operations usbdevfs_dentry_operations = {
d_revalidate: usbdevfs_revalidate,
};
@@ -495,11 +495,11 @@
lookup: usbdevfs_root_lookup,
};
-static struct file_operations usbdevfs_bus_file_operations = {
+/*static*/ struct file_operations usbdevfs_bus_file_operations = {
readdir: usbdevfs_bus_readdir,
};
-static struct inode_operations usbdevfs_bus_inode_operations = {
+/*static*/ struct inode_operations usbdevfs_bus_inode_operations = {
lookup: usbdevfs_bus_lookup,
};
Index: include/asm-i386/processor.h
===================================================================
RCS file: /root/LinuxCVS/Kernel/include/asm-i386/processor.h,v
retrieving revision 1.1.1.12
diff -u -r1.1.1.12 processor.h
--- include/asm-i386/processor.h 22 Jan 2005 20:58:03 -0000 1.1.1.12
+++ include/asm-i386/processor.h 20 Jan 2006 20:49:29 -0000
@@ -72,7 +72,6 @@
*/
extern struct cpuinfo_x86 boot_cpu_data;
-extern struct tss_struct init_tss[NR_CPUS];
#ifdef CONFIG_SMP
extern struct cpuinfo_x86 cpu_data[];
@@ -357,6 +356,8 @@
unsigned long __cacheline_filler[5];
};
+extern struct tss_struct init_tss[NR_CPUS];
+
struct thread_struct {
unsigned long esp0;
unsigned long eip;
Index: include/linux/fs.h
===================================================================
RCS file: /root/LinuxCVS/Kernel/include/linux/fs.h,v
retrieving revision 1.1.1.19
diff -u -r1.1.1.19 fs.h
--- include/linux/fs.h 19 Jan 2006 19:22:03 -0000 1.1.1.19
+++ include/linux/fs.h 20 Jan 2006 20:51:43 -0000
@@ -1559,7 +1559,7 @@
unsigned long generate_cluster(kdev_t, int b[], int);
unsigned long generate_cluster_swab32(kdev_t, int b[], int);
extern kdev_t ROOT_DEV;
-extern char root_device_name[];
+/* extern char root_device_name[]; */
extern void show_buffers(void);
Index: include/linux/i2c.h
===================================================================
RCS file: /root/LinuxCVS/Kernel/include/linux/i2c.h,v
retrieving revision 1.1.1.8
diff -u -r1.1.1.8 i2c.h
--- include/linux/i2c.h 19 Jan 2006 19:22:03 -0000 1.1.1.8
+++ include/linux/i2c.h 21 Jan 2006 22:17:41 -0000
@@ -34,9 +34,19 @@
#include <linux/i2c-id.h> /* id values of adapters et. al. */
#include <linux/types.h>
-
-struct i2c_msg;
-
+/*
+ * I2C Message - used for pure i2c transaction, also from /dev interface
+ */
+struct i2c_msg {
+ __u16 addr; /* slave address */
+ __u16 flags;
+#define I2C_M_TEN 0x10 /* we have a ten bit chip address */
+#define I2C_M_RD 0x01
+#define I2C_M_NOSTART 0x4000
+#define I2C_M_REV_DIR_ADDR 0x2000
+ __u16 len; /* msg length */
+ __u8 *buf; /* pointer to msg data */
+};
#ifdef __KERNEL__
@@ -358,20 +368,6 @@
#endif /* __KERNEL__ */
-/*
- * I2C Message - used for pure i2c transaction, also from /dev interface
- */
-struct i2c_msg {
- __u16 addr; /* slave address */
- __u16 flags;
-#define I2C_M_TEN 0x10 /* we have a ten bit chip address */
-#define I2C_M_RD 0x01
-#define I2C_M_NOSTART 0x4000
-#define I2C_M_REV_DIR_ADDR 0x2000
- __u16 len; /* msg length */
- __u8 *buf; /* pointer to msg data */
-};
-
/* To determine what functionality is present */
#define I2C_FUNC_I2C 0x00000001
Index: include/net/icmp.h
===================================================================
RCS file: /root/LinuxCVS/Kernel/include/net/icmp.h,v
retrieving revision 1.1.1.3
diff -u -r1.1.1.3 icmp.h
--- include/net/icmp.h 28 Jul 2001 20:54:02 -0000 1.1.1.3
+++ include/net/icmp.h 21 Jan 2006 22:09:48 -0000
@@ -23,6 +23,7 @@
#include <net/sock.h>
#include <net/protocol.h>
+#include <net/snmp.h>
struct icmp_err {
int errno;
Index: include/net/ipv6.h
===================================================================
RCS file: /root/LinuxCVS/Kernel/include/net/ipv6.h,v
retrieving revision 1.1.1.5
diff -u -r1.1.1.5 ipv6.h
--- include/net/ipv6.h 22 Jan 2005 20:59:07 -0000 1.1.1.5
+++ include/net/ipv6.h 21 Jan 2006 22:07:47 -0000
@@ -19,6 +19,7 @@
#include <asm/hardirq.h>
#include <net/ndisc.h>
#include <net/flow.h>
+#include <net/snmp.h>
#define SIN6_LEN_RFC2133 24
next reply other threads:[~2006-01-23 7:08 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-01-23 7:07 Ulrich Windl [this message]
2006-01-23 7:54 Fixes to compile 2.4.32 with gcc-4.0.2 Mikael Pettersson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=43D48ECD.12994.EC2CB@Ulrich.Windl.rkdvmks1.ngate.uni-regensburg.de \
--to=ulrich.windl@rz.uni-regensburg.de \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).