This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH v2 1/5] Import "glob" and "getcwd" modules from gnulib


[ Resending as the original e-mail got bounced because it is too long to
  be posted here. ]

The full patch can be seen here:

  https://git.sergiodj.net/binutils-gdb.git/commit/?h=sergiodj/set-cwd-command&id=acf35a31bac3951f81d0446564b7f910a0fee21c

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)" 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".

As a side note, we no longer need to define "close" on gdb/ser-tcp.c,
so the patch removes that.

gdb/ChangeLog:
yyyy-mm-dd  Sergio Durigan Junior  <sergiodj@redhat.com>

	* gnulib/aclocal.m4: Regenerate.
	* gnulib/config.in: Likewise.
	* gnulib/configure: Likewise.
	* gnulib/import/Makefile.am: Likewise.
	* gnulib/import/Makefile.in: Likewise.
	* gnulib/import/assure.h: New file.
	* gnulib/import/at-func.c: Likewise
	* gnulib/import/chdir-long.c: Likewise.
	* gnulib/import/chdir-long.h: Likewise.
	* gnulib/import/cloexec.c: Likewise.
	* gnulib/import/cloexec.h: Likewise.
	* gnulib/import/close.c: Likewise.
	* gnulib/import/closedir.c: Likewise.
	* gnulib/import/dirent-private.h: Likewise.
	* gnulib/import/dup-safer.c: Likewise.
	* gnulib/import/dup.c: Likewise.
	* gnulib/import/dup2.c: Likewise.
	* gnulib/import/error.c: Likewise.
	* gnulib/import/error.h: Likewise.
	* gnulib/import/exitfail.c: Likewise.
	* gnulib/import/exitfail.h: Likewise.
	* gnulib/import/fchdir.c: Likewise.
	* gnulib/import/fcntl.c: Likewise.
	* gnulib/import/fcntl.in.h: Likewise.
	* gnulib/import/fd-hook.c: Likewise.
	* gnulib/import/fd-hook.h: Likewise.
	* gnulib/import/fd-safer.c: Likewise.
	* gnulib/import/fdopendir.c: Likewise.
	* gnulib/import/filename.h: Likewise.
	* gnulib/import/filenamecat-lgpl.c: Likewise.
	* gnulib/import/filenamecat.h: Likewise.
	* gnulib/import/fstat.c: Likewise.
	* gnulib/import/fstatat.c: Likewise.
	* gnulib/import/getcwd-lgpl.c: Likewise.
	* gnulib/import/getcwd.c: Likewise.
	* gnulib/import/getdtablesize.c: Likewise.
	* gnulib/import/getlogin_r.c: Likewise.
	* gnulib/import/getprogname.c: Likewise.
	* gnulib/import/getprogname.h: Likewise.
	* gnulib/import/gettext.h: Likewise.
	* gnulib/import/glob-libc.h: Likewise.
	* gnulib/import/glob.c: Likewise.
	* gnulib/import/glob.in.h: Likewise.
	* gnulib/import/intprops.h: Likewise.
	* gnulib/import/m4/chdir-long.m4: Likewise.
	* gnulib/import/m4/close.m4: Likewise.
	* gnulib/import/m4/closedir.m4: Likewise.
	* gnulib/import/m4/d-ino.m4: Likewise.
	* gnulib/import/m4/d-type.m4: Likewise.
	* gnulib/import/m4/dup.m4: Likewise.
	* gnulib/import/m4/dup2.m4: Likewise.
	* gnulib/import/m4/error.m4: Likewise.
	* gnulib/import/m4/fchdir.m4: Likewise.
	* gnulib/import/m4/fcntl.m4: Likewise.
	* gnulib/import/m4/fcntl_h.m4: Likewise.
	* gnulib/import/m4/fdopendir.m4: Likewise.
	* gnulib/import/m4/filenamecat.m4: Likewise.
	* gnulib/import/m4/fstat.m4: Likewise.
	* gnulib/import/m4/fstatat.m4: Likewise.
	* gnulib/import/m4/getcwd-abort-bug.m4: Likewise.
	* gnulib/import/m4/getcwd-path-max.m4: Likewise.
	* gnulib/import/m4/getcwd.m4: Likewise.
	* gnulib/import/m4/getdtablesize.m4: Likewise.
	* gnulib/import/m4/getlogin_r.m4: Likewise.
	* gnulib/import/m4/getprogname.m4: Likewise.
	* gnulib/import/m4/glob.m4: Likewise.
	* gnulib/import/m4/gnulib-cache.m4: Regenerate
	* gnulib/import/m4/gnulib-comp.m4: Likewise.
	* gnulib/import/m4/mempcpy.m4: New file.
	* gnulib/import/m4/memrchr.m4: Likewise.
	* gnulib/import/m4/mode_t.m4: Likewise.
	* gnulib/import/m4/msvc-inval.m4: Likewise.
	* gnulib/import/m4/msvc-nothrow.m4: Likewise.
	* gnulib/import/m4/open.m4: Likewise.
	* gnulib/import/m4/openat.m4: Likewise.
	* gnulib/import/m4/opendir.m4: Likewise.
	* gnulib/import/m4/readdir.m4: Likewise.
	* gnulib/import/m4/realloc.m4: Likewise.
	* gnulib/import/m4/rewinddir.m4: Likewise.
	* gnulib/import/m4/save-cwd.m4: Likewise.
	* gnulib/import/m4/strdup.m4: Likewise.
	* gnulib/import/m4/strerror.m4: Likewise.
	* gnulib/import/m4/unistd-safer.m4: Likewise.
	* gnulib/import/mempcpy.c: Likewise.
	* gnulib/import/memrchr.c: Likewise.
	* gnulib/import/msvc-inval.c: Likewise.
	* gnulib/import/msvc-inval.h: Likewise.
	* gnulib/import/msvc-nothrow.c: Likewise.
	* gnulib/import/msvc-nothrow.h: Likewise.
	* gnulib/import/open.c: Likewise.
	* gnulib/import/openat-die.c: Likewise.
	* gnulib/import/openat-priv.h: Likewise.
	* gnulib/import/openat-proc.c: Likewise.
	* gnulib/import/openat.c: Likewise.
	* gnulib/import/openat.h: Likewise.
	* gnulib/import/opendir.c: Likewise.
	* gnulib/import/pipe-safer.c: Likewise.
	* gnulib/import/readdir.c: Likewise.
	* gnulib/import/realloc.c: Likewise.
	* gnulib/import/rewinddir.c: Likewise.
	* gnulib/import/save-cwd.c: Likewise.
	* gnulib/import/save-cwd.h: Likewise.
	* gnulib/import/strdup.c: Likewise.
	* gnulib/import/strerror-override.c: Likewise.
	* gnulib/import/strerror-override.h: Likewise.
	* gnulib/import/strerror.c: Likewise.
	* gnulib/import/unistd--.h: Likewise.
	* gnulib/import/unistd-safer.h: Likewise.
	* gnulib/update-gnulib.sh (IMPORTED_GNULIB_MODULES): Add
	"getcwd" and "glob".
	* ser-tcp.c: Do not (re)define "close".


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]