Sfoglia il codice sorgente

HPCC-22848 Build with Ubuntu 19.10/GNU GCC 9

Signed-off-by: Richard Chapman <rchapman@hpccsystems.com>
Richard Chapman 5 anni fa
parent
commit
f19ca9ba06

+ 1 - 1
common/thorhelper/thorsoapcall.cpp

@@ -1778,7 +1778,7 @@ private:
                     read += bytesRead;
                     response.setLength(read);
                     if (bytesRead==0) {
-                        master->logctx.CTXLOG("%sCALL: Warning %sHTTP response terminated prematurely",master->wscType == STsoap ? "SOAP" : "HTTP",chunked?"CHUNKED ":NULL);
+                        master->logctx.CTXLOG("%sCALL: Warning %sHTTP response terminated prematurely",master->wscType == STsoap ? "SOAP" : "HTTP",chunked?"CHUNKED ":"");
                         break; // oops  looks likesocket closed early
                     }
                 }

+ 4 - 0
deployment/deployutils/CMakeLists.txt

@@ -48,6 +48,10 @@ include_directories (
          ${HPCC_SOURCE_DIR}/system/security/shared
     )
 
+if (CMAKE_COMPILER_IS_GNUCC AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "9.2.0")
+  set_source_files_properties(deployutils.cpp PROPERTIES COMPILE_FLAGS -Wno-format-overflow)
+endif()
+
 ADD_DEFINITIONS ( -D_USRDLL -DDEPLOYUTILS_EXPORTS )
 
 HPCC_ADD_LIBRARY( deployutils SHARED ${SRCS} )

+ 3 - 3
plugins/cassandra/CMakeLists.txt

@@ -66,9 +66,9 @@ if(USE_CASSANDRA)
   if (CMAKE_COMPILER_IS_GNUCXX)
   # From time to time need to add flags in here to disable warnings, if a new compiler picks up something new.
   # e.g.
-  # if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.0.0)
-  #   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wimplicit-fallthrough=0)
-  # endif ()
+    if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 9.2.0)
+      set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-copy")
+    endif ()
   endif()
   set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/cpp-driver/cmake/modules/")
   set(CASS_ROOT_DIR "${PROJECT_SOURCE_DIR}/cpp-driver")

+ 8 - 6
plugins/mysql/mysqlembed.cpp

@@ -125,24 +125,26 @@ MySQLOptionDefinition options[] =
 {
     addoption(MYSQL_OPT_COMPRESS, ParamTypeNone),
     addoption(MYSQL_OPT_CONNECT_TIMEOUT, ParamTypeUInt),
+#if (MYSQL_VERSION_ID < 80000)
     addoption(MYSQL_OPT_GUESS_CONNECTION, ParamTypeNone),
+    addoption(MYSQL_OPT_SSL_VERIFY_SERVER_CERT, ParamTypeBool),
+    addoption(MYSQL_OPT_USE_EMBEDDED_CONNECTION, ParamTypeNone),
+    addoption(MYSQL_OPT_USE_REMOTE_CONNECTION, ParamTypeNone),
+    addoption(MYSQL_SECURE_AUTH, ParamTypeBool),
+    addoption(MYSQL_SET_CLIENT_IP, ParamTypeString),
+#endif
     addoption(MYSQL_OPT_LOCAL_INFILE, ParamTypeUInt),
     addoption(MYSQL_OPT_NAMED_PIPE, ParamTypeNone),
     addoption(MYSQL_OPT_PROTOCOL, ParamTypeUInt),
     addoption(MYSQL_OPT_READ_TIMEOUT, ParamTypeUInt),
     addoption(MYSQL_OPT_RECONNECT, ParamTypeBool),
-    addoption(MYSQL_OPT_SSL_VERIFY_SERVER_CERT, ParamTypeBool),
-    addoption(MYSQL_OPT_USE_EMBEDDED_CONNECTION, ParamTypeNone),
-    addoption(MYSQL_OPT_USE_REMOTE_CONNECTION, ParamTypeNone),
     addoption(MYSQL_OPT_USE_RESULT, ParamTypeNone),
     addoption(MYSQL_OPT_WRITE_TIMEOUT, ParamTypeUInt),
     addoption(MYSQL_READ_DEFAULT_FILE, ParamTypeString),
     addoption(MYSQL_READ_DEFAULT_GROUP, ParamTypeString),
     addoption(MYSQL_REPORT_DATA_TRUNCATION, ParamTypeBool),
-    addoption(MYSQL_SECURE_AUTH, ParamTypeBool),
     addoption(MYSQL_SET_CHARSET_DIR, ParamTypeString),
     addoption(MYSQL_SET_CHARSET_NAME, ParamTypeString),
-    addoption(MYSQL_SET_CLIENT_IP, ParamTypeString),
     addoption(MYSQL_SHARED_MEMORY_BASE_NAME, ParamTypeString),
 #if MYSQL_VERSION_ID >= 50507
     addoption(MYSQL_DEFAULT_AUTH, ParamTypeString),
@@ -170,7 +172,7 @@ MySQLOptionDefinition options[] =
 #if (MYSQL_VERSION_ID >= 50610)
     addoption(MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS, ParamTypeBool),
 #endif
-#if (MYSQL_VERSION_ID >= 50703)
+#if (MYSQL_VERSION_ID >= 50703 && MYSQL_VERSION_ID < 80000)
     addoption(MYSQL_OPT_SSL_ENFORCE, ParamTypeBool),
 #endif
 #if (MYSQL_VERSION_ID >= 50709)

+ 4 - 4
rtl/eclrtl/rtldynfield.cpp

@@ -264,7 +264,7 @@ private:
                     if (isVirtualInitializer(child->initializer))
                         addProp("vinit", getVirtualInitializer(child->initializer));
                     else
-                        addProp("init", child->type->size(child->initializer, nullptr), child->initializer);
+                        addProp("init", child->type->size((const byte *) child->initializer, nullptr), (const byte *) child->initializer);
                 }
                 closeCurly();
                 fields++;
