Jump to page: 1 2
Thread overview
GDC D compiler for PocketPCs is here!
Aug 11, 2006
Chad J
Aug 11, 2006
Manfred Hansen
Aug 11, 2006
Chad J
Aug 11, 2006
Frits van Bommel
Aug 11, 2006
pedro alves
Aug 11, 2006
Chad J
Aug 11, 2006
Manfred Hansen
Aug 11, 2006
Chad J
Aug 12, 2006
Manfred Hansen
Aug 12, 2006
Chad J
Aug 13, 2006
Manfred Hansen
Aug 13, 2006
Chad J
Aug 16, 2006
John Reimer
Aug 17, 2006
Chad J
Aug 17, 2006
John Reimer
Aug 17, 2006
Chad J
Aug 17, 2006
John Reimer
Aug 17, 2006
pedro alves
Aug 22, 2006
John Reimer
Aug 13, 2006
Chad J
August 11, 2006
I've finally managed to get this cross-compiler to make a working "hello world" program that runs on my PDA.  The source for the program is follows:

import std.file;

void main()
{
    std.file.write( "doutput.txt", "Hello world!" );
}

I have uploaded more information, the sources, and the binaries to a temporary file sharing place at the following URL:
http://www.bigupload.com/d=F902F09C

I am hoping someone will hook me up with dedicated hosting for this. I'm also hoping this can be merged into the main GDC sources at some point.

