Custom firmware for Vaisala RS41 and Graw DFM-17 radiosondes with support for amateur radio use. Ideal for tracking high-altitude balloons. Supported modes include APRS, Horus 4FSK mode, CATS, morse code (CW) and additional digital modes like WSPR and FT8 via Si5351.
GNU General Public License v2.0
109
stars
28
forks
source link
compilation fails even with libbsd-dev installed on ubuntu jammy #31
I am finding that compilation fails even with libbsd-dev installed on ubuntu jammy
Issue is with the strlcpy vs strncpy
-- The C compiler identification is GNU 11.3.0
-- The CXX compiler identification is GNU 11.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/mitch/RS41ng/build
[ 1%] Building C object src/CMakeFiles/RS41ng.elf.dir/bmp280_handler.c.o
[ 2%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/aprs/aprs.c.o
[ 3%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/aprs/aprs_position.c.o
[ 4%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/aprs/aprs_weather.c.o
[ 5%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/ax25/ax25.c.o
[ 6%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/bell/bell.c.o
[ 8%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/horus/horus_common.c.o
[ 9%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/horus/horus_l2.c.o
[ 10%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/horus/horus_packet_v1.c.o
[ 11%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/horus/horus_packet_v2.c.o
[ 12%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/jtencode/lib/crc14.c.o
[ 13%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/mfsk/mfsk.c.o
[ 14%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/morse/morse.c.o
[ 16%] Building C object src/CMakeFiles/RS41ng.elf.dir/config.c.o
[ 17%] Building C object src/CMakeFiles/RS41ng.elf.dir/drivers/bmp280/bmp280.c.o
[ 18%] Building C object src/CMakeFiles/RS41ng.elf.dir/drivers/pulse_counter/pulse_counter.c.o
[ 19%] Building C object src/CMakeFiles/RS41ng.elf.dir/drivers/si4032/si4032.c.o
[ 20%] Building C object src/CMakeFiles/RS41ng.elf.dir/drivers/ubxg6010/ubxg6010.c.o
[ 21%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/cmsis_boot/startup/startup_stm32f10x_md_vl.c.o
[ 22%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/cmsis_boot/system_stm32f10x.c.o
[ 24%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/datatimer.c.o
[ 25%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/delay.c.o
[ 26%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/i2c.c.o
[ 27%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/pwm.c.o
[ 28%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/spi.c.o
[ 29%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/misc.c.o
[ 31%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_adc.c.o
[ 32%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_dma.c.o
[ 33%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_exti.c.o
[ 34%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_flash.c.o
[ 35%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_gpio.c.o
[ 36%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_i2c.c.o
[ 37%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_pwr.c.o
[ 39%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_rcc.c.o
[ 40%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_spi.c.o
[ 41%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_tim.c.o
[ 42%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_usart.c.o
[ 43%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/system.c.o
[ 44%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/usart_ext.c.o
[ 45%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/usart_gps.c.o
[ 47%] Building C object src/CMakeFiles/RS41ng.elf.dir/locator.c.o
[ 48%] Building C object src/CMakeFiles/RS41ng.elf.dir/log.c.o
[ 49%] Building C object src/CMakeFiles/RS41ng.elf.dir/main.c.o
[ 50%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio.c.o
[ 51%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_aprs_position.c.o
[ 52%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_aprs_weather.c.o
[ 54%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_cw.c.o
[ 55%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_fsq.c.o
[ 56%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_horus_v1.c.o
[ 57%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_horus_v2.c.o
[ 58%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_jtencode.c.o
[ 59%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_wspr.c.o
[ 60%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_si4032.c.o
[ 62%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_si5351.c.o
[ 63%] Building C object src/CMakeFiles/RS41ng.elf.dir/syscalls/semihosting.c.o
[ 64%] Building C object src/CMakeFiles/RS41ng.elf.dir/syscalls/syscalls.c.o
[ 65%] Building C object src/CMakeFiles/RS41ng.elf.dir/telemetry.c.o
[ 66%] Building C object src/CMakeFiles/RS41ng.elf.dir/template.c.o
[ 67%] Building C object src/CMakeFiles/RS41ng.elf.dir/utils.c.o
[ 68%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/codecs/jtencode/jtencode.cpp.o
[ 70%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/codecs/jtencode/lib/JTEncode.cpp.o
[ 71%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/codecs/jtencode/lib/encode_rs_int.cpp.o
[ 72%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/codecs/jtencode/lib/init_rs_int.cpp.o
/home/mitch/RS41ng/src/codecs/jtencode/lib/init_rs_int.cpp: In member function 'void JTEncode::init_rs_int(int, int, int, int, int, int)':
/home/mitch/RS41ng/src/codecs/jtencode/lib/init_rs_int.cpp:33:29: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare]
33 | if(symsize < 0 || symsize > 8sizeof(data_t)){
| ~~^~~~
[ 73%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/drivers/si5351/si5351.cpp.o
[ 74%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/drivers/si5351fast/si5351mcu.cpp.o
[ 75%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/si5351_handler.cpp.o
[ 77%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/si5351_test.cpp.o
[ 78%] Linking CXX executable RS41ng.elf
Building /home/mitch/RS41ng/build/RS41ng.hex
Building /home/mitch/RS41ng/build/RS41ng.bin
text data bss dec hex filename
55340 1512 5152 62004 f234 RS41ng.elf
[ 78%] Built target RS41ng.elf
[ 79%] Building C object tests/CMakeFiles/RS41ng_top.dir/bell_test.c.o
/home/mitch/RS41ng/tests/bell_test.c: In function ‘main2’:
/home/mitch/RS41ng/tests/bell_test.c:16:34: warning: format argument 1 unused before used argument 4 in ‘$’-style format [-Wformat=]
16 | snprintf(test, sizeof(test), "%3$s %4$s %2$s\n", "1fd", gg, "3aa", "4ab");
| ^~~~~~
In file included from /home/mitch/RS41ng/src/gps.h:6,
from /home/mitch/RS41ng/src/codecs/aprs/aprs_position.h:7,
from /home/mitch/RS41ng/tests/bell_test.c:5:
/home/mitch/RS41ng/src/config.h:189:22: warning: too many arguments for format [-Wformat-extra-args]
189 | #define APRS_COMMENT "RS41ng radiosonde firmware test"
| ^~~~~~~~~
/home/mitch/RS41ng/src/config.h:189:22: note: in definition of macro ‘APRS_COMMENT’
189 | #define APRS_COMMENT "RS41ng radiosonde firmware test"
| ^~~~~~~~~
[ 80%] Building C object tests/CMakeFiles/RS41ng_top.dir/morse_test.c.o
[ 81%] Building C object tests/CMakeFiles/RS41ng_top.dir/template_test.c.o
[ 82%] Building C object tests/CMakeFiles/RS41ng_top.dir//src/codecs/aprs/aprs.c.o
[ 83%] Building C object tests/CMakeFiles/RS41ng_top.dir//src/codecs/aprs/aprs_position.c.o
[ 85%] Building C object tests/CMakeFiles/RS41ng_top.dir//src/codecs/aprs/aprs_weather.c.o
[ 86%] Building C object tests/CMakeFiles/RS41ng_top.dir/__/src/codecs/ax25/ax25.c.o
[ 87%] Building C object tests/CMakeFiles/RS41ng_top.dir//src/codecs/bell/bell.c.o
[ 88%] Building C object tests/CMakeFiles/RS41ng_top.dir//src/codecs/horus/horus_common.c.o
[ 89%] Building C object tests/CMakeFiles/RS41ng_top.dir//src/codecs/horus/horus_l2.c.o
[ 90%] Building C object tests/CMakeFiles/RS41ng_top.dir//src/codecs/horus/horus_packet_v1.c.o
[ 91%] Building C object tests/CMakeFiles/RS41ng_top.dir/__/src/codecs/horus/horus_packet_v2.c.o
[ 93%] Building C object tests/CMakeFiles/RS41ng_top.dir//src/codecs/jtencode/lib/crc14.c.o
[ 94%] Building C object tests/CMakeFiles/RS41ng_top.dir//src/codecs/mfsk/mfsk.c.o
[ 95%] Building C object tests/CMakeFiles/RS41ng_top.dir/__/src/codecs/morse/morse.c.o
[ 96%] Building C object tests/CMakeFiles/RS41ng_top.dir//src/config.c.o
[ 97%] Building C object tests/CMakeFiles/RS41ng_top.dir//src/template.c.o
/home/mitch/RS41ng/src/template.c: In function ‘template_replace’:
/home/mitch/RS41ng/src/template.c:16:5: warning: implicit declaration of function ‘strlcpy’; did you mean ‘strncpy’? [-Wimplicit-function-declaration]
16 | strlcpy(replacement, CALLSIGN, sizeof(replacement));
| ^~~
| strncpy
[ 98%] Building C object tests/CMakeFiles/RS41ng_top.dir//src/utils.c.o
[100%] Linking C executable RS41ng_top
/usr/bin/ld: CMakeFiles/RS41ng_top.dir/template_test.c.o: in function main': template_test.c:(.text+0x7b): undefined reference tostrlcpy'
/usr/bin/ld: CMakeFiles/RS41ng_top.dir//src/template.c.o: in function template_replace': template.c:(.text+0x68): undefined reference tostrlcpy'
/usr/bin/ld: template.c:(.text+0x84): undefined reference to strlcpy' /usr/bin/ld: template.c:(.text+0xc7): undefined reference tostrlcpy'
/usr/bin/ld: template.c:(.text+0xe3): undefined reference to `strlcpy'
/usr/bin/ld: CMakeFiles/RS41ng_top.dir//src/template.c.o:template.c:(.text+0x126): more undefined references to `strlcpy' follow
collect2: error: ld returned 1 exit status
make[2]: [tests/CMakeFiles/RS41ng_top.dir/build.make:369: tests/RS41ng_top] Error 1
make[1]: [CMakeFiles/Makefile2:169: tests/CMakeFiles/RS41ng_top.dir/all] Error 2
make: *** [Makefile:91: all] Error 2
This is a known issue, but we don't have a solution. The actual firmware builds fine (you should have the ELF/BIN files built), but the test code doesn't.
You can either:
Not care about the error, as the firmware is built
I am finding that compilation fails even with libbsd-dev installed on ubuntu jammy Issue is with the strlcpy vs strncpy
-- The C compiler identification is GNU 11.3.0 -- The CXX compiler identification is GNU 11.3.0 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/bin/cc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Configuring done -- Generating done -- Build files have been written to: /home/mitch/RS41ng/build [ 1%] Building C object src/CMakeFiles/RS41ng.elf.dir/bmp280_handler.c.o [ 2%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/aprs/aprs.c.o [ 3%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/aprs/aprs_position.c.o [ 4%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/aprs/aprs_weather.c.o [ 5%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/ax25/ax25.c.o [ 6%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/bell/bell.c.o [ 8%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/horus/horus_common.c.o [ 9%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/horus/horus_l2.c.o [ 10%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/horus/horus_packet_v1.c.o [ 11%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/horus/horus_packet_v2.c.o [ 12%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/jtencode/lib/crc14.c.o [ 13%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/mfsk/mfsk.c.o [ 14%] Building C object src/CMakeFiles/RS41ng.elf.dir/codecs/morse/morse.c.o [ 16%] Building C object src/CMakeFiles/RS41ng.elf.dir/config.c.o [ 17%] Building C object src/CMakeFiles/RS41ng.elf.dir/drivers/bmp280/bmp280.c.o [ 18%] Building C object src/CMakeFiles/RS41ng.elf.dir/drivers/pulse_counter/pulse_counter.c.o [ 19%] Building C object src/CMakeFiles/RS41ng.elf.dir/drivers/si4032/si4032.c.o [ 20%] Building C object src/CMakeFiles/RS41ng.elf.dir/drivers/ubxg6010/ubxg6010.c.o [ 21%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/cmsis_boot/startup/startup_stm32f10x_md_vl.c.o [ 22%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/cmsis_boot/system_stm32f10x.c.o [ 24%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/datatimer.c.o [ 25%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/delay.c.o [ 26%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/i2c.c.o [ 27%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/pwm.c.o [ 28%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/spi.c.o [ 29%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/misc.c.o [ 31%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_adc.c.o [ 32%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_dma.c.o [ 33%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_exti.c.o [ 34%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_flash.c.o [ 35%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_gpio.c.o [ 36%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_i2c.c.o [ 37%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_pwr.c.o [ 39%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_rcc.c.o [ 40%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_spi.c.o [ 41%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_tim.c.o [ 42%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/stm_lib/src/stm32f10x_usart.c.o [ 43%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/system.c.o [ 44%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/usart_ext.c.o [ 45%] Building C object src/CMakeFiles/RS41ng.elf.dir/hal/usart_gps.c.o [ 47%] Building C object src/CMakeFiles/RS41ng.elf.dir/locator.c.o [ 48%] Building C object src/CMakeFiles/RS41ng.elf.dir/log.c.o [ 49%] Building C object src/CMakeFiles/RS41ng.elf.dir/main.c.o [ 50%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio.c.o [ 51%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_aprs_position.c.o [ 52%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_aprs_weather.c.o [ 54%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_cw.c.o [ 55%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_fsq.c.o [ 56%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_horus_v1.c.o [ 57%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_horus_v2.c.o [ 58%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_jtencode.c.o [ 59%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_payload_wspr.c.o [ 60%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_si4032.c.o [ 62%] Building C object src/CMakeFiles/RS41ng.elf.dir/radio_si5351.c.o [ 63%] Building C object src/CMakeFiles/RS41ng.elf.dir/syscalls/semihosting.c.o [ 64%] Building C object src/CMakeFiles/RS41ng.elf.dir/syscalls/syscalls.c.o [ 65%] Building C object src/CMakeFiles/RS41ng.elf.dir/telemetry.c.o [ 66%] Building C object src/CMakeFiles/RS41ng.elf.dir/template.c.o [ 67%] Building C object src/CMakeFiles/RS41ng.elf.dir/utils.c.o [ 68%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/codecs/jtencode/jtencode.cpp.o [ 70%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/codecs/jtencode/lib/JTEncode.cpp.o [ 71%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/codecs/jtencode/lib/encode_rs_int.cpp.o [ 72%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/codecs/jtencode/lib/init_rs_int.cpp.o /home/mitch/RS41ng/src/codecs/jtencode/lib/init_rs_int.cpp: In member function 'void JTEncode::init_rs_int(int, int, int, int, int, int)': /home/mitch/RS41ng/src/codecs/jtencode/lib/init_rs_int.cpp:33:29: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 33 | if(symsize < 0 || symsize > 8sizeof(data_t)){ |
~~^~~~[ 73%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/drivers/si5351/si5351.cpp.o [ 74%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/drivers/si5351fast/si5351mcu.cpp.o [ 75%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/si5351_handler.cpp.o [ 77%] Building CXX object src/CMakeFiles/RS41ng.elf.dir/si5351_test.cpp.o [ 78%] Linking CXX executable RS41ng.elf Building /home/mitch/RS41ng/build/RS41ng.hex Building /home/mitch/RS41ng/build/RS41ng.bin text data bss dec hex filename 55340 1512 5152 62004 f234 RS41ng.elf [ 78%] Built target RS41ng.elf [ 79%] Building C object tests/CMakeFiles/RS41ng_top.dir/bell_test.c.o /home/mitch/RS41ng/tests/bell_test.c: In function ‘main2’: /home/mitch/RS41ng/tests/bell_test.c:16:34: warning: format argument 1 unused before used argument 4 in ‘$’-style format [-Wformat=] 16 | snprintf(test, sizeof(test), "%3$s %4$s %2$s\n", "1fd", gg, "3aa", "4ab"); | ^~~~~~ In file included from /home/mitch/RS41ng/src/gps.h:6, from /home/mitch/RS41ng/src/codecs/aprs/aprs_position.h:7, from /home/mitch/RS41ng/tests/bell_test.c:5: /home/mitch/RS41ng/src/config.h:189:22: warning: too many arguments for format [-Wformat-extra-args] 189 | #define APRS_COMMENT "RS41ng radiosonde firmware test" | ^~~~~~~~~ /home/mitch/RS41ng/src/config.h:189:22: note: in definition of macro ‘APRS_COMMENT’ 189 | #define APRS_COMMENT "RS41ng radiosonde firmware test" | ^~~~~~~~~ [ 80%] Building C object tests/CMakeFiles/RS41ng_top.dir/morse_test.c.o [ 81%] Building C object tests/CMakeFiles/RS41ng_top.dir/template_test.c.o [ 82%] Building C object tests/CMakeFiles/RS41ng_top.dir//src/codecs/aprs/aprs.c.o [ 83%] Building C object tests/CMakeFiles/RS41ng_top.dir//src/codecs/aprs/aprs_position.c.o [ 85%] Building C object tests/CMakeFiles/RS41ng_top.dir//src/codecs/aprs/aprs_weather.c.o [ 86%] Building C object tests/CMakeFiles/RS41ng_top.dir/__/src/codecs/ax25/ax25.c.o [ 87%] Building C object tests/CMakeFiles/RS41ng_top.dir//src/codecs/bell/bell.c.o [ 88%] Building C object tests/CMakeFiles/RS41ng_top.dir//src/codecs/horus/horus_common.c.o [ 89%] Building C object tests/CMakeFiles/RS41ng_top.dir//src/codecs/horus/horus_l2.c.o [ 90%] Building C object tests/CMakeFiles/RS41ng_top.dir//src/codecs/horus/horus_packet_v1.c.o [ 91%] Building C object tests/CMakeFiles/RS41ng_top.dir/__/src/codecs/horus/horus_packet_v2.c.o [ 93%] Building C object tests/CMakeFiles/RS41ng_top.dir//src/codecs/jtencode/lib/crc14.c.o [ 94%] Building C object tests/CMakeFiles/RS41ng_top.dir//src/codecs/mfsk/mfsk.c.o [ 95%] Building C object tests/CMakeFiles/RS41ng_top.dir/__/src/codecs/morse/morse.c.o [ 96%] Building C object tests/CMakeFiles/RS41ng_top.dir//src/config.c.o [ 97%] Building C object tests/CMakeFiles/RS41ng_top.dir//src/template.c.o /home/mitch/RS41ng/src/template.c: In function ‘template_replace’: /home/mitch/RS41ng/src/template.c:16:5: warning: implicit declaration of function ‘strlcpy’; did you mean ‘strncpy’? [-Wimplicit-function-declaration] 16 | strlcpy(replacement, CALLSIGN, sizeof(replacement)); | ^~~ | strncpy [ 98%] Building C object tests/CMakeFiles/RS41ng_top.dir//src/utils.c.o [100%] Linking C executable RS41ng_top /usr/bin/ld: CMakeFiles/RS41ng_top.dir/template_test.c.o: in functionmain': template_test.c:(.text+0x7b): undefined reference to
strlcpy' /usr/bin/ld: CMakeFiles/RS41ng_top.dir//src/template.c.o: in functiontemplate_replace': template.c:(.text+0x68): undefined reference to
strlcpy' /usr/bin/ld: template.c:(.text+0x84): undefined reference tostrlcpy' /usr/bin/ld: template.c:(.text+0xc7): undefined reference to
strlcpy' /usr/bin/ld: template.c:(.text+0xe3): undefined reference to `strlcpy' /usr/bin/ld: CMakeFiles/RS41ng_top.dir//src/template.c.o:template.c:(.text+0x126): more undefined references to `strlcpy' follow collect2: error: ld returned 1 exit status make[2]: [tests/CMakeFiles/RS41ng_top.dir/build.make:369: tests/RS41ng_top] Error 1 make[1]: [CMakeFiles/Makefile2:169: tests/CMakeFiles/RS41ng_top.dir/all] Error 2 make: *** [Makefile:91: all] Error 2