Giter Site home page Giter Site logo

Comments (6)

hmueller01 avatar hmueller01 commented on June 23, 2024

@andig could you verify that my change fixed the warning? Maybe someone else on a non Raspberry system could also verify this. Thanks.

from libsml.

hmueller01 avatar hmueller01 commented on June 23, 2024

Ok, my implementation breaks compiling on e.g. OSX (x86 system).

cc -I../sml/include/ -std=c99 -Wall -Wextra -pedantic -c unity/unity.c -o unity/unity.o
unity/unity.c:19:22: error: designator in initializer for scalar type 'int'
    .AbortFrame = { {.__jmpbuf = {0}, .__mask_was_saved = 0, .__saved_mask = {{0}} } }
                     ^~~~~~~~~~~~~~~
1 error generated.
make[1]: *** [unity/unity.o] Error 1

It looks like jmp_buf (the type of AbortFrame) is defined differently depending on the environment.

RaspberryPi defines it like this

/* Calling environment, plus possibly a saved signal mask.  */
struct __jmp_buf_tag
  {
    /* NOTE: The machine-dependent definitions of `__sigsetjmp'
       assume that a `jmp_buf' begins with a `__jmp_buf' and that
       `__mask_was_saved' follows it.  Do not move these members
       or add others before it.  */
    __jmp_buf __jmpbuf;         /* Calling environment.  */
    int __mask_was_saved;       /* Saved the signal mask?  */
    __sigset_t __saved_mask;    /* Saved signal mask.  */
  };
typedef struct __jmp_buf_tag jmp_buf[1];

OSX like this

typedef int jmp_buf[_JBLEN];

One solution might be a define where we can select a special case for the Raspberry (or other Linux systems?). But I haven't found one. Currently I have no idea how to solve this.

Can someone please undo my change. Tx.

from libsml.

devZer0 avatar devZer0 commented on June 23, 2024

on my raspi with raspian/debian 9.8 it builds fine and works fine

