This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

get in trouble on building 2.4.18 ARM kernel under Cygwin


though at last i successfully build the kernel image of
linux-2.4.18-rmk7-pxa1-mz5 under Cygwin with my cross
toolchain built with crosstool 0.28-rc37,i.e, gcc-3.4.1-glibc-2.3.3, but the
kernel did not work, i mean ,it get
stalled when bootloader jump to it.

on the contray,in my linux box, by using the same setting (the same .config
of kernel)and the same kernel source, i could compile and run the kenenl
ordinary(cross gcc 2.95.3 and glibc 2.1.3 and binutils-2.15) in my target 
board.

i add and use "arm920t.dat" like following:

#-------arm920t.dat-----
KERNELCONFIG=`pwd`/arm.config
TARGET=arm-920t-linux-gnu
GCC_EXTRA_CONFIG="--with-cpu=arm920t --enable-cxx-flags=-mcpu=arm920t"
TARGET_CFLAGS="-O"


#-----------------------
---note:the arm.config i did not change!


Beside the kegel's patch of gcc-3.4.1, i add a additional patch like
following,to let the gcc to accept arm920t
#---------------------gcc patch
begin--------------------------------------------
diff -Nur gcc-3.4.1.orig/gcc/config/arm/arm.h gcc-3.4.1/gcc/config/arm/arm.h
--- gcc-3.4.1.orig/gcc/config/arm/arm.h 2005-01-23 02:24:00.000000000 +0800
+++ gcc-3.4.1/gcc/config/arm/arm.h      2005-01-23 02:28:24.000000000 +0800
@@ -94,6 +94,7 @@
 #define TARGET_CPU_strongarm110 0x0040
 #define TARGET_CPU_strongarm1100 0x0040
 #define TARGET_CPU_arm9                0x0080
+#define TARGET_CPU_arm920t     0x0080
 #define TARGET_CPU_arm9tdmi    0x0080
 #define TARGET_CPU_xscale       0x0100
 #define TARGET_CPU_ep9312      0x0200
#---------------gcc patch end---------------------

i also patch the old 2.4.18-rmk7-pxa1-mz5 kernel to make gcc 3.4 could
accept it, here is the patch:

