On Sun, 01 Feb 2009 20:12:40 +0100, Danny Backx <danny.ba...@scarlet.be>
wrote:
> That's not a real problem, it's just configuration :-)
> 
> You'll need to learn about the gcc configuration. All that kind of stuff
> is fully configurable in the gcc sources.
> 
> There's a (complicated) set of sources and include files that are vital
> for you to understand if you're working on this. Look in
> (CEGCC)/src/gcc/gcc/config/arm and inspect e.g. mingw32.h .
> 
> You'll find that the STARTFILE_SPEC contains magic to use
>       dllcrt3%O%s
> or    crt3%O%s
> or    gcrt3%O%s
> depending on the command line options (e.g. -shared) passed to the
> compiler.
> 
> Macros such as STARTFILE_SPEC can be overriden in some of these files,
> you need to figure out which set is being included. That is in
> (CEGCC)/src/gcc/gcc/config.gcc . Look at the arm*-*-mingw32ce* target to
> see the sequence of include files in tm_file .
> 
>       Danny
> 
I already tried so many things that now I don't think I will solve it by
myself...
I will wait for you or for Pedro ;-)




> On Sun, 2009-02-01 at 19:59 +0100, Vincent R. wrote:
>> On Sun, 01 Feb 2009 13:59:29 +0100, Danny Backx <danny.ba...@scarlet.be>
>> wrote:
>> > On Fri, 2009-01-30 at 14:43 +0100, Vincent R. wrote:
>> >> I also tried to generate a cegcc-4.4.0 but unfortuantely it DOESN'T
>> >> WORK
>> >> because it seems
>> >> there is an issue with crtstuff. Indeed binaries starts at wrong
>> >> virtual
>> >> address !!!
>> > 
>> > I've not tried your patch yet (other urgent things to do this week,
>> > sorry). The remark above caught my attention though.
>> > 
>> Actually now I am studying mingw and mingw-64 and I managed to generate
>> cross-compilers.
>> I wanted to see differences with mingw32ce.
>> Actually I will post another patch because I made some modifications and
>> understood some new things.
>> 
>> > What exactly is the problem, what does your toolchain pass to the
>> > linker
>> > (cc -v), what does the crt*.o look like ?
>> > 
>> >    Danny
>> > 
>> First I started with a patch made by Pedro some time ago from a gcc with
>> revision number r140672
>> I think.The problem I had was about mingw compilation because I got :
>> 
>> arm-mingw32ce-dlltool --as arm-mingw32ce-as --output-def mingwthrd.def
>> mthr.o mthr_init.o
>>
/opt/mingw32ce-4.4.0/lib/gcc/arm-mingw32ce/4.4.0/../../../../arm-mingw32ce/bin/ld:
>> crtbegin.o: No such file: No such file or directory
>> collect2: ld returned 1 exit status
>> make: *** [mingwthrd.def] Erreur 1
>> 
>> 
>> That's why I thought I needed to use make instead of make all-gcc for
>> bootstrap_gcc but now I think it was a mistake.
>> When I look at mingw project, they provide two empty files for crtbegin
>> and
>> crtend and so I tried to add them
>> in mingw32ce as shown below : 
>> 
>> ...
>> MINGW_OBJS = crtbegin.o crtend.o CRTglob.o CRTfmode.o CRTinit.o
dllmain.o
>> gccmain.o \
>>           crtst.o mthr_stub.o \
>>           pseudo-reloc.o pseudo-reloc-list.o cpu_features.o
>> ...
>> crtbegin.o: crtbegin.c
>> crtend.o: crtend.c
>> ...
>> 
>> but now I get another error :
>> 
>> arm-mingw32ce-dlltool --as arm-mingw32ce-as --output-def mingwthrd.def
>> mthr.o mthr_init.o
>>
/opt/mingw32ce-4.4.0/lib/gcc/arm-mingw32ce/4.4.0/../../../../arm-mingw32ce/bin/ld:
>> cannot find -lgcc
>> collect2: ld returned 1 exit status
>> 
>> I still don't know why but I am investigating...
>> If you want to try maybe it would be better for you to checkout gcc with
>> revision 40672 and apply
>> Pedro's patch(see attchment). 
>> You can also try the patch on the current gcc trunk BUT in this case you
>> will have to modify some stuff
>> for instance in gcc/gcc/config/arm/ you need to replace in mingw32.h,
>> wince-pe.h, wince-cegcc.h
>> LIBGCC_SPEC by REAL_LIBGCC_SPEC.
>> 
>> About mingw32.h I think it would be a good idea to start to share some
>> code
>> with mingw/mingw-w64 because for 
>> instance current include is aware of 64bit targets:
>> 
>> #undef TARGET_VERSION
>> #if TARGET_64BIT_DEFAULT
>> #define TARGET_VERSION fprintf (stderr,"(x86_64 MinGW");
>> #else
>> #define TARGET_VERSION fprintf (stderr," (x86 MinGW)");
>> #endif
>> 
>> 
>> We could start to add something for Wince, for instance: 
>> #undef TARGET_VERSION
>> #if TARGET_64BIT_DEFAULT
>> #define TARGET_VERSION fprintf (stderr,"(x86_64 MinGW");
>> #elif TARGET_ARM_CE
>> #define TARGET_VERSION fprintf (stderr," (arm MinGW)");
>> #endif
>> ...
>> 
>> 
>> > P.S. I think current behaviour of the mingw toolchain is this :
>> > 
>> > - crt3.o is linked in with a command as shown below(from cc -v). Note
>> >   that crt3.o is the first module passed to the linker.
>> > 
>> >  /opt/mingw32ce/libexec/gcc/arm-mingw32ce/4.3.2/collect2 -Bdynamic -o
>> > menu.exe
>> >
>>
/opt/mingw32ce/lib/gcc/arm-mingw32ce/4.3.2/../../../../arm-mingw32ce/lib/crt3.o
>> > -L/opt/mingw32ce/lib/gcc/arm-mingw32ce/4.3.2
>> >
>>
-L/opt/mingw32ce/lib/gcc/arm-mingw32ce/4.3.2/../../../../arm-mingw32ce/lib
>> > menu.o menu.rsc -laygshell -lcommctrl -lmingw32 -lgcc -lceoldname
>> -lmingwex
>> > -lcoredll -lcoredll -lmingw32 -lgcc -lceoldname -lmingwex -lcoredll
>> > 
>> > - crt3.o defines a couple of symbols/functions, but it is carefully
>> >   coded and ordered such that WinMainCRTStartupHandler is first in the
>> >   .text segment :
>> > 
>> > Disassembly of section .text:
>> > 
>> > 00000000 <WinMainCRTStartupHandler>:
>> >    0:   e92d40f0        push    {r4, r5, r6, r7, lr}
>> >    4:   e24dd00c        sub     sp, sp, #12     ; 0xc
>> >    8:   e1a05000        mov     r5, r0
>> >    c:   e1a06002        mov     r6, r2
>> > ...
>> Hum, all I can say is the fact that when generating cegcc-4.4 dll
>> functions
>> were starting at a weird address:
>> vinc...@vincent-pc:~/projects/testDLL/src$
>> /opt/mingw32ce-4.1.0/bin/arm-mingw32ce-nm testDll-4.4.dll 
>> 644d4000 b .bss
>> but exe address was ok.
>>
------------------------------------------------------------------------------
>> This SF.net email is sponsored by:
>> SourcForge Community
>> SourceForge wants to tell your story.
>> http://p.sf.net/sfu/sf-spreadtheword
>> _______________________________________________ Cegcc-devel mailing list
>> Cegcc-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/cegcc-devel

------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
Cegcc-devel mailing list
Cegcc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cegcc-devel

Reply via email to