From: David Daney <ddaney@avtrex.com>
To: linux-mips@linux-mips.org
Subject: [Patch] Changes to make 2.4 build with gcc-4.0.0...
Date: Fri, 25 Mar 2005 14:58:44 -0800 [thread overview]
Message-ID: <424497A4.4040206@avtrex.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 656 bytes --]
I just tried building my 2.4.29 kernel with gcc-4.0.0. The attached
patch is needed.
It seems to run fine but I have not extensively tested it.
The changes to include/asm/uaccess.h and include/linux/byteorder/swab.h
are mostly back ports from CVS HEAD. The rest is just random things
that I had to change to make it work.
In addition to these changes you need the changes that are floating
around on the list to asm-mips/ptrace.h, arch/mips/kernel/signal.c and
arch/mips/kernel/syscall.c so that it will run when compiled with gcc-3.4
The diffs are from my internal CVS so version numbers will not match
those on linux-mips' CVS.
David Daney.
[-- Attachment #2: 4.0.0.diffx --]
[-- Type: text/plain, Size: 11325 bytes --]
Index: drivers/i2c/i2c-core.c
===================================================================
RCS file: /linux/linux/drivers/i2c/i2c-core.c,v
retrieving revision 1.3
diff -c -p -r1.3 i2c-core.c
*** drivers/i2c/i2c-core.c 2 Dec 2004 19:50:22 -0000 1.3
--- drivers/i2c/i2c-core.c 25 Mar 2005 22:22:12 -0000
*************** int i2c_master_send(struct i2c_client *c
*** 754,760 ****
msg.addr = client->addr;
msg.flags = client->flags & I2C_M_TEN;
msg.len = count;
! (const char *)msg.buf = buf;
DEB2(printk(KERN_DEBUG "i2c-core.o: master_send: writing %d bytes on %s.\n",
count,client->adapter->name));
--- 754,760 ----
msg.addr = client->addr;
msg.flags = client->flags & I2C_M_TEN;
msg.len = count;
! msg.buf = (__u8 *)buf;
DEB2(printk(KERN_DEBUG "i2c-core.o: master_send: writing %d bytes on %s.\n",
count,client->adapter->name));
*************** int i2c_master_recv(struct i2c_client *c
*** 784,790 ****
msg.flags = client->flags & I2C_M_TEN;
msg.flags |= I2C_M_RD;
msg.len = count;
! msg.buf = buf;
DEB2(printk(KERN_DEBUG "i2c-core.o: master_recv: reading %d bytes on %s.\n",
count,client->adapter->name));
--- 784,790 ----
msg.flags = client->flags & I2C_M_TEN;
msg.flags |= I2C_M_RD;
msg.len = count;
! msg.buf = (__u8 *)buf;
DEB2(printk(KERN_DEBUG "i2c-core.o: master_recv: reading %d bytes on %s.\n",
count,client->adapter->name));
Index: drivers/usb/inode.c
===================================================================
RCS file: /linux/linux/drivers/usb/inode.c,v
retrieving revision 1.1.1.1
diff -c -p -r1.1.1.1 inode.c
*** drivers/usb/inode.c 26 Feb 2004 19:15:00 -0000 1.1.1.1
--- drivers/usb/inode.c 25 Mar 2005 22:22:16 -0000
***************
*** 42,47 ****
--- 42,49 ----
#include <asm/uaccess.h>
/* --------------------------------------------------------------------- */
+ static struct file_operations usbdevfs_bus_file_operations;
+ static struct inode_operations usbdevfs_bus_inode_operations;
/*
* This list of superblocks is still used,
Index: include/asm-mips/uaccess.h
===================================================================
RCS file: /linux/linux/include/asm-mips/uaccess.h,v
retrieving revision 1.3
diff -c -p -r1.3 uaccess.h
*** include/asm-mips/uaccess.h 5 Feb 2005 01:03:58 -0000 1.3
--- include/asm-mips/uaccess.h 25 Mar 2005 22:22:17 -0000
*************** static inline int verify_area(int type,
*** 149,155 ****
* Returns zero on success, or -EFAULT on error.
*/
#define put_user(x,ptr) \
! __put_user_check((__typeof__(*(ptr)))(x),(ptr),sizeof(*(ptr)))
/*
* get_user: - Get a simple variable from user space.
--- 149,155 ----
* Returns zero on success, or -EFAULT on error.
*/
#define put_user(x,ptr) \
! __put_user_check((x),(ptr),sizeof(*(ptr)))
/*
* get_user: - Get a simple variable from user space.
*************** static inline int verify_area(int type,
*** 169,175 ****
* On error, the variable @x is set to zero.
*/
#define get_user(x,ptr) \
! __get_user_check((__typeof__(*(ptr)))(x),(ptr),sizeof(*(ptr)))
/*
* __put_user: - Write a simple value into user space, with less checking.
--- 169,175 ----
* On error, the variable @x is set to zero.
*/
#define get_user(x,ptr) \
! __get_user_check((x),(ptr),sizeof(*(ptr)))
/*
* __put_user: - Write a simple value into user space, with less checking.
*************** static inline int verify_area(int type,
*** 191,197 ****
* Returns zero on success, or -EFAULT on error.
*/
#define __put_user(x,ptr) \
! __put_user_nocheck((__typeof__(*(ptr)))(x),(ptr),sizeof(*(ptr)))
/*
* __get_user: - Get a simple variable from user space, with less checking.
--- 191,197 ----
* Returns zero on success, or -EFAULT on error.
*/
#define __put_user(x,ptr) \
! __put_user_nocheck((x),(ptr),sizeof(*(ptr)))
/*
* __get_user: - Get a simple variable from user space, with less checking.
*************** static inline int verify_area(int type,
*** 214,220 ****
* On error, the variable @x is set to zero.
*/
#define __get_user(x,ptr) \
! __get_user_nocheck((__typeof__(*(ptr)))(x),(ptr),sizeof(*(ptr)))
struct __large_struct { unsigned long buf[100]; };
#define __m(x) (*(struct __large_struct *)(x))
--- 214,220 ----
* On error, the variable @x is set to zero.
*/
#define __get_user(x,ptr) \
! __get_user_nocheck((x),(ptr),sizeof(*(ptr)))
struct __large_struct { unsigned long buf[100]; };
#define __m(x) (*(struct __large_struct *)(x))
*************** struct __large_struct { unsigned long bu
*** 232,238 ****
#define __get_user_nocheck(x,ptr,size) \
({ \
long __gu_err = 0; \
! __typeof(*(ptr)) __gu_val = 0; \
long __gu_addr; \
__gu_addr = (long) (ptr); \
switch (size) { \
--- 232,238 ----
#define __get_user_nocheck(x,ptr,size) \
({ \
long __gu_err = 0; \
! __typeof(*(ptr)) __gu_val = (__typeof(*(ptr))) 0; \
long __gu_addr; \
__gu_addr = (long) (ptr); \
switch (size) { \
*************** struct __large_struct { unsigned long bu
*** 248,254 ****
#define __get_user_check(x,ptr,size) \
({ \
! __typeof__(*(ptr)) __gu_val = 0; \
long __gu_addr = (long) (ptr); \
long __gu_err; \
\
--- 248,254 ----
#define __get_user_check(x,ptr,size) \
({ \
! __typeof__(*(ptr)) __gu_val = 0; \
long __gu_addr = (long) (ptr); \
long __gu_err; \
\
Index: include/linux/fs.h
===================================================================
RCS file: /linux/linux/include/linux/fs.h,v
retrieving revision 1.5
diff -c -p -r1.5 fs.h
*** include/linux/fs.h 5 Feb 2005 01:03:57 -0000 1.5
--- include/linux/fs.h 25 Mar 2005 22:22:18 -0000
*************** static inline int is_mounted(kdev_t dev)
*** 1570,1576 ****
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 void show_buffers(void);
--- 1570,1575 ----
Index: include/linux/i2c.h
===================================================================
RCS file: /linux/linux/include/linux/i2c.h,v
retrieving revision 1.5
diff -c -p -r1.5 i2c.h
*** include/linux/i2c.h 5 Feb 2005 01:03:58 -0000 1.5
--- include/linux/i2c.h 25 Mar 2005 22:22:18 -0000
*************** extern int i2c_master_recv(struct i2c_cl
*** 70,76 ****
/* Transfer num messages.
*/
! extern int i2c_transfer(struct i2c_adapter *adap, struct i2c_msg msg[],int num);
/*
* Some adapter types (i.e. PCF 8584 based ones) may support slave behaviuor.
--- 70,76 ----
/* Transfer num messages.
*/
! extern int i2c_transfer(struct i2c_adapter *adap, struct i2c_msg *msg, int num);
/*
* Some adapter types (i.e. PCF 8584 based ones) may support slave behaviuor.
*************** struct i2c_algorithm {
*** 197,203 ****
to NULL. If an adapter algorithm can do SMBus access, set
smbus_xfer. If set to NULL, the SMBus protocol is simulated
using common I2C messages */
! int (*master_xfer)(struct i2c_adapter *adap,struct i2c_msg msgs[],
int num);
int (*smbus_xfer) (struct i2c_adapter *adap, u16 addr,
unsigned short flags, char read_write,
--- 197,203 ----
to NULL. If an adapter algorithm can do SMBus access, set
smbus_xfer. If set to NULL, the SMBus protocol is simulated
using common I2C messages */
! int (*master_xfer)(struct i2c_adapter *adap,struct i2c_msg *msgs,
int num);
int (*smbus_xfer) (struct i2c_adapter *adap, u16 addr,
unsigned short flags, char read_write,
Index: include/linux/usbdevice_fs.h
===================================================================
RCS file: /linux/linux/include/linux/usbdevice_fs.h,v
retrieving revision 1.1.1.1
diff -c -p -r1.1.1.1 usbdevice_fs.h
*** include/linux/usbdevice_fs.h 26 Feb 2004 19:15:29 -0000 1.1.1.1
--- include/linux/usbdevice_fs.h 25 Mar 2005 22:22:21 -0000
*************** extern struct file_operations usbdevfs_d
*** 185,192 ****
extern struct file_operations usbdevfs_devices_fops;
extern struct file_operations usbdevfs_device_file_operations;
extern struct inode_operations usbdevfs_device_inode_operations;
- extern struct inode_operations usbdevfs_bus_inode_operations;
- extern struct file_operations usbdevfs_bus_file_operations;
extern void usbdevfs_conn_disc_event(void);
#endif /* __KERNEL__ */
--- 185,190 ----
Index: include/linux/byteorder/swab.h
===================================================================
RCS file: /linux/linux/include/linux/byteorder/swab.h,v
retrieving revision 1.1.1.1
diff -c -p -r1.1.1.1 swab.h
*** include/linux/byteorder/swab.h 26 Feb 2004 19:15:29 -0000 1.1.1.1
--- include/linux/byteorder/swab.h 25 Mar 2005 22:22:21 -0000
***************
*** 156,162 ****
#endif /* OPTIMIZE */
! static __inline__ __const__ __u16 __fswab16(__u16 x)
{
return __arch__swab16(x);
}
--- 156,162 ----
#endif /* OPTIMIZE */
! static __inline__ __u16 __fswab16(__u16 x)
{
return __arch__swab16(x);
}
*************** static __inline__ void __swab16s(__u16 *
*** 169,175 ****
__arch__swab16s(addr);
}
! static __inline__ __const__ __u32 __fswab24(__u32 x)
{
return __arch__swab24(x);
}
--- 169,175 ----
__arch__swab16s(addr);
}
! static __inline__ __u32 __fswab24(__u32 x)
{
return __arch__swab24(x);
}
*************** static __inline__ void __swab24s(__u32 *
*** 182,188 ****
__arch__swab24s(addr);
}
! static __inline__ __const__ __u32 __fswab32(__u32 x)
{
return __arch__swab32(x);
}
--- 182,188 ----
__arch__swab24s(addr);
}
! static __inline__ __u32 __fswab32(__u32 x)
{
return __arch__swab32(x);
}
*************** static __inline__ void __swab32s(__u32 *
*** 196,202 ****
}
#ifdef __BYTEORDER_HAS_U64__
! static __inline__ __const__ __u64 __fswab64(__u64 x)
{
# ifdef __SWAB_64_THRU_32__
__u32 h = x >> 32;
--- 196,202 ----
}
#ifdef __BYTEORDER_HAS_U64__
! static __inline__ __u64 __fswab64(__u64 x)
{
# ifdef __SWAB_64_THRU_32__
__u32 h = x >> 32;
Index: include/net/icmp.h
===================================================================
RCS file: /linux/linux/include/net/icmp.h,v
retrieving revision 1.1.1.1
diff -c -p -r1.1.1.1 icmp.h
*** include/net/icmp.h 26 Feb 2004 19:15:21 -0000 1.1.1.1
--- include/net/icmp.h 25 Mar 2005 22:22:21 -0000
***************
*** 23,28 ****
--- 23,29 ----
#include <net/sock.h>
#include <net/protocol.h>
+ #include <net/snmp.h>
struct icmp_err {
int errno;
Index: include/net/ipv6.h
===================================================================
RCS file: /linux/linux/include/net/ipv6.h,v
retrieving revision 1.1.1.2
diff -c -p -r1.1.1.2 ipv6.h
*** include/net/ipv6.h 1 Dec 2004 21:52:24 -0000 1.1.1.2
--- include/net/ipv6.h 25 Mar 2005 22:22:21 -0000
***************
*** 19,24 ****
--- 19,25 ----
#include <asm/hardirq.h>
#include <net/ndisc.h>
#include <net/flow.h>
+ #include <net/snmp.h>
#define SIN6_LEN_RFC2133 24
reply other threads:[~2005-03-25 22:59 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=424497A4.4040206@avtrex.com \
--to=ddaney@avtrex.com \
--cc=linux-mips@linux-mips.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