Merge branch 'build_fix' into cris

This commit is contained in:
Jesper Nilsson 2008-07-01 00:13:54 +02:00
commit fea72637c6
5 changed files with 74 additions and 61 deletions

View File

@ -4,7 +4,7 @@
asflags-y += $(LINUXINCLUDE) asflags-y += $(LINUXINCLUDE)
ccflags-y += -O2 $(LINUXINCLUDE) ccflags-y += -O2 $(LINUXINCLUDE)
ldflags-y += -T $(obj)/decompress.ld ldflags-y += -T $(srctree)/$(obj)/decompress.ld
OBJECTS = $(obj)/head.o $(obj)/misc.o OBJECTS = $(obj)/head.o $(obj)/misc.o
OBJCOPYFLAGS = -O binary --remove-section=.bss OBJCOPYFLAGS = -O binary --remove-section=.bss

View File

@ -29,11 +29,10 @@
#define OF(args) args #define OF(args) args
#define STATIC static #define STATIC static
void* memset(void* s, int c, size_t n); void *memset(void *s, int c, size_t n);
void* memcpy(void* __dest, __const void* __src, size_t __n); void *memcpy(void *__dest, __const void *__src, size_t __n);
#define memzero(s, n) memset ((s), 0, (n))
#define memzero(s, n) memset((s), 0, (n))
typedef unsigned char uch; typedef unsigned char uch;
typedef unsigned short ush; typedef unsigned short ush;
@ -61,23 +60,38 @@ static unsigned outcnt = 0; /* bytes in output buffer */
#define ENCRYPTED 0x20 /* bit 5 set: file is encrypted */ #define ENCRYPTED 0x20 /* bit 5 set: file is encrypted */
#define RESERVED 0xC0 /* bit 6,7: reserved */ #define RESERVED 0xC0 /* bit 6,7: reserved */
#define get_byte() inbuf[inptr++] #define get_byte() (inbuf[inptr++])
/* Diagnostic functions */ /* Diagnostic functions */
#ifdef DEBUG #ifdef DEBUG
# define Assert(cond,msg) {if(!(cond)) error(msg);} # define Assert(cond, msg) do { \
if (!(cond)) \
error(msg); \
} while (0)
# define Trace(x) fprintf x # define Trace(x) fprintf x
# define Tracev(x) {if (verbose) fprintf x ;} # define Tracev(x) do { \
# define Tracevv(x) {if (verbose>1) fprintf x ;} if (verbose) \
# define Tracec(c,x) {if (verbose && (c)) fprintf x ;} fprintf x; \
# define Tracecv(c,x) {if (verbose>1 && (c)) fprintf x ;} } while (0)
# define Tracevv(x) do { \
if (verbose > 1) \
fprintf x; \
} while (0)
# define Tracec(c, x) do { \
if (verbose && (c)) \
fprintf x; \
} while (0)
# define Tracecv(c, x) do { \
if (verbose > 1 && (c)) \
fprintf x; \
} while (0)
#else #else
# define Assert(cond,msg) # define Assert(cond, msg)
# define Trace(x) # define Trace(x)
# define Tracev(x) # define Tracev(x)
# define Tracevv(x) # define Tracevv(x)
# define Tracec(c,x) # define Tracec(c, x)
# define Tracecv(c,x) # define Tracecv(c, x)
#endif #endif
static void flush_window(void); static void flush_window(void);
@ -88,26 +102,27 @@ extern char *input_data; /* lives in head.S */
static long bytes_out = 0; static long bytes_out = 0;
static uch *output_data; static uch *output_data;
static unsigned long output_ptr = 0; static unsigned long output_ptr = 0;
static void *malloc(int size); static void *malloc(int size);
static void free(void *where); static void free(void *where);
static void gzip_mark(void **); static void gzip_mark(void **);
static void gzip_release(void **); static void gzip_release(void **);
static void puts(const char *); static void puts(const char *);
/* the "heap" is put directly after the BSS ends, at end */ /* the "heap" is put directly after the BSS ends, at end */
extern int _end; extern int _end;
static long free_mem_ptr = (long)&_end; static long free_mem_ptr = (long)&_end;
#include "../../../../../lib/inflate.c" #include "../../../../../lib/inflate.c"
static void *malloc(int size) static void *malloc(int size)
{ {
void *p; void *p;
if (size <0) error("Malloc error"); if (size < 0)
error("Malloc error");
free_mem_ptr = (free_mem_ptr + 3) & ~3; /* Align */ free_mem_ptr = (free_mem_ptr + 3) & ~3; /* Align */
@ -137,48 +152,47 @@ static void
puts(const char *s) puts(const char *s)
{ {
#ifndef CONFIG_ETRAX_DEBUG_PORT_NULL #ifndef CONFIG_ETRAX_DEBUG_PORT_NULL
while(*s) { while (*s) {
#ifdef CONFIG_ETRAX_DEBUG_PORT0 #ifdef CONFIG_ETRAX_DEBUG_PORT0
while(!(*R_SERIAL0_STATUS & (1 << 5))) ; while (!(*R_SERIAL0_STATUS & (1 << 5))) ;
*R_SERIAL0_TR_DATA = *s++; *R_SERIAL0_TR_DATA = *s++;
#endif #endif
#ifdef CONFIG_ETRAX_DEBUG_PORT1 #ifdef CONFIG_ETRAX_DEBUG_PORT1
while(!(*R_SERIAL1_STATUS & (1 << 5))) ; while (!(*R_SERIAL1_STATUS & (1 << 5))) ;
*R_SERIAL1_TR_DATA = *s++; *R_SERIAL1_TR_DATA = *s++;
#endif #endif
#ifdef CONFIG_ETRAX_DEBUG_PORT2 #ifdef CONFIG_ETRAX_DEBUG_PORT2
while(!(*R_SERIAL2_STATUS & (1 << 5))) ; while (!(*R_SERIAL2_STATUS & (1 << 5))) ;
*R_SERIAL2_TR_DATA = *s++; *R_SERIAL2_TR_DATA = *s++;
#endif #endif
#ifdef CONFIG_ETRAX_DEBUG_PORT3 #ifdef CONFIG_ETRAX_DEBUG_PORT3
while(!(*R_SERIAL3_STATUS & (1 << 5))) ; while (!(*R_SERIAL3_STATUS & (1 << 5))) ;
*R_SERIAL3_TR_DATA = *s++; *R_SERIAL3_TR_DATA = *s++;
#endif #endif
} }
#endif #endif
} }
void* void *memset(void *s, int c, size_t n)
memset(void* s, int c, size_t n)
{ {
int i; int i;
char *ss = (char*)s; char *ss = (char *)s;
for (i=0;i<n;i++) ss[i] = c; for (i = 0; i < n; i++)
ss[i] = c;
return s; return s;
} }
void* void *memcpy(void *__dest, __const void *__src, size_t __n)
memcpy(void* __dest, __const void* __src,
size_t __n)
{ {
int i; int i;
char *d = (char *)__dest, *s = (char *)__src; char *d = (char *)__dest, *s = (char *)__src;
for (i=0;i<__n;i++) d[i] = s[i]; for (i = 0; i < __n; i++)
d[i] = s[i];
return __dest; return __dest;
} }
/* =========================================================================== /* ===========================================================================
@ -186,33 +200,33 @@ memcpy(void* __dest, __const void* __src,
* (Used for the decompressed data only.) * (Used for the decompressed data only.)
*/ */
static void static void flush_window(void)
flush_window()
{ {
ulg c = crc; /* temporary variable */ ulg c = crc; /* temporary variable */
unsigned n; unsigned n;
uch *in, *out, ch; uch *in, *out, ch;
in = window; in = window;
out = &output_data[output_ptr]; out = &output_data[output_ptr];
for (n = 0; n < outcnt; n++) { for (n = 0; n < outcnt; n++) {
ch = *out++ = *in++; ch = *out = *in;
c = crc_32_tab[((int)c ^ ch) & 0xff] ^ (c >> 8); out++;
} in++;
crc = c; c = crc_32_tab[((int)c ^ ch) & 0xff] ^ (c >> 8);
bytes_out += (ulg)outcnt; }
output_ptr += (ulg)outcnt; crc = c;
outcnt = 0; bytes_out += (ulg)outcnt;
output_ptr += (ulg)outcnt;
outcnt = 0;
} }
static void static void error(char *x)
error(char *x)
{ {
puts("\n\n"); puts("\n\n");
puts(x); puts(x);
puts("\n\n -- System halted\n"); puts("\n\n -- System halted\n");
while(1); /* Halt */ while (1); /* Halt */
} }
void setup_normal_output_buffer(void) void setup_normal_output_buffer(void)
@ -223,7 +237,7 @@ void setup_normal_output_buffer(void)
void decompress_kernel(void) void decompress_kernel(void)
{ {
char revision; char revision;
/* input_data is set in head.S */ /* input_data is set in head.S */
inbuf = input_data; inbuf = input_data;
@ -255,10 +269,9 @@ void decompress_kernel(void)
makecrc(); makecrc();
__asm__ volatile ("move $vr,%0" : "=rm" (revision)); __asm__ volatile ("move $vr,%0" : "=rm" (revision));
if (revision < 10) if (revision < 10) {
{
puts("You need an ETRAX 100LX to run linux 2.6\n"); puts("You need an ETRAX 100LX to run linux 2.6\n");
while(1); while (1);
} }
puts("Uncompressing Linux...\n"); puts("Uncompressing Linux...\n");

View File

@ -4,7 +4,7 @@
ccflags-y += -O2 $(LINUXINCLUDE) ccflags-y += -O2 $(LINUXINCLUDE)
asflags-y += $(LINUXINCLUDE) asflags-y += $(LINUXINCLUDE)
ldflags-y += -T $(obj)/rescue.ld ldflags-y += -T $(srctree)/$(obj)/rescue.ld
OBJCOPYFLAGS = -O binary --remove-section=.bss OBJCOPYFLAGS = -O binary --remove-section=.bss
obj-$(CONFIG_ETRAX_AXISFLASHMAP) = head.o obj-$(CONFIG_ETRAX_AXISFLASHMAP) = head.o
OBJECT := $(obj)/head.o OBJECT := $(obj)/head.o

View File

@ -4,7 +4,7 @@
asflags-y += -I $(srctree)/include/asm/mach/ -I $(srctree)/include/asm/arch asflags-y += -I $(srctree)/include/asm/mach/ -I $(srctree)/include/asm/arch
ccflags-y += -O2 -I $(srctree)/include/asm/mach/ -I $(srctree)/include/asm/arch ccflags-y += -O2 -I $(srctree)/include/asm/mach/ -I $(srctree)/include/asm/arch
ldflags-y += -T $(obj)/decompress.ld ldflags-y += -T $(srctree)/$(obj)/decompress.ld
OBJECTS = $(obj)/head.o $(obj)/misc.o OBJECTS = $(obj)/head.o $(obj)/misc.o
OBJCOPYFLAGS = -O binary --remove-section=.bss OBJCOPYFLAGS = -O binary --remove-section=.bss

View File

@ -7,7 +7,7 @@ ccflags-y += -O2 -I $(srctree)/include/asm/arch/mach/ \
-I $(srctree)/include/asm/arch -I $(srctree)/include/asm/arch
asflags-y += -I $(srctree)/include/asm/arch/mach/ -I $(srctree)/include/asm/arch asflags-y += -I $(srctree)/include/asm/arch/mach/ -I $(srctree)/include/asm/arch
LD = gcc-cris -mlinux -march=v32 -nostdlib LD = gcc-cris -mlinux -march=v32 -nostdlib
ldflags-y += -T $(obj)/rescue.ld ldflags-y += -T $(srctree)/$(obj)/rescue.ld
LDPOSTFLAGS = -lgcc LDPOSTFLAGS = -lgcc
OBJCOPYFLAGS = -O binary --remove-section=.bss OBJCOPYFLAGS = -O binary --remove-section=.bss
obj-$(CONFIG_ETRAX_AXISFLASHMAP) = head.o obj-$(CONFIG_ETRAX_AXISFLASHMAP) = head.o