gdb: remove HAVE_DECL_PTRACE

I stumbled on this snippet in nat/gdb_ptrace.h:

    /* Some systems, in particular DEC OSF/1, Digital Unix, Compaq Tru64
       or whatever it's called these days, don't provide a prototype for
       ptrace.  Provide one to silence compiler warnings.  */

    #ifndef HAVE_DECL_PTRACE
    extern PTRACE_TYPE_RET ptrace();
    #endif

I believe this is unnecessary today and should be removed.  First, the
comment only mentions OSes we don't support (and to be honest, I had
never even heard of).

But most importantly, in C++, a declaration with empty parenthesis
declares a function that accepts no arguments, unlike in C.  So if this
declaration was really used, GDB wouldn't build, since all ptrace call
sites pass some arguments.  Since we haven't heard anything about this
causing some build failures since we have transitioned to C++, I
conclude that it's not used.

This patch removes it as well as the corresponding configure check.

gdb/ChangeLog:

	* ptrace.m4: Don't check for ptrace declaration.
	* config.in: Re-generate.
	* configure: Re-generate.
	* nat/gdb_ptrace.h: Don't declare ptrace if HAVE_DECL_PTRACE is
	not defined.

gdbserver/ChangeLog:

	* config.in: Re-generate.
	* configure: Re-generate.

gdbsupport/ChangeLog:

	* config.in: Re-generate.
	* configure: Re-generate.
This commit is contained in:
Simon Marchi 2020-03-20 11:57:49 -04:00
parent 1ff700c202
commit c884cc4619
11 changed files with 19 additions and 85 deletions

View File

@ -1,3 +1,11 @@
2020-03-20 Simon Marchi <simon.marchi@efficios.com>
* ptrace.m4: Don't check for ptrace declaration.
* config.in: Re-generate.
* configure: Re-generate.
* nat/gdb_ptrace.h: Don't declare ptrace if HAVE_DECL_PTRACE is
not defined.
2020-03-20 Kamil Rytarowski <n54@gmx.com>
* amd64-bsd-nat.c (gdb_ptrace): Change return type from `int' to

View File

@ -109,10 +109,6 @@
don't. */
#undef HAVE_DECL_GETTHRDS
/* Define to 1 if you have the declaration of `ptrace', and to 0 if you don't.
*/
#undef HAVE_DECL_PTRACE
/* Define to 1 if you have the declaration of `snprintf', and to 0 if you
don't. */
#undef HAVE_DECL_SNPRINTF

20
gdb/configure vendored
View File

@ -15000,26 +15000,6 @@ gdb_ptrace_headers='
# include <unistd.h>
#endif
'
# There is no point in checking if we don't have a prototype.
ac_fn_c_check_decl "$LINENO" "ptrace" "ac_cv_have_decl_ptrace" "$gdb_ptrace_headers
"
if test "x$ac_cv_have_decl_ptrace" = xyes; then :
ac_have_decl=1
else
ac_have_decl=0
fi
cat >>confdefs.h <<_ACEOF
#define HAVE_DECL_PTRACE $ac_have_decl
_ACEOF
if test $ac_have_decl = 1; then :
else
: ${gdb_cv_func_ptrace_ret='int'}
: ${gdb_cv_func_ptrace_args='int,int,long,long'}
fi
# Check return type. Varargs (used on GNU/Linux) conflict with the
# empty argument list, so check for that explicitly.

View File

