The default notification method for stream buffers to unblock a task waiting on the other end of a stream buffer is task notification.
If you define new version of sbRECEIVE_COMPLETED and configUSE_SB_COMPLETED_CALLBACK that don’t use task notifications, you could take out the #error statement.
That would attempt to access ucNotifyState which will not be included in the struct.
This will only happen if you also define configUSE_TRACE_FACILITY to 1
It looks to me like the code in task.c could be modified to something like.
#if ( configUSE_TRACE_FACILITY == 1 )
BaseType_t x;
/* The task does not appear on the event list item of
* and of the RTOS objects, but could still be in the
* blocked state if it is waiting on its notification
* rather than waiting on an object. If not, is
* suspended. */
for( x = ( BaseType_t ) 0; x < ( BaseType_t ) configTASK_NOTIFICATION_ARRAY_ENTRIES; x++ )
{
if( pxTCB->ucNotifyState[ x ] == taskWAITING_NOTIFICATION )
{
pxTaskStatus->eCurrentState = eBlocked;
break;
}
}
#endif