darwin: Don't use sbrk
This patch gets rid of this warning on macOS: CXX main.o /Users/simark/src/binutils-gdb/gdb/main.c:492:27: error: 'sbrk' is deprecated [-Werror,-Wdeprecated-declarations] lim_at_start = (char *) sbrk (0); ^ /usr/include/unistd.h:585:1: note: 'sbrk' has been explicitly marked deprecated here __deprecated __WATCHOS_PROHIBITED __TVOS_PROHIBITED ^ /usr/include/sys/cdefs.h:176:37: note: expanded from macro '__deprecated' #define __deprecated __attribute__((deprecated)) ^ sbrk on macOS is not useful for our purposes, since sbrk(0) always returns the same value. From what I read, brk/sbrk on macOS is just an emulation, it always returns a pointer in a 4MB section reserved for that. So instead of letting users use "maint set per-command space on" and print silly results, I think we should just disable that feature for this platform (as we do for platforms that don't have sbrk). I defined a HAVE_USEFUL_SBRK macro and used that instead of HAVE_SBRK. gdb/ChangeLog: * common/common-defs.h (HAVE_USEFUL_SBRK): Define. * main.c: Use HAVE_USEFUL_SBRK instead of HAVE_SBRK. * maint.c: Likewise. * top.c: Likewise.
This commit is contained in:
parent
4e5b2f8961
commit
6242c6a690
|
@ -1,3 +1,10 @@
|
|||
2018-07-04 Simon Marchi <simon.marchi@polymtl.ca>
|
||||
|
||||
* common/common-defs.h (HAVE_USEFUL_SBRK): Define.
|
||||
* main.c: Use HAVE_USEFUL_SBRK instead of HAVE_SBRK.
|
||||
* maint.c: Likewise.
|
||||
* top.c: Likewise.
|
||||
|
||||
2018-07-04 Joel Brobecker <brobecker@adacore.com>
|
||||
|
||||
* NEWS: Create a new section for the next release branch.
|
||||
|
|
|
@ -105,4 +105,13 @@
|
|||
/* String containing the current directory (what getwd would return). */
|
||||
extern char *current_directory;
|
||||
|
||||
/* sbrk on macOS is not useful for our purposes, since sbrk(0) always
|
||||
returns the same value. brk/sbrk on macOS is just an emulation
|
||||
that always returns a pointer to a 4MB section reserved for
|
||||
that. */
|
||||
|
||||
#if defined (HAVE_SBRK) && !__APPLE__
|
||||
#define HAVE_USEFUL_SBRK 1
|
||||
#endif
|
||||
|
||||
#endif /* COMMON_DEFS_H */
|
||||
|
|
|
@ -487,7 +487,7 @@ captured_main_1 (struct captured_main_args *context)
|
|||
int save_auto_load;
|
||||
struct objfile *objfile;
|
||||
|
||||
#ifdef HAVE_SBRK
|
||||
#ifdef HAVE_USEFUL_SBRK
|
||||
/* Set this before constructing scoped_command_stats. */
|
||||
lim_at_start = (char *) sbrk (0);
|
||||
#endif
|
||||
|
|
|
@ -828,7 +828,7 @@ scoped_command_stats::~scoped_command_stats ()
|
|||
|
||||
if (m_space_enabled && per_command_space)
|
||||
{
|
||||
#ifdef HAVE_SBRK
|
||||
#ifdef HAVE_USEFUL_SBRK
|
||||
char *lim = (char *) sbrk (0);
|
||||
|
||||
long space_now = lim - lim_at_start;
|
||||
|
@ -866,7 +866,7 @@ scoped_command_stats::scoped_command_stats (bool msg_type)
|
|||
{
|
||||
if (!m_msg_type || per_command_space)
|
||||
{
|
||||
#ifdef HAVE_SBRK
|
||||
#ifdef HAVE_USEFUL_SBRK
|
||||
char *lim = (char *) sbrk (0);
|
||||
m_start_space = lim - lim_at_start;
|
||||
m_space_enabled = 1;
|
||||
|
|
Loading…
Reference in New Issue