From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19587 invoked by alias); 15 Mar 2011 23:26:06 -0000 Received: (qmail 19568 invoked by uid 22791); 15 Mar 2011 23:26:04 -0000 X-SWARE-Spam-Status: No, hits=-2.0 required=5.0 tests=AWL,BAYES_00,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from rock.gnat.com (HELO rock.gnat.com) (205.232.38.15) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 15 Mar 2011 23:25:59 +0000 Received: from localhost (localhost.localdomain [127.0.0.1]) by filtered-rock.gnat.com (Postfix) with ESMTP id E7B8F2BAF70; Tue, 15 Mar 2011 19:25:57 -0400 (EDT) Received: from rock.gnat.com ([127.0.0.1]) by localhost (rock.gnat.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id lvq+E92KBsiv; Tue, 15 Mar 2011 19:25:57 -0400 (EDT) Received: from joel.gnat.com (localhost.localdomain [127.0.0.1]) by rock.gnat.com (Postfix) with ESMTP id B73202BAF6F; Tue, 15 Mar 2011 19:25:57 -0400 (EDT) Received: by joel.gnat.com (Postfix, from userid 1000) id C25051459B0; Wed, 16 Mar 2011 03:25:54 +0400 (RET) From: Joel Brobecker To: gdb-patches@sourceware.org Cc: Joel Brobecker Subject: [PATCH] Add 'getthrds' declaration check in configure for AIX Date: Wed, 16 Mar 2011 00:17:00 -0000 Message-Id: <1300231553-27938-1-git-send-email-brobecker@adacore.com> Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2011-03/txt/msg00826.txt.bz2 On newer versions of AIX (6.x and later), this function is actually declared in procinfo.h, thus causing a compilation warning when we re-declare it ourselves. This patch adds a configure check for that function allowing us to declare the function only if the declaration isn't already present in one of procinfo system header. gdb/ChangeLog: PR gdb/12116: * configure.ac: Add getthrds declaration check. * configure, config.in: Regenerate. * aix-thread.c (getthrds): Declare only if not already declared in procinfo.h. More declaration out of get_signaled_thread to global scope. Tested by rebuilding GDB on AIX 5.3. Michael Haubenwallner, who reported the problem, verified that it fixes the problem on AIX 6.1. Will commit in a couple of days if no objection. --- gdb/aix-thread.c | 8 ++++---- gdb/config.in | 4 ++++ gdb/configure | 15 +++++++++++++++ gdb/configure.ac | 4 ++++ 4 files changed, 27 insertions(+), 4 deletions(-) diff --git a/gdb/aix-thread.c b/gdb/aix-thread.c index 37b798a..c5db262 100644 --- a/gdb/aix-thread.c +++ b/gdb/aix-thread.c @@ -58,6 +58,10 @@ #include #include +#if !HAVE_DECL_GETTHRDS +extern int getthrds (pid_t, struct thrdsinfo64 *, int, pthdb_tid_t *, int); +#endif + /* Whether to emit debugging output. */ static int debug_aix_thread; @@ -647,10 +651,6 @@ get_signaled_thread (void) pthdb_tid_t ktid = 0; int result = 0; - /* getthrds(3) isn't prototyped in any AIX 4.3.3 #include file. */ - extern int getthrds (pid_t, struct thrdsinfo64 *, - int, pthdb_tid_t *, int); - while (1) { if (getthrds (PIDGET (inferior_ptid), &thrinf, diff --git a/gdb/config.in b/gdb/config.in index ccceabf..01ba750 100644 --- a/gdb/config.in +++ b/gdb/config.in @@ -118,6 +118,10 @@ */ #undef HAVE_DECL_GETOPT +/* Define to 1 if you have the declaration of `getthrds', and to 0 if you + don't. */ +#undef HAVE_DECL_GETTHRDS + /* Define to 1 if you have the declaration of `malloc', and to 0 if you don't. */ #undef HAVE_DECL_MALLOC diff --git a/gdb/configure b/gdb/configure index 5ee5ce6..ebac1f6 100755 --- a/gdb/configure +++ b/gdb/configure @@ -12819,6 +12819,21 @@ _ACEOF fi +# Older versions of AIX do not provide the declaration for the getthrds +# function (it appears that it was introduced with AIX 6.x). +ac_fn_c_check_decl "$LINENO" "getthrds" "ac_cv_have_decl_getthrds" "#include +" +if test "x$ac_cv_have_decl_getthrds" = x""yes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_GETTHRDS $ac_have_decl +_ACEOF + + if test "$cross_compiling" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether setpgrp takes no argument" >&5 $as_echo_n "checking whether setpgrp takes no argument... " >&6; } diff --git a/gdb/configure.ac b/gdb/configure.ac index d2b75f6..2c708cb 100644 --- a/gdb/configure.ac +++ b/gdb/configure.ac @@ -1069,6 +1069,10 @@ if test -n "$[5]"; then [Define to the type of arg 5 for ptrace.]) fi +# Older versions of AIX do not provide the declaration for the getthrds +# function (it appears that it was introduced with AIX 6.x). +AC_CHECK_DECLS(getthrds, [], [], [[#include ]]) + dnl AC_FUNC_SETPGRP does not work when cross compiling dnl Instead, assume we will have a prototype for setpgrp if cross compiling. if test "$cross_compiling" = no; then -- 1.7.1