mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-09 04:21:49 +08:00
gdb: btrace: fix build errors on older glibc builds
It is possible to have a build of glibc where SYS_perf_event_open is not defined (because when the glibc was compiled, the syscall did not exist), but have newer kernel headers installed so that linux/perf_event.h is available. In this setup, you get a build failure: ./common/linux-btrace.c: In function 'kernel_supports_btrace': ./common/linux-btrace.c:316:23: error: 'SYS_perf_event_open' undeclared (first use in this function) Update the ifdef check to also see if the syscall is available. URL: https://bugs.gentoo.org/473522 Reported-by: William Throwe <wtt6@cornell.edu> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
This commit is contained in:
parent
9a5624cea1
commit
5b4e221c82
@ -1,3 +1,9 @@
|
||||
2013-09-28 Mike Frysinger <vapier@gentoo.org>
|
||||
|
||||
* common/linux-btrace.c: Move sys/syscall.h out of the
|
||||
HAVE_LINUX_PERF_EVENT_H check and wrap it in HAVE_SYS_SYSCALL_H.
|
||||
Also check for SYS_perf_event_open before attempting to buid.
|
||||
|
||||
2013-09-27 Doug Evans <dje@google.com>
|
||||
|
||||
* dwarf2read.c (dwarf2_section_info): Add comment.
|
||||
|
@ -33,13 +33,16 @@
|
||||
#include "gdb_wait.h"
|
||||
#include "i386-cpuid.h"
|
||||
|
||||
#if HAVE_LINUX_PERF_EVENT_H
|
||||
#ifdef HAVE_SYS_SYSCALL_H
|
||||
#include <sys/syscall.h>
|
||||
#endif
|
||||
|
||||
#if HAVE_LINUX_PERF_EVENT_H && defined(SYS_perf_event_open)
|
||||
|
||||
#include <errno.h>
|
||||
#include <string.h>
|
||||
#include <stdint.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <sys/mman.h>
|
||||
#include <sys/user.h>
|
||||
#include <sys/ptrace.h>
|
||||
|
@ -1,3 +1,8 @@
|
||||
2013-09-28 Mike Frysinger <vapier@gentoo.org>
|
||||
|
||||
* configure.ac (AC_CHECK_HEADERS): Add sys/syscall.h
|
||||
* config.in, configure: Regenerated.
|
||||
|
||||
2013-09-18 Yao Qi <yao@codesourcery.com>
|
||||
|
||||
PR server/15959
|
||||
|
@ -199,6 +199,9 @@
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#undef HAVE_SYS_STAT_H
|
||||
|
||||
/* Define to 1 if you have the <sys/syscall.h> header file. */
|
||||
#undef HAVE_SYS_SYSCALL_H
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#undef HAVE_SYS_TYPES_H
|
||||
|
||||
|
2
gdb/gdbserver/configure
vendored
2
gdb/gdbserver/configure
vendored
@ -4873,7 +4873,7 @@ $as_echo "$as_me: running $SHELL $ac_sub_configure $ac_sub_configure_args --cach
|
||||
cd "$ac_popdir"
|
||||
|
||||
|
||||
for ac_header in sgtty.h termio.h termios.h sys/reg.h string.h proc_service.h sys/procfs.h thread_db.h linux/elf.h stdlib.h errno.h fcntl.h signal.h sys/file.h malloc.h sys/ioctl.h netinet/in.h sys/socket.h netdb.h netinet/tcp.h arpa/inet.h sys/wait.h wait.h sys/un.h linux/perf_event.h
|
||||
for ac_header in sgtty.h termio.h termios.h sys/reg.h string.h proc_service.h sys/procfs.h thread_db.h linux/elf.h stdlib.h errno.h fcntl.h signal.h sys/file.h malloc.h sys/ioctl.h netinet/in.h sys/socket.h netdb.h netinet/tcp.h arpa/inet.h sys/wait.h wait.h sys/un.h linux/perf_event.h sys/syscall.h
|
||||
do :
|
||||
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
|
||||
ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
|
||||
|
@ -84,7 +84,7 @@ AC_CHECK_HEADERS(sgtty.h termio.h termios.h sys/reg.h string.h dnl
|
||||
errno.h fcntl.h signal.h sys/file.h malloc.h dnl
|
||||
sys/ioctl.h netinet/in.h sys/socket.h netdb.h dnl
|
||||
netinet/tcp.h arpa/inet.h sys/wait.h wait.h sys/un.h dnl
|
||||
linux/perf_event.h)
|
||||
linux/perf_event.h sys/syscall.h)
|
||||
AC_CHECK_FUNCS(pread pwrite pread64 readlink fdwalk pipe2)
|
||||
AC_REPLACE_FUNCS(vasprintf vsnprintf)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user