It is probably very buggy now, and I haven't tested very much of it at all.  I'll be trying to get it up to v0.19 (it's GDC 0.18 now) in a while, and debug what I can.  I can probably debug Phobos stuff, but the compiler errors are a bit much for me.

Enjoy.
August 11, 2006
Am Fri, 11 Aug 2006 04:28:55 -0400 schrieb Chad J:

> I've finally managed to get this cross-compiler to make a working "hello world" program that runs on my PDA.  The source for the program is follows:
> 
> import std.file;
> 
> void main()
> {
>      std.file.write( "doutput.txt", "Hello world!" );
> }
> 
> I have uploaded more information, the sources, and the binaries to a temporary file sharing place at the following URL: http://www.bigupload.com/d=F902F09C
> 
> I am hoping someone will hook me up with dedicated hosting for this. I'm also hoping this can be merged into the main GDC sources at some point.
> 
> It is probably very buggy now, and I haven't tested very much of it at all.  I'll be trying to get it up to v0.19 (it's GDC 0.18 now) in a while, and debug what I can.  I can probably debug Phobos stuff, but the compiler errors are a bit much for me.
> 
> Enjoy.

Hello,

i have try to compile void main() {}

but i get the following error message:
hansen@manni-lx:~/dd$ arm-wince-pe-gdc hello_arm.d -o hello_arm
/tmp/ccx3xcRb.s: Assembler messages:
/tmp/ccx3xcRb.s:6: Error: junk at end of line, first unrecognized character is `@'
/tmp/ccx3xcRb.s:7: Error: junk at end of line, first unrecognized character is `@'
/tmp/ccx3xcRb.s:8: Error: too many memory references for `mov'
/tmp/ccx3xcRb.s:9: Error: no such instruction: `stmfd sp!,{fp,ip,lr,pc}'
/tmp/ccx3xcRb.s:10: Error: too many memory references for `sub'
/tmp/ccx3xcRb.s:11: Error: no such instruction: `bl __gccmain'
/tmp/ccx3xcRb.s:12: Error: expecting operand after ','; got nothing
/tmp/ccx3xcRb.s:13: Error: too many memory references for `mov'
/tmp/ccx3xcRb.s:14: Error: no such instruction: `ldmfd sp,{fp,sp,pc}'

Under debian sarge and under ubuntu 6.0.6
I have copy the arm-wince-pe directory to /usr/local and i have extended
the PATH Variavble.

Manfred
August 11, 2006
Manfred Hansen wrote:
> 
> Hello,
> 
> i have try to compile void main() {}
> 
> but i get the following error message:
> hansen@manni-lx:~/dd$ arm-wince-pe-gdc hello_arm.d -o hello_arm
> /tmp/ccx3xcRb.s: Assembler messages:
> /tmp/ccx3xcRb.s:6: Error: junk at end of line, first unrecognized character is `@'
> /tmp/ccx3xcRb.s:7: Error: junk at end of line, first unrecognized character is `@'
> /tmp/ccx3xcRb.s:8: Error: too many memory references for `mov'
> /tmp/ccx3xcRb.s:9: Error: no such instruction: `stmfd sp!,{fp,ip,lr,pc}'
> /tmp/ccx3xcRb.s:10: Error: too many memory references for `sub'
> /tmp/ccx3xcRb.s:11: Error: no such instruction: `bl __gccmain'
> /tmp/ccx3xcRb.s:12: Error: expecting operand after ','; got nothing
> /tmp/ccx3xcRb.s:13: Error: too many memory references for `mov'
> /tmp/ccx3xcRb.s:14: Error: no such instruction: `ldmfd sp,{fp,sp,pc}'
> 
> Under debian sarge and under ubuntu 6.0.6 I have copy the arm-wince-pe directory to /usr/local and i have extended
> the PATH Variavble.
> 
> Manfred

Argh, I can't replicate it, even when I move it my other system.  The catch is that I've used both systems to develop this, so maybe there is a missing dependency that I don't know about.

Btw, I compiled and used this on kubuntu 6.0.6.  The other system is coLinux running Debian.

In a while I'll make another coLinux Debian w/ fresh filesystem, and see how that goes.

Those error messages look like the ones I got when the arm-wince-pe assembler was given x86 assembly code.
August 11, 2006
Chad J wrote:
> Manfred Hansen wrote:
>>
>> Hello,
>>
>> i have try to compile void main() {}
>>
>> but i get the following error message:
>> hansen@manni-lx:~/dd$ arm-wince-pe-gdc hello_arm.d -o hello_arm
>> /tmp/ccx3xcRb.s: Assembler messages:
>> /tmp/ccx3xcRb.s:6: Error: junk at end of line, first unrecognized character is `@'
>> /tmp/ccx3xcRb.s:7: Error: junk at end of line, first unrecognized character is `@'
>> /tmp/ccx3xcRb.s:8: Error: too many memory references for `mov'
>> /tmp/ccx3xcRb.s:9: Error: no such instruction: `stmfd sp!,{fp,ip,lr,pc}'
>> /tmp/ccx3xcRb.s:10: Error: too many memory references for `sub'
>> /tmp/ccx3xcRb.s:11: Error: no such instruction: `bl __gccmain'
>> /tmp/ccx3xcRb.s:12: Error: expecting operand after ','; got nothing
>> /tmp/ccx3xcRb.s:13: Error: too many memory references for `mov'
>> /tmp/ccx3xcRb.s:14: Error: no such instruction: `ldmfd sp,{fp,sp,pc}'
>>
>> Under debian sarge and under ubuntu 6.0.6 I have copy the arm-wince-pe directory to /usr/local and i have extended
>> the PATH Variavble.
>>
>> Manfred
> 
> Argh, I can't replicate it, even when I move it my other system.  The catch is that I've used both systems to develop this, so maybe there is a missing dependency that I don't know about.
> 
> Btw, I compiled and used this on kubuntu 6.0.6.  The other system is coLinux running Debian.
> 
> In a while I'll make another coLinux Debian w/ fresh filesystem, and see how that goes.
> 
> Those error messages look like the ones I got when the arm-wince-pe assembler was given x86 assembly code.

Now I'm no cross-compiling expert, but that last statement would back up my first thought: did you build arm-wince-pe binutils to go with your arm-wince-pe-gdc? In particular arm-wince-pe-gas?
Maybe only on one system (that being the one where it works)?
August 11, 2006
Frits van Bommel wrote:
> Chad J wrote:
>> Manfred Hansen wrote:
>>>
>>> Hello,
>>>
>>> i have try to compile void main() {}
>>>
>>> but i get the following error message:
>>> hansen@manni-lx:~/dd$ arm-wince-pe-gdc hello_arm.d -o hello_arm
>>> /tmp/ccx3xcRb.s: Assembler messages:
>>> /tmp/ccx3xcRb.s:6: Error: junk at end of line, first unrecognized character is `@'
>>> /tmp/ccx3xcRb.s:7: Error: junk at end of line, first unrecognized character is `@'
>>> /tmp/ccx3xcRb.s:8: Error: too many memory references for `mov'
>>> /tmp/ccx3xcRb.s:9: Error: no such instruction: `stmfd sp!,{fp,ip,lr,pc}'
>>> /tmp/ccx3xcRb.s:10: Error: too many memory references for `sub'
>>> /tmp/ccx3xcRb.s:11: Error: no such instruction: `bl __gccmain'
>>> /tmp/ccx3xcRb.s:12: Error: expecting operand after ','; got nothing
>>> /tmp/ccx3xcRb.s:13: Error: too many memory references for `mov'
>>> /tmp/ccx3xcRb.s:14: Error: no such instruction: `ldmfd sp,{fp,sp,pc}'
>>>
>>> Under debian sarge and under ubuntu 6.0.6 I have copy the arm-wince-pe directory to /usr/local and i have extended
>>> the PATH Variavble.
>>>
>>> Manfred
>>
>> Argh, I can't replicate it, even when I move it my other system.  The catch is that I've used both systems to develop this, so maybe there is a missing dependency that I don't know about.
>>
>> Btw, I compiled and used this on kubuntu 6.0.6.  The other system is coLinux running Debian.
>>
>> In a while I'll make another coLinux Debian w/ fresh filesystem, and see how that goes.
>>
>> Those error messages look like the ones I got when the arm-wince-pe assembler was given x86 assembly code.
>
> Now I'm no cross-compiling expert, but that last statement would back up my first thought: did you build arm-wince-pe binutils to go with your arm-wince-pe-gdc? In particular arm-wince-pe-gas?
> Maybe only on one system (that being the one where it works)?

That sure looks like it. That is arm assembly on the error log, and '@' is the comment char on arm assembly,
and it is also the first character the assembler is complaining about.

Isn't there a gdc -v switch to show what commands are being invoked?

Cheers,
Pedro Alves
August 11, 2006
pedro alves wrote:
> Frits van Bommel wrote:
> 
>> Chad J wrote:
>>
>>> Manfred Hansen wrote:
>>>
>>>>
>>>> Hello,
>>>>
>>>> i have try to compile void main() {}
>>>>
>>>> but i get the following error message:
>>>> hansen@manni-lx:~/dd$ arm-wince-pe-gdc hello_arm.d -o hello_arm
>>>> /tmp/ccx3xcRb.s: Assembler messages:
>>>> /tmp/ccx3xcRb.s:6: Error: junk at end of line, first unrecognized character is `@'
>>>> /tmp/ccx3xcRb.s:7: Error: junk at end of line, first unrecognized character is `@'
>>>> /tmp/ccx3xcRb.s:8: Error: too many memory references for `mov'
>>>> /tmp/ccx3xcRb.s:9: Error: no such instruction: `stmfd sp!,{fp,ip,lr,pc}'
>>>> /tmp/ccx3xcRb.s:10: Error: too many memory references for `sub'
>>>> /tmp/ccx3xcRb.s:11: Error: no such instruction: `bl __gccmain'
>>>> /tmp/ccx3xcRb.s:12: Error: expecting operand after ','; got nothing
>>>> /tmp/ccx3xcRb.s:13: Error: too many memory references for `mov'
>>>> /tmp/ccx3xcRb.s:14: Error: no such instruction: `ldmfd sp,{fp,sp,pc}'
>>>>
>>>> Under debian sarge and under ubuntu 6.0.6 I have copy the arm-wince-pe directory to /usr/local and i have extended
>>>> the PATH Variavble.
>>>>
>>>> Manfred
>>>
>>>
>>> Argh, I can't replicate it, even when I move it my other system.  The catch is that I've used both systems to develop this, so maybe there is a missing dependency that I don't know about.
>>>
>>> Btw, I compiled and used this on kubuntu 6.0.6.  The other system is coLinux running Debian.
>>>
>>> In a while I'll make another coLinux Debian w/ fresh filesystem, and see how that goes.
>>>
>>> Those error messages look like the ones I got when the arm-wince-pe assembler was given x86 assembly code.
>>
>>
>> Now I'm no cross-compiling expert, but that last statement would back up my first thought: did you build arm-wince-pe binutils to go with your arm-wince-pe-gdc? In particular arm-wince-pe-gas?
>> Maybe only on one system (that being the one where it works)?
> 
> 
> That sure looks like it. That is arm assembly on the error log, and '@' is the comment char on arm assembly,
> and it is also the first character the assembler is complaining about.
> 
> Isn't there a gdc -v switch to show what commands are being invoked?
> 
> Cheers,
> Pedro Alves

hehe I was just about to ask for that.

Manfred, try
arm-wince-pe-gdc -v hello_arm.d -o hello_arm
and give us the output.

To answer your question Frits, the binutils come from a cegcc linux binary prerelease.  As a result, the binutils were built on a computer that is not my own, only the arm-wince-pe-gdc itself (and *-gcc and *-g++) were built by me.  They are bundled with the compiler and have worked for me.  It looks from the errors like the binutils are working fine, they just can't turn x86 assembly into ARM machine code.
August 11, 2006
Am Fri, 11 Aug 2006 15:59:47 -0400 schrieb Chad J:

> pedro alves wrote:
>> Frits van Bommel wrote:
>> 
>>> Chad J wrote:
>>>
>>>> Manfred Hansen wrote:
>>>>
>>>>>
>>>>> Hello,
>>>>>
>>>>> i have try to compile void main() {}
>>>>>
>>>>> but i get the following error message:
>>>>> hansen@manni-lx:~/dd$ arm-wince-pe-gdc hello_arm.d -o hello_arm
>>>>> /tmp/ccx3xcRb.s: Assembler messages:
>>>>> /tmp/ccx3xcRb.s:6: Error: junk at end of line, first unrecognized
>>>>> character is `@'
>>>>> /tmp/ccx3xcRb.s:7: Error: junk at end of line, first unrecognized
>>>>> character is `@'
>>>>> /tmp/ccx3xcRb.s:8: Error: too many memory references for `mov'
>>>>> /tmp/ccx3xcRb.s:9: Error: no such instruction: `stmfd
>>>>> sp!,{fp,ip,lr,pc}'
>>>>> /tmp/ccx3xcRb.s:10: Error: too many memory references for `sub'
>>>>> /tmp/ccx3xcRb.s:11: Error: no such instruction: `bl __gccmain'
>>>>> /tmp/ccx3xcRb.s:12: Error: expecting operand after ','; got nothing
>>>>> /tmp/ccx3xcRb.s:13: Error: too many memory references for `mov'
>>>>> /tmp/ccx3xcRb.s:14: Error: no such instruction: `ldmfd sp,{fp,sp,pc}'
>>>>>
>>>>> Under debian sarge and under ubuntu 6.0.6 I have copy the arm-wince-pe directory to /usr/local and i have extended the PATH Variavble.
>>>>>
>>>>> Manfred
>>>>
>>>>
>>>> Argh, I can't replicate it, even when I move it my other system.  The catch is that I've used both systems to develop this, so maybe there is a missing dependency that I don't know about.
>>>>
>>>> Btw, I compiled and used this on kubuntu 6.0.6.  The other system is coLinux running Debian.
>>>>
>>>> In a while I'll make another coLinux Debian w/ fresh filesystem, and see how that goes.
>>>>
>>>> Those error messages look like the ones I got when the arm-wince-pe assembler was given x86 assembly code.
>>>
>>>
>>> Now I'm no cross-compiling expert, but that last statement would back
>>> up my first thought: did you build arm-wince-pe binutils to go with
>>> your arm-wince-pe-gdc? In particular arm-wince-pe-gas?
>>> Maybe only on one system (that being the one where it works)?
>> 
>> 
>> That sure looks like it. That is arm assembly on the error log, and '@'
>> is the comment char on arm assembly,
>> and it is also the first character the assembler is complaining about.
>> 
>> Isn't there a gdc -v switch to show what commands are being invoked?
>> 
>> Cheers,
>> Pedro Alves
> 
> hehe I was just about to ask for that.
> 
> Manfred, try
> arm-wince-pe-gdc -v hello_arm.d -o hello_arm
> and give us the output.
> 
> To answer your question Frits, the binutils come from a cegcc linux binary prerelease.  As a result, the binutils were built on a computer that is not my own, only the arm-wince-pe-gdc itself (and *-gcc and *-g++) were built by me.  They are bundled with the compiler and have worked for me.  It looks from the errors like the binutils are working fine, they just can't turn x86 assembly into ARM machine code.

This is the with switch -v:

ansen@manni-lx:~/dd$ arm-wince-pe-gdc -v -c  hello_arm.d -o hello_arm
Using built-in specs.
Target: arm-wince-pe
Configured with: /gdc/18/configure --prefix=/usr/local/arm-wince-pe --disable-unix --with-newlib --enable-multilib=no --enable-languages=c,d,c++ --with-build-time-tools=/usr/local/arm-wince-pe/bin --with-as=/usr/local/arm-wince-pe/bin/arm-wince-pe-as --with-ld=/usr/local/arm-wince-pe/bin/arm-wince-pe-ld --with-sysroot=/usr/local/arm-wince-pe --target=arm-wince-pe --enable-phobos-config-dir=/usr/local/arm-wince-pe/phobos-config
Thread model: single
gcc version 4.0.3 (gdc 0.18, using dmd 0.149)
 /usr/local/arm-wince-pe/libexec/gcc/arm-wince-pe/4.0.3/cc1d hello_arm.d -quiet -dumpbase hello_arm.d -auxbase-strip hello_arm -version -o /tmp/ccJ0gw9a.sGNU D version 4.0.3 (gdc 0.18, using dmd 0.149) (arm-wince-pe)
        compiled by GNU C version 4.0.3 (Ubuntu 4.0.3-1ubuntu5).
GGC heuristics: --param ggc-min-expand=64 --param ggc-min-heapsize=64021
 as -o hello_arm /tmp/ccJ0gw9a.s
/tmp/ccJ0gw9a.s: Assembler messages:
/tmp/ccJ0gw9a.s:6: Error: junk at end of line, first unrecognized character is `@'
/tmp/ccJ0gw9a.s:7: Error: junk at end of line, first unrecognized character is `@'
/tmp/ccJ0gw9a.s:8: Error: too many memory references for `mov'
/tmp/ccJ0gw9a.s:9: Error: no such instruction: `stmfd sp!,{fp,ip,lr,pc}'
/tmp/ccJ0gw9a.s:10: Error: too many memory references for `sub'
/tmp/ccJ0gw9a.s:11: Error: no such instruction: `bl __gccmain'
/tmp/ccJ0gw9a.s:12: Error: expecting operand after ','; got nothing
/tmp/ccJ0gw9a.s:13: Error: too many memory references for `mov'
/tmp/ccJ0gw9a.s:14: Error: no such instruction: `ldmfd sp,{fp,sp,pc}'

On my debian system i have made a softlink from /usr/bin/as to /usr/local/arm-wince-pe/bin/arm-wince-pe-as

Then it was possible to compile an object file.
I have delete the softlink and it is also posslible to make a
object file. I dont't now why?
Here is the output:
n@localhost:~$ arm-wince-pe-gdc -v  hello_arm.d -o hello_arm
Es werden eingebaute Spezifikationen verwendet.
Lesen der Spezifikationen von /usr/local/arm-wince-pe/lib/gcc/arm-wince-pe/4.0.3/../../../../arm-wince-pe/lib/libgphobos.spec
Spezifikation wird von lib nach liborig umbenannt
Ziel: arm-wince-pe
Konfiguriert mit: /gdc/18/configure --prefix=/usr/local/arm-wince-pe --disable-unix --with-newlib --enable-multilib=no --enable-languages=c,d,c++ --with-build-time-tools=/usr/local/arm-wince-pe/bin --with-as=/usr/local/arm-wince-pe/bin/arm-wince-pe-as --with-ld=/usr/local/arm-wince-pe/bin/arm-wince-pe-ld --with-sysroot=/usr/local/arm-wince-pe --target=arm-wince-pe --enable-phobos-config-dir=/usr/local/arm-wince-pe/phobos-config
Thread-Modell: single
gcc-Version 4.0.3 (gdc 0.18, using dmd 0.149)
 /usr/local/arm-wince-pe/libexec/gcc/arm-wince-pe/4.0.3/cc1d hello_arm.d -quiet -dumpbase hello_arm.d -auxbase hello_arm -version -o /tmp/ccMvNpIe.s
GNU D version 4.0.3 (gdc 0.18, using dmd 0.149) (arm-wince-pe)
        compiled by GNU C version 4.0.3 (Ubuntu 4.0.3-1ubuntu5).
GGC-Heuristik: --param ggc-min-expand=47 --param ggc-min-heapsize=31989
 /usr/local/arm-wince-pe/bin/arm-wince-pe-as -o /tmp/ccuCDAcn.o /tmp/ccMvNpIe.s
 /usr/local/arm-wince-pe/libexec/gcc/arm-wince-pe/4.0.3/collect2 -Bdynamic -o hello_arm /usr/local/arm-wince-pe/lib/gcc/arm-wince-pe/4.0.3/../../../../arm-wince-pe/lib/crt0.o /usr/local/arm-wince-pe/lib/gcc/arm-wince-pe/4.0.3/../../../../arm-wince-pe/lib/crtst.o -L/usr/local/arm-wince-pe/lib/gcc/arm-wince-pe/4.0.3 -L/usr/local/arm-wince-pe/lib/gcc/arm-wince-pe/4.0.3/../../../../arm-wince-pe/lib -L/usr/local/arm-wince-pe/lib -L/usr/local/arm-wince-pe/usr/lib /tmp/ccuCDAcn.o -lgphobos -lm -lcegcc -lgcc -lm -lcoredll -lcegcc -lgcc
collect2: �ld� kann nicht gefunden werden

I looks much better.
Only one problem with collect2 .


Manfred











August 11, 2006
Manfred Hansen wrote:
> Am Fri, 11 Aug 2006 15:59:47 -0400 schrieb Chad J:
> 
> 
>>pedro alves wrote:
>>
>>>Frits van Bommel wrote:
>>>
>>>
>>>>Chad J wrote:
>>>>
>>>>
>>>>>Manfred Hansen wrote:
>>>>>
>>>>>
>>>>>>Hello,
>>>>>>
>>>>>>i have try to compile void main() {}
>>>>>>
>>>>>>but i get the following error message:
>>>>>>hansen@manni-lx:~/dd$ arm-wince-pe-gdc hello_arm.d -o hello_arm
>>>>>>/tmp/ccx3xcRb.s: Assembler messages:
>>>>>>/tmp/ccx3xcRb.s:6: Error: junk at end of line, first unrecognized character is `@'
>>>>>>/tmp/ccx3xcRb.s:7: Error: junk at end of line, first unrecognized character is `@'
>>>>>>/tmp/ccx3xcRb.s:8: Error: too many memory references for `mov'
>>>>>>/tmp/ccx3xcRb.s:9: Error: no such instruction: `stmfd sp!,{fp,ip,lr,pc}'
>>>>>>/tmp/ccx3xcRb.s:10: Error: too many memory references for `sub'
>>>>>>/tmp/ccx3xcRb.s:11: Error: no such instruction: `bl __gccmain'
>>>>>>/tmp/ccx3xcRb.s:12: Error: expecting operand after ','; got nothing
>>>>>>/tmp/ccx3xcRb.s:13: Error: too many memory references for `mov'
>>>>>>/tmp/ccx3xcRb.s:14: Error: no such instruction: `ldmfd sp,{fp,sp,pc}'
>>>>>>
>>>>>>Under debian sarge and under ubuntu 6.0.6 I have copy the arm-wince-pe directory to /usr/local and i have extended
>>>>>>the PATH Variavble.
>>>>>>
>>>>>>Manfred
>>>>>
>>>>>
>>>>>Argh, I can't replicate it, even when I move it my other system.  The catch is that I've used both systems to develop this, so maybe there is a missing dependency that I don't know about.
>>>>>
>>>>>Btw, I compiled and used this on kubuntu 6.0.6.  The other system is coLinux running Debian.
>>>>>
>>>>>In a while I'll make another coLinux Debian w/ fresh filesystem, and see how that goes.
>>>>>
>>>>>Those error messages look like the ones I got when the arm-wince-pe assembler was given x86 assembly code.
>>>>
>>>>
>>>>Now I'm no cross-compiling expert, but that last statement would back up my first thought: did you build arm-wince-pe binutils to go with your arm-wince-pe-gdc? In particular arm-wince-pe-gas?
>>>>Maybe only on one system (that being the one where it works)?
>>>
>>>
>>>That sure looks like it. That is arm assembly on the error log, and '@' is the comment char on arm assembly,
>>>and it is also the first character the assembler is complaining about.
>>>
>>>Isn't there a gdc -v switch to show what commands are being invoked?
>>>
>>>Cheers,
>>>Pedro Alves
>>
>>hehe I was just about to ask for that.
>>
>>Manfred, try
>>arm-wince-pe-gdc -v hello_arm.d -o hello_arm
>>and give us the output.
>>
>>To answer your question Frits, the binutils come from a cegcc linux binary prerelease.  As a result, the binutils were built on a computer that is not my own, only the arm-wince-pe-gdc itself (and *-gcc and *-g++) were built by me.  They are bundled with the compiler and have worked for me.  It looks from the errors like the binutils are working fine, they just can't turn x86 assembly into ARM machine code.
> 
> 
> This is the with switch -v:
> 
> ansen@manni-lx:~/dd$ arm-wince-pe-gdc -v -c  hello_arm.d -o hello_arm
> Using built-in specs.
> Target: arm-wince-pe
> Configured with: /gdc/18/configure --prefix=/usr/local/arm-wince-pe --disable-unix --with-newlib --enable-multilib=no --enable-languages=c,d,c++ --with-build-time-tools=/usr/local/arm-wince-pe/bin --with-as=/usr/local/arm-wince-pe/bin/arm-wince-pe-as --with-ld=/usr/local/arm-wince-pe/bin/arm-wince-pe-ld --with-sysroot=/usr/local/arm-wince-pe --target=arm-wince-pe --enable-phobos-config-dir=/usr/local/arm-wince-pe/phobos-config
> Thread model: single
> gcc version 4.0.3 (gdc 0.18, using dmd 0.149)
>  /usr/local/arm-wince-pe/libexec/gcc/arm-wince-pe/4.0.3/cc1d hello_arm.d -quiet -dumpbase hello_arm.d -auxbase-strip hello_arm -version -o /tmp/ccJ0gw9a.sGNU D version 4.0.3 (gdc 0.18, using dmd 0.149) (arm-wince-pe)
>         compiled by GNU C version 4.0.3 (Ubuntu 4.0.3-1ubuntu5).
> GGC heuristics: --param ggc-min-expand=64 --param ggc-min-heapsize=64021
>  as -o hello_arm /tmp/ccJ0gw9a.s
> /tmp/ccJ0gw9a.s: Assembler messages:
> /tmp/ccJ0gw9a.s:6: Error: junk at end of line, first unrecognized character is `@'
> /tmp/ccJ0gw9a.s:7: Error: junk at end of line, first unrecognized character is `@'
> /tmp/ccJ0gw9a.s:8: Error: too many memory references for `mov'
> /tmp/ccJ0gw9a.s:9: Error: no such instruction: `stmfd sp!,{fp,ip,lr,pc}'
> /tmp/ccJ0gw9a.s:10: Error: too many memory references for `sub'
> /tmp/ccJ0gw9a.s:11: Error: no such instruction: `bl __gccmain'
> /tmp/ccJ0gw9a.s:12: Error: expecting operand after ','; got nothing
> /tmp/ccJ0gw9a.s:13: Error: too many memory references for `mov'
> /tmp/ccJ0gw9a.s:14: Error: no such instruction: `ldmfd sp,{fp,sp,pc}'
> 
> On my debian system i have made a softlink from /usr/bin/as to /usr/local/arm-wince-pe/bin/arm-wince-pe-as 
> 
> Then it was possible to compile an object file.
> I have delete the softlink and it is also posslible to make a object file. I dont't now why?
> Here is the output:
> n@localhost:~$ arm-wince-pe-gdc -v  hello_arm.d -o hello_arm
> Es werden eingebaute Spezifikationen verwendet.
> Lesen der Spezifikationen von /usr/local/arm-wince-pe/lib/gcc/arm-wince-pe/4.0.3/../../../../arm-wince-pe/lib/libgphobos.spec
> Spezifikation wird von lib nach liborig umbenannt
> Ziel: arm-wince-pe
> Konfiguriert mit: /gdc/18/configure --prefix=/usr/local/arm-wince-pe --disable-unix --with-newlib --enable-multilib=no --enable-languages=c,d,c++ --with-build-time-tools=/usr/local/arm-wince-pe/bin --with-as=/usr/local/arm-wince-pe/bin/arm-wince-pe-as --with-ld=/usr/local/arm-wince-pe/bin/arm-wince-pe-ld --with-sysroot=/usr/local/arm-wince-pe --target=arm-wince-pe --enable-phobos-config-dir=/usr/local/arm-wince-pe/phobos-config
> Thread-Modell: single
> gcc-Version 4.0.3 (gdc 0.18, using dmd 0.149)
>  /usr/local/arm-wince-pe/libexec/gcc/arm-wince-pe/4.0.3/cc1d hello_arm.d -quiet -dumpbase hello_arm.d -auxbase hello_arm -version -o /tmp/ccMvNpIe.s
> GNU D version 4.0.3 (gdc 0.18, using dmd 0.149) (arm-wince-pe)
>         compiled by GNU C version 4.0.3 (Ubuntu 4.0.3-1ubuntu5).
> GGC-Heuristik: --param ggc-min-expand=47 --param ggc-min-heapsize=31989
>  /usr/local/arm-wince-pe/bin/arm-wince-pe-as -o /tmp/ccuCDAcn.o /tmp/ccMvNpIe.s
>  /usr/local/arm-wince-pe/libexec/gcc/arm-wince-pe/4.0.3/collect2 -Bdynamic -o hello_arm /usr/local/arm-wince-pe/lib/gcc/arm-wince-pe/4.0.3/../../../../arm-wince-pe/lib/crt0.o /usr/local/arm-wince-pe/lib/gcc/arm-wince-pe/4.0.3/../../../../arm-wince-pe/lib/crtst.o -L/usr/local/arm-wince-pe/lib/gcc/arm-wince-pe/4.0.3 -L/usr/local/arm-wince-pe/lib/gcc/arm-wince-pe/4.0.3/../../../../arm-wince-pe/lib -L/usr/local/arm-wince-pe/lib -L/usr/local/arm-wince-pe/usr/lib /tmp/ccuCDAcn.o -lgphobos -lm -lcegcc -lgcc -lm -lcoredll -lcegcc -lgcc
> collect2: �ld� kann nicht gefunden werden
> 
> I looks much better.
> Only one problem with collect2 .
> 
> 
> Manfred
> 

Ah it seems to be the opposite of what I though, it is using an x86 assembler to assemble ARM code.  Notice that in the top log it invokes 'as' instead of /usr/local/arm-wince-pe/bin/arm-wince-pe-as.  In the bottom log it seems to be unable to find 'ld', when it should be using arm-wince-pe-ld.

I am wondering if it can't find the files in */bin for some reason, and ends up falling back on the local system files that are used for x86.  I also have a hunch this could be something to do with permissions.

If you don't need to restrict access to the compiler, try this:

cd /usr/local
chmod -R a=rwx arm-wince-pe

Then try compiling.
August 12, 2006
Am Fri, 11 Aug 2006 17:50:09 -0400 schrieb Chad J:

> Manfred Hansen wrote:
>> Am Fri, 11 Aug 2006 15:59:47 -0400 schrieb Chad J:
>> 
>> 
>>>pedro alves wrote:
>>>
>>>>Frits van Bommel wrote:
>>>>
>>>>
>>>>>Chad J wrote:
>>>>>
>>>>>
>>>>>>Manfred Hansen wrote:
>>>>>>
>>>>>>
>>>>>>>Hello,
>>>>>>>
>>>>>>>i have try to compile void main() {}
>>>>>>>
>>>>>>>but i get the following error message:
>>>>>>>hansen@manni-lx:~/dd$ arm-wince-pe-gdc hello_arm.d -o hello_arm
>>>>>>>/tmp/ccx3xcRb.s: Assembler messages:
>>>>>>>/tmp/ccx3xcRb.s:6: Error: junk at end of line, first unrecognized
>>>>>>>character is `@'
>>>>>>>/tmp/ccx3xcRb.s:7: Error: junk at end of line, first unrecognized
>>>>>>>character is `@'
>>>>>>>/tmp/ccx3xcRb.s:8: Error: too many memory references for `mov'
>>>>>>>/tmp/ccx3xcRb.s:9: Error: no such instruction: `stmfd
>>>>>>>sp!,{fp,ip,lr,pc}'
>>>>>>>/tmp/ccx3xcRb.s:10: Error: too many memory references for `sub'
>>>>>>>/tmp/ccx3xcRb.s:11: Error: no such instruction: `bl __gccmain'
>>>>>>>/tmp/ccx3xcRb.s:12: Error: expecting operand after ','; got nothing
>>>>>>>/tmp/ccx3xcRb.s:13: Error: too many memory references for `mov'
>>>>>>>/tmp/ccx3xcRb.s:14: Error: no such instruction: `ldmfd sp,{fp,sp,pc}'
>>>>>>>
>>>>>>>Under debian sarge and under ubuntu 6.0.6 I have copy the arm-wince-pe directory to /usr/local and i have extended the PATH Variavble.
>>>>>>>
>>>>>>>Manfred
>>>>>>
>>>>>>
>>>>>>Argh, I can't replicate it, even when I move it my other system.  The catch is that I've used both systems to develop this, so maybe there is a missing dependency that I don't know about.
>>>>>>
>>>>>>Btw, I compiled and used this on kubuntu 6.0.6.  The other system is coLinux running Debian.
>>>>>>
>>>>>>In a while I'll make another coLinux Debian w/ fresh filesystem, and see how that goes.
>>>>>>
>>>>>>Those error messages look like the ones I got when the arm-wince-pe assembler was given x86 assembly code.
>>>>>
>>>>>
>>>>>Now I'm no cross-compiling expert, but that last statement would back
>>>>>up my first thought: did you build arm-wince-pe binutils to go with
>>>>>your arm-wince-pe-gdc? In particular arm-wince-pe-gas?
>>>>>Maybe only on one system (that being the one where it works)?
>>>>
>>>>
>>>>That sure looks like it. That is arm assembly on the error log, and '@'
>>>>is the comment char on arm assembly,
>>>>and it is also the first character the assembler is complaining about.
>>>>
>>>>Isn't there a gdc -v switch to show what commands are being invoked?
>>>>
>>>>Cheers,
>>>>Pedro Alves
>>>
>>>hehe I was just about to ask for that.
>>>
>>>Manfred, try
>>>arm-wince-pe-gdc -v hello_arm.d -o hello_arm
>>>and give us the output.
>>>
>>>To answer your question Frits, the binutils come from a cegcc linux binary prerelease.  As a result, the binutils were built on a computer that is not my own, only the arm-wince-pe-gdc itself (and *-gcc and *-g++) were built by me.  They are bundled with the compiler and have worked for me.  It looks from the errors like the binutils are working fine, they just can't turn x86 assembly into ARM machine code.
>> 
>> 
>> This is the with switch -v:
>> 
>> ansen@manni-lx:~/dd$ arm-wince-pe-gdc -v -c  hello_arm.d -o hello_arm
>> Using built-in specs.
>> Target: arm-wince-pe
>> Configured with: /gdc/18/configure --prefix=/usr/local/arm-wince-pe --disable-unix --with-newlib --enable-multilib=no --enable-languages=c,d,c++ --with-build-time-tools=/usr/local/arm-wince-pe/bin --with-as=/usr/local/arm-wince-pe/bin/arm-wince-pe-as --with-ld=/usr/local/arm-wince-pe/bin/arm-wince-pe-ld --with-sysroot=/usr/local/arm-wince-pe --target=arm-wince-pe --enable-phobos-config-dir=/usr/local/arm-wince-pe/phobos-config
>> Thread model: single
>> gcc version 4.0.3 (gdc 0.18, using dmd 0.149)
>>  /usr/local/arm-wince-pe/libexec/gcc/arm-wince-pe/4.0.3/cc1d hello_arm.d -quiet -dumpbase hello_arm.d -auxbase-strip hello_arm -version -o /tmp/ccJ0gw9a.sGNU D version 4.0.3 (gdc 0.18, using dmd 0.149) (arm-wince-pe)
>>         compiled by GNU C version 4.0.3 (Ubuntu 4.0.3-1ubuntu5).
>> GGC heuristics: --param ggc-min-expand=64 --param ggc-min-heapsize=64021
>>  as -o hello_arm /tmp/ccJ0gw9a.s
>> /tmp/ccJ0gw9a.s: Assembler messages:
>> /tmp/ccJ0gw9a.s:6: Error: junk at end of line, first unrecognized character is `@'
>> /tmp/ccJ0gw9a.s:7: Error: junk at end of line, first unrecognized character is `@'
>> /tmp/ccJ0gw9a.s:8: Error: too many memory references for `mov'
>> /tmp/ccJ0gw9a.s:9: Error: no such instruction: `stmfd sp!,{fp,ip,lr,pc}'
>> /tmp/ccJ0gw9a.s:10: Error: too many memory references for `sub'
>> /tmp/ccJ0gw9a.s:11: Error: no such instruction: `bl __gccmain'
>> /tmp/ccJ0gw9a.s:12: Error: expecting operand after ','; got nothing
>> /tmp/ccJ0gw9a.s:13: Error: too many memory references for `mov'
>> /tmp/ccJ0gw9a.s:14: Error: no such instruction: `ldmfd sp,{fp,sp,pc}'
>> 
>> On my debian system i have made a softlink from /usr/bin/as to /usr/local/arm-wince-pe/bin/arm-wince-pe-as
>> 
>> Then it was possible to compile an object file.
>> I have delete the softlink and it is also posslible to make a
>> object file. I dont't now why?
>> Here is the output:
>> n@localhost:~$ arm-wince-pe-gdc -v  hello_arm.d -o hello_arm
>> Es werden eingebaute Spezifikationen verwendet.
>> Lesen der Spezifikationen von /usr/local/arm-wince-pe/lib/gcc/arm-wince-pe/4.0.3/../../../../arm-wince-pe/lib/libgphobos.spec
>> Spezifikation wird von lib nach liborig umbenannt
>> Ziel: arm-wince-pe
>> Konfiguriert mit: /gdc/18/configure --prefix=/usr/local/arm-wince-pe --disable-unix --with-newlib --enable-multilib=no --enable-languages=c,d,c++ --with-build-time-tools=/usr/local/arm-wince-pe/bin --with-as=/usr/local/arm-wince-pe/bin/arm-wince-pe-as --with-ld=/usr/local/arm-wince-pe/bin/arm-wince-pe-ld --with-sysroot=/usr/local/arm-wince-pe --target=arm-wince-pe --enable-phobos-config-dir=/usr/local/arm-wince-pe/phobos-config
>> Thread-Modell: single
>> gcc-Version 4.0.3 (gdc 0.18, using dmd 0.149)
>>  /usr/local/arm-wince-pe/libexec/gcc/arm-wince-pe/4.0.3/cc1d hello_arm.d -quiet -dumpbase hello_arm.d -auxbase hello_arm -version -o /tmp/ccMvNpIe.s
>> GNU D version 4.0.3 (gdc 0.18, using dmd 0.149) (arm-wince-pe)
>>         compiled by GNU C version 4.0.3 (Ubuntu 4.0.3-1ubuntu5).
>> GGC-Heuristik: --param ggc-min-expand=47 --param ggc-min-heapsize=31989
>>  /usr/local/arm-wince-pe/bin/arm-wince-pe-as -o /tmp/ccuCDAcn.o /tmp/ccMvNpIe.s
>>  /usr/local/arm-wince-pe/libexec/gcc/arm-wince-pe/4.0.3/collect2 -Bdynamic -o hello_arm /usr/local/arm-wince-pe/lib/gcc/arm-wince-pe/4.0.3/../../../../arm-wince-pe/lib/crt0.o /usr/local/arm-wince-pe/lib/gcc/arm-wince-pe/4.0.3/../../../../arm-wince-pe/lib/crtst.o -L/usr/local/arm-wince-pe/lib/gcc/arm-wince-pe/4.0.3 -L/usr/local/arm-wince-pe/lib/gcc/arm-wince-pe/4.0.3/../../../../arm-wince-pe/lib -L/usr/local/arm-wince-pe/lib -L/usr/local/arm-wince-pe/usr/lib /tmp/ccuCDAcn.o -lgphobos -lm -lcegcc -lgcc -lm -lcoredll -lcegcc -lgcc
>> collect2: �ld� kann nicht gefunden werden
>> 
>> I looks much better.
>> Only one problem with collect2 .
>> 
>> 
>> Manfred
>> 
> 
> Ah it seems to be the opposite of what I though, it is using an x86 assembler to assemble ARM code.  Notice that in the top log it invokes 'as' instead of /usr/local/arm-wince-pe/bin/arm-wince-pe-as.  In the bottom log it seems to be unable to find 'ld', when it should be using arm-wince-pe-ld.
> 
> I am wondering if it can't find the files in */bin for some reason, and ends up falling back on the local system files that are used for x86.  I also have a hunch this could be something to do with permissions.
> 
> If you don't need to restrict access to the compiler, try this:
> 
> cd /usr/local
> chmod -R a=rwx arm-wince-pe
> 
> Then try compiling.

Thank you, i have successfully compiled the first programm.

I have compiled your example wich write the file doutput.txt .
This programm have i copied to the sd Card and rename the programm to
Hello_arm.exe .

But it do nothing on my PDA.
My PDA is a YAKUMO with Windows mobile 4.2 .
The CPU is S3C2410 it should be compatible with ARM920T .

I have read i must copy the programm with Active Sync or i must build a "cab" file?

Manfred


August 12, 2006
Manfred Hansen wrote:
> 
> Thank you, i have successfully compiled the first programm.
> 
> I have compiled your example wich write the file doutput.txt .
> This programm have i copied to the sd Card and rename the programm to
> Hello_arm.exe .
> 
> But it do nothing on my PDA.
> My PDA is a YAKUMO with Windows mobile 4.2 .
> The CPU is S3C2410 it should be compatible with ARM920T .
> 
> I have read i must copy the programm with Active Sync or i must build a "cab" file?
> 
> Manfred
> 

First, download this PocketConsole and install it on your PDA.  It allows you to see command line output.  Run it, then run Hello_arm.exe from the command line.  If it's screaming any errors at you, you'll see them.  Give me the output of your program, if any.
Here's the link:
http://www.symbolictools.de/public/pocketconsole/download.htm

Copying the .exe somewhere with Active Sync should be fine.  You don't need to build a .cab file.  Also, if you are creating a replica of my program, try running it in the root directory, as that's where I ran mine.  I'm still not sure how pathing works on WinCE.
« First   ‹ Prev
1 2