wb2osz / direwolf

Dire Wolf is a software "soundcard" AX.25 packet modem/TNC and APRS encoder/decoder. It can be used stand-alone to observe APRS traffic, as a tracker, digipeater, APRStt gateway, or Internet Gateway (IGate). For more information, look at the bottom 1/4 of this page and in https://github.com/wb2osz/direwolf/blob/dev/doc/README.md
GNU General Public License v2.0
1.51k stars 299 forks source link

Linux glibc 2.38 implements strlcat/strlcpy #489

Open adrians opened 9 months ago

adrians commented 9 months ago

As per the release-announcement for glibc 2.38 (https://lists.gnu.org/archive/html/info-gnu/2023-07/msg00010.html) :

* The strlcat and strlcpy functions have been added.  They are derived
  from OpenBSD, and are expected to be added to a future POSIX version.

When doing Linux builds for release 1.6 using the updated system library, the strlcat/strlcpy implementations from glibc clash with the implementations from this project (referenced in src/direwolf.h, external/misc/strlcat.c and external/misc/strlcpy.c).

More precisely, when compiling strlcat.c, the compiler first saw the preprocessor-define from src/direwolf.h:301, tried redefining all instances of strlcpy to strlcpy_debug, and then while resolving other include-directives started redefining the strlcpy references from glibc to point to strlcpy_debug.

The error message reported by gcc was about src/direwolf.h:301,302, not explaining too much about the root cause:

expected declaration specifiers or '...' before string constant

While for my purposes I've fixed this bug (the project now compiles under Linux, patch here), I'm also reporting it upstream to raise awareness about this issue (hopefully no-one else wastes time trying to understand the error message in this scenario).

sarcasticadmin commented 8 months ago

nixpkgs build of direwolf ran into this as well and fixed it with a patch similar: https://github.com/NixOS/nixpkgs/pull/247401/commits/d00a220853e808e2fcc9b951628645e779d56db6

Adding it here so theres more visibility of this issue across the community

wb2osz commented 8 months ago

Excerpt from CMakeLists.txt:

Some platforms provide their own strlcpy & strlcat. (BSD, MacOSX) Others don't so we provide our own. (Windows, most, but not all Linux) Here we detect whether these are provided by the OS and set a symbol so that: (1) libgps does not supply its own version. (2) we know whether we need to supply our own copy.

This was all working fine until these were added to the gnu c library 2.38. References:

This test is not detecting them for glibc 2.38 resulting in a conflict. Why? Are they declared in a different file or in some strange way?

This is how they are declared in include/string.h:

extern typeof (strlcpy) strlcpy; libc_hidden_proto (strlcpy) extern typeof (strlcat) strlcat; libc_hidden_proto (strlcat)

Apparently cmake does not recognize this style. Keep this here for BSD type systems where it behaves as expected. We will need to add a hack in direwolf.h to define these if glibc version >= 2.38.

wb2osz commented 8 months ago

I have not been able to test this yet when starting with the most recent Ubuntu. I couldn't find a package to install glibc 2.38 and when I tried to install from source, the system got trashed and became unusable.

NixOS makes no sense to me. I figured out how to effectively install applications (e.g. gcc) with "nix-shell -p ..." but could not figure how to get the required libraries.

Does anyone have some suggestions on how to set up a test OS with this new library version?

sarcasticadmin commented 8 months ago

Does anyone have some suggestions on how to set up a test OS with this new library version?

@wb2osz I would do the following to get a build environment for direwolf with nix:

$ nix develop nixpkgs#direwolf # To get a new shell with the build environment for direwolf
$ ldd --version # To confirm youve got the right glibc

Then you can go about building direwolf per the normal direwolf build instructions in this repo.

If you'd like to know more about nix develop checkout the manual for it here: https://nixos.org/manual/nix/stable/command-ref/new-cli/nix3-develop

One thing I did notice was that while this was broken on 1.6 and required the patch I mentioned https://github.com/NixOS/nixpkgs/commit/d00a220853e808e2fcc9b951628645e779d56db6

This breakage seems to have been fixed in the most recent version 1.7:

driver direwolf $ mkdir build
driver direwolf $ cd build/
driver build $ cmake ..
-- The C compiler identification is GNU 12.3.0
-- The CXX compiler identification is GNU 12.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /nix/store/zlzz2z48s7ry0hkl55xiqp5a73b4mzrg-gcc-wrapper-12.3.0/bin/gcc - 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: /nix/store/zlzz2z48s7ry0hkl55xiqp5a73b4mzrg-gcc-wrapper-12.3.0/bin/g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Git: /run/current-system/sw/bin/git (found version "2.40.1")
-- Dire Wolf Version: 1.7.0-de293a1
-- Build type set to: Release
CMake system: Linux
-- Target architecture: x86_64
-- Use SSE SIMD instructions
-- Looking for strlcpy
-- Looking for strlcpy - found
-- Looking for strlcat
-- Looking for strlcat - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Found hamlib: /nix/store/dpj7dnbkqljwg3gmcqzwrv1x966bkqb1-hamlib-4.5.5/lib/libhamlib.so
-- Found ALSA: /nix/store/4vpj5g0cprbybn6k29rzf1108az9a1ii-alsa-lib-1.2.9/lib/libasound.so (found version "1.2.9")
-- Found udev: /nix/store/vapnrxrw3b21c7ji61bmnbzl2cj1vl96-systemd-254.3/lib/libudev.so
-- Could NOT find Avahi (missing: AVAHI_COMMON_FOUND AVAHI_CLIENT_FOUND)
-- Configuring done (0.7s)
-- Generating done (0.0s)
-- Build files have been written to: /home/rherna/workspace/direwolf/build
driver build $ make
[  0%] Building C object external/geotranz/CMakeFiles/geotranz.dir/error_string.c.o
[  1%] Building C object external/geotranz/CMakeFiles/geotranz.dir/mgrs.c.o
[  1%] Building C object external/geotranz/CMakeFiles/geotranz.dir/polarst.c.o
[  2%] Building C object external/geotranz/CMakeFiles/geotranz.dir/tranmerc.c.o
[  2%] Building C object external/geotranz/CMakeFiles/geotranz.dir/ups.c.o
[  3%] Building C object external/geotranz/CMakeFiles/geotranz.dir/usng.c.o
[  3%] Building C object external/geotranz/CMakeFiles/geotranz.dir/utm.c.o
[  4%] Linking C static library libgeotranz.a
[  4%] Built target geotranz
[  5%] Building C object src/CMakeFiles/direwolf.dir/direwolf.c.o
[  5%] Building C object src/CMakeFiles/direwolf.dir/ais.c.o
[  6%] Building C object src/CMakeFiles/direwolf.dir/aprs_tt.c.o
[  6%] Building C object src/CMakeFiles/direwolf.dir/audio_stats.c.o
[  7%] Building C object src/CMakeFiles/direwolf.dir/ax25_link.c.o
/home/rherna/workspace/direwolf/src/ax25_link.c: In function ‘dl_connect_request’:
/home/rherna/workspace/direwolf/src/ax25_link.c:975:13: warning: ‘get_link_handle’ accessing 120 bytes in a region of size 12 [-Wstringop-overflow=]
  975 |         S = get_link_handle (E->addrs, E->num_addr, E->chan, E->client, ok_to_create);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/rherna/workspace/direwolf/src/ax25_link.c:975:13: note: referencing argument 1 of type ‘char[10][12]’
/home/rherna/workspace/direwolf/src/ax25_link.c:745:21: note: in a call to function ‘get_link_handle’
  745 | static ax25_dlsm_t *get_link_handle (char addrs[AX25_MAX_ADDRS][AX25_MAX_ADDR_LEN], int num_addr, int chan, int client, int create)
      |                     ^~~~~~~~~~~~~~~
/home/rherna/workspace/direwolf/src/ax25_link.c: In function ‘dl_disconnect_request’:
/home/rherna/workspace/direwolf/src/ax25_link.c:1067:13: warning: ‘get_link_handle’ accessing 120 bytes in a region of size 12 [-Wstringop-overflow=]
 1067 |         S = get_link_handle (E->addrs, E->num_addr, E->chan, E->client, ok_to_create);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/rherna/workspace/direwolf/src/ax25_link.c:1067:13: note: referencing argument 1 of type ‘char[10][12]’
/home/rherna/workspace/direwolf/src/ax25_link.c:745:21: note: in a call to function ‘get_link_handle’
  745 | static ax25_dlsm_t *get_link_handle (char addrs[AX25_MAX_ADDRS][AX25_MAX_ADDR_LEN], int num_addr, int chan, int client, int create)
      |                     ^~~~~~~~~~~~~~~
In file included from /home/rherna/workspace/direwolf/src/ax25_link.c:180:
/home/rherna/workspace/direwolf/src/ax25_pad2.h:30:39: warning: ‘ax25_u_frame_debug’ accessing 120 bytes in a region of size 12 [-Wstringop-overflow=]
   30 | #define ax25_u_frame(a,n,c,f,p,q,i,l) ax25_u_frame_debug(a,n,c,f,p,q,i,l,__FILE__,__LINE__)
      |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/rherna/workspace/direwolf/src/ax25_link.c:1098:29: note: in expansion of macro ‘ax25_u_frame’
 1098 |             packet_t pp15 = ax25_u_frame (S->addrs, S->num_addr, cr_cmd, frame_type_U_DISC, p1, nopid0, NULL, 0);
      |                             ^~~~~~~~~~~~
/home/rherna/workspace/direwolf/src/ax25_pad2.h:30:39: note: referencing argument 1 of type ‘char[10][12]’
   30 | #define ax25_u_frame(a,n,c,f,p,q,i,l) ax25_u_frame_debug(a,n,c,f,p,q,i,l,__FILE__,__LINE__)
      |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/rherna/workspace/direwolf/src/ax25_link.c:1098:29: note: in expansion of macro ‘ax25_u_frame’
 1098 |             packet_t pp15 = ax25_u_frame (S->addrs, S->num_addr, cr_cmd, frame_type_U_DISC, p1, nopid0, NULL, 0);
      |                             ^~~~~~~~~~~~
/home/rherna/workspace/direwolf/src/ax25_pad2.h:23:10: note: in a call to function ‘ax25_u_frame_debug’
   23 | packet_t ax25_u_frame_debug (char addrs[AX25_MAX_ADDRS][AX25_MAX_ADDR_LEN], int num_addr, cmdres_t cr, ax25_frame_type_t ftype, int pf, int pid, unsigned char *pinfo, int info_len, char *src_file, int src_line);
      |          ^~~~~~~~~~~~~~~~~~
In function ‘t1_expiry’,
    inlined from ‘dl_timer_expiry’ at /home/rherna/workspace/direwolf/src/ax25_link.c:5256:6:
/home/rherna/workspace/direwolf/src/ax25_pad2.h:30:39: warning: ‘ax25_u_frame_debug’ accessing 120 bytes in a region of size 12 [-Wstringop-overflow=]
   30 | #define ax25_u_frame(a,n,c,f,p,q,i,l) ax25_u_frame_debug(a,n,c,f,p,q,i,l,__FILE__,__LINE__)
      |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/rherna/workspace/direwolf/src/ax25_link.c:5441:29: note: in expansion of macro ‘ax25_u_frame’
 5441 |               packet_t pp = ax25_u_frame (S->addrs, S->num_addr, cr, frame_type_U_DM, f, nopid, NULL, 0);
      |                             ^~~~~~~~~~~~
/home/rherna/workspace/direwolf/src/ax25_pad2.h:30:39: note: referencing argument 1 of type ‘char[10][12]’
   30 | #define ax25_u_frame(a,n,c,f,p,q,i,l) ax25_u_frame_debug(a,n,c,f,p,q,i,l,__FILE__,__LINE__)
      |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/rherna/workspace/direwolf/src/ax25_link.c:5441:29: note: in expansion of macro ‘ax25_u_frame’
 5441 |               packet_t pp = ax25_u_frame (S->addrs, S->num_addr, cr, frame_type_U_DM, f, nopid, NULL, 0);
      |                             ^~~~~~~~~~~~
/home/rherna/workspace/direwolf/src/ax25_pad2.h: In function ‘dl_timer_expiry’:
/home/rherna/workspace/direwolf/src/ax25_pad2.h:23:10: note: in a call to function ‘ax25_u_frame_debug’
   23 | packet_t ax25_u_frame_debug (char addrs[AX25_MAX_ADDRS][AX25_MAX_ADDR_LEN], int num_addr, cmdres_t cr, ax25_frame_type_t ftype, int pf, int pid, unsigned char *pinfo, int info_len, char *src_file, int src_line);
      |          ^~~~~~~~~~~~~~~~~~
[  7%] Building C object src/CMakeFiles/direwolf.dir/ax25_pad.c.o
[  8%] Building C object src/CMakeFiles/direwolf.dir/ax25_pad2.c.o
[  8%] Building C object src/CMakeFiles/direwolf.dir/beacon.c.o
[  9%] Building C object src/CMakeFiles/direwolf.dir/config.c.o
[  9%] Building C object src/CMakeFiles/direwolf.dir/decode_aprs.c.o
[ 10%] Building C object src/CMakeFiles/direwolf.dir/dedupe.c.o
[ 10%] Building C object src/CMakeFiles/direwolf.dir/demod_9600.c.o
[ 11%] Building C object src/CMakeFiles/direwolf.dir/demod_afsk.c.o
[ 11%] Building C object src/CMakeFiles/direwolf.dir/demod_psk.c.o
[ 12%] Building C object src/CMakeFiles/direwolf.dir/demod.c.o
[ 12%] Building C object src/CMakeFiles/direwolf.dir/digipeater.c.o
[ 13%] Building C object src/CMakeFiles/direwolf.dir/cdigipeater.c.o
[ 13%] Building C object src/CMakeFiles/direwolf.dir/dlq.c.o
[ 14%] Building C object src/CMakeFiles/direwolf.dir/dsp.c.o
[ 14%] Building C object src/CMakeFiles/direwolf.dir/dtime_now.c.o
[ 15%] Building C object src/CMakeFiles/direwolf.dir/dtmf.c.o
[ 15%] Building C object src/CMakeFiles/direwolf.dir/dwgps.c.o
[ 16%] Building C object src/CMakeFiles/direwolf.dir/dwsock.c.o
[ 16%] Building C object src/CMakeFiles/direwolf.dir/encode_aprs.c.o
[ 17%] Building C object src/CMakeFiles/direwolf.dir/fcs_calc.c.o
[ 17%] Building C object src/CMakeFiles/direwolf.dir/fx25_encode.c.o
[ 18%] Building C object src/CMakeFiles/direwolf.dir/fx25_extract.c.o
[ 18%] Building C object src/CMakeFiles/direwolf.dir/fx25_init.c.o
[ 19%] Building C object src/CMakeFiles/direwolf.dir/fx25_rec.c.o
[ 19%] Building C object src/CMakeFiles/direwolf.dir/fx25_send.c.o
[ 20%] Building C object src/CMakeFiles/direwolf.dir/fx25_auto.c.o
[ 20%] Building C object src/CMakeFiles/direwolf.dir/gen_tone.c.o
[ 21%] Building C object src/CMakeFiles/direwolf.dir/hdlc_rec.c.o
[ 21%] Building C object src/CMakeFiles/direwolf.dir/hdlc_rec2.c.o
[ 22%] Building C object src/CMakeFiles/direwolf.dir/hdlc_send.c.o
[ 22%] Building C object src/CMakeFiles/direwolf.dir/igate.c.o
[ 23%] Building C object src/CMakeFiles/direwolf.dir/il2p_codec.c.o
[ 23%] Building C object src/CMakeFiles/direwolf.dir/il2p_scramble.c.o
[ 24%] Building C object src/CMakeFiles/direwolf.dir/il2p_rec.c.o
[ 24%] Building C object src/CMakeFiles/direwolf.dir/il2p_payload.c.o
[ 25%] Building C object src/CMakeFiles/direwolf.dir/il2p_init.c.o
[ 25%] Building C object src/CMakeFiles/direwolf.dir/il2p_header.c.o
[ 26%] Building C object src/CMakeFiles/direwolf.dir/il2p_send.c.o
[ 26%] Building C object src/CMakeFiles/direwolf.dir/kiss_frame.c.o
[ 27%] Building C object src/CMakeFiles/direwolf.dir/kiss.c.o
[ 27%] Building C object src/CMakeFiles/direwolf.dir/kissserial.c.o
[ 28%] Building C object src/CMakeFiles/direwolf.dir/kissnet.c.o
[ 28%] Building C object src/CMakeFiles/direwolf.dir/latlong.c.o
[ 29%] Building C object src/CMakeFiles/direwolf.dir/log.c.o
[ 29%] Building C object src/CMakeFiles/direwolf.dir/morse.c.o
[ 30%] Building C object src/CMakeFiles/direwolf.dir/multi_modem.c.o
[ 30%] Building C object src/CMakeFiles/direwolf.dir/waypoint.c.o
[ 31%] Building C object src/CMakeFiles/direwolf.dir/serial_port.c.o
[ 31%] Building C object src/CMakeFiles/direwolf.dir/pfilter.c.o
[ 32%] Building C object src/CMakeFiles/direwolf.dir/ptt.c.o
[ 32%] Building C object src/CMakeFiles/direwolf.dir/recv.c.o
[ 33%] Building C object src/CMakeFiles/direwolf.dir/rrbb.c.o
[ 33%] Building C object src/CMakeFiles/direwolf.dir/server.c.o
[ 34%] Building C object src/CMakeFiles/direwolf.dir/symbols.c.o
[ 34%] Building C object src/CMakeFiles/direwolf.dir/telemetry.c.o
[ 35%] Building C object src/CMakeFiles/direwolf.dir/textcolor.c.o
[ 35%] Building C object src/CMakeFiles/direwolf.dir/tq.c.o
[ 36%] Building C object src/CMakeFiles/direwolf.dir/tt_text.c.o
[ 36%] Building C object src/CMakeFiles/direwolf.dir/tt_user.c.o
[ 37%] Building C object src/CMakeFiles/direwolf.dir/xid.c.o
[ 37%] Building C object src/CMakeFiles/direwolf.dir/xmit.c.o
[ 38%] Building C object src/CMakeFiles/direwolf.dir/dwgpsnmea.c.o
[ 38%] Building C object src/CMakeFiles/direwolf.dir/dwgpsd.c.o
[ 39%] Building C object src/CMakeFiles/direwolf.dir/mheard.c.o
[ 39%] Building C object src/CMakeFiles/direwolf.dir/audio.c.o
[ 40%] Building C object src/CMakeFiles/direwolf.dir/cm108.c.o
[ 40%] Linking C executable direwolf
[ 40%] Built target direwolf
[ 41%] Building C object src/CMakeFiles/decode_aprs.dir/decode_aprs.c.o
[ 41%] Building C object src/CMakeFiles/decode_aprs.dir/ais.c.o
[ 42%] Building C object src/CMakeFiles/decode_aprs.dir/kiss_frame.c.o
[ 42%] Building C object src/CMakeFiles/decode_aprs.dir/ax25_pad.c.o
[ 43%] Building C object src/CMakeFiles/decode_aprs.dir/dwgpsnmea.c.o
[ 43%] Building C object src/CMakeFiles/decode_aprs.dir/dwgps.c.o
[ 44%] Building C object src/CMakeFiles/decode_aprs.dir/dwgpsd.c.o
[ 44%] Building C object src/CMakeFiles/decode_aprs.dir/serial_port.c.o
[ 45%] Building C object src/CMakeFiles/decode_aprs.dir/symbols.c.o
[ 45%] Building C object src/CMakeFiles/decode_aprs.dir/textcolor.c.o
[ 46%] Building C object src/CMakeFiles/decode_aprs.dir/fcs_calc.c.o
[ 46%] Building C object src/CMakeFiles/decode_aprs.dir/latlong.c.o
[ 47%] Building C object src/CMakeFiles/decode_aprs.dir/log.c.o
[ 47%] Building C object src/CMakeFiles/decode_aprs.dir/telemetry.c.o
[ 48%] Building C object src/CMakeFiles/decode_aprs.dir/tt_text.c.o
[ 48%] Linking C executable decode_aprs
[ 48%] Built target decode_aprs
[ 49%] Building C object src/CMakeFiles/text2tt.dir/tt_text.c.o
[ 49%] Linking C executable text2tt
[ 49%] Built target text2tt
[ 49%] Building C object src/CMakeFiles/tt2text.dir/tt_text.c.o
[ 50%] Linking C executable tt2text
[ 50%] Built target tt2text
[ 51%] Building C object src/CMakeFiles/ll2utm.dir/ll2utm.c.o
[ 51%] Building C object src/CMakeFiles/ll2utm.dir/textcolor.c.o
[ 52%] Linking C executable ll2utm
[ 52%] Built target ll2utm
[ 53%] Building C object src/CMakeFiles/utm2ll.dir/utm2ll.c.o
[ 53%] Building C object src/CMakeFiles/utm2ll.dir/textcolor.c.o
[ 54%] Linking C executable utm2ll
[ 54%] Built target utm2ll
[ 54%] Building C object src/CMakeFiles/log2gpx.dir/log2gpx.c.o
[ 55%] Building C object src/CMakeFiles/log2gpx.dir/textcolor.c.o
[ 55%] Linking C executable log2gpx
[ 55%] Built target log2gpx
[ 56%] Building C object src/CMakeFiles/gen_packets.dir/gen_packets.c.o
[ 56%] Building C object src/CMakeFiles/gen_packets.dir/ax25_pad.c.o
[ 57%] Building C object src/CMakeFiles/gen_packets.dir/ax25_pad2.c.o
[ 57%] Building C object src/CMakeFiles/gen_packets.dir/fx25_encode.c.o
[ 58%] Building C object src/CMakeFiles/gen_packets.dir/fx25_extract.c.o
[ 58%] Building C object src/CMakeFiles/gen_packets.dir/fx25_init.c.o
[ 59%] Building C object src/CMakeFiles/gen_packets.dir/fx25_send.c.o
[ 59%] Building C object src/CMakeFiles/gen_packets.dir/hdlc_send.c.o
[ 60%] Building C object src/CMakeFiles/gen_packets.dir/fcs_calc.c.o
[ 60%] Building C object src/CMakeFiles/gen_packets.dir/gen_tone.c.o
[ 61%] Building C object src/CMakeFiles/gen_packets.dir/il2p_codec.c.o
[ 61%] Building C object src/CMakeFiles/gen_packets.dir/il2p_scramble.c.o
[ 62%] Building C object src/CMakeFiles/gen_packets.dir/il2p_payload.c.o
[ 62%] Building C object src/CMakeFiles/gen_packets.dir/il2p_init.c.o
[ 63%] Building C object src/CMakeFiles/gen_packets.dir/il2p_header.c.o
[ 63%] Building C object src/CMakeFiles/gen_packets.dir/il2p_send.c.o
[ 64%] Building C object src/CMakeFiles/gen_packets.dir/morse.c.o
[ 64%] Building C object src/CMakeFiles/gen_packets.dir/dtmf.c.o
[ 65%] Building C object src/CMakeFiles/gen_packets.dir/textcolor.c.o
[ 65%] Building C object src/CMakeFiles/gen_packets.dir/dsp.c.o
[ 66%] Linking C executable gen_packets
[ 66%] Built target gen_packets
[ 66%] Building C object src/CMakeFiles/atest.dir/atest.c.o
[ 67%] Building C object src/CMakeFiles/atest.dir/ais.c.o
[ 67%] Building C object src/CMakeFiles/atest.dir/demod.c.o
[ 68%] Building C object src/CMakeFiles/atest.dir/demod_afsk.c.o
[ 68%] Building C object src/CMakeFiles/atest.dir/demod_psk.c.o
[ 69%] Building C object src/CMakeFiles/atest.dir/demod_9600.c.o
[ 69%] Building C object src/CMakeFiles/atest.dir/dsp.c.o
[ 70%] Building C object src/CMakeFiles/atest.dir/fx25_extract.c.o
[ 70%] Building C object src/CMakeFiles/atest.dir/fx25_encode.c.o
[ 71%] Building C object src/CMakeFiles/atest.dir/fx25_init.c.o
[ 71%] Building C object src/CMakeFiles/atest.dir/fx25_rec.c.o
[ 72%] Building C object src/CMakeFiles/atest.dir/hdlc_rec.c.o
[ 72%] Building C object src/CMakeFiles/atest.dir/hdlc_rec2.c.o
[ 73%] Building C object src/CMakeFiles/atest.dir/il2p_codec.c.o
[ 73%] Building C object src/CMakeFiles/atest.dir/il2p_scramble.c.o
[ 74%] Building C object src/CMakeFiles/atest.dir/il2p_rec.c.o
[ 74%] Building C object src/CMakeFiles/atest.dir/il2p_payload.c.o
[ 75%] Building C object src/CMakeFiles/atest.dir/il2p_init.c.o
[ 75%] Building C object src/CMakeFiles/atest.dir/il2p_header.c.o
[ 76%] Building C object src/CMakeFiles/atest.dir/multi_modem.c.o
[ 76%] Building C object src/CMakeFiles/atest.dir/rrbb.c.o
[ 77%] Building C object src/CMakeFiles/atest.dir/fcs_calc.c.o
[ 77%] Building C object src/CMakeFiles/atest.dir/ax25_pad.c.o
[ 78%] Building C object src/CMakeFiles/atest.dir/ax25_pad2.c.o
[ 78%] Building C object src/CMakeFiles/atest.dir/decode_aprs.c.o
[ 79%] Building C object src/CMakeFiles/atest.dir/dwgpsnmea.c.o
[ 79%] Building C object src/CMakeFiles/atest.dir/dwgps.c.o
[ 80%] Building C object src/CMakeFiles/atest.dir/dwgpsd.c.o
[ 80%] Building C object src/CMakeFiles/atest.dir/serial_port.c.o
[ 81%] Building C object src/CMakeFiles/atest.dir/telemetry.c.o
[ 81%] Building C object src/CMakeFiles/atest.dir/dtime_now.c.o
[ 82%] Building C object src/CMakeFiles/atest.dir/latlong.c.o
[ 82%] Building C object src/CMakeFiles/atest.dir/symbols.c.o
[ 83%] Building C object src/CMakeFiles/atest.dir/tt_text.c.o
[ 83%] Building C object src/CMakeFiles/atest.dir/textcolor.c.o
[ 84%] Linking C executable atest
[ 84%] Built target atest
[ 84%] Building C object src/CMakeFiles/aclients.dir/aclients.c.o
[ 84%] Building C object src/CMakeFiles/aclients.dir/ax25_pad.c.o
[ 85%] Building C object src/CMakeFiles/aclients.dir/fcs_calc.c.o
[ 85%] Building C object src/CMakeFiles/aclients.dir/textcolor.c.o
[ 86%] Linking C executable aclients
[ 86%] Built target aclients
[ 86%] Building C object src/CMakeFiles/kissutil.dir/kissutil.c.o
[ 87%] Building C object src/CMakeFiles/kissutil.dir/kiss_frame.c.o
[ 87%] Building C object src/CMakeFiles/kissutil.dir/ax25_pad.c.o
[ 88%] Building C object src/CMakeFiles/kissutil.dir/fcs_calc.c.o
[ 88%] Building C object src/CMakeFiles/kissutil.dir/textcolor.c.o
[ 89%] Building C object src/CMakeFiles/kissutil.dir/serial_port.c.o
[ 89%] Building C object src/CMakeFiles/kissutil.dir/dtime_now.c.o
[ 90%] Building C object src/CMakeFiles/kissutil.dir/dwsock.c.o
[ 90%] Linking C executable kissutil
[ 90%] Built target kissutil
[ 91%] Building C object src/CMakeFiles/tnctest.dir/tnctest.c.o
/home/rherna/workspace/direwolf/src/tnctest.c: In function ‘main’:
/home/rherna/workspace/direwolf/src/tnctest.c:1250:68: warning: ‘%s’ directive output may be truncated writing up to 11 bytes into a region of size 10 [-Wformat-truncation=]
 1250 |           snprintf (cmd.hdr.call_from, sizeof(cmd.hdr.call_from), "%s", tnc_address[from]);
      |                                                                    ^~   ~~~~~~~~~~~~~~~~~
In file included from /nix/store/x8lqlydsxbrwvf6p7v18gws8kn1xl37f-glibc-2.38-23-dev/include/stdio.h:964,
                 from /home/rherna/workspace/direwolf/src/tnctest.c:74:
In function ‘snprintf’,
    inlined from ‘tnc_send_data’ at /home/rherna/workspace/direwolf/src/tnctest.c:1250:4,
    inlined from ‘main’ at /home/rherna/workspace/direwolf/src/tnctest.c:453:6:
/nix/store/x8lqlydsxbrwvf6p7v18gws8kn1xl37f-glibc-2.38-23-dev/include/bits/stdio2.h:54:10: note: ‘__builtin_snprintf’ output between 1 and 12 bytes into a destination of size 10
   54 |   return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   55 |                                    __glibc_objsize (__s), __fmt,
      |                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   56 |                                    __va_arg_pack ());
      |                                    ~~~~~~~~~~~~~~~~~
