naemon / naemon-core

Networks, Applications and Event Monitor
http://www.naemon.io/
GNU General Public License v2.0
153 stars 63 forks source link

error: ignoring return value of 'asprintf', declared with attribute warn_unused_result #69

Closed olahaye74 closed 8 years ago

olahaye74 commented 10 years ago

Can't build naemon on centos6 x86_64 due to Warnings treated as errors. => return code for asprintf is not handeled. See below the error and the files affected. (As stated on the devel mailing list https://www.monitoring-lists.org/archive/naemon-dev/2014-May/000139.html, better fix the code than remove the -Werror)

gcc -DHAVE_CONFIG_H -I. -I.. -I../naemon/lib -D_GNU_SOURCE -I.. '-DSYSCONFDIR="/etc/naemon"' '-DLOCALSTATEDIR="/var/lib/naemon"' '-DLOGDIR="/var/log/naemon"' '-DLOCKFILE="/var/run/naemon/naemon.pid"' -DPREFIX='"/usr"' -Wall -Werror -fPIC -Wextra -pipe -ggdb3 -Wredundant-decls -Wtrigraphs -Wdeclaration-after-statement -Wshadow -Wstrict-prototypes -Wno-unused-result -Wno-unused-parameter -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -MT naemon-naemon.o -MD -MP -MF .deps/naemon-naemon.Tpo -c -o naemon-naemon.o test -f 'naemon.c' || echo './'naemon.c cc1: warnings being treated as errors naemon.c: In function 'test_path_access': naemon.c:94: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result naemon.c: In function 'nagios_core_worker': naemon.c:148: error: ignoring return value of 'read', declared with attribute warn_unused_result naemon.c: In function 'main': naemon.c:547: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result naemon.c:763: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result At top level: cc1: error: unrecognized command line option "-Wno-unused-result" make[5]: *\ [naemon-naemon.o] Error 1

=> doing make -k in the build directory show that the problem is in the following files: naemon.c:94: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result naemon.c:148: error: ignoring return value of 'read', declared with attribute warn_unused_result naemon.c:547: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result naemon.c:763: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result checks.c:398: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result checks.c:416: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result checks.c:418: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result checks.c:2219: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result checks.c:2246: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result commands.c:279: error: ignoring return value of 'chdir', declared with attribute warn_unused_result commands.c:280: error: ignoring return value of 'chdir', declared with attribute warn_unused_result commands.c:869: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:43: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:104: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:109: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:116: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:121: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:152: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:170: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:185: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:210: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:222: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:236: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:292: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:303: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:314: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:325: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:336: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:347: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:358: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:369: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:380: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:391: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:403: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:412: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:423: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:436: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:466: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:477: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:488: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:504: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:522: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:533: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:544: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:555: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:566: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:577: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:586: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:608: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:626: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:664: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:675: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:693: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:704: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:725: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:735: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:745: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:759: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:768: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:784: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:795: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:806: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:817: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:829: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:839: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:846: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:858: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:868: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:878: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:889: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:908: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:918: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:928: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:938: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:999: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:1010: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:1117: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:1391: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:1402: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result downtime.c:421: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result downtime.c:423: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result flapping.c:225: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result flapping.c:308: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result logging.c:238: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result logging.c:266: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result logging.c:293: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result logging.c:326: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result logging.c:381: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result logging.c:458: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result macros.c:1163: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result macros.c:1164: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result macros.c:1165: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result macros.c:1166: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result macros.c:1167: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result macros.c:1168: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result macros.c:1169: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result macros.c:1170: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result macros.c:1171: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result macros.c:1172: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result macros.c:1173: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result macros.c:1174: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result macros.c:1175: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result macros.c:1176: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result macros.c:1177: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result macros.c:1178: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result macros.c:1661: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result macros.c:2028: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result macros.c:2214: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result macros.c:3093: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result macros.c:3120: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result macros.c:3134: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result macros.c:3147: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result macros.c:3176: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result macros.c:3200: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result nerd.c:346: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result notifications.c:197: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result notifications.c:203: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result notifications.c:745: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result notifications.c:748: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result notifications.c:751: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result notifications.c:754: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result notifications.c:757: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result notifications.c:760: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result notifications.c:763: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result notifications.c:766: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result notifications.c:769: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result notifications.c:1135: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result notifications.c:1141: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result notifications.c:1639: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result notifications.c:1642: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result notifications.c:1645: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result notifications.c:1648: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result notifications.c:1651: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result notifications.c:1654: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result notifications.c:1657: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result notifications.c:1660: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result notifications.c:1663: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result query-handler.c:39: error: ignoring return value of 'write', declared with attribute warn_unused_result sehandlers.c:243: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result sehandlers.c:343: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result sehandlers.c:486: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result sehandlers.c:585: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result utils.c:419: error: ignoring return value of 'write', declared with attribute warn_unused_result utils.c:426: error: ignoring return value of 'write', declared with attribute warn_unused_result utils.c:1590: error: ignoring return value of 'chdir', declared with attribute warn_unused_result utils.c:1592: error: ignoring return value of 'chdir', declared with attribute warn_unused_result utils.c:1679: error: ignoring return value of 'ftruncate', declared with attribute warn_unused_result utils.c:1681: error: ignoring return value of 'write', declared with attribute warn_unused_result utils.c:1860: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result utils.c:2074: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result workers.c:461: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result workers.c:675: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result workers.c:677: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result workers.c:682: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result xodtemplate.c:256: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result xodtemplate.c:274: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result xrddefault.c:94: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result xsddefault.c:106: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result checks.c:398: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result checks.c:416: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result checks.c:418: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result checks.c:2219: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result checks.c:2246: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result commands.c:279: error: ignoring return value of 'chdir', declared with attribute warn_unused_result commands.c:280: error: ignoring return value of 'chdir', declared with attribute warn_unused_result commands.c:869: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:43: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:104: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:109: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:116: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:121: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:152: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:170: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:185: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:210: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:222: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:236: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:292: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:303: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:314: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:325: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:336: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:347: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:358: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:369: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:380: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:391: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:403: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:412: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:423: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:436: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:466: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:477: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:488: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:504: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:522: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:533: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:544: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:555: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:566: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:577: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:586: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:608: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:626: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:664: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:675: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:693: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:704: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:725: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:735: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:745: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:759: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:768: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:784: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:795: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:806: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:817: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:829: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:839: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:846: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:858: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:868: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:878: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:889: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:908: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:918: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:928: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:938: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:999: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:1010: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:1117: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:1391: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result configuration.c:1402: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result