root@pivpn2:/tmp/libsml# make
make[1]: Entering directory '/tmp/libsml/sml'
cc -I./include/ -fPIC -fno-stack-protector -g -std=c99 -Wall -Wextra -pedantic   -c -o src/sml_file.o src/sml_file.c
cc -I./include/ -fPIC -fno-stack-protector -g -std=c99 -Wall -Wextra -pedantic   -c -o src/sml_attention_response.o src/sml_attention_response.c
cc -I./include/ -fPIC -fno-stack-protector -g -std=c99 -Wall -Wextra -pedantic   -c -o src/sml_transport.o src/sml_transport.c
cc -I./include/ -fPIC -fno-stack-protector -g -std=c99 -Wall -Wextra -pedantic   -c -o src/sml_octet_string.o src/sml_octet_string.c
cc -I./include/ -fPIC -fno-stack-protector -g -std=c99 -Wall -Wextra -pedantic   -c -o src/sml_shared.o src/sml_shared.c
cc -I./include/ -fPIC -fno-stack-protector -g -std=c99 -Wall -Wextra -pedantic   -c -o src/sml_number.o src/sml_number.c
cc -I./include/ -fPIC -fno-stack-protector -g -std=c99 -Wall -Wextra -pedantic   -c -o src/sml_message.o src/sml_message.c
cc -I./include/ -fPIC -fno-stack-protector -g -std=c99 -Wall -Wextra -pedantic   -c -o src/sml_time.o src/sml_time.c
cc -I./include/ -fPIC -fno-stack-protector -g -std=c99 -Wall -Wextra -pedantic   -c -o src/sml_list.o src/sml_list.c
cc -I./include/ -fPIC -fno-stack-protector -g -std=c99 -Wall -Wextra -pedantic   -c -o src/sml_status.o src/sml_status.c
cc -I./include/ -fPIC -fno-stack-protector -g -std=c99 -Wall -Wextra -pedantic   -c -o src/sml_value.o src/sml_value.c
cc -I./include/ -fPIC -fno-stack-protector -g -std=c99 -Wall -Wextra -pedantic   -c -o src/sml_tree.o src/sml_tree.c
cc -I./include/ -fPIC -fno-stack-protector -g -std=c99 -Wall -Wextra -pedantic   -c -o src/sml_boolean.o src/sml_boolean.c
cc -I./include/ -fPIC -fno-stack-protector -g -std=c99 -Wall -Wextra -pedantic   -c -o src/sml_crc16.o src/sml_crc16.c
cc -I./include/ -fPIC -fno-stack-protector -g -std=c99 -Wall -Wextra -pedantic   -c -o src/sml_open_request.o src/sml_open_request.c
cc -I./include/ -fPIC -fno-stack-protector -g -std=c99 -Wall -Wextra -pedantic   -c -o src/sml_open_response.o src/sml_open_response.c
cc -I./include/ -fPIC -fno-stack-protector -g -std=c99 -Wall -Wextra -pedantic   -c -o src/sml_get_list_request.o src/sml_get_list_request.c
cc -I./include/ -fPIC -fno-stack-protector -g -std=c99 -Wall -Wextra -pedantic   -c -o src/sml_get_list_response.o src/sml_get_list_response.c
cc -I./include/ -fPIC -fno-stack-protector -g -std=c99 -Wall -Wextra -pedantic   -c -o src/sml_close_request.o src/sml_close_request.c
cc -I./include/ -fPIC -fno-stack-protector -g -std=c99 -Wall -Wextra -pedantic   -c -o src/sml_close_response.o src/sml_close_response.c
cc -I./include/ -fPIC -fno-stack-protector -g -std=c99 -Wall -Wextra -pedantic   -c -o src/sml_set_proc_parameter_request.o src/sml_set_proc_parameter_request.c
cc -I./include/ -fPIC -fno-stack-protector -g -std=c99 -Wall -Wextra -pedantic   -c -o src/sml_get_proc_parameter_request.o src/sml_get_proc_parameter_request.c
cc -I./include/ -fPIC -fno-stack-protector -g -std=c99 -Wall -Wextra -pedantic   -c -o src/sml_get_proc_parameter_response.o src/sml_get_proc_parameter_response.c
cc -I./include/ -fPIC -fno-stack-protector -g -std=c99 -Wall -Wextra -pedantic   -c -o src/sml_get_profile_pack_request.o src/sml_get_profile_pack_request.c
cc -I./include/ -fPIC -fno-stack-protector -g -std=c99 -Wall -Wextra -pedantic   -c -o src/sml_get_profile_pack_response.o src/sml_get_profile_pack_response.c
cc -I./include/ -fPIC -fno-stack-protector -g -std=c99 -Wall -Wextra -pedantic   -c -o src/sml_get_profile_list_request.o src/sml_get_profile_list_request.c
cc -I./include/ -fPIC -fno-stack-protector -g -std=c99 -Wall -Wextra -pedantic   -c -o src/sml_get_profile_list_response.o src/sml_get_profile_list_response.c
ld -luuid -shared -soname libsml.so.1 -o lib/libsml.so.1 src/sml_file.o src/sml_attention_response.o src/sml_transport.o src/sml_octet_string.o src/sml_shared.o src/sml_number.o src/sml_message.o src/sml_time.o src/sml_list.o src/sml_status.o src/sml_value.o src/sml_tree.o src/sml_boolean.o src/sml_crc16.o src/sml_open_request.o src/sml_open_response.o src/sml_get_list_request.o src/sml_get_list_response.o src/sml_close_request.o src/sml_close_response.o src/sml_set_proc_parameter_request.o src/sml_get_proc_parameter_request.o src/sml_get_proc_parameter_response.o src/sml_get_profile_pack_request.o src/sml_get_profile_pack_response.o src/sml_get_profile_list_request.o src/sml_get_profile_list_response.o
ar -rs lib/libsml.a src/sml_file.o src/sml_attention_response.o src/sml_transport.o src/sml_octet_string.o src/sml_shared.o src/sml_number.o src/sml_message.o src/sml_time.o src/sml_list.o src/sml_status.o src/sml_value.o src/sml_tree.o src/sml_boolean.o src/sml_crc16.o src/sml_open_request.o src/sml_open_response.o src/sml_get_list_request.o src/sml_get_list_response.o src/sml_close_request.o src/sml_close_response.o src/sml_set_proc_parameter_request.o src/sml_get_proc_parameter_request.o src/sml_get_proc_parameter_response.o src/sml_get_profile_pack_request.o src/sml_get_profile_pack_response.o src/sml_get_profile_list_request.o src/sml_get_profile_list_response.o
ar: creating lib/libsml.a
ld -r -o lib/libsml.o src/sml_file.o src/sml_attention_response.o src/sml_transport.o src/sml_octet_string.o src/sml_shared.o src/sml_number.o src/sml_message.o src/sml_time.o src/sml_list.o src/sml_status.o src/sml_value.o src/sml_tree.o src/sml_boolean.o src/sml_crc16.o src/sml_open_request.o src/sml_open_response.o src/sml_get_list_request.o src/sml_get_list_response.o src/sml_close_request.o src/sml_close_response.o src/sml_set_proc_parameter_request.o src/sml_get_proc_parameter_request.o src/sml_get_proc_parameter_response.o src/sml_get_profile_pack_request.o src/sml_get_profile_pack_response.o src/sml_get_profile_list_request.o src/sml_get_profile_list_response.o
make[1]: Leaving directory '/tmp/libsml/sml'
make[1]: Entering directory '/tmp/libsml/examples'
cc -I../sml/include/ -g -std=c99 -Wall -Wextra -pedantic -c sml_server.c -o sml_server.o
cc sml_server.o ../sml/lib/libsml.a -lm -luuid -o sml_server
make[1]: Leaving directory '/tmp/libsml/examples'
make[1]: Entering directory '/tmp/libsml/test'
make[2]: Entering directory '/tmp/libsml/sml'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/tmp/libsml/sml'
cc -I../sml/include/ -std=c99 -Wall -Wextra -pedantic -c unity/unity.c -o unity/unity.o
cc -I../sml/include/ -std=c99 -Wall -Wextra -pedantic -c unity/unity_fixture.c -o unity/unity_fixture.o
cc -I../sml/include/ -std=c99 -Wall -Wextra -pedantic -c src/test_helper.c -o src/test_helper.o
cc -I../sml/include/ -std=c99 -Wall -Wextra -pedantic -c src/sml_octet_string_test.c -o src/sml_octet_string_test.o
cc -I../sml/include/ -std=c99 -Wall -Wextra -pedantic -c src/sml_buffer_test.c -o src/sml_buffer_test.o
cc -I../sml/include/ -std=c99 -Wall -Wextra -pedantic -c src/sml_number_test.c -o src/sml_number_test.o
cc -I../sml/include/ -std=c99 -Wall -Wextra -pedantic -c src/sml_boolean_test.c -o src/sml_boolean_test.o
cc -I../sml/include/ -std=c99 -Wall -Wextra -pedantic -c src/sml_value_test.c -o src/sml_value_test.o
cc -I../sml/include/ -std=c99 -Wall -Wextra -pedantic -c src/sml_status_test.c -o src/sml_status_test.o
cc -I../sml/include/ -std=c99 -Wall -Wextra -pedantic -c src/sml_list_test.c -o src/sml_list_test.o
cc -I../sml/include/ -std=c99 -Wall -Wextra -pedantic -c src/sml_time_test.c -o src/sml_time_test.o
cc -I../sml/include/ -std=c99 -Wall -Wextra -pedantic -c src/sml_tree_test.c -o src/sml_tree_test.o
cc -I../sml/include/ -std=c99 -Wall -Wextra -pedantic -c src/sml_file_test.c -o src/sml_file_test.o
cc -I../sml/include/ -std=c99 -Wall -Wextra -pedantic -c src/sml_open_request_test.c -o src/sml_open_request_test.o
cc -I../sml/include/ -std=c99 -Wall -Wextra -pedantic -c src/sml_get_profile_pack_request_test.c -o src/sml_get_profile_pack_request_test.o
cc -I../sml/include/ -std=c99 -Wall -Wextra -pedantic -c src/sml_message_test.c -o src/sml_message_test.o
cc -I../sml/include/ -std=c99 -Wall -Wextra -pedantic -luuid unity/unity.o unity/unity_fixture.o src/test_helper.o src/sml_octet_string_test.o src/sml_buffer_test.o src/sml_number_test.o src/sml_boolean_test.o src/sml_value_test.o src/sml_status_test.o src/sml_list_test.o src/sml_time_test.o src/sml_tree_test.o src/sml_file_test.o src/sml_open_request_test.o src/sml_get_profile_pack_request_test.o src/sml_message_test.o ../sml/lib/libsml.a test_main.c -o test -luuid
Unity test run 1 of 1
.......................................................................................
-----------------------
87 Tests 0 Failures 0 Ignored
OK
make[1]: Leaving directory '/tmp/libsml/test'

root@pivpn2:/tmp/libsml-testing#  cat EMH_eHZ-GW8E2A500AK2.bin |  /tmp/libsml/examples/sml_server - | head -n10
129-129:199.130.3*255#EMH#
1-0:0.0.0*255#02280816#
1-0:1.8.1*255#14798112.9#Wh
1-0:1.8.2*255#2012.4#Wh
0-0:96.1.255*255#0002280816#
1-0:1.7.0*255#13.8#W
129-129:199.130.3*255#EMH#
1-0:0.0.0*255#02280816#
1-0:1.8.1*255#14798113.0#Wh
1-0:1.8.2*255#2012.4#Wh

from libsml.

devZer0 avatar devZer0 commented on June 23, 2024

i think this can be closed

from libsml.

devZer0 avatar devZer0 commented on June 23, 2024

also builds fine on debian 9.4 on raspberry, could you please close this @andig ?

also have running some influx/graphana setup with sml_server for weeks now @dingfabrik/colgone for weeks via raspberry as "bridge" between eHZ and influxdb without a problem

from libsml.

r00t- avatar r00t- commented on June 23, 2024

when this was opened, our copy of unity was already three years old,
we should probably simply have upgraded it, see #99

from libsml.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.