Ostrzeżenie kompilacji w bibliotece csapp (listy 3-6)

Ostrzeżenie kompilacji w bibliotece csapp (listy 3-6)

Napisane przez: Arkadiusz Kozdra ()
Liczba odpowiedzi: 3

Kompilacja biblioteki skutkuje poniższym ostrzeżeniem, utrudniając kompilację:

zsh-5.6.2% make
gcc -g -Og -Wall -Werror -Iinclude -DLINUX -D_GNU_SOURCE   -c -o libcsapp/safe_printf.o libcsapp/safe_printf.c
libcsapp/safe_printf.c: In function ‘safe_vprintf’:
libcsapp/safe_printf.c:119:3: error: ignoring return value of ‘write’, declared with attribute warn_unused_result [-Werror=unused-result]
   write(fd, line, linelen);
   ^~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
make: *** [<wbudowane>: libcsapp/safe_printf.o] Błąd 1

Czy ten błąd ma prostsze rozwiązanie niż usunięcie safe_printf.c?

W odpowiedzi na Arkadiusz Kozdra

Odp: Ostrzeżenie kompilacji w bibliotece csapp (listy 3-6)

Napisane przez: Krystian Bacławski ()

Na obydwu kompilatorach, którymi dysponuje, podane ostrzeżenie nie jest zgłaszane:

» gcc --version
gcc (Debian 8.3.0-6) 8.3.0
» clang --version
clang version 7.0.1-8 (tags/RELEASE_701/final)

Proszę podać wersje swoich kompilatorów.

Rozwiązanie podane przez TWi jest wystarczające, choć wypadałoby sprawdzić czy write nie zwrócił short count.

W odpowiedzi na Krystian Bacławski

Odp: Ostrzeżenie kompilacji w bibliotece csapp (listy 3-6)

Napisane przez: Arkadiusz Kozdra ()

Moje gcc jest w tej samej wersji, ale domyślna wartość makra _FORTIFY_SOURCE jest niezerowa, gdy kompiluję programy.

% gcc --version
gcc (Gentoo 8.3.0-r1 p1.1) 8.3.0

Z kolei bardzo stara wersja gcc na moim telefonie marudzi, że wśród flag kompilacji nie ma -std=c99. Jej napis wersji:

$ gcc --version
gcc (Linaro GCC 4.8-2014.04) 4.8.3 20140401 (Mer 4.8.3-1)