PJSIP on X64

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi

I posted before but strangely my message did not appear on the official 
mailing list archive, but can be found at 
http://comments.gmane.org/gmane.comp.voip.pjsip/11838

I am trying to compile PJSIP for x64 platforms. Specifically I am using 
the sample source code on Visual Studio 2008 to try to compile and run 
'pjsua' project on a Windows Server 2008 R2 machine. I try the following 
steps to build for x64:

(1) Add 'x64' as a new solution platform. All project will now compile 
under x64 mode.
(2) Edit 
\pjproject-1.4\build\vs\pjproject-vs8-win32-common-defaults.vsprops to 
make sure that the macro _x86_64 is defined, and TargetCPU is x64, not x86
(3) Open pjproject-1.4\pjlib\include\pj\config.h and change the 
following around line 140

#elif defined (PJ_M_I386) || defined(_i386_) || defined(i_386_) || \
    defined(_X86_) || defined(x86) || defined(__i386__) || \
    defined(__i386) || defined(_M_IX86) || defined(__I86__)

to

#elif defined (PJ_M_I386) || defined(_i386_) || defined(i_386_) || \
    defined(_X86_) || defined(x86) || defined(__i386__) || \
    defined(__i386) || defined(__I86__)

I remove the check for the _M_IX86 macro as this will always activate 
the x86 configuration unless you're using a 64-bit version of Visual 
Studio (see http://msdn.microsoft.com/en-us/library/b0084kay.aspx for 
more info)

(4) After the patch, VS Intellisense correctly shows that x64 
configuration is active in config.h. A rebuild reveals some minor linker 
errors, which are easy to fix.

However, at run-time, I got the following error:

!!FATAL: unhandled exception PJLIB/No memory!

in except.c as soon as pjsua_create() is called. The exception is thrown 
by  PJ_THROW(PJ_NO_MEMORY_EXCEPTION); from default_pool_callback at 
pool_policy_new.cpp. And the program crash.

If I comment out PJ_THROW, the initialization will proceed and suceed to 
detect the available audio devices, but will eventually crash into 
disassembly (no source code location available)

Any ideas what's wrong? I have tried to tweak the 64-bit related 
compilation options in Visual Studio, but to no avail.

Thanks.



[Index of Archives]     [Asterisk Users]     [Asterisk App Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [Linux API]
  Powered by Linux