Hi.

I already have a mini-clone of Windows (two actually -
PDOS/386 and PDOS-generic), but both are ASCII.

I now wish to create an EBCDIC version.

I have an i370 EBCDIC version already (z/PDOS and
z/PDOS-generic), and the end result is that I have been
able to compile the gcc 3.2.3 source code on z/PDOS-generic
targeting i386 EBCDIC.

Dave Pitts has already made the modifications suitable
for gccmvs (i370) to run, but gccwin (i386) is giving this error:

enter a command
type test.c
int main(void)
{
printf("hello, world\n");
return 5;
}

enter a command
gccwin -S -Os test.c
about to call app at address 003F74B8
test.c: In function `main':
test.c:5: Internal compiler error in schedule_block, at <stdin>:1659
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
return from app is hex 1

enter a command


I don't have this issue on an ASCII machine, but it
generates incorrect assembler (EBCDIC codes
converted to ASCII) - a problem that can be bypassed
by starting with EBCDIC source code (which I did,
above). Even in steady state (working on EBCDIC
mini-Windows-clone), I will need this problem solved.

Switching off optimization works:

enter a command
gccwin -S -O0 test.c
about to call app at address 003F74B8
return from app is hex 0

enter a command
type test.s
 .file "test.c"
 .text
LC0:
 .ascii "hello, world\25\0"
.globl _main
_main:
 pushl %ebp
 movl %esp, %ebp
 subl $8, %esp
 andl $-16, %esp
 movl $0, %eax
 subl %eax, %esp
 subl $12, %esp
 pushl $LC0
 call _printf
 addl $16, %esp
 movl $5, %eax
 leave
 ret

enter a command


The modified gcc 3.2.3 source code is in gcc-stage* in
custom.zip at http://pdos.org

The problem is almost certainly some issue arising from
gcc source code making some ASCII assumption. That
hasn't already been found and addressed by Dave Pitts.

Any suggestions on where the problem may lie?

(and yes, I realize that gcc 3.2.3 isn't officially supported -
there are reasons I am still on this version - one being
the i370 target which I have just used).

Thanks. Paul.

Reply via email to