Hello,

as I wrote in the reffered issue tracker, if people find it inconvenient to see these warnings, we can remove the module from the default compile group of modules as well as skip it from packaging.

But I still want to have it with the squirrel code embedded as I run some tests on a few very small devices where there is no lib for the interpreter. Also, I do not want to fix those warnings in our clone of code, if someone wants to do it, should push it to the squirrel lang project and once merging there we can sync back in our clone.

This is also applicable to app_jsdt, where we embed the duktape interpreter code, but that project is explicitly saying the goal is to get the source code in the host app directly, no lib being planned (or at list it was doing that way, everything being in one c file).

Cheers,
Daniel

On 13.05.20 12:10, Henning Westerholt wrote:

Thanks Sergey, did not remembered this one.

 

From: sr-dev <sr-dev-bounces@lists.kamailio.org> On Behalf Of Sergey Safarov
Sent: Wednesday, May 13, 2020 12:02 PM
To: Kamailio (SER) - Development Mailing List <sr-dev@lists.kamailio.org>
Subject: Re: [sr-dev] warnings with gcc 9.3 on app_sqlang ,squirrel

 

Could you try look
https://github.com/kamailio/kamailio/issues/2135

 

On Wed, May 13, 2020 at 11:52 AM Henning Westerholt <hw@skalatan.de> wrote:

Hello,

 

Just a quick note - I get the following warnings on app_sqlang with gcc 9.3.0 (Ubuntu 20.04):

 

henning@static:~/repositories/kamailio/src/modules/app_sqlang$ make

CC (gcc) [M app_sqlang.so]              app_sqlang_api.o

CC (gcc) [M app_sqlang.so]              app_sqlang_kemi_export.o

CC (gcc) [M app_sqlang.so]              app_sqlang_mod.o

make --no-print-directory -C ./squirrel/squirrel SQMARCH64="-m64" CC_EXTRA_FLAGS="-fPIC" \

        OUT="../../libsquirrel.a" sq64

gcc -O2 -m64 -D_SQ64 -fno-exceptions -fno-rtti -Wall -fno-strict-aliasing -c sqapi.cpp sqbaselib.cpp sqfuncstate.cpp sqdebug.cpp sqlexer.cpp sqobject.cpp sqcompiler.cpp sqstate.cpp sqtable.cpp sqmem.cpp sqvm.cpp sqclass.cpp -I../include -I. -Iinclude -fPIC

In file included from sqobject.h:5,

                 from sqpcheader.h:17,

                 from sqapi.cpp:4:

squtils.h: In instantiation of ‘void sqvector<T>::remove(SQUnsignedInteger) [with T = SQObjectPtr; SQUnsignedInteger = long long unsigned int]’:

sqarray.h:83:27:   required from here

squtils.h:97:20: warning: ‘void* memmove(void*, const void*, size_t)’ writing to an object of type ‘struct SQObjectPtr’ with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]

   97 |             memmove(&_vals[idx], &_vals[idx+1], sizeof(T) * (_size - idx - 1));

      |             ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

In file included from sqpcheader.h:17,

                 from sqapi.cpp:4:

sqobject.h:205:8: note: ‘struct SQObjectPtr’ declared here

  205 | struct SQObjectPtr : public SQObject

      |        ^~~~~~~~~~~

In file included from sqobject.h:5,

                 from sqpcheader.h:17,

                 from sqbaselib.cpp:4:

squtils.h: In instantiation of ‘void sqvector<T>::remove(SQUnsignedInteger) [with T = SQObjectPtr; SQUnsignedInteger = long long unsigned int]’:

sqarray.h:83:27:   required from here

squtils.h:97:20: warning: ‘void* memmove(void*, const void*, size_t)’ writing to an object of type ‘struct SQObjectPtr’ with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]

   97 |             memmove(&_vals[idx], &_vals[idx+1], sizeof(T) * (_size - idx - 1));

      |             ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

In file included from sqpcheader.h:17,

                 from sqbaselib.cpp:4:

sqobject.h:205:8: note: ‘struct SQObjectPtr’ declared here

  205 | struct SQObjectPtr : public SQObject

      |        ^~~~~~~~~~~

In file included from sqobject.h:5,

                 from sqpcheader.h:17,

                 from sqobject.cpp:4:

squtils.h: In instantiation of ‘void sqvector<T>::remove(SQUnsignedInteger) [with T = SQObjectPtr; SQUnsignedInteger = long long unsigned int]’:

sqarray.h:83:27:   required from here

squtils.h:97:20: warning: ‘void* memmove(void*, const void*, size_t)’ writing to an object of type ‘struct SQObjectPtr’ with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]

   97 |             memmove(&_vals[idx], &_vals[idx+1], sizeof(T) * (_size - idx - 1));

      |             ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

In file included from sqpcheader.h:17,

                 from sqobject.cpp:4:

sqobject.h:205:8: note: ‘struct SQObjectPtr’ declared here

  205 | struct SQObjectPtr : public SQObject

      |        ^~~~~~~~~~~

In file included from sqobject.h:5,

                 from sqpcheader.h:17,

                 from sqstate.cpp:4:

squtils.h: In instantiation of ‘void sqvector<T>::remove(SQUnsignedInteger) [with T = SQObjectPtr; SQUnsignedInteger = long long unsigned int]’:

sqarray.h:83:27:   required from here

squtils.h:97:20: warning: ‘void* memmove(void*, const void*, size_t)’ writing to an object of type ‘struct SQObjectPtr’ with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]

   97 |             memmove(&_vals[idx], &_vals[idx+1], sizeof(T) * (_size - idx - 1));

      |             ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

In file included from sqpcheader.h:17,

                 from sqstate.cpp:4:

sqobject.h:205:8: note: ‘struct SQObjectPtr’ declared here

  205 | struct SQObjectPtr : public SQObject

      |        ^~~~~~~~~~~

In file included from sqobject.h:5,

                 from sqpcheader.h:17,

                 from sqvm.cpp:4:

squtils.h: In instantiation of ‘void sqvector<T>::remove(SQUnsignedInteger) [with T = SQObjectPtr; SQUnsignedInteger = long long unsigned int]’:

sqarray.h:83:27:   required from here

squtils.h:97:20: warning: ‘void* memmove(void*, const void*, size_t)’ writing to an object of type ‘struct SQObjectPtr’ with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]

   97 |             memmove(&_vals[idx], &_vals[idx+1], sizeof(T) * (_size - idx - 1));

      |             ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

In file included from sqpcheader.h:17,

                 from sqvm.cpp:4:

sqobject.h:205:8: note: ‘struct SQObjectPtr’ declared here

  205 | struct SQObjectPtr : public SQObject

      |        ^~~~~~~~~~~

 

--

Henning Westerholt – https://skalatan.de/blog/

Kamailio services – https://gilawa.com

 

_______________________________________________
Kamailio (SER) - Development Mailing List
sr-dev@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev


_______________________________________________
Kamailio (SER) - Development Mailing List
sr-dev@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev
-- 
Daniel-Constantin Mierla -- www.asipto.com
www.twitter.com/miconda -- www.linkedin.com/in/miconda
Funding: https://www.paypal.me/dcmierla