Fix gdb 8.1 Solaris compilation
I just tried to compile gdb trunk on Solaris 11.4 (formerly 12), and failed for a couple of reasons: * In file included from /usr/include/python2.7/Python.h:128:0, from /vol/src/gnu/gdb/gdb/dist/gdb/python/python-internal.h:94, from /vol/src/gnu/gdb/gdb/dist/gdb/python/py-instruction.h:23, from /vol/src/gnu/gdb/gdb/dist/gdb/python/py-instruction.c:21: /usr/include/python2.7/ceval.h:67:0: error: ignoring #pragma no_inline [-Werror=unknown-pragmas] #pragma no_inline(PyEval_EvalFrameEx) ^ New in Solaris 11.4: <python2.7/ceval.h> uses a Studio-only #pragma. I've disabled the warning in warnings.m4. * /vol/src/gnu/gdb/gdb/dist/gdb/ser-pipe.c: In function ‘int pipe_open(serial*, const char*)’: /vol/src/gnu/gdb/gdb/dist/gdb/ser-pipe.c:77:9: error: ‘pid_t vfork()’ is deprecated (declared at /usr/include/unistd.h:659) [-Werror=deprecated-declarations] pid = vfork (); ^ /vol/src/gnu/gdb/gdb/dist/gdb/ser-pipe.c:77:16: error: ‘pid_t vfork()’ is deprecated (declared at /usr/include/unistd.h:659) [-Werror=deprecated-declarations] pid = vfork (); ^ Since Solaris 11, vfork () is marked deprecated in <unistd.h>. cf. vfork(2): The vfork() and vforkx() functions are deprecated. Their sole legiti- mate use as a prelude to an immediate call to a function from the exec family can be achieved safely by posix_spawn(3C) or posix_spawnp(3C). Again, I've disabled the warning. * /vol/src/gnu/gdb/gdb/dist/gdb/cli/cli-cmds.c: In function ‘void shell_escape(const char*, int)’: /vol/src/gnu/gdb/gdb/dist/gdb/cli/cli-cmds.c:750:14: error: ‘pid_t vfork()’ is deprecated (declared at /usr/include/unistd.h:659) [-Werror=deprecated-declarations] if ((pid = vfork ()) == 0) ^ /vol/src/gnu/gdb/gdb/dist/gdb/cli/cli-cmds.c:750:21: error: ‘pid_t vfork()’ is deprecated (declared at /usr/include/unistd.h:659) [-Werror=deprecated-declarations] if ((pid = vfork ()) == 0) ^ Same problem. * /vol/src/gnu/gdb/gdb/dist/gdb/procfs.c: In function ‘void procfs_init_inferior(target_ops*, int)’: /vol/src/gnu/gdb/gdb/dist/gdb/procfs.c:4380:30: error: ‘START_INFERIOR_TRAPS_EXPECTED’ was not declared in this scope gdb_startup_inferior (pid, START_INFERIOR_TRAPS_EXPECTED); ^ defined in nat/fork-inferior.h, need to include that header /vol/src/gnu/gdb/gdb/dist/gdb/procfs.c: In function ‘void procfs_create_inferior(target_ops*, const char*, const string&, char**, int)’: /vol/src/gnu/gdb/gdb/dist/gdb/procfs.c:4605:38: error: ‘fork_inferior’ was not declared in this scope NULL, NULL, shell_file, NULL); ^ likewise /vol/src/gnu/gdb/gdb/dist/gdb/procfs.c: In function ‘void procfs_info_proc(target_ops*, const char*, info_proc_what)’: /vol/src/gnu/gdb/gdb/dist/gdb/procfs.c:5124:20: error: ‘argv’ was not declared in this scope for (char *arg : argv) ^ Typo, should be built_argv instead! * Undefined first referenced symbol in file fork_inferior(char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char**, void (*)(), void (*)(int), void (*)(), char const*, void (*)(char const*, char* const*, char* const*)) procfs.o startup_inferior(int, int, target_waitstatus*, ptid_t*) fork-child.o ld: fatal: symbol referencing errors collect2: error: ld returned 1 exit status make[2]: *** [Makefile:2249: gdb] Error 1 Need to add fork-inferior.o to NATDEPFILES. With the changes below, I can build gdb on sparcv9-sun-solaris2.11 and amd64-pc-solaris2.11 and a simple smoke test (gdb/gdb gdb/gdb) works.
This commit is contained in:
parent
7790bd6c74
commit
4fa7574eec
@ -1,3 +1,16 @@
|
||||
2017-09-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||||
|
||||
* configure.nat <i386sol2,i386>: Add fork-inferior.o to NATDEPFILES.
|
||||
<sol2,sparc>: Likewise.
|
||||
<sol2-64,i386>: Likewise.
|
||||
|
||||
* warning.m4 (AM_GDB_WARNINGS): Disable -Wunknown-pragmas,
|
||||
-Wdeprecated-declarations on *-*-solaris*.
|
||||
* configure: Regenerate.
|
||||
|
||||
* procfs.c: Include "nat/inferior.h".
|
||||
(procfs_info_proc): Fix typo.
|
||||
|
||||
2017-09-21 Kevin Buettner <kevinb@redhat.com>
|
||||
|
||||
* remote.c (vector): Include.
|
||||
|
13
gdb/configure
vendored
13
gdb/configure
vendored
@ -15155,10 +15155,17 @@ build_warnings="-Wall -Wpointer-arith \
|
||||
-Wno-sign-compare -Wno-narrowing -Wno-error=maybe-uninitialized \
|
||||
-Wno-mismatched-tags"
|
||||
|
||||
# Enable -Wno-format by default when using gcc on mingw since many
|
||||
# GCC versions complain about %I64.
|
||||
case "${host}" in
|
||||
*-*-mingw32*) build_warnings="$build_warnings -Wno-format" ;;
|
||||
*-*-mingw32*)
|
||||
# Enable -Wno-format by default when using gcc on mingw since many
|
||||
# GCC versions complain about %I64.
|
||||
build_warnings="$build_warnings -Wno-format" ;;
|
||||
*-*-solaris*)
|
||||
# Solaris 11.4 <python2.7/ceval.h> uses #pragma no_inline that GCC
|
||||
# doesn't understand.
|
||||
build_warnings="$build_warnings -Wno-unknown-pragmas"
|
||||
# Solaris 11 <unistd.h> marks vfork deprecated.
|
||||
build_warnings="$build_warnings -Wno-deprecated-declarations" ;;
|
||||
*) build_warnings="$build_warnings -Wformat-nonliteral" ;;
|
||||
esac
|
||||
|
||||
|
@ -216,7 +216,8 @@ case ${gdb_host} in
|
||||
case ${gdb_host_cpu} in
|
||||
i386)
|
||||
# Host: Solaris x86
|
||||
NATDEPFILES='fork-child.o i386-v4-nat.o i386-sol2-nat.o \
|
||||
NATDEPFILES='fork-child.o fork-inferior.o \
|
||||
i386-v4-nat.o i386-sol2-nat.o \
|
||||
procfs.o proc-api.o proc-events.o proc-flags.o proc-why.o'
|
||||
HAVE_NATIVE_GCORE_HOST=1
|
||||
;;
|
||||
@ -464,7 +465,7 @@ case ${gdb_host} in
|
||||
# Host: Solaris SPARC & UltraSPARC
|
||||
NAT_FILE='nm-sol2.h'
|
||||
NATDEPFILES='sparc-sol2-nat.o \
|
||||
fork-child.o \
|
||||
fork-child.o fork-inferior.o \
|
||||
procfs.o proc-api.o proc-events.o proc-flags.o proc-why.o'
|
||||
HAVE_NATIVE_GCORE_HOST=1
|
||||
;;
|
||||
@ -474,7 +475,8 @@ case ${gdb_host} in
|
||||
case ${gdb_host_cpu} in
|
||||
i386)
|
||||
# Host: Solaris x86_64
|
||||
NATDEPFILES='fork-child.o amd64-nat.o i386-v4-nat.o i386-sol2-nat.o \
|
||||
NATDEPFILES='fork-child.o fork-inferior.o \
|
||||
amd64-nat.o i386-v4-nat.o i386-sol2-nat.o \
|
||||
procfs.o proc-api.o proc-events.o proc-flags.o proc-why.o'
|
||||
HAVE_NATIVE_GCORE_HOST=1
|
||||
;;
|
||||
|
@ -30,6 +30,7 @@
|
||||
#include "gdbthread.h"
|
||||
#include "regcache.h"
|
||||
#include "inf-child.h"
|
||||
#include "nat/fork-inferior.h"
|
||||
#include "filestuff.h"
|
||||
|
||||
#if defined (NEW_PROC_API)
|
||||
@ -5121,7 +5122,7 @@ procfs_info_proc (struct target_ops *ops, const char *args,
|
||||
|
||||
old_chain = make_cleanup (null_cleanup, 0);
|
||||
gdb_argv built_argv (args);
|
||||
for (char *arg : argv)
|
||||
for (char *arg : built_argv)
|
||||
{
|
||||
if (isdigit (arg[0]))
|
||||
{
|
||||
|
@ -43,10 +43,17 @@ build_warnings="-Wall -Wpointer-arith \
|
||||
-Wno-sign-compare -Wno-narrowing -Wno-error=maybe-uninitialized \
|
||||
-Wno-mismatched-tags"
|
||||
|
||||
# Enable -Wno-format by default when using gcc on mingw since many
|
||||
# GCC versions complain about %I64.
|
||||
case "${host}" in
|
||||
*-*-mingw32*) build_warnings="$build_warnings -Wno-format" ;;
|
||||
*-*-mingw32*)
|
||||
# Enable -Wno-format by default when using gcc on mingw since many
|
||||
# GCC versions complain about %I64.
|
||||
build_warnings="$build_warnings -Wno-format" ;;
|
||||
*-*-solaris*)
|
||||
# Solaris 11.4 <python2.7/ceval.h> uses #pragma no_inline that GCC
|
||||
# doesn't understand.
|
||||
build_warnings="$build_warnings -Wno-unknown-pragmas"
|
||||
# Solaris 11 <unistd.h> marks vfork deprecated.
|
||||
build_warnings="$build_warnings -Wno-deprecated-declarations" ;;
|
||||
*) build_warnings="$build_warnings -Wformat-nonliteral" ;;
|
||||
esac
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user