@@ -469,8 +469,8 @@ private:
                 // initializer is tricky - it's not (in general) a null-terminated string but the actual length is not easily available
                 if (flags & RFTMhasInitializer)
                 {
-                    unsigned initLength = child->type->size(child->initializer, nullptr);
-                    out.appendPacked(initLength).append(initLength, child->initializer);
+                    unsigned initLength = child->type->size((const byte *) child->initializer, nullptr);
+                    out.appendPacked(initLength).append(initLength, (const byte *) child->initializer);
                 }
                 else if (flags &RFTMhasVirtualInitializer)
                     out.append(getVirtualInitializer(child->initializer));
@@ -1590,7 +1590,7 @@ private:
             info.matchIdx = sourceRecInfo.getFieldNum(destRecInfo.queryName(idx));
             if (info.matchIdx == (unsigned) -1)
             {
-                const byte * initializer = field->initializer;
+                const byte * initializer = (const byte *) field->initializer;
                 info.matchType = isVirtualInitializer(initializer) ? match_virtual : match_none;
                 size32_t defaultSize = (initializer && !isVirtualInitializer(initializer)) ? type->size(initializer, nullptr) : type->getMinSize();
                 fixedDelta -= defaultSize;

+ 1 - 1
rtl/eclrtl/rtlembed.hpp

@@ -32,7 +32,7 @@ public:
     {
         if (field && field->initializer && !isVirtualInitializer(field->initializer))
         {
-            field->process(field->initializer, field->initializer, *this);
+            field->process((const byte *) field->initializer, (const byte *) field->initializer, *this);
             assertex(fieldExpected==NULL);
         }
     }

+ 1 - 1
rtl/eclrtl/rtlfield.cpp

@@ -170,7 +170,7 @@ size32_t RtlTypeInfoBase::buildNull(ARowBuilder &builder, size32_t offset, const
 {
     if (field->initializer && !isVirtualInitializer(field->initializer))
     {
-        size32_t initSize = size(field->initializer, nullptr);
+        size32_t initSize = size((const byte *) field->initializer, nullptr);
         builder.ensureCapacity(offset+initSize, queryName(field));
         memcpy(builder.getSelf()+offset, field->initializer, initSize);
         return offset+initSize;

+ 4 - 4
rtl/include/eclhelper.hpp

@@ -472,8 +472,8 @@ static const char * const PVirtualLocalFilePosition = (const char *)(memsize_t)F
 static const char * const PVirtualFilename = (const char *)(memsize_t)FVirtualFilename;
 static const char * const PVirtualRowSize = (const char *)(memsize_t)FVirtualRowSize;
 
-inline bool isVirtualInitializer(const byte * initializer) { return initializer && (memsize_t)initializer < FVirtualLimit; }
-inline byte getVirtualInitializer(const byte * initializer) { return (byte)(memsize_t)initializer; }
+inline bool isVirtualInitializer(const void * initializer) { return initializer && (memsize_t)initializer < FVirtualLimit; }
+inline byte getVirtualInitializer(const void * initializer) { return (byte)(memsize_t)initializer; }
 
 typedef IThorDiskCallback IVirtualFieldCallback;
 
@@ -481,12 +481,12 @@ typedef IThorDiskCallback IVirtualFieldCallback;
 struct RtlFieldInfo
 {
     constexpr inline RtlFieldInfo(const char * _name, const char * _xpath, const RtlTypeInfo * _type, unsigned _flags = 0, const char *_initializer = NULL)
-    : name(_name), xpath(_xpath), type(_type), initializer((const byte *) _initializer), flags(_type->fieldType | _flags) {}
+    : name(_name), xpath(_xpath), type(_type), initializer(_initializer), flags(_type->fieldType | _flags) {}
 
     const char * name;
     const char * xpath;
     const RtlTypeInfo * type;
-    const byte *initializer;
+    const void *initializer;
     unsigned flags;
 
     inline bool hasNonScalarXpath() const { return (flags & RFTMhasnonscalarxpath) != 0; }

+ 3 - 1
system/jlib/jutil.cpp

@@ -1680,11 +1680,13 @@ unsigned __int64 greatestCommonDivisor(unsigned __int64 left, unsigned __int64 r
 #endif
 
 //In a separate module to stop optimizer removing the surrounding catch.
+int minus4096 = -4096;  // Stops compiler being clever enough to report error
+
 void doStackProbe()
 {
     byte local;
     const volatile byte * x = (const byte *)&local;
-    byte forceload __attribute__((unused)) = x[-4096];
+    byte forceload __attribute__((unused)) = x[minus4096];
 }
 
 #ifdef __GNUC__