+2019-08-23 Sergio Durigan Junior <sergiodj@redhat.com>
+
+ * configure.ac: Don't check for 'dlfcn.h' (moved to
+ gdbsupport/common.m4).
+ * Makefile.in (COMMON_SFILES): Move 'gdb-dlfcn.c' to
+ 'gdbsupport/'.
+ (HFILES_NO_SRCDIR): Likewise, for 'gdb-dlfcn.h'.
+ * compile/compile-c-support.c: Include
+ 'gdbsupport/gdb-dlfcn.h'.
+ * gdbsupport/common.m4: Check for 'dlfcn.h'.
+ * gdb-dlfcn.c: Move to...
+ * gdbsupport/gdb-dlfcn.c: ... here.
+ * gdb-dlfcn.h: Move to...
+ * gdbsupport/gdb-dlfcn.h: ... here.
+
2019-08-23 Sandra Loosemore <sandra@codesourcery.com>
* nios2-tdep.c (struct reg_value): Improve comments. Make
gdbsupport/filestuff.c \
gdbsupport/format.c \
gdbsupport/job-control.c \
+ gdbsupport/gdb-dlfcn.c \
gdbsupport/gdb_tilde_expand.c \
gdbsupport/gdb_vecs.c \
gdbsupport/netstuff.c \
frame-unwind.c \
gcore.c \
gdb_bfd.c \
- gdb-dlfcn.c \
gdb_obstack.c \
gdb_regex.c \
gdb_usleep.c \
gcore.h \
gdb_bfd.h \
gdb_curses.h \
- gdb-dlfcn.h \
gdb_expat.h \
gdb_obstack.h \
gdb_proc_service.h \
gdbsupport/environ.h \
gdbsupport/fileio.h \
gdbsupport/format.h \
+ gdbsupport/gdb-dlfcn.h \
gdbsupport/gdb_assert.h \
gdbsupport/gdb_tilde_expand.h \
gdbsupport/gdb_locale.h \
#include "compile-c.h"
#include "compile-cplus.h"
#include "compile.h"
-#include "gdb-dlfcn.h"
#include "c-lang.h"
#include "macrotab.h"
#include "macroscope.h"
#include "regcache.h"
#include "gdbsupport/function-view.h"
+#include "gdbsupport/gdb-dlfcn.h"
#include "gdbsupport/preprocessor.h"
#include "gdbarch.h"
sys/file.h sys/filio.h sys/ioctl.h sys/param.h \
sys/resource.h sys/procfs.h sys/ptrace.h ptrace.h \
sys/reg.h sys/debugreg.h sys/select.h \
- termios.h elf_hp.h \
- dlfcn.h
+ termios.h elf_hp.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"
fi
- for ac_header in linux/perf_event.h locale.h memory.h signal.h sys/resource.h sys/socket.h sys/un.h sys/wait.h thread_db.h wait.h termios.h
+ for ac_header in linux/perf_event.h locale.h memory.h signal.h sys/resource.h sys/socket.h sys/un.h sys/wait.h thread_db.h wait.h termios.h dlfcn.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"
sys/file.h sys/filio.h sys/ioctl.h sys/param.h \
sys/resource.h sys/procfs.h sys/ptrace.h ptrace.h \
sys/reg.h sys/debugreg.h sys/select.h \
- termios.h elf_hp.h \
- dlfcn.h])
+ termios.h elf_hp.h])
AC_CHECK_HEADERS(sys/user.h, [], [],
[#if HAVE_SYS_PARAM_H
# include <sys/param.h>
+++ /dev/null
-/* Platform independent shared object routines for GDB.
-
- Copyright (C) 2011-2019 Free Software Foundation, Inc.
-
- This file is part of GDB.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
-
-#include "defs.h"
-#include "gdb-dlfcn.h"
-
-#ifdef HAVE_DLFCN_H
-#include <dlfcn.h>
-#elif __MINGW32__
-#include <windows.h>
-#else
-/* Unsupported configuration. */
-#define NO_SHARED_LIB
-#endif
-
-#ifdef NO_SHARED_LIB
-
-gdb_dlhandle_up
-gdb_dlopen (const char *filename)
-{
- gdb_assert_not_reached ("gdb_dlopen should not be called on this platform.");
-}
-
-void *
-gdb_dlsym (const gdb_dlhandle_up &handle, const char *symbol)
-{
- gdb_assert_not_reached ("gdb_dlsym should not be called on this platform.");
-}
-
-void
-dlclose_deleter::operator() (void *handle) const
-{
- gdb_assert_not_reached ("gdb_dlclose should not be called on this platform.");
-}
-
-int
-is_dl_available (void)
-{
- return 0;
-}
-
-#else /* NO_SHARED_LIB */
-
-gdb_dlhandle_up
-gdb_dlopen (const char *filename)
-{
- void *result;
-#ifdef HAVE_DLFCN_H
- result = dlopen (filename, RTLD_NOW);
-#elif __MINGW32__
- result = (void *) LoadLibrary (filename);
-#endif
- if (result != NULL)
- return gdb_dlhandle_up (result);
-
-#ifdef HAVE_DLFCN_H
- error (_("Could not load %s: %s"), filename, dlerror());
-#else
- {
- LPVOID buffer;
- DWORD dw;
-
- dw = GetLastError();
-
- FormatMessage (FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM |
- FORMAT_MESSAGE_IGNORE_INSERTS,
- NULL, dw, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
- (LPTSTR) &buffer,
- 0, NULL);
-
- error (_("Could not load %s: %s"), filename, (char *) buffer);
- }
-#endif
-}
-
-void *
-gdb_dlsym (const gdb_dlhandle_up &handle, const char *symbol)
-{
-#ifdef HAVE_DLFCN_H
- return dlsym (handle.get (), symbol);
-#elif __MINGW32__
- return (void *) GetProcAddress ((HMODULE) handle.get (), symbol);
-#endif
-}
-
-void
-dlclose_deleter::operator() (void *handle) const
-{
-#ifdef HAVE_DLFCN_H
- dlclose (handle);
-#elif __MINGW32__
- FreeLibrary ((HMODULE) handle);
-#endif
-}
-
-int
-is_dl_available (void)
-{
- return 1;
-}
-
-#endif /* NO_SHARED_LIB */
+++ /dev/null
-/* Platform independent shared object routines for GDB.
-
- Copyright (C) 2011-2019 Free Software Foundation, Inc.
-
- This file is part of GDB.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
-
-#ifndef GDB_DLFCN_H
-#define GDB_DLFCN_H
-
-/* A deleter that closes an open dynamic library. */
-
-struct dlclose_deleter
-{
- void operator() (void *handle) const;
-};
-
-/* A unique pointer that points to a dynamic library. */
-
-typedef std::unique_ptr<void, dlclose_deleter> gdb_dlhandle_up;
-
-/* Load the dynamic library file named FILENAME, and return a handle
- for that dynamic library. Return NULL if the loading fails for any
- reason. */
-
-gdb_dlhandle_up gdb_dlopen (const char *filename);
-
-/* Return the address of the symbol named SYMBOL inside the shared
- library whose handle is HANDLE. Return NULL when the symbol could
- not be found. */
-
-void *gdb_dlsym (const gdb_dlhandle_up &handle, const char *symbol);
-
-/* Return non-zero if the dynamic library functions are available on
- this platform. */
-
-int is_dl_available(void);
-
-#endif /* GDB_DLFCN_H */
+2019-08-23 Sergio Durigan Junior <sergiodj@redhat.com>
+
+ * Makefile.in (SFILES): Add 'gdbsupport/gdb-dlfcn.c'.
+ (OBS): Add 'gdbsupport/gdb-dlfcn.o'.
+ * config.in: Regenerate.
+ * configure: Regenerate.
+
2019-08-15 Tom Tromey <tromey@adacore.com>
* target.c (target_write_memory): Use gdb::byte_vector.
$(srcdir)/gdbsupport/fileio.c \
$(srcdir)/gdbsupport/filestuff.c \
$(srcdir)/gdbsupport/job-control.c \
+ $(srcdir)/gdbsupport/gdb-dlfcn.c \
$(srcdir)/gdbsupport/gdb_tilde_expand.c \
$(srcdir)/gdbsupport/gdb_vecs.c \
$(srcdir)/gdbsupport/netstuff.c \
gdbsupport/fileio.o \
gdbsupport/filestuff.o \
gdbsupport/format.o \
+ gdbsupport/gdb-dlfcn.o \
gdbsupport/gdb_tilde_expand.o \
gdbsupport/gdb_vecs.o \
gdbsupport/netstuff.o \
/* Define to 1 if you have the `dladdr' function. */
#undef HAVE_DLADDR
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#undef HAVE_DLFCN_H
+
/* Define to 1 if the system has the type `Elf32_auxv_t'. */
#undef HAVE_ELF32_AUXV_T
fi
- for ac_header in linux/perf_event.h locale.h memory.h signal.h sys/resource.h sys/socket.h sys/un.h sys/wait.h thread_db.h wait.h termios.h
+ for ac_header in linux/perf_event.h locale.h memory.h signal.h sys/resource.h sys/socket.h sys/un.h sys/wait.h thread_db.h wait.h termios.h dlfcn.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"
sys/resource.h sys/socket.h dnl
sys/un.h sys/wait.h dnl
thread_db.h wait.h dnl
- termios.h)
+ termios.h dnl
+ dlfcn.h)
AC_CHECK_FUNCS([fdwalk getrlimit pipe pipe2 socketpair sigaction])
--- /dev/null
+/* Platform independent shared object routines for GDB.
+
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "common-defs.h"
+#include "gdb-dlfcn.h"
+
+#ifdef HAVE_DLFCN_H
+#include <dlfcn.h>
+#elif __MINGW32__
+#include <windows.h>
+#else
+/* Unsupported configuration. */
+#define NO_SHARED_LIB
+#endif
+
+#ifdef NO_SHARED_LIB
+
+gdb_dlhandle_up
+gdb_dlopen (const char *filename)
+{
+ gdb_assert_not_reached ("gdb_dlopen should not be called on this platform.");
+}
+
+void *
+gdb_dlsym (const gdb_dlhandle_up &handle, const char *symbol)
+{
+ gdb_assert_not_reached ("gdb_dlsym should not be called on this platform.");
+}
+
+void
+dlclose_deleter::operator() (void *handle) const
+{
+ gdb_assert_not_reached ("gdb_dlclose should not be called on this platform.");
+}
+
+int
+is_dl_available (void)
+{
+ return 0;
+}
+
+#else /* NO_SHARED_LIB */
+
+gdb_dlhandle_up
+gdb_dlopen (const char *filename)
+{
+ void *result;
+#ifdef HAVE_DLFCN_H
+ result = dlopen (filename, RTLD_NOW);
+#elif __MINGW32__
+ result = (void *) LoadLibrary (filename);
+#endif
+ if (result != NULL)
+ return gdb_dlhandle_up (result);
+
+#ifdef HAVE_DLFCN_H
+ error (_("Could not load %s: %s"), filename, dlerror());
+#else
+ {
+ LPVOID buffer;
+ DWORD dw;
+
+ dw = GetLastError();
+
+ FormatMessage (FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM |
+ FORMAT_MESSAGE_IGNORE_INSERTS,
+ NULL, dw, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
+ (LPTSTR) &buffer,
+ 0, NULL);
+
+ error (_("Could not load %s: %s"), filename, (char *) buffer);
+ }
+#endif
+}
+
+void *
+gdb_dlsym (const gdb_dlhandle_up &handle, const char *symbol)
+{
+#ifdef HAVE_DLFCN_H
+ return dlsym (handle.get (), symbol);
+#elif __MINGW32__
+ return (void *) GetProcAddress ((HMODULE) handle.get (), symbol);
+#endif
+}
+
+void
+dlclose_deleter::operator() (void *handle) const
+{
+#ifdef HAVE_DLFCN_H
+ dlclose (handle);
+#elif __MINGW32__
+ FreeLibrary ((HMODULE) handle);
+#endif
+}
+
+int
+is_dl_available (void)
+{
+ return 1;
+}
+
+#endif /* NO_SHARED_LIB */
--- /dev/null
+/* Platform independent shared object routines for GDB.
+
+ Copyright (C) 2011-2019 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#ifndef GDB_DLFCN_H
+#define GDB_DLFCN_H
+
+/* A deleter that closes an open dynamic library. */
+
+struct dlclose_deleter
+{
+ void operator() (void *handle) const;
+};
+
+/* A unique pointer that points to a dynamic library. */
+
+typedef std::unique_ptr<void, dlclose_deleter> gdb_dlhandle_up;
+
+/* Load the dynamic library file named FILENAME, and return a handle
+ for that dynamic library. Return NULL if the loading fails for any
+ reason. */
+
+gdb_dlhandle_up gdb_dlopen (const char *filename);
+
+/* Return the address of the symbol named SYMBOL inside the shared
+ library whose handle is HANDLE. Return NULL when the symbol could
+ not be found. */
+
+void *gdb_dlsym (const gdb_dlhandle_up &handle, const char *symbol);
+
+/* Return non-zero if the dynamic library functions are available on
+ this platform. */
+
+int is_dl_available(void);
+
+#endif /* GDB_DLFCN_H */
#include "symfile.h"
#include "symtab.h"
#include "target.h"
-#include "gdb-dlfcn.h"
+#include "gdbsupport/gdb-dlfcn.h"
#include <sys/stat.h>
#include "gdb_bfd.h"
#include "readline/tilde.h"