#-----------------kernel patch begin-----------------
diff -Nur linux-2.4.18-rmk7-pxa1-mz5.orig/Makefile
linux-2.4.18-rmk7-pxa1-mz5.patching/Makefile
--- linux-2.4.18-rmk7-pxa1-mz5.orig/Makefile    2003-11-04
15:51:20.000000000 +0800
+++ linux-2.4.18-rmk7-pxa1-mz5.patching/Makefile        2005-01-24
23:51:08.000000000 +0800
@@ -459,7 +459,7 @@

 dep-files: scripts/mkdep archdep include/linux/version.h
        scripts/mkdep -- init/*.c > .depend
-       scripts/mkdep -- `find $(FINDHPATH) -name
SCCS -prune -o -follow -name \*.h ! -name modversions.h -print` > .hdepend
+       find $(FINDHPATH) \( -name SCCS -o -name .svn
\) -prune -o -follow -name \*.h ! -name modversions.h -print | xargs
scripts/mkdep | ca
t > .hdepend
        $(MAKE) $(patsubst %,_sfdep_%,$(SUBDIRS))
_FASTDEP_ALL_SUB_DIRS="$(SUBDIRS)"
 ifdef CONFIG_MODVERSIONS
        $(MAKE) update-modverfile
diff -Nur linux-2.4.18-rmk7-pxa1-mz5.orig/arch/arm/Makefile
linux-2.4.18-rmk7-pxa1-mz5.patching/arch/arm/Makefile
--- linux-2.4.18-rmk7-pxa1-mz5.orig/arch/arm/Makefile   2002-08-23
19:34:30.000000000 +0800
+++ linux-2.4.18-rmk7-pxa1-mz5.patching/arch/arm/Makefile       2005-01-26
00:02:14.000000000 +0800
@@ -49,9 +49,9 @@
 tune-$(CONFIG_CPU_SA1100)      :=-mtune=strongarm1100
 tune-$(CONFIG_CPU_XSCALE)      :=-mtune=strongarm #-mtune=xscale

-CFLAGS_BOOT    :=$(apcs-y) $(arch-y)
$(tune-y) -mshort-load-bytes -msoft-float
-CFLAGS         +=$(apcs-y) $(arch-y)
$(tune-y) -mshort-load-bytes -msoft-float
-AFLAGS         +=$(apcs-y) $(arch-y) -mno-fpu -msoft-float
+CFLAGS_BOOT    :=$(apcs-y) $(arch-y)
$(tune-y) -malignment-traps -msoft-float
+CFLAGS         +=$(apcs-y) $(arch-y)
$(tune-y) -malignment-traps -msoft-float
+AFLAGS         +=$(apcs-y) $(arch-y) -msoft-float -Wa #,-mno-fpu
#-mno-fpu -msoft-float

 ifeq ($(CONFIG_CPU_26),y)
 PROCESSOR       = armo
diff -Nur linux-2.4.18-rmk7-pxa1-mz5.orig/arch/arm/lib/getuser.S
linux-2.4.18-rmk7-pxa1-mz5.patching/arch/arm/lib/getuser.S
--- linux-2.4.18-rmk7-pxa1-mz5.orig/arch/arm/lib/getuser.S      2002-08-23
18:54:52.000000000 +0800
+++ linux-2.4.18-rmk7-pxa1-mz5.patching/arch/arm/lib/getuser.S  2005-01-26
00:05:36.000000000 +0800
@@ -17,7 +17,7 @@
  *
  * Inputs:     r0 contains the address
  * Outputs:    r0 is the error code
- *             r1, r2 contains the zero-extended value
+ *             r1, ip contains the zero-extended value
  *             lr corrupted
  *
  * No other registers must be altered.  (see include/asm-arm/uaccess.h
@@ -42,14 +42,14 @@

        .global __get_user_2
 __get_user_2:
-       bic     r2, sp, #0x1f00
-       bic     r2, r2, #0x00ff
-       ldr     r2, [r2, #TSK_ADDR_LIMIT]
-       sub     r2, r2, #2
-       cmp     r0, r2
+       bic     ip, sp, #0x1f00
+       bic     ip, ip, #0x00ff
+       ldr     ip, [ip, #TSK_ADDR_LIMIT]
+       sub     ip, ip, #2
+       cmp     r0, ip
 2:     ldrlsbt r1, [r0], #1
-3:     ldrlsbt r2, [r0]
-       orrls   r1, r1, r2, lsl #8
+3:     ldrlsbt ip, [r0]
+       orrls   r1, r1, ip, lsl #8
        movls   r0, #0
        movls   pc, lr
        b       __get_user_bad
@@ -68,20 +68,20 @@

        .global __get_user_8
 __get_user_8:
-       bic     r2, sp, #0x1f00
-       bic     r2, r2, #0x00ff
-       ldr     r2, [r2, #TSK_ADDR_LIMIT]
-       sub     r2, r2, #8
-       cmp     r0, r2
+       bic     ip, sp, #0x1f00
+       bic     ip, ip, #0x00ff
+       ldr     ip, [ip, #TSK_ADDR_LIMIT]
+       sub     ip, ip, #8
+       cmp     r0, ip
 5:     ldrlst  r1, [r0], #4
-6:     ldrlst  r2, [r0]
+6:     ldrlst  ip, [r0]
        movls   r0, #0
        movls   pc, lr

        /* fall through */

 __get_user_bad_8:
-       mov     r2, #0
+       mov     ip, #0
 __get_user_bad:
        mov     r1, #0
        mov     r0, #-14
diff -Nur linux-2.4.18-rmk7-pxa1-mz5.orig/arch/arm/lib/putuser.S
linux-2.4.18-rmk7-pxa1-mz5.patching/arch/arm/lib/putuser.S
--- linux-2.4.18-rmk7-pxa1-mz5.orig/arch/arm/lib/putuser.S      2001-12-11
20:31:24.000000000 +0800
+++ linux-2.4.18-rmk7-pxa1-mz5.patching/arch/arm/lib/putuser.S  2005-01-26
00:05:04.000000000 +0800
@@ -16,9 +16,9 @@
  * __put_user_X
  *
  * Inputs:     r0 contains the address
- *             r1, r2 contains the value
+ *             r1, ip contains the value
  * Outputs:    r0 is the error code
- *             lr corrupted
+ *             ip, lr corrupted
  *
  * No other registers must be altered.  (see include/asm-arm/uaccess.h
  * for specific ASM register usage).
@@ -30,11 +30,11 @@

        .global __put_user_1
 __put_user_1:
