[opensuse-buildservice] E: cyrus-imapd no-return-in-nonvoid-function auth_krb.c:389
Hi, I'm getting the following buildoutput: ... running 02-check-gcc-output ... testing for serious compiler warnings (using /usr/lib/build/checks-data/check_gcc_output) (using /var/tmp/build-root-openSUSE_Factory-i586/.build.log) I: Program returns random data in a function E: cyrus-imapd no-return-in-nonvoid-function auth_krb.c:389 Which is related to this piece of code: 380 381 struct auth_mech auth_krb = 382 { 383 "krb", /* name */ 384 385 &mycanonifyid, 386 &mymemberof, 387 &mynewstate, 388 &myfreestate, 389 }; Is it possible to prevent the rpmlint error message? If so, what should be added to the code to prevent the error? The error results in a failed build and no packages :( -- Richard -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
On Sunday 16 November 2008 11:50:50 Richard Bos wrote:
Hi,
I'm getting the following buildoutput: ... running 02-check-gcc-output ... testing for serious compiler warnings (using /usr/lib/build/checks-data/check_gcc_output) (using /var/tmp/build-root-openSUSE_Factory-i586/.build.log)
I: Program returns random data in a function E: cyrus-imapd no-return-in-nonvoid-function auth_krb.c:389
Which is related to this piece of code: [...]
Is it possible to prevent the rpmlint error message? If so, what should be added to the code to prevent the error? The error results in a failed build and no packages :( looks like a wrong linenumber, I think it's this one:
openSUSE:Factory/cyrus-imapd/no-return-in-nonvoid-function.dif: --- lib/auth_krb.c 2008/05/07 12:20:53 1.1 +++ lib/auth_krb.c 2008/05/07 12:21:12 @@ -382,6 +382,7 @@ struct auth_state *auth_state __attribute__((unused))) { fatal("Authentication mechanism (krb) not compiled in", EC_CONFIG); + return NULL; } -- with kind regards (mit freundlichem Grinsen), Ruediger Oertel (ro@novell.com,ro@suse.de,bugfinder@t-online.de) ---------------------------------------------------------------------- Linux MacBookRudi 2.6.27.5-2-default #1 SMP 2008-11-11 15:15:33 +0100 x86_64 Key fingerprint = 17DC 6553 86A7 384B 53C5 CA5C 3CE4 F2E7 23F2 B417 SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg) -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Hi, Op Monday 17 November 2008 00:56:51 schreef Ruediger Oertel:
Is it possible to prevent the rpmlint error message? If so, what should be added to the code to prevent the error? The error results in a failed build and no packages :(
looks like a wrong linenumber, I think it's this one:
openSUSE:Factory/cyrus-imapd/no-return-in-nonvoid-function.dif: --- lib/auth_krb.c 2008/05/07 12:20:53 1.1 +++ lib/auth_krb.c 2008/05/07 12:21:12 @@ -382,6 +382,7 @@ struct auth_state *auth_state __attribute__((unused))) { fatal("Authentication mechanism (krb) not compiled in", EC_CONFIG); + return NULL; }
I believe, that I have found the culprit. It is probably caused by the huge cyrus-imapd-2.3.11-autocreate-0.10-0.diff patch that by openSUSE to cyrus-imapd (over 2350 lines!). The patch introduces the following code: --- cyrus-imapd-2.3.13.autocreate/lib/auth_krb.c 2008-11-13 23:23:16.000000000 +0100 +++ cyrus-imapd-2.3.13.void/lib/auth_krb.c 2008-11-17 23:05:00.000000000 +0100 @@ -384,6 +384,7 @@ struct auth_state *auth_state __attribute__((unused))) { fatal("Authentication mechanism (krb) not compiled in", EC_CONFIG); + return NULL; } This code adds several lines to the file lib/auth_krb.c and hence the unexpected line number. When the patches file is checked the line number refers to the above code. The BS is unfortenately blocked for factory, so I can't say for sure, that the patch above it the one that solves the build check error. -- Richard -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Op Tuesday 18 November 2008 00:17:20 schreef Richard Bos:
Hi,
Op Monday 17 November 2008 00:56:51 schreef Ruediger Oertel:
Is it possible to prevent the rpmlint error message? If so, what should be added to the code to prevent the error? The error results in a failed build and no packages :(
looks like a wrong linenumber, I think it's this one:
openSUSE:Factory/cyrus-imapd/no-return-in-nonvoid-function.dif: --- lib/auth_krb.c 2008/05/07 12:20:53 1.1 +++ lib/auth_krb.c 2008/05/07 12:21:12 @@ -382,6 +382,7 @@ struct auth_state *auth_state __attribute__((unused))) { fatal("Authentication mechanism (krb) not compiled in", EC_CONFIG); + return NULL; }
I believe, that I have found the culprit. It is probably caused by the huge cyrus-imapd-2.3.11-autocreate-0.10-0.diff patch that by openSUSE to cyrus-imapd (over 2350 lines!). The patch introduces the following code:
--- cyrus-imapd-2.3.13.autocreate/lib/auth_krb.c 2008-11-13 23:23:16.000000000 +0100 +++ cyrus-imapd-2.3.13.void/lib/auth_krb.c 2008-11-17 23:05:00.000000000 +0100 @@ -384,6 +384,7 @@ struct auth_state *auth_state __attribute__((unused))) { fatal("Authentication mechanism (krb) not compiled in", EC_CONFIG); + return NULL; }
This code adds several lines to the file lib/auth_krb.c and hence the unexpected line number. When the patches file is checked the line number refers to the above code. The BS is unfortenately blocked for factory, so I can't say for sure, that the patch above it the one that solves the build check error.
This is indeed the solution for the problem. -- Richard -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Richard Bos escribió:
The error results in a failed build and no packages :(
Sure it is better to produce no packages than packages that may be broken, in this case function may return random data.. it is "implementation defined" what can possible happend ;-) -- "We have art in order not to die of the truth" - Friedrich Nietzsche Cristian Rodríguez R. Platform/OpenSUSE - Core Services SUSE LINUX Products GmbH Research & Development http://www.opensuse.org/
* Cristian Rodríguez [2008-11-17 14:00]:
Richard Bos escribió:
The error results in a failed build and no packages :(
Sure it is better to produce no packages than packages that may be broken, in this case function may return random data..
I guess fatal() just calls exit(). The checks are not 100 % true and *do* produce false positives. That's one reason why that's a compiler *warning* and not a compiler *error*. Sure, there are gcc specific macros to declare the function to not return, but that does not work if you have error(FATAL, "") when the error() function returns only when FATAL is specified. "Fixing" errors that are no errors to build packages is not fun, and that's why I also vote to make that a rpmlint check that can be ignored. Yes, I had the case I'm now talking about (error(FATAL)) recently in the crash utility, it's not "theoretic". Regards, Bernhard -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
Bernhard Walle escribió:
"Fixing" errors that are no errors to build packages is not fun,
Right.
and that's why I also vote to make that a rpmlint check that can be ignored.
maybe improving the compiler to produce less false positives is a better thing to do ? -- "We have art in order not to die of the truth" - Friedrich Nietzsche Cristian Rodríguez R. Platform/OpenSUSE - Core Services SUSE LINUX Products GmbH Research & Development http://www.opensuse.org/
* Cristian Rodríguez [2008-11-17 14:17]:
Bernhard Walle escribió:
and that's why I also vote to make that a rpmlint check that can be ignored.
maybe improving the compiler to produce less false positives is a better thing to do ?
Go ahead! Regards, Bernhard -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org
participants (4)
-
Bernhard Walle
-
Cristian Rodríguez
-
Richard Bos
-
Ruediger Oertel