It's a known problem with gcc 4.6.0. If the patch does not break
older gcc compilation we shall include it.

David, if it's ok with you I can implement it.

Regards,
Werner

Am 05.04.2011 18:33, schrieb Guido Trentalancia:
> Hi,
> 
> I have tried to compile ccrtp version 1.8.0 but apparently it fails to
> build with gcc 4.6.0 due to an undefined type. I found a possible fix:
> 
> diff -pruN ccrtp-1.8.0/src//ccrtp/iqueue.h 
> ccrtp-1.8.0-std-ptrdiff_t/src//ccrtp/iqueue.h
> --- ccrtp-1.8.0/src//ccrtp/iqueue.h     2010-04-18 20:51:49.000000000 +0200
> +++ ccrtp-1.8.0-std-ptrdiff_t/src//ccrtp/iqueue.h       2011-04-05 
> 18:18:18.674151885 +0200
> @@ -894,7 +894,7 @@ public:
>         public:
>                 typedef std::forward_iterator_tag iterator_category;
>                 typedef SyncSource value_type;
> -               typedef ptrdiff_t difference_type;
> +               typedef std::ptrdiff_t difference_type;
>                 typedef const SyncSource* pointer;
>                 typedef const SyncSource& reference;
>  
> diff -pruN ccrtp-1.8.0/src//ccrtp/sources.h 
> ccrtp-1.8.0-std-ptrdiff_t/src//ccrtp/sources.h
> --- ccrtp-1.8.0/src//ccrtp/sources.h    2010-04-18 20:51:49.000000000 +0200
> +++ ccrtp-1.8.0-std-ptrdiff_t/src//ccrtp/sources.h      2011-04-05 
> 18:17:57.074212702 +0200
> @@ -406,7 +406,7 @@ public:
>         public:
>                 typedef std::forward_iterator_tag iterator_category;
>                 typedef Participant value_type;
> -               typedef ptrdiff_t difference_type;
> +               typedef std::ptrdiff_t difference_type;
>                 typedef const Participant* pointer;
>                 typedef const Participant& reference;
>  
> diff -pruN ccrtp-1.8.0/src//control.cpp 
> ccrtp-1.8.0-std-ptrdiff_t/src//control.cpp
> --- ccrtp-1.8.0/src//control.cpp        2011-01-12 15:46:17.000000000 +0100
> +++ ccrtp-1.8.0-std-ptrdiff_t/src//control.cpp  2011-04-05 18:18:47.248086392 
> +0200
> @@ -575,7 +575,7 @@ bool QueueRTCPManager::onGotSDES(SyncSou
>      // 8-bit long, so no ntoh[s|l] is required
>      bool cname_found = false;
>  
> -    ptrdiff_t pointer = reinterpret_cast<unsigned char*>(&pkt) - 
> rtcpRecvBuffer;
> +    std::ptrdiff_t pointer = reinterpret_cast<unsigned char*>(&pkt) - 
> rtcpRecvBuffer;
>      uint16 i = 0;
>      do {
>          size_t len = pkt.getLength();
> @@ -649,7 +649,7 @@ bool QueueRTCPManager::onGotSDESChunk(Sy
>              pointer++;
>              pointer += (pointer & 0x03); // padding
>          } else if ( item->type == SDESItemTypePRIV ) {
> -            ptrdiff_t prevpointer = pointer;
> +            std::ptrdiff_t prevpointer = pointer;
>              uint8 plength = *( &(item->len) + 1 );
>              pointer += sizeof(item->type) + sizeof(item->len)  + 1;
>  
> 
> 
> _______________________________________________
> Ccrtp-devel mailing list
> [email protected]
> http://lists.gnu.org/mailman/listinfo/ccrtp-devel
> 


_______________________________________________
Ccrtp-devel mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/ccrtp-devel

Reply via email to