cisco / ChezScheme

Chez Scheme
Apache License 2.0
6.97k stars 986 forks source link

Compile Error: ignoring return value of ‘write’ #11

Closed adamsmd closed 8 years ago

adamsmd commented 8 years ago

I get the error ignoring return value of ‘write’, declared with attribute warn_unused_result when compiling Chez Scheme.

My system information is as follows:

 $ uname -a
Linux spiritus 4.4.0-21-generic #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
$ gcc --version
gcc (Ubuntu 5.3.1-14ubuntu2) 5.3.1 20160413
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

The compilation process produces the following:

$ ./configure --threads
Submodule 'nanopass' (https://github.com/nanopass/nanopass-framework-scheme.git) registered for path 'nanopass'
Submodule 'zlib' (https://github.com/madler/zlib.git) registered for path 'zlib'
Cloning into 'nanopass'...
remote: Counting objects: 607, done.
remote: Total 607 (delta 0), reused 0 (delta 0), pack-reused 607
Receiving objects: 100% (607/607), 26.69 MiB | 4.74 MiB/s, done.
Resolving deltas: 100% (318/318), done.
Checking connectivity... done.
Submodule path 'nanopass': checked out '221eecb965d9dfacccd97d1cb73f2a31c4119d3a'
Cloning into 'zlib'...
remote: Counting objects: 4370, done.
remote: Total 4370 (delta 0), reused 0 (delta 0), pack-reused 4370
Receiving objects: 100% (4370/4370), 2.43 MiB | 1.28 MiB/s, done.
Resolving deltas: 100% (2979/2979), done.
Checking connectivity... done.
Submodule path 'zlib': checked out '50893291621658f355bc5b4d450a8d06a563053d'
$ make
(cd ta6le && make build)
(cd c ; make)
ln -s ../../c/statics.c statics.c
ln -s ../../c/system.h system.h
ln -s ../../c/types.h types.h
ln -s ../../c/version.h version.h
ln -s ../../c/externs.h externs.h
ln -s ../../c/globals.h globals.h
ln -s ../../c/segment.h segment.h
ln -s ../../c/thread.h thread.h
ln -s ../../c/sort.h sort.h
gcc -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -O2 -D_REENTRANT -pthread -c -DX86_64 -I../boot/ta6le -I../zlib statics.c
ln -s ../../c/segment.c segment.c
gcc -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -O2 -D_REENTRANT -pthread -c -DX86_64 -I../boot/ta6le -I../zlib segment.c
ln -s ../../c/alloc.c alloc.c
gcc -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -O2 -D_REENTRANT -pthread -c -DX86_64 -I../boot/ta6le -I../zlib alloc.c
ln -s ../../c/symbol.c symbol.c
gcc -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -O2 -D_REENTRANT -pthread -c -DX86_64 -I../boot/ta6le -I../zlib symbol.c
ln -s ../../c/intern.c intern.c
gcc -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -O2 -D_REENTRANT -pthread -c -DX86_64 -I../boot/ta6le -I../zlib intern.c
ln -s ../../c/gcwrapper.c gcwrapper.c
gcc -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -O2 -D_REENTRANT -pthread -c -DX86_64 -I../boot/ta6le -I../zlib gcwrapper.c
ln -s ../../c/gc-ocd.c gc-ocd.c
ln -s ../../c/gc.c gc.c
gcc -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -O2 -D_REENTRANT -pthread -c -DX86_64 -I../boot/ta6le -I../zlib gc-ocd.c
ln -s ../../c/gc-oce.c gc-oce.c
gcc -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -O2 -D_REENTRANT -pthread -c -DX86_64 -I../boot/ta6le -I../zlib gc-oce.c
ln -s ../../c/number.c number.c
gcc -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -O2 -D_REENTRANT -pthread -c -DX86_64 -I../boot/ta6le -I../zlib number.c
ln -s ../../c/schsig.c schsig.c
gcc -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -O2 -D_REENTRANT -pthread -c -DX86_64 -I../boot/ta6le -I../zlib schsig.c
ln -s ../../c/io.c io.c
gcc -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -O2 -D_REENTRANT -pthread -c -DX86_64 -I../boot/ta6le -I../zlib io.c
ln -s ../../c/new-io.c new-io.c
gcc -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -O2 -D_REENTRANT -pthread -c -DX86_64 -I../boot/ta6le -I../zlib new-io.c
ln -s ../../c/print.c print.c
gcc -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -O2 -D_REENTRANT -pthread -c -DX86_64 -I../boot/ta6le -I../zlib print.c
ln -s ../../c/fasl.c fasl.c
gcc -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -O2 -D_REENTRANT -pthread -c -DX86_64 -I../boot/ta6le -I../zlib fasl.c
ln -s ../../c/stats.c stats.c
gcc -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -O2 -D_REENTRANT -pthread -c -DX86_64 -I../boot/ta6le -I../zlib stats.c
ln -s ../../c/foreign.c foreign.c
gcc -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -O2 -D_REENTRANT -pthread -c -DX86_64 -I../boot/ta6le -I../zlib foreign.c
ln -s ../../c/prim.c prim.c
gcc -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -O2 -D_REENTRANT -pthread -c -DX86_64 -I../boot/ta6le -I../zlib prim.c
ln -s ../../c/prim5.c prim5.c
gcc -m64 -msse2 -Wpointer-arith -Wall -Wextra -Werror -O2 -D_REENTRANT -pthread -c -DX86_64 -I../boot/ta6le -I../zlib prim5.c
In file included from system.h:23:0,
                 from prim5.c:17:
prim5.c: In function ‘s_backdoor_thread’:
version.h:424:16: error: ignoring return value of ‘write’, declared with attribute warn_unused_result [-Werror=unused-result]
 # define WRITE write
                ^
prim5.c:1325:43: note: in expansion of macro ‘WRITE’
 #define display(s) { const char *S = (s); WRITE(1, S, (unsigned int)strlen(S)); }
                                           ^
prim5.c:1342:3: note: in expansion of macro ‘display’
   display("creating thread\n");
   ^
prim5.c: In function ‘s_backdoor_thread_start’:
version.h:424:16: error: ignoring return value of ‘write’, declared with attribute warn_unused_result [-Werror=unused-result]
 # define WRITE write
                ^
prim5.c:1325:43: note: in expansion of macro ‘WRITE’
 #define display(s) { const char *S = (s); WRITE(1, S, (unsigned int)strlen(S)); }
                                           ^
prim5.c:1327:3: note: in expansion of macro ‘display’
   display("backdoor thread started\n")
   ^
version.h:424:16: error: ignoring return value of ‘write’, declared with attribute warn_unused_result [-Werror=unused-result]
 # define WRITE write
                ^
prim5.c:1325:43: note: in expansion of macro ‘WRITE’
 #define display(s) { const char *S = (s); WRITE(1, S, (unsigned int)strlen(S)); }
                                           ^
prim5.c:1329:3: note: in expansion of macro ‘display’
   display("thread activated\n")
   ^
version.h:424:16: error: ignoring return value of ‘write’, declared with attribute warn_unused_result [-Werror=unused-result]
 # define WRITE write
                ^
prim5.c:1325:43: note: in expansion of macro ‘WRITE’
 #define display(s) { const char *S = (s); WRITE(1, S, (unsigned int)strlen(S)); }
                                           ^
prim5.c:1332:3: note: in expansion of macro ‘display’
   display("thread deactivated\n")
   ^
version.h:424:16: error: ignoring return value of ‘write’, declared with attribute warn_unused_result [-Werror=unused-result]
 # define WRITE write
                ^
prim5.c:1325:43: note: in expansion of macro ‘WRITE’
 #define display(s) { const char *S = (s); WRITE(1, S, (unsigned int)strlen(S)); }
                                           ^
prim5.c:1334:3: note: in expansion of macro ‘display’
   display("thread reeactivated\n")
   ^
version.h:424:16: error: ignoring return value of ‘write’, declared with attribute warn_unused_result [-Werror=unused-result]
 # define WRITE write
                ^
prim5.c:1325:43: note: in expansion of macro ‘WRITE’
 #define display(s) { const char *S = (s); WRITE(1, S, (unsigned int)strlen(S)); }
                                           ^
prim5.c:1337:3: note: in expansion of macro ‘display’
   display("thread destroyed\n")
   ^
cc1: all warnings being treated as errors
Makefile:29: recipe for target 'prim5.o' failed
make[2]: *** [prim5.o] Error 1
Makefile:19: recipe for target 'build' failed
make[1]: *** [build] Error 2
Makefile:19: recipe for target 'build' failed
make: *** [build] Error 2
adamsmd commented 8 years ago

It looks like this is a duplicate of #10. (Our submissions must have been submitted around the same time and crossed paths.)

adamsmd commented 8 years ago

Closing in favor of #10 of which this is a duplicate.