catharsis commented 10 years ago

Ah, yes. I'll see if I can get to this before I go on vacation, it really should be fixed.

@olahaye74 Thanks for creating the issue!

catharsis commented 10 years ago

I believe this issue would be fixed by merging #70, #73, #74, #75 and #76. I don't have access to a CentOS machine at the moment, though so I can't say for sure. I think I've fixed all of the warnings in the bug description.

pengi commented 10 years ago

I can't at the moment reproduce this on the following machine:

% cat /etc/centos-release CentOS release 6.5 (Final)

% uname -a Linux dev02.max.vm 2.6.32-431.20.3.el6.centos.plus.x86_64 #1 SMP Thu Jun 19 23:04:15 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

% gcc --version gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4)

It builds nicely.

My master is at 8b955ba65321fdf32f717ce04eab206ff52eef4d

I have op5 Monitor installed on the same machine though, which means some other packages in some cases. But gcc with libraries should come from centos base...

olahaye74 commented 10 years ago

How do you try to build?

if -Werror is in the command line, then the build fails or you have a bug in your compiler that doesn't honor -Werror correctly when seeing asprintf with no care to the returned value.

I'm building using rpmbuild: wget http://labs.consol.de/naemon/release/v0.8.0/src/naemon-0.8.0.tar.gz rpmbuild -tb naemon-0.8.0.tar.gz

Not handleing asprintf returncode and using -Werror are not compatible.

Commenting out line "AX_CHECK_COMPILE_FLAG([-Werror], AM_CFLAGS+=" -Werror")" in naemon-core/configure.ac and doing autoreconf (and recreating the tarball) fixes the problem for me, but htat's not the propper way to fix things as stated before.

Best regards,

Olivier.

Olivier LAHAYE CEA DRT/LIST/DIR


De : Max Sikström [notifications@github.com] Envoyé : mardi 1 juillet 2014 10:40 À : naemon/naemon-core Cc : LAHAYE Olivier Objet : Re: [naemon-core] error: ignoring return value of 'asprintf', declared with attribute warn_unused_result (#69)

I can't at the moment reproduce this on the following machine:

% cat /etc/centos-release CentOS release 6.5 (Final)

% uname -a Linux dev02.max.vm 2.6.32-431.20.3.el6.centos.plus.x86_64 #1https://github.com/naemon/naemon-core/pull/1 SMP Thu Jun 19 23:04:15 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

% gcc --version gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4)

It builds nicely.

My master is at 8b955bahttps://github.com/naemon/naemon-core/commit/8b955ba65321fdf32f717ce04eab206ff52eef4d

I have op5 Monitor installed on the same machine though, which means some other packages in some cases. But gcc with libraries should come from centos base...

— Reply to this email directly or view it on GitHubhttps://github.com/naemon/naemon-core/issues/69#issuecomment-47631078.

pengi commented 10 years ago

I've built it from the git checkout at master, which didn't include the fixes catharsis mentioned. But -Werror is on by default.

