Re: Linux v2.6.2-rc2

From: Tim Cambrant
Date: Mon Jan 26 2004 - 05:38:33 EST


On Sun, Jan 25, 2004 at 06:48:24PM -0800, Linus Torvalds wrote:
> Summary of changes from v2.6.2-rc1 to v2.6.2-rc2

Hello Linus,

2.6.2-rc2 doesn't compile cleanly with the latest GCC 3.4 with my
configuration, because of several extern inline declarations in
include-files. The same problem existed in 2.6.2-rc1-mm2 and earlier,
and was fixed in -mm3. The fix is to simply remove 'inline' from the
funcion declaration. Andrew Morton has confirmed this and has applied
patches like this into his tree. Here are patches to fix the errors:


--- linux-2.6.2-rc2/include/linux/efi.h.orig Mon Jan 26 11:09:08 2004
+++ linux-2.6.2-rc2/include/linux/efi.h Mon Jan 26 11:09:18 2004
@@ -297,8 +297,8 @@ extern u64 efi_mem_attributes (unsigned
extern void efi_initialize_iomem_resources(struct resource *code_resource,
struct resource *data_resource);
extern efi_status_t phys_efi_get_time(efi_time_t *tm, efi_time_cap_t *tc);
-extern inline unsigned long __init efi_get_time(void);
-extern inline int __init efi_set_rtc_mmss(unsigned long nowtime);
+extern unsigned long __init efi_get_time(void);
+extern int __init efi_set_rtc_mmss(unsigned long nowtime);
extern struct efi_memory_map memmap;

/*


-------


--- linux-2.6.2-rc2/include/linux/sched.h.orig Mon Jan 26 11:17:39 2004
+++ linux-2.6.2-rc2/include/linux/sched.h Mon Jan 26 11:18:35 2004
@@ -670,7 +670,7 @@ static inline int capable(int cap)
extern struct mm_struct * mm_alloc(void);

/* mmdrop drops the mm and the page tables */
-extern inline void FASTCALL(__mmdrop(struct mm_struct *));
+extern void FASTCALL(__mmdrop(struct mm_struct *));
static inline void mmdrop(struct mm_struct * mm)
{
if (atomic_dec_and_test(&mm->mm_count))


-------


--- linux-2.6.2-rc2/include/linux/bio.h.orig Mon Jan 26 11:22:45 2004
+++ linux-2.6.2-rc2/include/linux/bio.h Mon Jan 26 11:23:05 2004
@@ -231,8 +231,8 @@ extern void bio_put(struct bio *);

extern void bio_endio(struct bio *, unsigned int, int);
struct request_queue;
-extern inline int bio_phys_segments(struct request_queue *, struct bio *);
-extern inline int bio_hw_segments(struct request_queue *, struct bio *);
+extern int bio_phys_segments(struct request_queue *, struct bio *);
+extern int bio_hw_segments(struct request_queue *, struct bio *);

extern inline void __bio_clone(struct bio *, struct bio *);
extern struct bio *bio_clone(struct bio *, int);


-------


--- linux-2.6.2-rc2/include/linux/elevator.h.orig Mon Jan 26 11:25:09 2004
+++ linux-2.6.2-rc2/include/linux/elevator.h Mon Jan 26 11:25:30 2004
@@ -96,9 +96,9 @@ extern elevator_t iosched_as;

extern int elevator_init(request_queue_t *, elevator_t *);
extern void elevator_exit(request_queue_t *);
-extern inline int elv_rq_merge_ok(struct request *, struct bio *);
-extern inline int elv_try_merge(struct request *, struct bio *);
-extern inline int elv_try_last_merge(request_queue_t *, struct bio *);
+extern int elv_rq_merge_ok(struct request *, struct bio *);
+extern int elv_try_merge(struct request *, struct bio *);
+extern int elv_try_last_merge(request_queue_t *, struct bio *);

/*
* Return values from elevator merger


-------


--- linux-2.6.2-rc2/include/linux/ide.h.orig Mon Jan 26 11:27:37 2004
+++ linux-2.6.2-rc2/include/linux/ide.h Mon Jan 26 11:28:36 2004
@@ -1417,12 +1417,12 @@ typedef struct pkt_task_s {
void *special;
} pkt_task_t;

-extern inline u32 ide_read_24(ide_drive_t *);
+extern u32 ide_read_24(ide_drive_t *);

-extern inline void SELECT_DRIVE(ide_drive_t *);
-extern inline void SELECT_INTERRUPT(ide_drive_t *);
-extern inline void SELECT_MASK(ide_drive_t *, int);
-extern inline void QUIRK_LIST(ide_drive_t *);
+extern void SELECT_DRIVE(ide_drive_t *);
+extern void SELECT_INTERRUPT(ide_drive_t *);
+extern void SELECT_MASK(ide_drive_t *, int);
+extern void QUIRK_LIST(ide_drive_t *);

extern void ata_input_data(ide_drive_t *, void *, u32);
extern void ata_output_data(ide_drive_t *, void *, u32);


-------

I understand if you won't apply these int your tree. Perhaps the same
fixes are on their way into the vanilla kernel from Andrew's tree. If
that's the case, you can feel free to ignore these patches.


Tim Cambrant

Attachment: pgp00000.pgp
Description: PGP signature