[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [openrisc] Toolchain and simulator with Cygwin
Fredrik,
Thank you for submiting your patch.
AFAIK uint32_t,... should be defined by ISO C. So, cygwin will probably fix
this eventually.
I think other problems share same nature. Since we already lack developers and
maintainers, it is impossible for us at this time to write hacks to be
multi-platform. I think it is best for us, that these issues are solved by
operating system provider.
So, I propose to post your patch on the web site, besides uclinux toolchain
building instructions. Is this ok with you?
Marko
On Monday 04 November 2002 23:38, fredrik@hederstierna.com wrote:
> I've tried to compile the toolchain and the simulator with cygwin.
>
> There were some problems - if any maintainer is interrested in
> patching the source, I submit the problems and suggested solutions.
>
> The first problem is that the header file <inttypes.h> is not
> supported by cygwin. I implemented this file as a simple header file
> myself and put it in /usr/include:
> Then in Cygwin <curses.h> defines a bool-type which causes conflics in
> utils.c in the GDB sources, this can be solved by changing the order
> which include files are included, move down include <curses.h> to
> below other includes:
>
> Index: gdb/utils.c
> ===================================================================
> RCS file: /home/oc/cvs/or1k/gdb-5.0/gdb/utils.c,v
> retrieving revision 1.1.1.1
> diff -r1.1.1.1 utils.c
> 21a22,25
>
> > #ifdef HAVE_CURSES_H
> > #include <curses.h>
> > #endif
>
> 27,29d30
> < #ifdef HAVE_CURSES_H
> < #include <curses.h>
> < #endif
>
> This makes GDB compile I think, and then there are also some problems
> with compiling the simulator. Same thing as above regarding the
> <inttypes.h> file. And also <asm/elf.h> is not found nor needed.
>
> ===================================================================
> RCS file: /home/oc/cvs/or1k/or1ksim/cpu/common/elf.h,v
> retrieving revision 1.1
> diff -r1.1 elf.h
> 4c4
> < #include <asm/elf.h>
> ---
>
> > //#include <asm/elf.h>
>
> Index: parse.c
>
>
> It seems like 'isblank()' used in parse.c is not ANSI, so the compiler
> gives error, I implemented it myself:
>
> ===================================================================
> RCS file: /home/oc/cvs/or1k/or1ksim/cpu/common/parse.c,v
> retrieving revision 1.37
> diff -r1.37 parse.c
> 114a115,121
>
> > inline int _isblank (int c)
> > {
> > return ((c == ' ') || (c == '\t'));
> > }
>
> 123c130
> < while (*str && !isblank (*str)) str++;
> ---
>
> > while (*str && !_isblank (*str)) str++;
>
> 127c134
> < while (*str && isblank (*str)) str++;
> ---
>
> > while (*str && _isblank (*str)) str++;
>
> In cuc.h it complained that log2() seems to be implemented, the
> following patch made it compile
>
> Index: cuc.h
> ===================================================================
> RCS file: /home/oc/cvs/or1k/or1ksim/cuc/cuc.h,v
> retrieving revision 1.20
> diff -r1.20 cuc.h
> 212c212
> < int log2 (unsigned long x);
> ---
>
> > //int log2(unsigned long x);
>
> In debug_unit.c I had to remove <inttypes.h>
>
> Index: debug_unit.c
> ===================================================================
> RCS file: /home/oc/cvs/or1k/or1ksim/debug/debug_unit.c,v
> retrieving revision 1.13
> diff -r1.13 debug_unit.c
> 35d34
> < #include <inttypes.h>
>
> In periperhals-catalog there we some compiler errors then using
> backslash in c-lines which needed to be patched:
>
> Index: atadevice.c
> ===================================================================
> RCS file: /home/oc/cvs/or1k/or1ksim/peripheral/atadevice.c,v
> retrieving revision 1.3
> diff -r1.3 atadevice.c
> 177,180c177,180
> < ata_device_hw_reset(&devices->device1, reset_signal, \
> < 1, \ /* assert dasp, this is device1 */
> < 0, \ /* negate pdiag input, no more devices */
> < 0); /* negate dasp input, no more devices */
> ---
>
> > ata_device_hw_reset(&devices->device1, reset_signal,
> > 1, /* assert dasp, this is device1 */
> > 0, /* negate pdiag input, no more devices */
> > 0); /* negate dasp input, no more devices */
>
> 183,185c183,185
> < ata_device_hw_reset(&devices->device0, reset_signal, \
> < 0, \
> < devices->device1.sigs.pdiago, \
> ---
>
> > ata_device_hw_reset(&devices->device0, reset_signal,
> > 0,
> > devices->device1.sigs.pdiago,
>
> 191,193c191,193
> < ata_device_hw_reset(&devices->device0, reset_signal, \
> < 0, \ /* negate dasp, this is device0 */
> < 0, \ /* negate pdiag input, there's no device1*/
> ---
>
> > ata_device_hw_reset(&devices->device0, reset_signal,
> > 0, /* negate dasp, this is device0 */
> > 0, /* negate pdiag input, there's no device1*/
>
> 199,201c199,201
> < ata_device_hw_reset(&devices->device1, reset_signal, \
> < 0, \ /* negate dasp, this is device0 */
> < 0, \ /* negate pdiag input, there's no device1*/
> ---
>
> > ata_device_hw_reset(&devices->device1, reset_signal,
> > 0, /* negate dasp, this is device0 */
> > 0, /* negate pdiag input, there's no device1*/
>
> 211c211
> < void ata_device_hw_reset(ata_device *device, int reset_signal, \
> ---
>
> > void ata_device_hw_reset(ata_device *device, int reset_signal,
>
> Index: atadevice_cmdi.c
> ===================================================================
> RCS file: /home/oc/cvs/or1k/or1ksim/peripheral/atadevice_cmdi.c,v
> retrieving revision 1.2
> diff -r1.2 atadevice_cmdi.c
> 573,587c573,587
> < *buf++ = 0 << 15 | \ /* obsolete */
> < SUPPORT_NOP_CMD << 14 | \
> < SUPPORT_READ_BUFFER_CMD << 13 | \
> < SUPPORT_WRITE_BUFFER_CMD << 12 | \
> < 0 << 11 | \ /* obsolete */
> < SUPPORT_HOST_PROTECTED_AREA << 10 | \
> < SUPPORT_DEVICE_RESET_CMD << 9 | \
> < SUPPORT_SERVICE_INTERRUPT << 8 | \
> < SUPPORT_RELEASE_INTERRUPT << 7 | \
> < SUPPORT_LOOKAHEAD << 6 | \
> < SUPPORT_WRITE_CACHE << 5 | \
> < 0 << 4 | \ /* cleared to zero */
> < SUPPORT_POWER_MANAGEMENT << 3 | \
> < SUPPORT_REMOVABLE_MEDIA << 2 | \
> < SUPPORT_SECURITY_MODE << 1 | \
> ---
>
> > *buf++ = 0 << 15 | /* obsolete */
> > SUPPORT_NOP_CMD << 14 |
> > SUPPORT_READ_BUFFER_CMD << 13 |
> > SUPPORT_WRITE_BUFFER_CMD << 12 |
> > 0 << 11 | /* obsolete */
> > SUPPORT_HOST_PROTECTED_AREA << 10 |
> > SUPPORT_DEVICE_RESET_CMD << 9 |
> > SUPPORT_SERVICE_INTERRUPT << 8 |
> > SUPPORT_RELEASE_INTERRUPT << 7 |
> > SUPPORT_LOOKAHEAD << 6 |
> > SUPPORT_WRITE_CACHE << 5 |
> > 0 << 4 | /* cleared to zero */
> > SUPPORT_POWER_MANAGEMENT << 3 |
> > SUPPORT_REMOVABLE_MEDIA << 2 |
> > SUPPORT_SECURITY_MODE << 1 |
>
> 594,598c594,598
> < *buf++ = 0 << 15 | \ /* cleared to zero */
> < 1 << 14 | \ /* set to one */
> < 0 << 9 | \ /* reserved */
> < SUPPORT_SET_MAX << 8 | \
> < 0 << 7 | \ /* reserved for */
> ---
>
> > *buf++ = 0 << 15 | /* cleared to zero */
> > 1 << 14 | /* set to one */
> > 0 << 9 | /* reserved */
> > SUPPORT_SET_MAX << 8 |
> > 0 << 7 | /* reserved for */
>
> 600,605c600,605
> < SET_FEATURES_REQUIRED_AFTER_POWER_UP << 6 | \
> < SUPPORT_POWER_UP_IN_STANDBY_MODE << 5 | \
> < SUPPORT_REMOVABLE_MEDIA_NOTIFICATION << 4 | \
> < SUPPORT_APM << 3 | \
> < SUPPORT_CFA << 2 | \
> < SUPPORT_READ_WRITE_DMA_QUEUED << 1 | \
> ---
>
> > SET_FEATURES_REQUIRED_AFTER_POWER_UP << 6 |
> > SUPPORT_POWER_UP_IN_STANDBY_MODE << 5 |
> > SUPPORT_REMOVABLE_MEDIA_NOTIFICATION << 4 |
> > SUPPORT_APM << 3 |
> > SUPPORT_CFA << 2 |
> > SUPPORT_READ_WRITE_DMA_QUEUED << 1 |
>
> 612c612
> < *buf++ = 0 << 15 | \ /* cleared to zero */
> ---
>
> > *buf++ = 0 << 15 | /* cleared to zero */
>
> 619,633c619,633
> < *buf++ = 0 << 15 | \ /* obsolete */
> < SUPPORT_NOP_CMD << 14 | \
> < SUPPORT_READ_BUFFER_CMD << 13 | \
> < SUPPORT_WRITE_BUFFER_CMD << 12 | \
> < 0 << 11 | \ /* obsolete */
> < SUPPORT_HOST_PROTECTED_AREA << 10 | \
> < SUPPORT_DEVICE_RESET_CMD << 9 | \
> < SUPPORT_SERVICE_INTERRUPT << 8 | \
> < SUPPORT_RELEASE_INTERRUPT << 7 | \
> < SUPPORT_LOOKAHEAD << 6 | \
> < SUPPORT_WRITE_CACHE << 5 | \
> < 0 << 4 | \ /* cleared to zero */
> < SUPPORT_POWER_MANAGEMENT << 3 | \
> < SUPPORT_REMOVABLE_MEDIA << 2 | \
> < SUPPORT_SECURITY_MODE << 1 | \
> ---
>
> > *buf++ = 0 << 15 | /* obsolete */
> > SUPPORT_NOP_CMD << 14 |
> > SUPPORT_READ_BUFFER_CMD << 13 |
> > SUPPORT_WRITE_BUFFER_CMD << 12 |
> > 0 << 11 | /* obsolete */
> > SUPPORT_HOST_PROTECTED_AREA << 10 |
> > SUPPORT_DEVICE_RESET_CMD << 9 |
> > SUPPORT_SERVICE_INTERRUPT << 8 |
> > SUPPORT_RELEASE_INTERRUPT << 7 |
> > SUPPORT_LOOKAHEAD << 6 |
> > SUPPORT_WRITE_CACHE << 5 |
> > 0 << 4 | /* cleared to zero */
> > SUPPORT_POWER_MANAGEMENT << 3 |
> > SUPPORT_REMOVABLE_MEDIA << 2 |
> > SUPPORT_SECURITY_MODE << 1 |
>
> 640,642c640,642
> < *buf++ = 0 << 9 | \ /* 15-9 reserved */
> < SUPPORT_SET_MAX << 8 | \
> < 0 << 7 | \ /* reserved for */
> ---
>
> > *buf++ = 0 << 9 | /* 15-9 reserved */
> > SUPPORT_SET_MAX << 8 |
> > 0 << 7 | /* reserved for */
>
> 644,649c644,649
> < SET_FEATURES_REQUIRED_AFTER_POWER_UP << 6 | \
> < SUPPORT_POWER_UP_IN_STANDBY_MODE << 5 | \
> < SUPPORT_REMOVABLE_MEDIA_NOTIFICATION << 4 | \
> < SUPPORT_APM << 3 | \
> < SUPPORT_CFA << 2 | \
> < SUPPORT_READ_WRITE_DMA_QUEUED << 1 | \
> ---
>
> > SET_FEATURES_REQUIRED_AFTER_POWER_UP << 6 |
> > SUPPORT_POWER_UP_IN_STANDBY_MODE << 5 |
> > SUPPORT_REMOVABLE_MEDIA_NOTIFICATION << 4 |
> > SUPPORT_APM << 3 |
> > SUPPORT_CFA << 2 |
> > SUPPORT_READ_WRITE_DMA_QUEUED << 1 |
>
> 656c656
> < *buf++ = 0 << 15 | \ /* cleared to zero */
> ---
>
> > *buf++ = 0 << 15 | /* cleared to zero */
>
> 718,720c718,720
> < *buf++ = 0 << 15 | \
> < 1 << 14 | \
> < 0 << 13 | \ /* CBLIBD level (1=Vih,
> 0=Vil) */
> ---
>
> > *buf++ = 0 << 15 |
> > 1 << 14 |
> > 0 << 13 | /* CBLIBD level (1=Vih,
>
> 0=Vil) */
> 722,723c722,723
> < 0 << 12 | \ /* reserved
> */
> < device->sigs.pdiago << 11 | \ /* 1: Device1 did
> assert PDIAG */
> ---
>
> > 0 << 12 | /* reserved
>
> */
>
> > device->sigs.pdiago << 11 | /* 1: Device1 did assert
>
> PDIAG */
> 725c725
> < 3 << 9 | \ /* Device1 determined device
> number by */
> ---
>
> > 3 << 9 | /* Device1 determined device
>
> number by */
> 736,737c736,737
> < *buf++ = 0 << 7 | \ /* reserved
> */
> < 0 << 6 | \ /* 1: Device0 responds for
> device 1 */
> ---
>
> > *buf++ = 0 << 7 | /* reserved
>
> */
>
> > 0 << 6 | /* 1: Device0 responds for
>
> device 1 */
> 739c739
> < device->sigs.daspi << 5 | \ /* 1: Device0 did
> detected DASP assertion */
> ---
>
> > device->sigs.daspi << 5 | /* 1: Device0 did
>
> detected DASP assertion */
> 741c741
> < device->sigs.pdiagi << 4 | \ /* Device0 did detect
> PDIAG assertion */
> ---
>
> > device->sigs.pdiagi << 4 | /* Device0 did detect
>
> PDIAG assertion */
> 743,744c743,744
> < 1 << 3 | \ /* Device0 did pass
> diagnostics */
> < 3 << 1 | \ /* Device0 determined device
> number by */
> ---
>
> > 1 << 3 | /* Device0 did pass
>
> diagnostics */
>
> > 3 << 1 | /* Device0 determined device
>
> number by */
>
>
> At last some ethernet defines were not present
>
> Index: ethernet_i.h
> ===================================================================
> RCS file: /home/oc/cvs/or1k/or1ksim/peripheral/ethernet_i.h,v
> retrieving revision 1.9
> diff -r1.9 ethernet_i.h
> 44a45,51
>
> > #ifndef ETH_HLEN
> > #define ETH_HLEN 14 /* Total octets in header (from
>
> include/linux/if_ether.h, if_tr.h) */
>
> > #endif
> > #ifndef MSG_DONTWAIT
> > #define MSG_DONTWAIT 0x40 /* Nonblocking io (from
>
> include/linux/socket.h) */
>
> > #endif
>
> Best Regards,
> Fredrik Hederstierna
--
To unsubscribe from openrisc mailing list please visit http://www.opencores.org/mailinglists.shtml