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

Linux glibc 2.38 implements strlcat/strlcpy #489

Open
adrians opened this issue Sep 20, 2023 · 7 comments
Open

Linux glibc 2.38 implements strlcat/strlcpy #489

adrians opened this issue Sep 20, 2023 · 7 comments

Comments

@adrians
Copy link

adrians commented Sep 20, 2023

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
Copy link

sarcasticadmin commented Oct 29, 2023

nixpkgs build of direwolf ran into this as well and fixed it with a patch similar: NixOS/nixpkgs@d00a220

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

@wb2osz
Copy link
Owner

wb2osz commented Oct 29, 2023

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
Copy link
Owner

wb2osz commented Oct 29, 2023

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
Copy link

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 NixOS/nixpkgs@d00a220

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
Copy link

@wb2osz This longer seems like an issue for me

@wb2osz
Copy link
Owner

wb2osz commented Nov 6, 2023

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
Copy link
Author

adrians commented Nov 7, 2023

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

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

No branches or pull requests

3 participants