/home/rherna/workspace/direwolf/src/tnctest.c: In function ‘main’:
/home/rherna/workspace/direwolf/src/tnctest.c:1251:64: warning: ‘%s’ directive output may be truncated writing up to 11 bytes into a region of size 10 [-Wformat-truncation=]
 1251 |           snprintf (cmd.hdr.call_to, sizeof(cmd.hdr.call_to), "%s", tnc_address[to]);
      |                                                                ^~   ~~~~~~~~~~~~~~~
In function ‘snprintf’,
    inlined from ‘tnc_send_data’ at /home/rherna/workspace/direwolf/src/tnctest.c:1251:4,
    inlined from ‘main’ at /home/rherna/workspace/direwolf/src/tnctest.c:453:6:
/nix/store/x8lqlydsxbrwvf6p7v18gws8kn1xl37f-glibc-2.38-23-dev/include/bits/stdio2.h:54:10: note: ‘__builtin_snprintf’ output between 1 and 12 bytes into a destination of size 10
   54 |   return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   55 |                                    __glibc_objsize (__s), __fmt,
      |                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   56 |                                    __va_arg_pack ());
      |                                    ~~~~~~~~~~~~~~~~~
[ 91%] Building C object src/CMakeFiles/tnctest.dir/textcolor.c.o
[ 92%] Building C object src/CMakeFiles/tnctest.dir/dtime_now.c.o
[ 92%] Building C object src/CMakeFiles/tnctest.dir/serial_port.c.o
[ 93%] Linking C executable tnctest
[ 93%] Built target tnctest
[ 93%] Building C object src/CMakeFiles/cm108.dir/cm108.c.o
[ 94%] Building C object src/CMakeFiles/cm108.dir/textcolor.c.o
[ 94%] Linking C executable cm108
[ 94%] Built target cm108
[ 94%] Building C object src/CMakeFiles/ttcalc.dir/ttcalc.c.o
[ 95%] Building C object src/CMakeFiles/ttcalc.dir/ax25_pad.c.o
[ 95%] Building C object src/CMakeFiles/ttcalc.dir/fcs_calc.c.o
[ 96%] Building C object src/CMakeFiles/ttcalc.dir/textcolor.c.o
[ 96%] Linking C executable ttcalc
[ 96%] Built target ttcalc
[ 96%] Building C object src/CMakeFiles/appserver.dir/appserver.c.o
[ 97%] Building C object src/CMakeFiles/appserver.dir/agwlib.c.o
[ 97%] Building C object src/CMakeFiles/appserver.dir/dwsock.c.o
[ 98%] Building C object src/CMakeFiles/appserver.dir/dtime_now.c.o
[ 98%] Building C object src/CMakeFiles/appserver.dir/ax25_pad.c.o
[ 99%] Building C object src/CMakeFiles/appserver.dir/fcs_calc.c.o
[ 99%] Building C object src/CMakeFiles/appserver.dir/textcolor.c.o
[100%] Linking C executable appserver
[100%] Built target appserver
sarcasticadmin commented 8 months ago

@wb2osz This longer seems like an issue for me

wb2osz commented 8 months ago

Thank you for confirming that direwolf release 1.7 seems to be OK with glibc 2.38 on NixOS. I'm leaving this open until I can do some of my own testing.

adrians commented 8 months ago

I'm also confirming that release 1.7 works with glibc 2.38 on poky (yocto build system).