From: Daniel Jacobowitz <drow@false.org>
To: Mark Kettenis <mark.kettenis@xs4all.nl>
Cc: binutils@sourceware.org
Subject: Re: Silence compiler warning on
Date: Thu, 04 May 2006 18:39:00 -0000 [thread overview]
Message-ID: <20060504183930.GA6506@nevyn.them.org> (raw)
In-Reply-To: <200604180912.k3I9Cvra015638@elgar.sibelius.xs4all.nl>
On Tue, Apr 18, 2006 at 11:12:57AM +0200, Mark Kettenis wrote:
> Right now, when I compile BFD on HP-UX 10.20, I get the following
> warning (wich is fatal because of -Werror):
>
> /export/jive/kettenis/src/gdb/bfd/bfd.c: In function `_bfd_abort':
> /export/jive/kettenis/src/gdb/bfd/bfd.c:801: warning: `noreturn' function does return
>
> The problem here is that the system headers don't declare _exit() with
> __attribute__((noreturn). Previously we didn't get this warning
> because _bfd_abort() called xexit(), which was declared with
> __attribute__((noreturn)) (and xexit.c was compiled without -Werror).
>
> The attached patch is an attempt to fix this. Ok?
>
>
> Index: ChangeLog
> from Mark Kettenis <kettenis@jive.nl>
>
> * bfd.c (_bfd_abort): Provide prototype for _exit with
> ATTRIBUTE_NORETURN.
I would like this fixed before binutils 2.17. Does something like this
work for you?
--
Daniel Jacobowitz
CodeSourcery
2006-05-04 Daniel Jacobiwtz <dan@codesourcery.com>
* configure.in: Check if _exit with ATTRIBUTE_NORETURN is OK.
* bfd.c (_bfd_abort): Handle USE_EXIT_NORETURN.
* configure, config.in: Regenerated.
Index: configure.in
===================================================================
RCS file: /cvs/src/src/bfd/configure.in,v
retrieving revision 1.206
diff -u -p -r1.206 configure.in
--- configure.in 16 Apr 2006 18:01:02 -0000 1.206
+++ configure.in 4 May 2006 18:37:57 -0000
@@ -159,6 +159,19 @@ AC_CHECK_DECLS(strstr)
AC_CHECK_DECLS(snprintf)
AC_CHECK_DECLS(vsnprintf)
+# At least HP-UX 10.20 declares _exit without noreturn. If we can
+# add the attribute ourselves, we'll do so.
+AC_CACHE_CHECK([if we can redeclare _exit], bfd_cv_exit_noreturn,
+[AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([#include "../include/ansidecl.h"],
+ [[extern void _exit (int) ATTRIBUTE_NORETURN; _exit (0);]])],
+ [bfd_cv_exit_noreturn=yes],
+ [bfd_cv_exit_noreturn=no])])
+if test "$bfd_cv_exit_noreturn" = yes; then
+ AC_DEFINE(USE_EXIT_NORETURN, 1,
+ [Define if redeclaring _exit with noreturn is OK])
+fi
+
# If we are configured native, pick a core file support file.
COREFILE=
COREFLAG=
Index: bfd.c
===================================================================
RCS file: /cvs/src/src/bfd/bfd.c,v
retrieving revision 1.81
diff -u -p -r1.81 bfd.c
--- bfd.c 16 Mar 2006 12:20:15 -0000 1.81
+++ bfd.c 4 May 2006 18:37:57 -0000
@@ -783,6 +783,10 @@ bfd_assert (const char *file, int line)
void
_bfd_abort (const char *file, int line, const char *fn)
{
+#ifdef USE_EXIT_NORETURN
+ /* Make sure the compiler knows _exit doesn't return. */
+ extern void _exit (int) ATTRIBUTE_NORETURN;
+#endif
if (fn != NULL)
(*_bfd_error_handler)
(_("BFD %s internal error, aborting at %s line %d in %s\n"),
next prev parent reply other threads:[~2006-05-04 18:39 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-04-18 9:40 Mark Kettenis
2006-04-18 23:50 ` Ian Lance Taylor
2006-04-19 7:44 ` Mark Kettenis
2006-04-19 8:22 ` Ian Lance Taylor
2006-05-04 18:39 ` Daniel Jacobowitz [this message]
2006-05-05 12:20 ` Mark Kettenis
2006-05-05 13:07 ` Daniel Jacobowitz
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=20060504183930.GA6506@nevyn.them.org \
--to=drow@false.org \
--cc=binutils@sourceware.org \
--cc=mark.kettenis@xs4all.nl \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).