Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build warning on raspbian #19

Closed
andig opened this issue May 13, 2016 · 6 comments
Closed

Build warning on raspbian #19

andig opened this issue May 13, 2016 · 6 comments

Comments

@andig
Copy link

andig commented May 13, 2016

make[2]: Leaving directory '/home/pi/vzlogger/libs/libsml/sml'
cc -I../sml/include/ -std=c99 -Wall -Wextra -pedantic -c unity/unity.c -o unity/unity.o
unity/unity.c:17:8: warning: missing braces around initializer [-Wmissing-braces]
 struct _Unity Unity = { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , { 0 } };
    ^
unity/unity.c:17:8: warning: (near initialization for ‘Unity.AbortFrame[0]’) [-Wmissing-braces]
unity/unity.c:17:8: warning: missing initializer for field ‘__mask_was_saved’ of ‘struct __jmp_buf_tag’ [-Wmissing-field-initializers]
In file included from unity/unity_internals.h:11:0,
         from unity/unity.h:12,
         from unity/unity.c:7:
/usr/include/setjmp.h:41:9: note: ‘__mask_was_saved’ declared here
     int __mask_was_saved; /* Saved the signal mask?  */
     ^
andig pushed a commit that referenced this issue Jan 12, 2018
* fixed missing parameters in main()

* fixed build warning on raspbian #19
@hmueller01
Copy link

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

@hmueller01
Copy link

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.

@devZer0
Copy link

devZer0 commented Apr 11, 2019

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

@devZer0
Copy link

devZer0 commented Apr 14, 2019

i think this can be closed

@devZer0
Copy link

devZer0 commented Feb 20, 2020

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

@andig andig closed this as completed Feb 21, 2020
@r00t-
Copy link
Collaborator

r00t- commented Mar 25, 2021

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants