Christian Buchner
2004-Aug-06 15:01 UTC
[speex-dev] status report on the Windows CE (PocketPC) ACM codec
> Which version of gcc are you using? I know that only recently has gcc > made itself compatible with the C++ name mangling standard, whatever > that is. I have no idea if MSVC++ is compatible with it.It was essentially my own mistake. After the Embedded C++ IDE crashed unexpectedly, the .lib file was no longer present in the project settings (the project had not been saved) so all the errors I got were caused by a missing .lib reference in the link stage! I had to change my cross compiler target to "arm-wince-pe" because otherwise the object/.lib files generated by gcc would not be accepted by Microsoft's LINK.EXE. And I got around the leading underscore issue by re-defining all the speex API functions Ugly, but works. #define speex_encode _speex_encode> > *Future conflicts might arise from the 2 different stdlib implementation. > > The gcc code will use the open-source "newlib" while the Visual C++ compiled > > code will rely on Microsoft's libc. > > In general, you have to compile everything with the same compiler to get > it to link correctly.I am bound to disprove that ;) The calling conventions are only an issue if there is a mismatch. I believe both sides are currently using __cdecl calling conventions. The only link errors that are left are related to GCC's software FPU emulation. GCC references emulation functions that are part of glibc only (I used the much more compact newlib instead, which does not provide these). So I have to rip some parts out of glibc and compile these separately.That may cause some ugly GPL vs. BSD-style license issues. I will have to look into that issue later. Christian <p>--- >8 ---- List archives: http://www.xiph.org/archives/ Ogg project homepage: http://www.xiph.org/ogg/ To unsubscribe from this list, send a message to 'speex-dev-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.
Alain
2004-Aug-06 15:01 UTC
[speex-dev] status report on the Windows CE (PocketPC) ACM codec
Christian Buchner escreveu:> Ugly, but works. > > #define speex_encode _speex_encodebe very carefull. the last time I had a similar problem was with WatcomC and the problem was in fact a bad and _incompatible_ directive just my 2c Alain>--- >8 ---- List archives: http://www.xiph.org/archives/ Ogg project homepage: http://www.xiph.org/ogg/ To unsubscribe from this list, send a message to 'speex-dev-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.
Gervase Markham
2004-Aug-06 15:01 UTC
[speex-dev] status report on the Windows CE (PocketPC) ACM codec
Christian Buchner wrote:> Now here is where I have problems and not yet found a solution:I know very little about this, so take everything that follows with a large pinch of salt.> * the function names exported in the .lib created by gcc are not compatible > with the function name decorations that the VisualC++ embedded linker expects.Which version of gcc are you using? I know that only recently has gcc made itself compatible with the C++ name mangling standard, whatever that is. I have no idea if MSVC++ is compatible with it.> *Future conflicts might arise from the 2 different stdlib implementation. > The gcc code will use the open-source "newlib" while the Visual C++ compiled > code will rely on Microsoft's libc.In general, you have to compile everything with the same compiler to get it to link correctly.> Is there a way to post-process a .lib file to alter its export symbols?I believe it's not just a matter of symbol names, but also of calling convention - so one lot of code will put arguments on the stack in a different way to that expected by the other lot. This can't be fixed by post-processing. Maybe the gcc lists are a better place to ask. Gerv --- >8 ---- List archives: http://www.xiph.org/archives/ Ogg project homepage: http://www.xiph.org/ogg/ To unsubscribe from this list, send a message to 'speex-dev-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.
Fabio
2004-Aug-06 15:01 UTC
[speex-dev] status report on the Windows CE (PocketPC) ACM codec
> > It was essentially my own mistake. After the Embedded C++ IDE crashedunexpectedly,> the .lib file was no longer present in the project settings (the projecthad not been saved)> so all the errors I got were caused by a missing .lib reference in thelink stage!> I had to change my cross compiler target to "arm-wince-pe" becauseotherwise the> object/.lib files generated by gcc would not be accepted by Microsoft'sLINK.EXE. Hi Could you tell me what do i need to compile libspeex under Cygwin with "arm-wince-pe"? I woul like to compile libspeex with --enable-asm-arm (inpossible in EVC++ 3.0) and link libspeex.lib in my project for EVC++ 3.0. Thanks Fabio P.S. I've never tried corss-compiling --- >8 ---- List archives: http://www.xiph.org/archives/ Ogg project homepage: http://www.xiph.org/ogg/ To unsubscribe from this list, send a message to 'speex-dev-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.