@ -121,14 +121,6 @@
# endif
#endif
/* Some systems, in particular DEC OSF/1, Digital Unix, Compaq Tru64
or whatever it's called these days, don't provide a prototype for
ptrace. Provide one to silence compiler warnings. */
#ifndef HAVE_DECL_PTRACE
extern PTRACE_TYPE_RET ptrace();
#endif
/* Some systems, at least AIX and HP-UX have a ptrace with five
arguments. Since we never use the fifth argument, define a ptrace
macro that calls the real ptrace with the last argument set to

View File

@ -31,11 +31,7 @@ gdb_ptrace_headers='
# include <unistd.h>
#endif
'
# There is no point in checking if we don't have a prototype.
AC_CHECK_DECLS(ptrace, [], [
: ${gdb_cv_func_ptrace_ret='int'}
: ${gdb_cv_func_ptrace_args='int,int,long,long'}
], $gdb_ptrace_headers)
# Check return type. Varargs (used on GNU/Linux) conflict with the
# empty argument list, so check for that explicitly.
AC_CACHE_CHECK([return type of ptrace], gdb_cv_func_ptrace_ret,

View File

@ -1,3 +1,8 @@
2020-03-20 Simon Marchi <simon.marchi@efficios.com>
* config.in: Re-generate.
* configure: Re-generate.
2020-03-17 Kamil Rytarowski <n54@gmx.com>
* regcache.cc (find_register_by_number): Update.

View File

@ -50,10 +50,6 @@
*/
#undef HAVE_DECL_PERROR
/* Define to 1 if you have the declaration of `ptrace', and to 0 if you don't.
*/
#undef HAVE_DECL_PTRACE
/* Define to 1 if you have the declaration of `snprintf', and to 0 if you
don't. */
#undef HAVE_DECL_SNPRINTF

20
gdbserver/configure vendored
View File

@ -9413,26 +9413,6 @@ gdb_ptrace_headers='
# include <unistd.h>
#endif
'
# There is no point in checking if we don't have a prototype.
ac_fn_c_check_decl "$LINENO" "ptrace" "ac_cv_have_decl_ptrace" "$gdb_ptrace_headers
"
if test "x$ac_cv_have_decl_ptrace" = xyes; then :
ac_have_decl=1
else
ac_have_decl=0
fi
cat >>confdefs.h <<_ACEOF
#define HAVE_DECL_PTRACE $ac_have_decl
_ACEOF
if test $ac_have_decl = 1; then :
else
: ${gdb_cv_func_ptrace_ret='int'}
: ${gdb_cv_func_ptrace_args='int,int,long,long'}
fi
# Check return type. Varargs (used on GNU/Linux) conflict with the
# empty argument list, so check for that explicitly.

View File

@ -1,3 +1,8 @@
2020-03-20 Simon Marchi <simon.marchi@efficios.com>
* config.in: Re-generate.
* configure: Re-generate.
2020-03-17 Kamil Rytarowski <n54@gmx.com>
* common-defs.h: Include alloca.h if HAVE_ALLOCA_H is defined.

View File

@ -43,10 +43,6 @@
/* Define to 1 if you have the declaration of `ffs', and to 0 if you don't. */
#undef HAVE_DECL_FFS
/* Define to 1 if you have the declaration of `ptrace', and to 0 if you don't.
*/
#undef HAVE_DECL_PTRACE
/* Define to 1 if you have the declaration of `snprintf', and to 0 if you
don't. */
#undef HAVE_DECL_SNPRINTF

20
gdbsupport/configure vendored
View File

@ -10666,26 +10666,6 @@ gdb_ptrace_headers='
# include <unistd.h>
#endif
'
# There is no point in checking if we don't have a prototype.
ac_fn_c_check_decl "$LINENO" "ptrace" "ac_cv_have_decl_ptrace" "$gdb_ptrace_headers
"
if test "x$ac_cv_have_decl_ptrace" = xyes; then :
ac_have_decl=1
else
ac_have_decl=0
fi
cat >>confdefs.h <<_ACEOF
#define HAVE_DECL_PTRACE $ac_have_decl
_ACEOF
if test $ac_have_decl = 1; then :
else
: ${gdb_cv_func_ptrace_ret='int'}
: ${gdb_cv_func_ptrace_args='int,int,long,long'}
fi
# Check return type. Varargs (used on GNU/Linux) conflict with the
# empty argument list, so check for that explicitly.