Regarding 64bit porting of PJSIP on windows

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

 



Actually, as someone who is using pjsip on 64-bit linux, Windows, and 
OSX, only the last change mentioned by Mr. Mahajan is necessary (the one 
in sock_bsd.c). I did *not* change pj_ssize_t to be 8 bytes wide (I left 
it 4 bytes wide in 64-bit Windows) and the only downside was lots of 
warning messages and that strings couldn't be longer than 2^31 
characters (which didn't bother me). Changing pj_ssize_t to be 8 bytes 
wide in 64-bit Windows gave me a whole different set of warning messages 
(and used more memory), so I left it alone. The only *real* solution is 
to stop using the "long" type altogether, but that would require massive 
code changes I wasn't willing to make (I still want to get updates after 
all).

BTW, Mr. Mahajan missed one, the definition of pj_sock_t in types.h. In 
64-bit Windows, a SOCKET is 8 bytes wide and pj_sock_t is only 4 bytes 
wide. The word on the street is that 64-bit Windows isn't using the 
upper 32 bits of a SOCKET right now (which is why it appears to work), 
but that could change tomorrow. Also, 3 or 4 small changes need to be 
made to ioqueue_winnt.c to make it work in 64-bit Windows, but since 
pjsip isn't using that anymore, I won't go into it. If you really care, 
let me know.

John Ridges

P.S.  Benny, I found a somewhat kludgy but relatively simple way to not 
have to constantly poll IOQueues and timer heaps, which really helped in 
my Android port. It's probably not the kind of re-write you're thinking 
of in changelist #1125, but if you're interested let me know and I'll 
outline it for you.


On 9/23/2011 10:00 AM, pjsip-request at lists.pjsip.org wrote:
> Unfortunately that's not correct for Win64. According to:
> http://technet.microsoft.com/en-us/library/bb496995.aspx, sizeof(long)
> is just 4. So maybe it requires that much changes indeed, although I
> think the patch still has few issues with it.
>
>   Benny




[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