-       bic     r2, sp, #0x1f00
-       bic     r2, r2, #0x00ff
-       ldr     r2, [r2, #TSK_ADDR_LIMIT]
-       sub     r2, r2, #1
-       cmp     r0, r2
+       bic     ip, sp, #0x1f00
+       bic     ip, ip, #0x00ff
+       ldr     ip, [ip, #TSK_ADDR_LIMIT]
+       sub     ip, ip, #1
+       cmp     r0, ip
 1:     strlsbt r1, [r0]
        movls   r0, #0
        movls   pc, lr
@@ -42,11 +42,11 @@

        .global __put_user_2
 __put_user_2:
-       bic     r2, sp, #0x1f00
-       bic     r2, r2, #0x00ff
-       ldr     r2, [r2, #TSK_ADDR_LIMIT]
-       sub     r2, r2, #2
-       cmp     r0, r2
+       bic     ip, sp, #0x1f00
+       bic     ip, ip, #0x00ff
+       ldr     ip, [ip, #TSK_ADDR_LIMIT]
+       sub     ip, ip, #2
+       cmp     r0, ip
 2:     strlsbt r1, [r0], #1
        movls   r1, r1, lsr #8
 3:     strlsbt r1, [r0]
@@ -56,11 +56,11 @@

        .global __put_user_4
 __put_user_4:
-       bic     r2, sp, #0x1f00
-       bic     r2, r2, #0x00ff
-       ldr     r2, [r2, #TSK_ADDR_LIMIT]
-       sub     r2, r2, #4
-       cmp     r0, r2
+       bic     ip, sp, #0x1f00
+       bic     ip, ip, #0x00ff
+       ldr     ip, [ip, #TSK_ADDR_LIMIT]
+       sub     ip, ip, #4
+       cmp     r0, ip
 4:     strlst  r1, [r0]
        movls   r0, #0
        movls   pc, lr
@@ -74,7 +74,7 @@
        sub     ip, ip, #8
        cmp     r0, ip
 5:     strlst  r1, [r0], #4
-6:     strlst  r2, [r0]
+6:     strlst  ip, [r0]
        movls   r0, #0
        movls   pc, lr

diff -Nur linux-2.4.18-rmk7-pxa1-mz5.orig/arch/arm/mach-s3c2410/dma.c
linux-2.4.18-rmk7-pxa1-mz5.patching/arch/arm/mach-s3c2410/dma.c
--- linux-2.4.18-rmk7-pxa1-mz5.orig/arch/arm/mach-s3c2410/dma.c 2002-06-24
17:03:38.000000000 +0800
+++ linux-2.4.18-rmk7-pxa1-mz5.patching/arch/arm/mach-s3c2410/dma.c
2005-01-26 00:07:00.000000000 +0800
@@ -153,7 +153,7 @@
 {
        s3c2410_dma_t *dma = (s3c2410_dma_t *)dev_id;

-       DPRINTK(__FUNCTION__"\n");
+       DPRINTK("%s\n",__FUNCTION__);

        s3c2410_dma_done(dma);
 }
@@ -168,7 +168,7 @@
        for (channel = 0; channel < MAX_S3C2410_DMA_CHANNELS; channel++) {
                dma = &dma_chan[channel];
                if ((dma->in_use == 1) && (dma->regs->DSTAT == 0x0) &&
(dma->active)) {
-                       DPRINTK(__FUNCTION__" channel=%d\n", (int)channel);
+                       DPRINTK("%s channel=%d\n",__FUNCTION__,
(int)channel);
                        s3c2410_dma_done(dma);
                }
        }
@@ -450,7 +450,7 @@
        ret = request_irq(IRQ_TIMER3, dma_timer_irq_handler, SA_INTERRUPT,
                          "DMA timer", NULL);
        if (ret)
-               printk(__FUNCTION__ " : could not allocate IRQ (errno
%d)\n", ret);
+               printk("%s : could not allocate IRQ (errno %d)\n",
__FUNCTION__,ret);
 #endif

        return 0;
diff -Nur linux-2.4.18-rmk7-pxa1-mz5.orig/drivers/usb/serial/usbserial.c
linux-2.4.18-rmk7-pxa1-mz5.patching/drivers/usb/serial/usbserial.c
--- linux-2.4.18-rmk7-pxa1-mz5.orig/drivers/usb/serial/usbserial.c
2002-04-15 13:00:14.000000000 +0800
+++ linux-2.4.18-rmk7-pxa1-mz5.patching/drivers/usb/serial/usbserial.c
2005-01-26 00:00:06.000000000 +0800
@@ -412,7 +412,7 @@
        int i, j;
        int good_spot;

-       dbg(__FUNCTION__ " %d", num_ports);
+       dbg("%s %d", __FUNCTION__,num_ports);

        *minor = 0;
        for (i = 0; i < SERIAL_TTY_MINORS; ++i) {
@@ -427,14 +427,14 @@
                        continue;

                if (!(serial = kmalloc(sizeof(struct usb_serial),
GFP_KERNEL))) {
-                       err(__FUNCTION__ " - Out of memory");
+                       err("%s - Out of memory",__FUNCTION__);
                        return NULL;
                }
                memset(serial, 0, sizeof(struct usb_serial));
                serial->magic = USB_SERIAL_MAGIC;
                serial_table[i] = serial;
                *minor = i;
-               dbg(__FUNCTION__ " - minor base = %d", *minor);
+               dbg("%s - minor base = %d",__FUNCTION__, *minor);
                for (i = *minor+1; (i < (*minor + num_ports)) && (i <
SERIAL_TTY_MINORS); ++i)
                        serial_table[i] = serial;
                return serial;
@@ -447,7 +447,7 @@
 {
        int i;

-       dbg(__FUNCTION__);
+       dbg("%s",__FUNCTION__);

        if (serial == NULL)
                return;
@@ -471,13 +471,13 @@

        /* dbg("ezusb_writememory %x, %d", address, length); */
        if (!serial->dev) {
-               dbg(__FUNCTION__ " - no physical device present, failing.");
+               dbg("%s - no physical device present,
failing.",__FUNCTION__);
                return -ENODEV;
        }

        transfer_buffer =  kmalloc (length, GFP_KERNEL);
        if (!transfer_buffer) {
-               err(__FUNCTION__ " - kmalloc(%d) failed.", length);
+               err("%s - kmalloc(%d) failed.", __FUNCTION__,length);
                return -ENOMEM;
        }
        memcpy (transfer_buffer, data, length);
@@ -490,10 +490,10 @@
 int ezusb_set_reset (struct usb_serial *serial, unsigned char reset_bit)
 {
        int     response;
-       dbg(__FUNCTION__ " - %d", reset_bit);
+       dbg("%s - %d", __FUNCTION__,reset_bit);
        response = ezusb_writememory (serial, CPUCS_REG, &reset_bit, 1,
0xa0);
        if (response < 0) {
-               err(__FUNCTION__ "- %d failed", reset_bit);
+               err("%s- %d failed", __FUNCTION__,reset_bit);
        }
        return response;
 }
@@ -510,7 +510,7 @@
        struct usb_serial_port *port;
        int portNumber;

-       dbg(__FUNCTION__);
+       dbg("%s",__FUNCTION__);

        /* initialize the pointer incase something fails */
        tty->driver_data = NULL;
@@ -546,10 +546,10 @@
                return;
        }

-       dbg(__FUNCTION__ " - port %d", port->number);
+       dbg("%s - port %d",__FUNCTION__, port->number);

        if (!port->active) {
-               dbg (__FUNCTION__ " - port not opened");
+               dbg ("%s - port not opened",__FUNCTION__);
                return;
        }

@@ -571,10 +571,10 @@
                return -ENODEV;
        }

-       dbg(__FUNCTION__ " - port %d, %d byte(s)", port->number, count);

        if (!port->active) {
-               dbg (__FUNCTION__ " - port not opened");
+               dbg ("%s - port not opened",__FUNCTION__);
                return -EINVAL;
        }

@@ -596,10 +596,10 @@
                return -ENODEV;
        }

-       dbg(__FUNCTION__ " - port %d", port->number);
+       dbg("%s - port %d", __FUNCTION__,port->number);

        if (!port->active) {
-               dbg (__FUNCTION__ " - port not open");
+               dbg ("%s - port not open",__FUNCTION__);
                return -EINVAL;
        }

@@ -622,7 +622,7 @@
        }

        if (!port->active) {
-               dbg (__FUNCTION__ " - port not open");
+               dbg ("%s - port not open",__FUNCTION__);
                return -EINVAL;
        }

@@ -644,10 +644,10 @@
                return;
        }

-       dbg(__FUNCTION__ " - port %d", port->number);
+       dbg("%s - port %d", __FUNCTION__,port->number);

        if (!port->active) {
-               dbg (__FUNCTION__ " - port not open");
+               dbg ("%s - port not open",__FUNCTION__);
                return;
        }

@@ -669,10 +669,10 @@
                return;
        }

-       dbg(__FUNCTION__ " - port %d", port->number);
+       dbg("%s - port %d", __FUNCTION__,port->number);

        if (!port->active) {
        if (!port->active) {
-               dbg (__FUNCTION__ " - port not open");
+               dbg ("%s - port not open",__FUNCTION__);
                return;
        }

@@ -694,10 +694,10 @@
                return -ENODEV;
        }

-       dbg(__FUNCTION__ " - port %d, cmd 0x%.4x", port->number, cmd);
+       dbg("%s - port %d, cmd 0x%.4x", __FUNCTION__,port->number, cmd);

        if (!port->active) {
-               dbg (__FUNCTION__ " - port not open");
+               dbg ("%s - port not open",__FUNCTION__);
                return -ENODEV;
        }

@@ -719,10 +719,10 @@
                return;
        }

-       dbg(__FUNCTION__ " - port %d", port->number);
+       dbg("%s - port %d",__FUNCTION__, port->number);

        if (!port->active) {
-               dbg (__FUNCTION__ " - port not open");
+               dbg ("%s - port not open",__FUNCTION__);
                return;
        }

@@ -744,10 +744,10 @@
                return;
        }

-       dbg(__FUNCTION__ " - port %d", port->number);
+       dbg("%s - port %d", __FUNCTION__,port->number);

        if (!port->active) {
-               dbg (__FUNCTION__ " - port not open");
+               dbg ("%s - port not open",__FUNCTION__);
                return;
        }

@@ -784,7 +784,7 @@
        /* only increment our usage count, if this device is _really_ a
generic device */
        if_generic_do(MOD_INC_USE_COUNT);

-       dbg(__FUNCTION__ " - port %d", port->number);
+       dbg("%s - port %d", __FUNCTION__,port->number);

        down (&port->sem);

@@ -810,7 +810,7 @@
                                      port);
                        result = usb_submit_urb(port->read_urb);
                        if (result)
