Re: [PATCH] Move gdb-dlfcn.[ch] to gdbsupport/

Sergio Durigan Junior
2019-08-22T20:52:01Z

On Wednesday, August 21 2019, I wrote:

>> Sergio> diff --git a/gdb/gdbserver/configure.ac b/gdb/gdbserver/configure.ac
>> Sergio> index 0009aac9f2..8d91f0d0e8 100644
>> Sergio> --- a/gdb/gdbserver/configure.ac
>> Sergio> +++ b/gdb/gdbserver/configure.ac
>> Sergio> @@ -88,7 +88,8 @@ AC_CHECK_HEADERS(termios.h sys/reg.h string.h dnl
>> Sergio> proc_service.h sys/procfs.h linux/elf.h dnl
>> Sergio> fcntl.h signal.h sys/file.h dnl
>> Sergio> sys/ioctl.h netinet/in.h sys/socket.h netdb.h dnl
>> Sergio> - netinet/tcp.h arpa/inet.h)
>> Sergio> + netinet/tcp.h arpa/inet.h dnl
>> Sergio> + dlfcn.h)
>>
>> I think it's better to add this check to gdbsupport/common.m4 (and
>> remove it from gdb's configure.ac).
>
> Ah, good point. Here's the updated patch.

Argh, I noticed that I forgot to update gdbserver/Makefile.in. It
didn't give me any errors because nothing is using gdb_dlopen in
gdbserver now, but one of the patches I'm working on will use it, and I
was able to catch the error there. Phew!

Here's the (hopefully) last version.

Thanks,

--
Sergio
GPG key ID: 237A 54B1 0287 28BF 00EF 31F4 D0EB 7628 65FC 5E36
Please send encrypted e-mail if possible
http://sergiodj.net/

From 7a39a3bb0060fb3fcfb4373b63d5b5d2859aab85 Mon Sep 17 00:00:00 2001
From: Sergio Durigan Junior <sergiodj@redhat.com>
Date: Wed, 21 Aug 2019 16:22:45 -0400
Subject: [PATCH] Move gdb-dlfcn.[ch] to gdbsupport/

I need to use 'gdb_dlopen' inside 'gdbsupport/', but it's not yet
supported there. This commit moves 'gdb-dlfcn.[ch]' to 'gdbsupport/',
which makes it available also on gdbserver.

gdb/ChangeLog:
2019-08-22 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.

gdb/gdbserver/ChangeLog:
2019-08-22 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.
---
gdb/Makefile.in | 4 ++--
gdb/compile/compile-c-support.c | 2 +-
gdb/configure | 5 ++---
gdb/configure.ac | 3 +--
gdb/gdbserver/Makefile.in | 2 ++
gdb/gdbserver/config.in | 3 +++
gdb/gdbserver/configure | 2 +-
gdb/gdbsupport/common.m4 | 3 ++-
gdb/{ => gdbsupport}/gdb-dlfcn.c | 2 +-
gdb/{ => gdbsupport}/gdb-dlfcn.h | 0
gdb/jit.c | 2 +-
11 files changed, 16 insertions(+), 12 deletions(-)
rename gdb/{ => gdbsupport}/gdb-dlfcn.c (99%)
rename gdb/{ => gdbsupport}/gdb-dlfcn.h (100%)

diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index d5d095aae4..e7e26a44a0 100644
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
@@ -964,6 +964,7 @@ COMMON_SFILES = \
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 \
@@ -1028,7 +1029,6 @@ COMMON_SFILES = \
frame-unwind.c \
gcore.c \
gdb_bfd.c \
- gdb-dlfcn.c \
gdb_obstack.c \
gdb_regex.c \
gdb_usleep.c \
@@ -1262,7 +1262,6 @@ HFILES_NO_SRCDIR = \
gcore.h \
gdb_bfd.h \
gdb_curses.h \
- gdb-dlfcn.h \
gdb_expat.h \
gdb_obstack.h \
gdb_proc_service.h \
@@ -1460,6 +1459,7 @@ HFILES_NO_SRCDIR = \
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 \
diff --git a/gdb/compile/compile-c-support.c b/gdb/compile/compile-c-support.c
index a6727e83af..9de827a72c 100644
--- a/gdb/compile/compile-c-support.c
+++ b/gdb/compile/compile-c-support.c
@@ -22,12 +22,12 @@
#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"

diff --git a/gdb/configure b/gdb/configure
index cb71bbf057..22a5f6051d 100755
--- a/gdb/configure
+++ b/gdb/configure
@@ -12024,8 +12024,7 @@ for ac_header in nlist.h machine/reg.h poll.h sys/poll.h proc_service.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"
@@ -13516,7 +13515,7 @@ $as_echo "#define HAVE_LANGINFO_CODESET 1" >>confdefs.h
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"
diff --git a/gdb/configure.ac b/gdb/configure.ac
index 5a18c16405..9da8818fb5 100644
--- a/gdb/configure.ac
+++ b/gdb/configure.ac
@@ -1308,8 +1308,7 @@ AC_CHECK_HEADERS([nlist.h machine/reg.h poll.h sys/poll.h proc_service.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])
AC_CHECK_HEADERS(sys/user.h, [], [],
[#if HAVE_SYS_PARAM_H
# include <sys/param.h>
diff --git a/gdb/gdbserver/Makefile.in b/gdb/gdbserver/Makefile.in
index ba0356b1d5..ca0a4cbd10 100644
--- a/gdb/gdbserver/Makefile.in
+++ b/gdb/gdbserver/Makefile.in
@@ -210,6 +210,7 @@ SFILES = \
$(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 \
@@ -255,6 +256,7 @@ OBS = \
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 \
diff --git a/gdb/gdbserver/config.in b/gdb/gdbserver/config.in
index 3991964f9b..f05e9be48a 100644
--- a/gdb/gdbserver/config.in
+++ b/gdb/gdbserver/config.in
@@ -90,6 +90,9 @@
/* 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

diff --git a/gdb/gdbserver/configure b/gdb/gdbserver/configure
index 7e5be51cb2..692cb0f308 100755
--- a/gdb/gdbserver/configure
+++ b/gdb/gdbserver/configure
@@ -6807,7 +6807,7 @@ $as_echo "#define HAVE_LANGINFO_CODESET 1" >>confdefs.h
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"
diff --git a/gdb/gdbsupport/common.m4 b/gdb/gdbsupport/common.m4
index 5701dd9829..903889463f 100644
--- a/gdb/gdbsupport/common.m4
+++ b/gdb/gdbsupport/common.m4
@@ -29,7 +29,8 @@ AC_DEFUN([GDB_AC_COMMON], [
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])

diff --git a/gdb/gdb-dlfcn.c b/gdb/gdbsupport/gdb-dlfcn.c
similarity index 99%
rename from gdb/gdb-dlfcn.c
rename to gdb/gdbsupport/gdb-dlfcn.c
index 4d060d4eb1..921f10f3d8 100644
--- a/gdb/gdb-dlfcn.c
+++ b/gdb/gdbsupport/gdb-dlfcn.c
@@ -17,7 +17,7 @@
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 "common-defs.h"
#include "gdb-dlfcn.h"

#ifdef HAVE_DLFCN_H