From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26374 invoked by alias); 26 Feb 2003 16:52:01 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 26352 invoked from network); 26 Feb 2003 16:52:00 -0000 Received: from unknown (HELO duracef.shout.net) (204.253.184.12) by 172.16.49.205 with SMTP; 26 Feb 2003 16:52:00 -0000 Received: (from mec@localhost) by duracef.shout.net (8.11.6/8.11.6) id h1QGq0R27186 for gdb-patches@sources.redhat.com; Wed, 26 Feb 2003 10:52:00 -0600 Date: Wed, 26 Feb 2003 16:52:00 -0000 From: Michael Elizabeth Chastain Message-Id: <200302261652.h1QGq0R27186@duracef.shout.net> To: gdb-patches@sources.redhat.com Subject: [rfa] gdb_thread_db.h: #errror if no uintptr_t X-SW-Source: 2003-02/txt/msg00708.txt.bz2 This patch updates gdb_thread_db.h to die with a more explicit error message if HAVE_UINTPTR_T is not defined. 'uintptr_t' is defined in glibc 2.1.3 and later. It might be defined in glibc versions earlier than 2.1.3, too, but 2.1.3 is already three years old so I figure that is enough. Instead of dying, gdb_thread_db.h could substitute some definition for uintptr_t. I chose not to do this because if glibc is that old then I don't want to support it anyways. But a case could be made for doing so. Note that gdb_thread_db.h is used only on *-*-*linux* and s390-*-*. Testing: again, I fiddled with my /usr/include/stdint.h to see both code paths. I also had to disable thread_db.h because my system is new enough to actually use this file instead of the copy embedded in gdb_thread_db.h. This will close PR build/660. OK to commit? Michael C 2003-02-26 Michael Chastain Close PR build/660. PROBLEMS (i[3456]86-*-linux*): Note explicit error messages for old libc5/glibc. gdb_thread_db.h: Die if not HAVE_UINTPTR_T. Index: PROBLEMS =================================================================== RCS file: /cvs/src/src/gdb/PROBLEMS,v retrieving revision 1.13 diff -u -r1.13 PROBLEMS --- PROBLEMS 25 Feb 2003 21:58:20 -0000 1.13 +++ PROBLEMS 26 Feb 2003 16:41:58 -0000 @@ -69,9 +69,9 @@ i[3456]86-*-linux* ------------------ -gdb/660: gdb does not build with linux libc5. The symptom is a parse -error before `uintptr_t'. Upgrade to glibc 2.1.3 or later, which -defines uintptr_t. +gdb/660: gdb does not build with GNU/Linux libc5. The symptom is a +parse error before `uintptr_t' or an error message about `uintptr_t'. +Upgrade to glibc 2.1.3 or later, which defines uintptr_t. gdb/1030: GNU binutils 2.12.1 and earlier versions do not work properly with gdb. If you use GNU binutils, upgrade to version 2.13 or later. Index: gdb_thread_db.h =================================================================== RCS file: /cvs/src/src/gdb/gdb_thread_db.h,v retrieving revision 1.4 diff -u -r1.4 gdb_thread_db.h --- gdb_thread_db.h 12 Nov 2002 02:39:40 -0000 1.4 +++ gdb_thread_db.h 26 Feb 2003 16:41:58 -0000 @@ -199,6 +199,18 @@ } u; } td_notify_t; +/* Some people still have libc5 or old glibc with no uintptr_t. + They lose. glibc 2.1.3 was released on 2000-02-25, and it has + uintptr_t, so it's reasonable to force these people to upgrade. */ + +#ifndef HAVE_UINTPTR_T +#error Unable to find uintptr_t type in . +#error Your libc or glibc is too old! +#error You must upgrade to glibc 2.1.3 or later. +/* Inhibit compilation errors after these errors. */ +#define uintptr_t void * +#endif + /* Structure used to report event. */ typedef struct td_event_msg {