-                               err(__FUNCTION__ " - failed resubmitting
read urb, error %d", result);
+                               err("%s - failed resubmitting read urb,
error %d", __FUNCTION__,result);
                }
        }

@@ -824,7 +824,7 @@
 {
        struct usb_serial *serial = port->serial;

-       dbg(__FUNCTION__ " - port %d", port->number);
+       dbg("%s - port %d", __FUNCTION__,port->number);

        down (&port->sem);

@@ -855,17 +855,17 @@
        struct usb_serial *serial = port->serial;
        int result;

-       dbg(__FUNCTION__ " - port %d", port->number);
+       dbg("%s - port %d", __FUNCTION__,port->number);

        if (count == 0) {
-               dbg(__FUNCTION__ " - write request of 0 bytes");
+               dbg("%s - write request of 0 bytes",__FUNCTION__);
                return (0);
        }

        /* only do something if we have a bulk out endpoint */
        if (serial->num_bulk_out) {
                if (port->write_urb->status == -EINPROGRESS) {
-                       dbg (__FUNCTION__ " - already writing");
+                       dbg ("%s - already writing",__FUNCTION__);
                        return (0);
                }

@@ -893,7 +893,7 @@
                /* send the data out the bulk port */
                result = usb_submit_urb(port->write_urb);
                if (result)
-                       err(__FUNCTION__ " - failed submitting write urb,
error %d", result);
+                       err("%s - failed submitting write urb, error %d",
__FUNCTION__,result);
                else
                        result = count;

@@ -910,14 +910,14 @@
        struct usb_serial *serial = port->serial;
        int room = 0;

-       dbg(__FUNCTION__ " - port %d", port->number);
+       dbg("%s - port %d",__FUNCTION__, port->number);

        if (serial->num_bulk_out) {
                if (port->write_urb->status != -EINPROGRESS)
                        room = port->bulk_out_size;
        }

-       dbg(__FUNCTION__ " - returns %d", room);
+       dbg("%s - returns %d", __FUNCTION__,room);
        return (room);
 }

@@ -927,14 +927,14 @@
        struct usb_serial *serial = port->serial;
        int chars = 0;

-       dbg(__FUNCTION__ " - port %d", port->number);
+       dbg("%s - port %d", __FUNCTION__,port->number);

        if (serial->num_bulk_out) {
                if (port->write_urb->status == -EINPROGRESS)
                        chars = port->write_urb->transfer_buffer_length;
        }

-       dbg (__FUNCTION__ " - returns %d", chars);
+       dbg ("%s - returns %d", __FUNCTION__,chars);
        return (chars);
 }

@@ -948,15 +948,15 @@
        int i;
        int result;

-       dbg(__FUNCTION__ " - port %d", port->number);
+       dbg("%s - port %d", __FUNCTION__,port->number);

        if (!serial) {
-               dbg(__FUNCTION__ " - bad serial pointer, exiting");
+               dbg("%s - bad serial pointer, exiting",__FUNCTION__);
                return;
        }

        if (urb->status) {
-               dbg(__FUNCTION__ " - nonzero read bulk status received: %d",
urb->status);
+               dbg("%s - nonzero read bulk status received: %d",
__FUNCTION__,urb->status);
                return;
        }

@@ -985,7 +985,7 @@
                      port);
        result = usb_submit_urb(port->read_urb);
        if (result)