There are 155 commits between v0.8.0 and current:

% git log --oneline v0.8.0..HEAD | wc -l naemon/naemon-core (master ⚡) dev02 155

But I've tried your command with downloading the tarball and running rpmbuild without problems too. The command line to do the build the object file you used in the comment:

gcc -DHAVE_CONFIG_H -I. -I.. -I../naemon/lib -D_GNU_SOURCE -I.. '-DSYSCONFDIR="/etc/naemon"' '-DLOCALSTATEDIR="/var/lib/naemon"' '-DLOGDIR="/var/log/naemon"' '-DLOCKFILE="/var/run/naemon/naemon.pid"' -DPREFIX='"/usr"' -Wall -Werror -fPIC -Wextra -pipe -ggdb3 -Wredundant-decls -Wtrigraphs -Wdeclaration-after-statement -Wshadow -Wstrict-prototypes -Wno-unused-result -Wno-unused-parameter -O2 -g -MT naemon-naemon.o -MD -MP -MF .deps/naemon-naemon.Tpo -c -o naemon-naemon.o test -f 'naemon.c' || echo './'naemon.c

WIth no error output

The command line when building with git (for the same object file):

gcc -DHAVE_CONFIG_H -I. -I.. -I../naemon/lib -D_GNU_SOURCE -I.. -DPREFIX='"/usr/local"' -Wall -Werror -fPIC -Wextra -pipe -ggdb3 -Wredundant-decls -Wtrigraphs -Wdeclaration-after-statement -Wshadow -Wstrict-prototypes -Wno-unused-result -Wno-unused-parameter -Wno-strict-aliasing -g -O2 -MT naemon-naemon.o -MD -MP -MF .deps/naemon-naemon.Tpo -c -o naemon-naemon.o test -f 'naemon.c' || echo './'naemon.c

All compilations is without warnings or erorrs for me.

pengi commented 10 years ago

Btw. I just want to point out that I agree that it is an error not to follow strict C and work towards not having any warnings or errors at all. I'm just confused why I don't get them...

The asprintf error should be fixed by #70 however...

But which version of gcc are you using?

pengi commented 10 years ago

This should still be open a little longer. There were more problems (which I can't reproduce) with other methods too.

ozamosi commented 10 years ago

You've built master on a recent gcc that supports -Wno-unused-result. Ancient gcc doesn't, and therefore autoconf doesn't add the flag and the build errors out.

Try removing that flag from configure.ac and I'm sure you'll be able to reproduce it.

Max Sikström notifications@github.com wrote:

I've built it from the git checkout at master, which didn't include the fixes catharsis mentioned. But -Werror is on by default.

There are 155 commits between v0.8.0 and current:

% git log --oneline v0.8.0..HEAD | wc -l naemon/naemon-core (master ⚡) dev02 155

But I've tried your command with downloading the tarball and running rpmbuild without problems too. The command line to do the build the object file you used in the comment:

gcc -DHAVE_CONFIG_H -I. -I.. -I../naemon/lib -D_GNU_SOURCE -I.. '-DSYSCONFDIR="/etc/naemon"' '-DLOCALSTATEDIR="/var/lib/naemon"' '-DLOGDIR="/var/log/naemon"' '-DLOCKFILE="/var/run/naemon/naemon.pid"' -DPREFIX='"/usr"' -Wall -Werror -fPIC -Wextra -pipe -ggdb3 -Wredundant-decls -Wtrigraphs -Wdeclaration-after-statement -Wshadow -Wstrict-prototypes -Wno-unused-result -Wno-unused-parameter -O2 -g -MT naemon-naemon.o -MD -MP -MF .deps/naemon-naemon.Tpo -c -o naemon-naemon.o test -f 'naemon.c' || echo './'naemon.c

WIth no error output

The command line when building with git (for the same object file):

gcc -DHAVE_CONFIG_H -I. -I.. -I../naemon/lib -D_GNU_SOURCE -I.. -DPREFIX='"/usr/local"' -Wall -Werror -fPIC -Wextra -pipe -ggdb3 -Wredundant-decls -Wtrigraphs -Wdeclaration-after-statement -Wshadow -Wstrict-prototypes -Wno-unused-result -Wno-unused-parameter -Wno-strict-aliasing -g -O2 -MT naemon-naemon.o -MD -MP -MF .deps/naemon-naemon.Tpo -c -o naemon-naemon.o test -f 'naemon.c' || echo './'naemon.c

All compilations is without warnings or erorrs for me.

— Reply to this email directly or view it on GitHub.

catharsis commented 8 years ago

This should no longer be an issue, as far as I'm aware. We're now using the nm_asprintf wrapper wherever we need to asprintf, and that checks the return value and aborts on error.