From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 59225 invoked by alias); 19 Sep 2017 04:37:20 -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 59216 invoked by uid 89); 19 Sep 2017 04:37:20 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=BAYES_00,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; Tue, 19 Sep 2017 04:37:18 +0000 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 3C2617F7AB for ; Tue, 19 Sep 2017 04:37:17 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 3C2617F7AB 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 localhost (unused-10-15-17-193.yyz.redhat.com [10.15.17.193]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 3CB0E600C0; Tue, 19 Sep 2017 04:37:15 +0000 (UTC) From: Sergio Durigan Junior To: GDB Patches Cc: Pedro Alves , Sergio Durigan Junior Subject: [PATCH v2 1/5] Import "glob" and "getcwd" modules from gnulib In-Reply-To: <20170919042842.9210-1-sergiodj@redhat.com> References: <20170912042325.14927-1-sergiodj@redhat.com> <20170919042842.9210-1-sergiodj@redhat.com> X-URL: https://sergiodj.net Date: Tue, 19 Sep 2017 04:37:00 -0000 Message-ID: <87y3pbwbgl.fsf@redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-IsSubscribed: yes X-SW-Source: 2017-09/txt/msg00463.txt.bz2 [ 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 * 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/