diff --git a/indra/llmessage/llavatarnamecache.h b/indra/llmessage/llavatarnamecache.h
index 0e4906b64e97d1e3c70b96bd7bfe965b14999b0e..144048a12e8ed1c72318614775f6fee33eafb213 100644
--- a/indra/llmessage/llavatarnamecache.h
+++ b/indra/llmessage/llavatarnamecache.h
@@ -29,6 +29,7 @@
 #define LLAVATARNAMECACHE_H
 
 #include "llavatarname.h"	// for convenience
+#include "lluuid.h"
 #include "llsingleton.h"
 
 #include <boost/signals2.hpp>
@@ -38,7 +39,6 @@
 #include <set>
 
 class LLSD;
-class LLUUID;
 
 class LLAvatarNameCache : public LLSingleton<LLAvatarNameCache>
 {
@@ -187,7 +187,7 @@ private:
     // May have multiple callbacks for a single ID, which are
     // represented as multiple slots bound to the signal.
     // Avoid copying signals via pointers.
-    typedef absl::flat_hash_map<LLUUID, callback_signal_t*> signal_map_t;
+    typedef absl::flat_hash_map<LLUUID, callback_signal_t* > signal_map_t;
     signal_map_t mSignalMap;
 
     // The cache at last, i.e. avatar names we know about.
diff --git a/indra/newview/llcommandlineparser.cpp b/indra/newview/llcommandlineparser.cpp
index 9a7fad75898ec4ca082a75e80e929e1a234f7e3d..46525448238bd46627da165a1fb6493b0eed6b49 100644
--- a/indra/newview/llcommandlineparser.cpp
+++ b/indra/newview/llcommandlineparser.cpp
@@ -152,7 +152,12 @@ public:
     {
         return mMaxTokens;
     }
-
+#if LL_LINUX
+    bool adjacent_tokens_only() const override
+    {
+        return false;
+    }
+#endif
 	bool is_composing() const override
     {
         return mIsComposing;
diff --git a/indra/newview/llfilepicker.cpp b/indra/newview/llfilepicker.cpp
index 2c1887309dd9366f70427f4f49904dd2ad2dc38a..8a82161c0a55056f9e6fd398938ac91e56cdfb82 100644
--- a/indra/newview/llfilepicker.cpp
+++ b/indra/newview/llfilepicker.cpp
@@ -1228,7 +1228,7 @@ static std::string add_save_texture_filter_to_gtkchooser(GtkWindow *picker)
 	return caption;
 }
 
-BOOL LLFilePicker::getSaveFile( ESaveFilter filter, const std::string& filename )
+BOOL LLFilePicker::getSaveFile( ESaveFilter filter, const std::string& filename, bool blocking )
 {
 	BOOL rtn = FALSE;
 
diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp
index 067dafa6f55416dbc64f6ef91ac5341cad27c213..a2d9bc4df5f889fb6c9c217c867499ade6dedbf0 100644
--- a/indra/newview/llfloaterpreference.cpp
+++ b/indra/newview/llfloaterpreference.cpp
@@ -857,7 +857,7 @@ void LLFloaterPreference::onAddSkin()
 				zip->extractFile("manifest.json", buf.get(), buf_size);
 				buf[buf_size - 1] = '\0'; // force.
 				std::stringstream ss;
-				ss << buf;
+				ss << std::string(const_cast<const char*>(buf.get()), buf_size);
 				buf.reset();
 				
 				nlohmann::json root;
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index 5bbe9633356ce32c631d38ba58d6cc3d2ad2af28..228bdb457f595518ad58f327550ba9defc07dc65 100644
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -4368,6 +4368,7 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent)
 	}
 
 	BOOL visible = isVisible();
+#if LL_DEBUG
     bool is_control_avatar = isControlAvatar(); // capture state to simplify tracing
 	bool is_attachment = false;
 	if (is_control_avatar)
@@ -4376,7 +4377,6 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent)
         is_attachment = cav->mRootVolp && cav->mRootVolp->isAttachment(); // For attached animated objects
 	}
 
-#if LL_DEBUG
     LLScopedContextString str("updateCharacter " + getFullname() + " is_control_avatar "
                               + std::to_string(is_control_avatar) 
                               + " is_attachment " + std::to_string(is_attachment));
diff --git a/indra/newview/rlvhandler.cpp b/indra/newview/rlvhandler.cpp
index da5e54250ae0c5f12f1047cc7f1cf2e1388303ef..018d6077b32e91284f984369a4ab28e83ebeffd7 100644
--- a/indra/newview/rlvhandler.cpp
+++ b/indra/newview/rlvhandler.cpp
@@ -756,6 +756,7 @@ void RlvHandler::setActiveGroup(const LLUUID& idGroup)
 	m_idAgentGroup = idGroup;
 }
 
+enum class EMatch {E_Matched_None, E_Matched_Partial, E_Matched_Exact};
 void RlvHandler::setActiveGroupRole(const LLUUID& idGroup, const std::string& strRole)
 {
 	// Check if we need a group change first
@@ -781,7 +782,8 @@ void RlvHandler::setActiveGroupRole(const LLUUID& idGroup, const std::string& st
 	// We have everything - activate the requested role (if we can find it)
 	if (pGroupData)
 	{
-		enum class EMatch { None, Partial, Exact } eMatch = EMatch::None; LLUUID idRole;
+		EMatch eMatch = EMatch::E_Matched_None; 
+		LLUUID idRole;
 		for (const auto& roleData : pGroupData->mRoles)
 		{
 			// NOTE: exact matches take precedence over partial matches; in case of partial matches the last match wins
@@ -789,13 +791,13 @@ void RlvHandler::setActiveGroupRole(const LLUUID& idGroup, const std::string& st
 			if (boost::istarts_with(strRoleName, strRole))
 			{
 				idRole = roleData.first;
-				eMatch = (strRoleName.length() == strRole.length()) ? EMatch::Exact : EMatch::Partial;
-				if (eMatch == EMatch::Exact)
+				eMatch = (strRoleName.length() == strRole.length()) ? EMatch::E_Matched_Exact : EMatch::E_Matched_Partial;
+				if (eMatch == EMatch::E_Matched_Exact)
 					break;
 			}
 		}
 
-		if (eMatch != EMatch::None)
+		if (eMatch != EMatch::E_Matched_None)
 		{
 			RLV_INFOS << "Activating role '" << strRole << "' for group '" << pGroupData->mName << "'" << RLV_ENDL;
 			LLGroupMgr::getInstance()->sendGroupTitleUpdate(idGroup, idRole);