Loading ...
Sorry, an error occurred while loading the content.
 

Re: Link .o generated by GCC(arm-wince-pe) from Embeded VC ???

Expand Messages
  • Woo John
    Dear Craig and Dmitry, OK, thank you and Dmitry Semyonov very much!!! Hm... I decided to create DLL with arm-wince-pe-* stuff, but I can t generate .dll
    Message 1 of 3 , Jan 4, 2004
      Dear Craig and Dmitry,
      OK, thank you and Dmitry Semyonov very much!!! Hm... I decided to create DLL with arm-wince-pe-* stuff, but I can't generate .dll because of lacking crt0.o. Would you give me some instructions? Should I build newlib to generate the crt0.o? Or can I use libs such as libc.lib from eVC?
      BTW, I can't build newlib with target arm-wince-pe...
      To build arm-wince-pe, I built gcc with --disable-multilib. The modules in libgcc.a are all with cpu type xscale. Can i use this modules with strongarm1110? Or I'll build each version of GCC for each cpu type(such as strongarm1110, xscale etc)???Oh, my god!

      Thank you in advance.
      (Both moutain_sprite and bobocreative are my yahoo IDs,)


      --- In wince-devel@yahoogroups.com, "craigulus5000" <craigulus5000@y...> wrote:
      > Well, it's too bad you need to do this. EVC-generated object files
      > have some strange format that we decided not to deal with. Basically
      > it's MS "being different for the sake of being different".
      >
      > There are really 2 ways in which arm-wince-pe-gcc can be of use, at
      > least as things currently stand:
      >
      > 1. Use only arm-wince-pe-* to compile and link. This is more
      > practical than you might think, because you can compile, link, and run
      > arbitrarily complex C/C++/Java applications. And remember, you can
      > use anything in COREDLL or the other WINCE DLL's in your gcc-compiled
      > programs.
      >
      > 2. For the pieces that you absolutely have to compile with EVC, create
      > a DLL. DLL's compiled with EVC work fine when linked with
      > arm-wince-pe-* created stuff. I will instruct you how to do this if
      > you need help.
      >
      > At one point Rainer figured out how to munge EVC-created objects so
      > that they could be linked with arm-wince-pe-ld. We have not tried to
      > go in the other direction, primarily because of lack of interest.
      >
      > The most obvious solution is to not try to link GCC-compiled objects
      > to EVC compiled things or vice-versa. This is what we do when we
      > build our product and this works for us. I recommend this approach.
      >
      > Bottom line: If you need EVC, you should use it. For us, it was more
      > trouble than it was worth.
      >
      > Good luck!
      > craig vanderborgh
      > voxware incorporated
      >
      > --- In wince-devel@yahoogroups.com, "bobocreative" <bobocreative@y...>
      > wrote:
      > > I compiled a .obj by GCC and tried to call it from EVC. But the linker
      > > does not support and print the following message:
      > > -------------------Configuration: test3 - Win32 (WCE ARM)
      > > Release--------------------
      > > Creating library...
      > > perf.obj : warning LNK4078: multiple ".text" sections found with
      > > different attributes (E0000020)
      > > --------------------Configuration: cmd - Win32 (WCE ARM)
      > > Release--------------------
      > > Linking...
      > > cmd.obj : error LNK2019: unresolved external symbol CopyBlock
      > > referenced in function WinMain
      > > ARMRel/cmd.exe : fatal error LNK1120: 1 unresolved externals
      > > Error executing link.exe.
      > >
      > > cmd.exe - 2 error(s), 1 warning(s)
      > >
      > >
      > > the prototype of the function is right and I dump the obj info with
      > > objdump:
      > > Obj generated by GCC:
      > >
      > > ../../test2/perf.obj: file format pe-arm-little
      > > ../../test2/perf.obj
      > > architecture: armv3m, flags 0x00000038:
      > > HAS_DEBUG, HAS_SYMS, HAS_LOCALS
      > > start address 0x00000000
      > >
      > > Characteristics 0x4105
      > > relocations stripped
      > > line numbers stripped
      > > 32 bit words
      > >
      > > Obj generated by EVC:
      > >
      > > vc_perf.obj: file format pe-arm-little
      > > vc_perf.obj
      > > architecture: armv3m, flags 0x0000003d:
      > > HAS_RELOC, HAS_LINENO, HAS_DEBUG, HAS_SYMS, HAS_LOCALS
      > > start address 0x00000000
      > >
      > > Characteristics 0x100
      > > 32 bit words
      > >
      > > It seems that the code generated by GCC has stripped the RELOC info.
      > > So EVC does not recognize it and how to keep the RELOC info of obj
      > > generated by GCC? Are there some good slutions?
      > >
      > > Thank you !


      Zilong Wu
      bobocreative@...
      __________________________________________________
      Do You Yahoo!?
      Tired of spam? Yahoo! Mail has the best spam protection around
      http://mail.yahoo.com

      [Non-text portions of this message have been removed]
    Your message has been successfully submitted and would be delivered to recipients shortly.