From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 46034 invoked by alias); 21 Sep 2017 22:59:36 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 45924 invoked by uid 89); 21 Sep 2017 22:59:36 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-11.9 required=5.0 tests=BAYES_00,GIT_PATCH_2,GIT_PATCH_3,RP_MATCHES_RCVD,SPF_HELO_PASS autolearn=ham version=3.3.2 spammy= X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 21 Sep 2017 22:59:33 +0000 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 224BB8553C for ; Thu, 21 Sep 2017 22:59:32 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 224BB8553C Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=sergiodj@redhat.com Received: from psique.yyz.redhat.com (unused-10-15-17-193.yyz.redhat.com [10.15.17.193]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8341B6BF7A; Thu, 21 Sep 2017 22:59:29 +0000 (UTC) From: Sergio Durigan Junior To: GDB Patches Cc: Pedro Alves , Sergio Durigan Junior Subject: [PATCH v3 1/5] Import "glob" and "getcwd" modules from gnulib Date: Thu, 21 Sep 2017 22:59:00 -0000 Message-Id: <20170921225926.23132-2-sergiodj@redhat.com> In-Reply-To: <20170921225926.23132-1-sergiodj@redhat.com> References: <20170912042325.14927-1-sergiodj@redhat.com> <20170921225926.23132-1-sergiodj@redhat.com> X-IsSubscribed: yes X-SW-Source: 2017-09/txt/msg00661.txt.bz2 This patch is too long to send to the mailing list, so I'm making it available here: https://git.sergiodj.net/binutils-gdb.git/commit/?h=sergiodj/set-cwd-command&id=ba0db8beb2ee1f75aa923338639c8185afc92fe5 These two modules are necessary because of the rework that will be done in the "change directory" logic on GDB/gdbserver in the next commits. First, we will get rid of the "gdb_dirbuf" global variable and instead rely on the fact that "getcwd (NULL, 0)", which is a GNU extension, returns a heap-allocated string with the necessary bytes to hold the full path. This is a good practice not only because globals are not ideal but also because there is no good way to know beforehand the size of the full pathname allowed in the filesystem ("PATH_MAX" is not portable and does not reflect all the possible filesystems out there). We will also have a way to "cd" to a directory also on gdbserver, but in order to do that uniformly, there must be a way to do tilde expansion on directories provided by the user. Currently, GDB uses "tilde_expand" from readline to do that, but gdbserver doesn't link against readline and therefore cannot use this function. The solution is to use "glob" instead, which can perform tilde expansion as a GNU extension. Therefore, we need gnulib's version of "glob". A special note is necessary for gdb/ser-tcp.c. It defines "close" as "closesocket" on Win32 targets. If we leave the code as is, this would conflict with gnulib's definition of "close". Therefore, in order to keep the same code path from before this import, I decided to "#undef close" first, and then let the original (re)definition of it take place. gdb/ChangeLog: yyyy-mm-dd Sergio Durigan Junior * gnulib/aclocal.m4: Regenerate. * gnulib/config.in: Regenerate. * gnulib/configure: Regenerate. * gnulib/import/Makefile.am: Regenerate. * gnulib/import/Makefile.in: Regenerate. * gnulib/import/assure.h: New file. * gnulib/import/at-func.c: Likewise * gnulib/import/chdir-long.c: New file. * gnulib/import/chdir-long.h: New file. * gnulib/import/cloexec.c: New file. * gnulib/import/cloexec.h: New file. * gnulib/import/close.c: New file. * gnulib/import/closedir.c: New file. * gnulib/import/dirent-private.h: New file. * gnulib/import/dup-safer.c: New file. * gnulib/import/dup.c: New file. * gnulib/import/dup2.c: New file. * gnulib/import/error.c: New file. * gnulib/import/error.h: New file. * gnulib/import/exitfail.c: New file. * gnulib/import/exitfail.h: New file. * gnulib/import/fchdir.c: New file. * gnulib/import/fcntl.c: New file. * gnulib/import/fcntl.in.h: New file. * gnulib/import/fd-hook.c: New file. * gnulib/import/fd-hook.h: New file. * gnulib/import/fd-safer.c: New file. * gnulib/import/fdopendir.c: New file. * gnulib/import/filename.h: New file. * gnulib/import/filenamecat-lgpl.c: New file. * gnulib/import/filenamecat.h: New file. * gnulib/import/fstat.c: New file. * gnulib/import/fstatat.c: New file. * gnulib/import/getcwd-lgpl.c: New file. * gnulib/import/getcwd.c: New file. * gnulib/import/getdtablesize.c: New file. * gnulib/import/getlogin_r.c: New file. * gnulib/import/getprogname.c: New file. * gnulib/import/getprogname.h: New file. * gnulib/import/gettext.h: New file. * gnulib/import/glob-libc.h: New file. * gnulib/import/glob.c: New file. * gnulib/import/glob.in.h: New file. * gnulib/import/intprops.h: New file. * gnulib/import/m4/chdir-long.m4: New file. * gnulib/import/m4/close.m4: New file. * gnulib/import/m4/closedir.m4: New file. * gnulib/import/m4/d-ino.m4: New file. * gnulib/import/m4/d-type.m4: New file. * gnulib/import/m4/dup.m4: New file. * gnulib/import/m4/dup2.m4: New file. * gnulib/import/m4/error.m4: New file. * gnulib/import/m4/fchdir.m4: New file. * gnulib/import/m4/fcntl.m4: New file. * gnulib/import/m4/fcntl_h.m4: New file. * gnulib/import/m4/fdopendir.m4: New file. * gnulib/import/m4/filenamecat.m4: New file. * gnulib/import/m4/fstat.m4: New file. * gnulib/import/m4/fstatat.m4: New file. * gnulib/import/m4/getcwd-abort-bug.m4: New file. * gnulib/import/m4/getcwd-path-max.m4: New file. * gnulib/import/m4/getcwd.m4: New file. * gnulib/import/m4/getdtablesize.m4: New file. * gnulib/import/m4/getlogin_r.m4: New file. * gnulib/import/m4/getprogname.m4: New file. * gnulib/import/m4/glob.m4: New file. * gnulib/import/m4/gnulib-cache.m4: Regenerate * gnulib/import/m4/gnulib-comp.m4: Regenerate. * gnulib/import/m4/mempcpy.m4: New file. * gnulib/import/m4/memrchr.m4: New file. * gnulib/import/m4/mode_t.m4: New file. * gnulib/import/m4/msvc-inval.m4: New file. * gnulib/import/m4/msvc-nothrow.m4: New file. * gnulib/import/m4/open.m4: New file. * gnulib/import/m4/openat.m4: New file. * gnulib/import/m4/opendir.m4: New file. * gnulib/import/m4/readdir.m4: New file. * gnulib/import/m4/realloc.m4: New file. * gnulib/import/m4/rewinddir.m4: New file. * gnulib/import/m4/save-cwd.m4: New file. * gnulib/import/m4/strdup.m4: New file. * gnulib/import/m4/strerror.m4: New file. * gnulib/import/m4/unistd-safer.m4: New file. * gnulib/import/mempcpy.c: New file. * gnulib/import/memrchr.c: New file. * gnulib/import/msvc-inval.c: New file. * gnulib/import/msvc-inval.h: New file. * gnulib/import/msvc-nothrow.c: New file. * gnulib/import/msvc-nothrow.h: New file. * gnulib/import/open.c: New file. * gnulib/import/openat-die.c: New file. * gnulib/import/openat-priv.h: New file. * gnulib/import/openat-proc.c: New file. * gnulib/import/openat.c: New file. * gnulib/import/openat.h: New file. * gnulib/import/opendir.c: New file. * gnulib/import/pipe-safer.c: New file. * gnulib/import/readdir.c: New file. * gnulib/import/realloc.c: New file. * gnulib/import/rewinddir.c: New file. * gnulib/import/save-cwd.c: New file. * gnulib/import/save-cwd.h: New file. * gnulib/import/strdup.c: New file. * gnulib/import/strerror-override.c: New file. * gnulib/import/strerror-override.h: New file. * gnulib/import/strerror.c: New file. * gnulib/import/unistd--.h: New file. * gnulib/import/unistd-safer.h: New file. * gnulib/update-gnulib.sh (IMPORTED_GNULIB_MODULES): Add "getcwd" and "glob". * ser-tcp.c: Undefine "close" before redefining it. --- gdb/gnulib/aclocal.m4 | 37 + gdb/gnulib/config.in | 267 + gdb/gnulib/configure | 12423 +++++++++++++++++++---------- gdb/gnulib/import/Makefile.am | 421 +- gdb/gnulib/import/Makefile.in | 236 +- gdb/gnulib/import/assure.h | 37 + gdb/gnulib/import/at-func.c | 146 + gdb/gnulib/import/chdir-long.c | 264 + gdb/gnulib/import/chdir-long.h | 30 + gdb/gnulib/import/cloexec.c | 83 + gdb/gnulib/import/cloexec.h | 38 + gdb/gnulib/import/close.c | 69 + gdb/gnulib/import/closedir.c | 71 + gdb/gnulib/import/dirent-private.h | 40 + gdb/gnulib/import/dup-safer.c | 34 + gdb/gnulib/import/dup.c | 86 + gdb/gnulib/import/dup2.c | 215 + gdb/gnulib/import/error.c | 406 + gdb/gnulib/import/error.h | 75 + gdb/gnulib/import/exitfail.c | 24 + gdb/gnulib/import/exitfail.h | 18 + gdb/gnulib/import/fchdir.c | 208 + gdb/gnulib/import/fcntl.c | 414 + gdb/gnulib/import/fcntl.in.h | 363 + gdb/gnulib/import/fd-hook.c | 116 + gdb/gnulib/import/fd-hook.h | 119 + gdb/gnulib/import/fd-safer.c | 49 + gdb/gnulib/import/fdopendir.c | 249 + gdb/gnulib/import/filename.h | 54 + gdb/gnulib/import/filenamecat-lgpl.c | 88 + gdb/gnulib/import/filenamecat.h | 27 + gdb/gnulib/import/fstat.c | 88 + gdb/gnulib/import/fstatat.c | 135 + gdb/gnulib/import/getcwd-lgpl.c | 126 + gdb/gnulib/import/getcwd.c | 446 ++ gdb/gnulib/import/getdtablesize.c | 121 + gdb/gnulib/import/getlogin_r.c | 87 + gdb/gnulib/import/getprogname.c | 151 + gdb/gnulib/import/getprogname.h | 40 + gdb/gnulib/import/gettext.h | 292 + gdb/gnulib/import/glob-libc.h | 212 + gdb/gnulib/import/glob.c | 1808 +++++ gdb/gnulib/import/glob.in.h | 93 + gdb/gnulib/import/intprops.h | 464 ++ gdb/gnulib/import/m4/chdir-long.m4 | 30 + gdb/gnulib/import/m4/close.m4 | 33 + gdb/gnulib/import/m4/closedir.m4 | 30 + gdb/gnulib/import/m4/d-ino.m4 | 56 + gdb/gnulib/import/m4/d-type.m4 | 32 + gdb/gnulib/import/m4/dup.m4 | 45 + gdb/gnulib/import/m4/dup2.m4 | 117 + gdb/gnulib/import/m4/error.m4 | 27 + gdb/gnulib/import/m4/fchdir.m4 | 61 + gdb/gnulib/import/m4/fcntl.m4 | 126 + gdb/gnulib/import/m4/fcntl_h.m4 | 50 + gdb/gnulib/import/m4/fdopendir.m4 | 61 + gdb/gnulib/import/m4/filenamecat.m4 | 16 + gdb/gnulib/import/m4/fstat.m4 | 36 + gdb/gnulib/import/m4/fstatat.m4 | 60 + gdb/gnulib/import/m4/getcwd-abort-bug.m4 | 140 + gdb/gnulib/import/m4/getcwd-path-max.m4 | 217 + gdb/gnulib/import/m4/getcwd.m4 | 162 + gdb/gnulib/import/m4/getdtablesize.m4 | 46 + gdb/gnulib/import/m4/getlogin_r.m4 | 88 + gdb/gnulib/import/m4/getprogname.m4 | 43 + gdb/gnulib/import/m4/glob.m4 | 76 + gdb/gnulib/import/m4/gnulib-cache.m4 | 4 +- gdb/gnulib/import/m4/gnulib-comp.m4 | 317 + gdb/gnulib/import/m4/mempcpy.m4 | 26 + gdb/gnulib/import/m4/memrchr.m4 | 23 + gdb/gnulib/import/m4/mode_t.m4 | 26 + gdb/gnulib/import/m4/msvc-inval.m4 | 19 + gdb/gnulib/import/m4/msvc-nothrow.m4 | 10 + gdb/gnulib/import/m4/open.m4 | 91 + gdb/gnulib/import/m4/openat.m4 | 36 + gdb/gnulib/import/m4/opendir.m4 | 31 + gdb/gnulib/import/m4/readdir.m4 | 15 + gdb/gnulib/import/m4/realloc.m4 | 79 + gdb/gnulib/import/m4/rewinddir.m4 | 15 + gdb/gnulib/import/m4/save-cwd.m4 | 11 + gdb/gnulib/import/m4/strdup.m4 | 36 + gdb/gnulib/import/m4/strerror.m4 | 96 + gdb/gnulib/import/m4/unistd-safer.m4 | 10 + gdb/gnulib/import/mempcpy.c | 28 + gdb/gnulib/import/memrchr.c | 161 + gdb/gnulib/import/msvc-inval.c | 129 + gdb/gnulib/import/msvc-inval.h | 222 + gdb/gnulib/import/msvc-nothrow.c | 49 + gdb/gnulib/import/msvc-nothrow.h | 43 + gdb/gnulib/import/open.c | 181 + gdb/gnulib/import/openat-die.c | 62 + gdb/gnulib/import/openat-priv.h | 64 + gdb/gnulib/import/openat-proc.c | 134 + gdb/gnulib/import/openat.c | 286 + gdb/gnulib/import/openat.h | 123 + gdb/gnulib/import/opendir.c | 169 + gdb/gnulib/import/pipe-safer.c | 56 + gdb/gnulib/import/readdir.c | 98 + gdb/gnulib/import/realloc.c | 79 + gdb/gnulib/import/rewinddir.c | 49 + gdb/gnulib/import/save-cwd.c | 99 + gdb/gnulib/import/save-cwd.h | 34 + gdb/gnulib/import/strdup.c | 54 + gdb/gnulib/import/strerror-override.c | 302 + gdb/gnulib/import/strerror-override.h | 56 + gdb/gnulib/import/strerror.c | 70 + gdb/gnulib/import/unistd--.h | 32 + gdb/gnulib/import/unistd-safer.h | 31 + gdb/gnulib/update-gnulib.sh | 2 + gdb/ser-tcp.c | 1 + 110 files changed, 21324 insertions(+), 4457 deletions(-) create mode 100644 gdb/gnulib/import/assure.h create mode 100644 gdb/gnulib/import/at-func.c create mode 100644 gdb/gnulib/import/chdir-long.c create mode 100644 gdb/gnulib/import/chdir-long.h create mode 100644 gdb/gnulib/import/cloexec.c create mode 100644 gdb/gnulib/import/cloexec.h create mode 100644 gdb/gnulib/import/close.c create mode 100644 gdb/gnulib/import/closedir.c create mode 100644 gdb/gnulib/import/dirent-private.h create mode 100644 gdb/gnulib/import/dup-safer.c create mode 100644 gdb/gnulib/import/dup.c create mode 100644 gdb/gnulib/import/dup2.c create mode 100644 gdb/gnulib/import/error.c create mode 100644 gdb/gnulib/import/error.h create mode 100644 gdb/gnulib/import/exitfail.c create mode 100644 gdb/gnulib/import/exitfail.h create mode 100644 gdb/gnulib/import/fchdir.c create mode 100644 gdb/gnulib/import/fcntl.c create mode 100644 gdb/gnulib/import/fcntl.in.h create mode 100644 gdb/gnulib/import/fd-hook.c create mode 100644 gdb/gnulib/import/fd-hook.h create mode 100644 gdb/gnulib/import/fd-safer.c create mode 100644 gdb/gnulib/import/fdopendir.c create mode 100644 gdb/gnulib/import/filename.h create mode 100644 gdb/gnulib/import/filenamecat-lgpl.c create mode 100644 gdb/gnulib/import/filenamecat.h create mode 100644 gdb/gnulib/import/fstat.c create mode 100644 gdb/gnulib/import/fstatat.c create mode 100644 gdb/gnulib/import/getcwd-lgpl.c create mode 100644 gdb/gnulib/import/getcwd.c create mode 100644 gdb/gnulib/import/getdtablesize.c create mode 100644 gdb/gnulib/import/getlogin_r.c create mode 100644 gdb/gnulib/import/getprogname.c create mode 100644 gdb/gnulib/import/getprogname.h create mode 100644 gdb/gnulib/import/gettext.h create mode 100644 gdb/gnulib/import/glob-libc.h create mode 100644 gdb/gnulib/import/glob.c create mode 100644 gdb/gnulib/import/glob.in.h create mode 100644 gdb/gnulib/import/intprops.h create mode 100644 gdb/gnulib/import/m4/chdir-long.m4 create mode 100644 gdb/gnulib/import/m4/close.m4 create mode 100644 gdb/gnulib/import/m4/closedir.m4 create mode 100644 gdb/gnulib/import/m4/d-ino.m4 create mode 100644 gdb/gnulib/import/m4/d-type.m4 create mode 100644 gdb/gnulib/import/m4/dup.m4 create mode 100644 gdb/gnulib/import/m4/dup2.m4 create mode 100644 gdb/gnulib/import/m4/error.m4 create mode 100644 gdb/gnulib/import/m4/fchdir.m4 create mode 100644 gdb/gnulib/import/m4/fcntl.m4 create mode 100644 gdb/gnulib/import/m4/fcntl_h.m4 create mode 100644 gdb/gnulib/import/m4/fdopendir.m4 create mode 100644 gdb/gnulib/import/m4/filenamecat.m4 create mode 100644 gdb/gnulib/import/m4/fstat.m4 create mode 100644 gdb/gnulib/import/m4/fstatat.m4 create mode 100644 gdb/gnulib/import/m4/getcwd-abort-bug.m4 create mode 100644 gdb/gnulib/import/m4/getcwd-path-max.m4 create mode 100644 gdb/gnulib/import/m4/getcwd.m4 create mode 100644 gdb/gnulib/import/m4/getdtablesize.m4 create mode 100644 gdb/gnulib/import/m4/getlogin_r.m4 create mode 100644 gdb/gnulib/import/m4/getprogname.m4 create mode 100644 gdb/gnulib/import/m4/glob.m4 create mode 100644 gdb/gnulib/import/m4/mempcpy.m4 create mode 100644 gdb/gnulib/import/m4/memrchr.m4 create mode 100644 gdb/gnulib/import/m4/mode_t.m4 create mode 100644 gdb/gnulib/import/m4/msvc-inval.m4 create mode 100644 gdb/gnulib/import/m4/msvc-nothrow.m4 create mode 100644 gdb/gnulib/import/m4/open.m4 create mode 100644 gdb/gnulib/import/m4/openat.m4 create mode 100644 gdb/gnulib/import/m4/opendir.m4 create mode 100644 gdb/gnulib/import/m4/readdir.m4 create mode 100644 gdb/gnulib/import/m4/realloc.m4 create mode 100644 gdb/gnulib/import/m4/rewinddir.m4 create mode 100644 gdb/gnulib/import/m4/save-cwd.m4 create mode 100644 gdb/gnulib/import/m4/strdup.m4 create mode 100644 gdb/gnulib/import/m4/strerror.m4 create mode 100644 gdb/gnulib/import/m4/unistd-safer.m4 create mode 100644 gdb/gnulib/import/mempcpy.c create mode 100644 gdb/gnulib/import/memrchr.c create mode 100644 gdb/gnulib/import/msvc-inval.c create mode 100644 gdb/gnulib/import/msvc-inval.h create mode 100644 gdb/gnulib/import/msvc-nothrow.c create mode 100644 gdb/gnulib/import/msvc-nothrow.h create mode 100644 gdb/gnulib/import/open.c create mode 100644 gdb/gnulib/import/openat-die.c create mode 100644 gdb/gnulib/import/openat-priv.h create mode 100644 gdb/gnulib/import/openat-proc.c create mode 100644 gdb/gnulib/import/openat.c create mode 100644 gdb/gnulib/import/openat.h create mode 100644 gdb/gnulib/import/opendir.c create mode 100644 gdb/gnulib/import/pipe-safer.c create mode 100644 gdb/gnulib/import/readdir.c create mode 100644 gdb/gnulib/import/realloc.c create mode 100644 gdb/gnulib/import/rewinddir.c create mode 100644 gdb/gnulib/import/save-cwd.c create mode 100644 gdb/gnulib/import/save-cwd.h create mode 100644 gdb/gnulib/import/strdup.c create mode 100644 gdb/gnulib/import/strerror-override.c create mode 100644 gdb/gnulib/import/strerror-override.h create mode 100644 gdb/gnulib/import/strerror.c create mode 100644 gdb/gnulib/import/unistd--.h create mode 100644 gdb/gnulib/import/unistd-safer.h