-               err(__FUNCTION__ " - failed resubmitting read urb, error
%d", result);
+               err("%s - failed resubmitting read urb, error %d",
__FUNCTION__,result);
 }


@@ -994,15 +994,15 @@
        struct usb_serial_port *port = (struct usb_serial_port
*)urb->context;
        struct usb_serial *serial = get_usb_serial (port, __FUNCTION__);

-       dbg(__FUNCTION__ " - port %d", port->number);
+       dbg("%s - port %d", __FUNCTION__,port->number);

        if (!serial) {
-               dbg(__FUNCTION__ " - bad serial pointer, exiting");
+               dbg("%s - bad serial pointer, exiting",__FUNCTION__);
                return;
        }

        if (urb->status) {
-               dbg(__FUNCTION__ " - nonzero write bulk status received:
%d", urb->status);
+               dbg("%s - nonzero write bulk status received: %d",
__FUNCTION__,urb->status);
                return;
        }

@@ -1017,7 +1017,7 @@
 {
        int i;

-       dbg (__FUNCTION__);
+       dbg ("%s",__FUNCTION__);

        /* stop reads and writes on all ports */
        for (i=0; i < serial->num_ports; ++i) {
@@ -1034,7 +1034,7 @@
        struct usb_serial *serial = get_usb_serial (port, __FUNCTION__);
        struct tty_struct *tty;

-       dbg(__FUNCTION__ " - port %d", port->number);
+       dbg("%s - port %d", __FUNCTION__,port->number);

        if (!serial) {
                return;
@@ -1042,7 +1042,7 @@

        tty = port->tty;
        if ((tty->flags & (1 << TTY_DO_WRITE_WAKEUP)) &&
tty->ldisc.write_wakeup) {
-               dbg(__FUNCTION__ " - write wakeup call.");
+               dbg("%s - write wakeup call.",__FUNCTION__);
                (tty->ldisc.write_wakeup)(tty);
        }

@@ -1288,7 +1288,7 @@
        max_endpoints = max(num_bulk_in, num_bulk_out);
        max_endpoints = max(max_endpoints, num_interrupt_in);
        max_endpoints = max(max_endpoints, (int)serial->num_ports);
-       dbg (__FUNCTION__ " - setting up %d port structures for this
device", max_endpoints);
+       dbg ("%s - setting up %d port structures for this device",
__FUNCTION__,max_endpoints);
        for (i = 0; i < max_endpoints; ++i) {
                port = &serial->port[i];
                port->number = i + serial->minor;
@@ -1449,7 +1449,7 @@
        serial_tty_driver.init_termios          = tty_std_termios;
        serial_tty_driver.init_termios.c_cflag  = B9600 | CS8 | CREAD |
HUPCL | CLOCAL;
        if (tty_register_driver (&serial_tty_driver)) {
-               err(__FUNCTION__ " - failed to register tty driver");
+               err("%s - failed to register tty driver",__FUNCTION__);
                return -1;
        }

diff -Nur linux-2.4.18-rmk7-pxa1-mz5.orig/drivers/usb/usb-ohci.h
linux-2.4.18-rmk7-pxa1-mz5.patching/drivers/usb/usb-ohci.h
--- linux-2.4.18-rmk7-pxa1-mz5.orig/drivers/usb/usb-ohci.h      2003-06-12
17:46:04.000000000 +0800
+++ linux-2.4.18-rmk7-pxa1-mz5.patching/drivers/usb/usb-ohci.h  2005-01-26
00:12:04.000000000 +0800
@@ -586,15 +586,15 @@
 static void ohci_mem_cleanup (struct ohci *ohci)
 {
        if (ohci->td_cache) {
-               printk(__FUNCTION__"(%d)\n", __LINE__);
+               printk("%s(%d)\n",__FUNCTION__, __LINE__);
                pci_pool_destroy (ohci->td_cache);
-               printk(__FUNCTION__"(%d)\n", __LINE__);
+               printk("%s(%d)\n",__FUNCTION__, __LINE__);
                ohci->td_cache = 0;
        }
        if (ohci->dev_cache) {
-               printk(__FUNCTION__"(%d)\n", __LINE__);
+               printk("%s(%d)\n",__FUNCTION__, __LINE__);
                pci_pool_destroy (ohci->dev_cache);
-               printk(__FUNCTION__"(%d)\n", __LINE__);
+               printk("%s(%d)\n",__FUNCTION__, __LINE__);
                ohci->dev_cache = 0;
        }
 }
diff -Nur linux-2.4.18-rmk7-pxa1-mz5.orig/fs/devfs/util.c
linux-2.4.18-rmk7-pxa1-mz5.patching/fs/devfs/util.c
--- linux-2.4.18-rmk7-pxa1-mz5.orig/fs/devfs/util.c     2001-12-11
20:25:12.000000000 +0800
+++ linux-2.4.18-rmk7-pxa1-mz5.patching/fs/devfs/util.c 2005-01-26
00:09:42.000000000 +0800
@@ -264,7 +264,7 @@
     was_set = __test_and_clear_bit (major, list->bits);
     spin_unlock (&list->lock);
     if (!was_set)
-       printk (KERN_ERR __FUNCTION__ "(): major %d was already free\n",
+       printk (KERN_ERR "%s(): major %d was already free\n",__FUNCTION__,
                major);
 }   /*  End Function devfs_dealloc_major  */
 EXPORT_SYMBOL(devfs_dealloc_major);
@@ -393,12 +393,12 @@
        if (was_set) list->none_free = 0;
        up (semaphore);
        if (!was_set)
-           printk ( KERN_ERR __FUNCTION__ "(): device %s was already
free\n",
+           printk ( KERN_ERR "%s(): device %s was already
free\n",__FUNCTION__,
                     kdevname (devnum) );
        return;
     }
     up (semaphore);
-    printk ( KERN_ERR __FUNCTION__ "(): major for %s not previously
allocated\n",
+    printk ( KERN_ERR "%s(): major for %s not previously
allocated\n",__FUNCTION__,
             kdevname (devnum) );
 }   /*  End Function devfs_dealloc_devnum  */
 EXPORT_SYMBOL(devfs_dealloc_devnum);
@@ -473,7 +473,7 @@
     if (was_set) ++space->num_free;
     up (&space->semaphore);
     if (!was_set)
-       printk (KERN_ERR __FUNCTION__ "(): number %d was already free\n",
+       printk (KERN_ERR "%s(): number %d was already free\n",__FUNCTION__,
                number);
 }   /*  End Function devfs_dealloc_unique_number  */
 EXPORT_SYMBOL(devfs_dealloc_unique_number);
diff -Nur linux-2.4.18-rmk7-pxa1-mz5.orig/fs/file.c
linux-2.4.18-rmk7-pxa1-mz5.patching/fs/file.c
--- linux-2.4.18-rmk7-pxa1-mz5.orig/fs/file.c   2001-06-14
03:59:24.000000000 +0800
+++ linux-2.4.18-rmk7-pxa1-mz5.patching/fs/file.c       2005-01-26
00:07:56.000000000 +0800
@@ -36,7 +36,7 @@
        int size = num * sizeof(struct file *);

        if (!array) {
-               printk (KERN_ERR __FUNCTION__ "array = 0 (num = %d)\n",
num);
+               printk (KERN_ERR "%s array = 0 (num = %d)\n",
__FUNCTION__,num);
                return;
        }

@@ -145,7 +145,7 @@
        int size = num / 8;

        if (!array) {
-               printk (KERN_ERR __FUNCTION__ "array = 0 (num = %d)\n",
num);
+               printk (KERN_ERR "%s array = 0 (num = %d)\n",
__FUNCTION__,num);
                return;
        }

diff -Nur linux-2.4.18-rmk7-pxa1-mz5.orig/fs/smbfs/smb_debug.h
linux-2.4.18-rmk7-pxa1-mz5.patching/fs/smbfs/smb_debug.h
--- linux-2.4.18-rmk7-pxa1-mz5.orig/fs/smbfs/smb_debug.h        2001-06-14
03:53:34.000000000 +0800
+++ linux-2.4.18-rmk7-pxa1-mz5.patching/fs/smbfs/smb_debug.h    2005-01-26
00:08:56.000000000 +0800
@@ -11,14 +11,14 @@
  * these are normally enabled.
  */
 #ifdef SMBFS_PARANOIA
-#define PARANOIA(x...) printk(KERN_NOTICE __FUNCTION__ ": " x)
+#define PARANOIA(x...) printk(KERN_NOTICE  "%s: " ,__FUNCTION__ ,x)
 #else
 #define PARANOIA(x...) do { ; } while(0)
 #endif

 /* lots of debug messages */
 #ifdef SMBFS_DEBUG_VERBOSE
-#define VERBOSE(x...) printk(KERN_DEBUG __FUNCTION__ ": " x)
+#define VERBOSE(x...) printk(KERN_DEBUG "%s: " ,__FUNCTION__ ,x)
 #else
 #define VERBOSE(x...) do { ; } while(0)
 #endif
@@ -28,7 +28,7 @@
  * too common name.
  */
 #ifdef SMBFS_DEBUG
-#define DEBUG1(x...) printk(KERN_DEBUG __FUNCTION__ ": " x)
+#define DEBUG1(x...) printk(KERN_DEBUG "%s: ",__FUNCTION__ ,x)
 #else
 #define DEBUG1(x...) do { ; } while(0)
 #endif
diff -Nur linux-2.4.18-rmk7-pxa1-mz5.orig/include/asm-arm/uaccess.h
linux-2.4.18-rmk7-pxa1-mz5.patching/include/asm-arm/uaccess.h
--- linux-2.4.18-rmk7-pxa1-mz5.orig/include/asm-arm/uaccess.h   2003-06-16
17:34:56.000000000 +0800
+++ linux-2.4.18-rmk7-pxa1-mz5.patching/include/asm-arm/uaccess.h
2005-01-26 00:03:44.000000000 +0800
@@ -86,7 +86,7 @@
                        __get_user_x(__r1, __p, __e, 1, "lr");          \
                        break;                                          \
                case 2:                                                 \
-                       __get_user_x(__r1, __p, __e, 2, "r2", "lr");    \
+                       __get_user_x(__r1, __p, __e, 2, "ip", "lr");    \
                        break;                                          \
                case 4:                                                 \
                        __get_user_x(__r1, __p, __e, 4, "lr");          \
@@ -122,13 +122,13 @@
                register int __e asm("r0");                             \
                switch (sizeof(*(p))) {                                 \
                case 1:                                                 \
-                       __put_user_x(__r1, __p, __e, 1, "r2", "lr");    \
+                       __put_user_x(__r1, __p, __e, 1, "ip", "lr");    \
                        break;                                          \
                case 2:                                                 \
-                       __put_user_x(__r1, __p, __e, 2, "r2", "lr");    \
+                       __put_user_x(__r1, __p, __e, 2, "ip", "lr");    \
                        break;                                          \
                case 4:                                                 \
-                       __put_user_x(__r1, __p, __e, 4, "r2", "lr");    \
+                       __put_user_x(__r1, __p, __e, 4, "ip", "lr");    \
                        break;                                          \
                case 8:                                                 \
                        __put_user_x(__r1, __p, __e, 8, "ip", "lr");    \
#-----------------kernel patch end-----------------

at last i could do following work successfully:
make ARCH=arm CROSS_COMPILE=arm-920t-linux-gnu- menuconfig
make ARCH=arm CROSS_COMPILE=arm-920t-linux-gnu- clean
make ARCH=arm CROSS_COMPILE=arm-920t-linux-gnu- zImage

but...

the  kenel built by this procudure did not work! it stalled after the
bootloader uncompress it and jump to it.
 some one could give me some advice??

the following is the omitted System.map. because i do not familar with the
kernel stuff ,some one could help me to have a check?
#-------------the omitted System.map-----------

c0004000 A swapper_pg_dir
c0008000 T __init_begin
c0008000 T _stext
c0008000 T stext
c0008000 t $a
c0008038 t $d
c0008038 t __switch_data
c0008054 t $a
c0008054 t __ret
c0008080 t __mmap_switched
c00080b0 t __create_page_tables
c000812c t __error
c0008134 t __lookup_processor_type
c0008170 t $d
c0008184 t $a
c0008184 t __lookup_architecture_type
c00081c0 T name_to_kdev_t
c00081c0 t $a
c000825c t $d
c0008264 T calibrate_delay
c0008264 t $a
c0008374 t $d
c0008388 T start_kernel
c0008388 t $a
c0008628 t $d
c0008680 T convert_to_tag_list
c0008680 t $a
c000880c t $d
c0008840 t $a
c0008840 t __stubs_start
c0008840 t vector_IRQ
c0008868 t $d
c00088c0 t $a
c00088c0 t vector_data
c00088e8 t $d
c0008940 t $a
c0008940 t vector_prefetch
c0008968 t $d
c00089c0 t $a
c00089c0 t vector_undefinstr
c00089e4 t $d
c0008a40 t $a
c0008a40 t vector_FIQ
c0008a44 t vector_addrexcptn
c0008a60 t $d
c0008a70 t $a
c0008a70 t __stubs_end
c0008a90 T __trap_init
c0008ac0 T init_irq_proc
c0008ac0 t $a
...
...
omitted here

#----------------------------------

BTW, the situation about building kernel 2.6.8 under Cygwin with 
cross-compiled gcc-3.4.1 and glibc-2.3.3 is the same sad!!!

--dou wen







------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]