Actually, there are only a few compilation errors, I previously thought there were more because my console output was flooded by GCC diagnostics/candidates.
The patch bellow fix the compilation errors. I haven't tested the built yatebts yet, though.  
Index: mbts/GPRS/MSInfo.cpp
===================================================================
--- mbts/GPRS/MSInfo.cpp   (revision 666)
+++ mbts/GPRS/MSInfo.cpp   (working copy)
@@ -638,7 +638,7 @@
         if (msPCHDowns.size() > 1) {
             std::ostringstream os;
             msDumpChannels(os);
-            GPRSLOG(INFO,GPRS_MSG|GPRS_CHECK_OK) << "Multislot assignment for "<<this<<os;
+            GPRSLOG(INFO,GPRS_MSG|GPRS_CHECK_OK) << "Multislot assignment for "<<this<<os.str();
         }
 
    } else {
Index: mbts/SGSNGGSN/Sgsn.cpp
===================================================================
--- mbts/SGSNGGSN/Sgsn.cpp   (revision 666)
+++ mbts/SGSNGGSN/Sgsn.cpp   (working copy)
@@ -149,7 +149,7 @@
    clearConn(GprsConnNone,SigConnLost);
    std::ostringstream ss;
    sgsnInfoDump(this,ss);
-   SGSNLOGF(INFO,GPRS_OK|GPRS_MSG,"SGSN","Removing SgsnInfo:"<<ss);
+   SGSNLOGF(INFO,GPRS_OK|GPRS_MSG,"SGSN","Removing SgsnInfo:"<<ss.str());
    sSgsnInfoList.remove(this);
    GmmInfo *gmm = getGmm();
    if (gmm && (gmm->getSI() == this)) {
@@ -253,7 +253,7 @@
 {
    std::ostringstream ss;
    gmmInfoDump(gmm,ss,0);
-   SGSNLOGF(INFO,GPRS_OK|GPRS_MSG,"SGSN","Removing gmm:"<<ss);
+   SGSNLOGF(INFO,GPRS_OK|GPRS_MSG,"SGSN","Removing gmm:"<<ss.str());
    SgsnInfo *si;
    RN_FOR_ALL(SgsnInfoList_t,sSgsnInfoList,si) {
       // The second test here should be redundant.