From: Gernot Hillier <gernot.hillier@siemens.com>
To: xenomai@xenomai.org
Subject: Re: [Xenomai] [Xenomai-forge] [PATCH] Silence unused_result warning from write()
Date: Mon, 11 Nov 2013 11:00:48 +0100 [thread overview]
Message-ID: <5280AAD0.4070403@siemens.com> (raw)
In-Reply-To: <208C6975C932E94F86239FEA59CCA6323259C39F@AUSMXMBX02.mrws.biz>
Hi!
Am 11.11.2013 09:36, schrieb dietmar.schindler@manroland-web.com:
>> Von: Jan Kiszka
>> Gesendet: Freitag, 8. November 2013 19:18
>>
>> On 2013-11-08 18:23, Gilles Chanteperdrix wrote:
>>> On 11/08/2013 06:55 AM, Gernot Hillier wrote:
>>>> Am 07.11.2013 19:01, schrieb Gilles Chanteperdrix:
>>>>> On 11/07/2013 10:22 AM, Gernot Hillier wrote:
>>>>>> Some glibc versions mark write() with attribute warn_unused_result (found in
>>>>>> Ubuntu 12.04 / eglibc 2.15 / gcc 4.6.3), so we need to silence this warning,
>>>>>> especially when building with -Werror.
>>>>>
>>>>> Why not casting write result to void, it does not work?
>>>>>
>>>>
>>>> No, it doesn't. For rationale, please see
>>>> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25509.
>>>>
>>> ...
>>>
>>> I believe you still can do:
>>>
>>> rc = write
>>> (void)rc
>>
>> Yep, that's what other projects do as well when there is really no use
>> for the return code.
>>
>>>
>>> The link you sent also indicates that the warning can be disabled with
>>> -Wno-unused-result
>>>
>>> Can you not compile with this option on distributions with this behaviour?
>>
>> Let's fix this in our source code, not in the ./configure command line.
>> I expect the warning to become more frequent with recent compilers
>> and/or distros.
>
> Since this has been recognized as a bug
> http://sourceware.org/bugzilla/show_bug.cgi?id=11959 in glibc and
> fixed, it should become less frequent with recent distros. I think,
> source code shouldn't be cluttered with silly workarounds.
The glibc bug is about fwrite(), not write(). And one argument for removing
__wur in fwrite() was that errors can be checked explicitely with ferror() -
which is not true for write(). _wur is still here:
https://sourceware.org/git/?p=glibc.git;a=blob;f=posix/unistd.h;h=178223d7555702d133a51eaf8deaff7bfc5327aa;hb=HEAD
And even if we would file another bug for removing __wur from write(), I
seriously suspect that this will be accepted quickly and we'll see this
behaviour go away in recent distros anytime soon.
What do you think about this? Looks a bit more concise to me:
diff --git a/lib/cobalt/init.c b/lib/cobalt/init.c
index 101a2bd..11c2a3a 100644
--- a/lib/cobalt/init.c
+++ b/lib/cobalt/init.c
@@ -53,7 +53,8 @@ int __rtdm_fd_start = INT_MAX;
static void sigill_handler(int sig)
{
const char m[] = "no Xenomai support in kernel?\n";
- write(2, m, sizeof(m) - 1);
+ ssize_t rc __attribute__ ((unused));
+ rc = write(2, m, sizeof(m) - 1);
exit(EXIT_FAILURE);
}
diff --git a/testsuite/latency/latency.c b/testsuite/latency/latency.c
index 7c5099b..32e59b5 100644
--- a/testsuite/latency/latency.c
+++ b/testsuite/latency/latency.c
@@ -507,7 +507,7 @@ static void sigdebug(int sig, siginfo_t *si, void *context)
case SIGDEBUG_WATCHDOG:
n = snprintf(buffer, sizeof(buffer), "%s\n",
reason_str[reason]);
- write(STDERR_FILENO, buffer, n);
+ n = write(STDERR_FILENO, buffer, n);
exit(EXIT_FAILURE);
}
--
Gernot
Siemens AG, Corporate Technology, CT RTC ITP SES-DE
Corporate Competence Center Embedded Linux
next prev parent reply other threads:[~2013-11-11 10:00 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-07 9:22 [Xenomai] [Xenomai-forge] [PATCH] Silence unused_result warning from write() Gernot Hillier
2013-11-07 18:01 ` Gilles Chanteperdrix
2013-11-08 5:55 ` Gernot Hillier
2013-11-08 17:23 ` Gilles Chanteperdrix
2013-11-08 18:18 ` Jan Kiszka
2013-11-11 8:36 ` dietmar.schindler
2013-11-11 10:00 ` Gernot Hillier [this message]
2014-01-14 12:28 ` [Xenomai] [Xenomai-forge] [PATCH v2] " Gernot Hillier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5280AAD0.4070403@siemens.com \
--to=gernot.hillier@siemens.com \
--cc=xenomai@xenomai.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.