Skip to content
  • Sergio Durigan Junior's avatar
    Create new common/pathstuff.[ch] · b4987c95
    Sergio Durigan Junior authored
    This commit moves the path manipulation routines found on utils.c to a
    new common/pathstuff.c, and updates the Makefile.in's accordingly.
    The routines moved are "gdb_realpath", "gdb_realpath_keepfile" and
    "gdb_abspath".
    
    This will be needed because gdbserver will have to call "gdb_abspath"
    on my next patch, which implements a way to expand the path of the
    inferior provided by the user in order to allow specifying just the
    binary name when starting gdbserver, like:
    
      $ gdbserver :1234 a.out
    
    With the recent addition of the startup-with-shell feature on
    gdbserver, this scenario doesn't work anymore if the user doesn't have
    the current directory listed in the PATH variable.
    
    I had to do a minor adjustment on "gdb_abspath" because we don't have
    access to "tilde_expand" on gdbserver, so now the function is using
    "gdb_tilde_expand" instead.  Otherwise, the code is the same.
    
    Regression tested on the BuildBot, without regressions.
    
    gdb/ChangeLog:
    2018-02-28  Sergio Durigan Junior  <sergiodj@redhat.com>
    
    	* Makefile.in (COMMON_SFILES): Add "common/pathstuff.c".
    	(HFILES_NO_SRCDIR): Add "common/pathstuff.h".
    	* auto-load.c: Include "common/pathstuff.h".
    	* common/common-def.h (current_directory): Move here.
    	* common/gdb_tilde_expand.c (gdb_tilde_expand_up): New
    	function.
    	* common/gdb_tilde_expand.h (gdb_tilde_expand_up): New
    	prototype.
    	* common/pathstuff.c: New file.
    	* common/pathstuff.h: New file.
    	* compile/compile.c: Include "common/pathstuff.h".
    	* defs.h (current_directory): Move to "common/common-defs.h".
    	* dwarf2read.c: Include "common/pathstuff.h".
    	* exec.c: Likewise.
    	* guile/scm-safe-call.c: Likewise.
    	* linux-thread-db.c: Likewise.
    	* main.c: Likewise.
    	* nto-tdep.c: Likewise.
    	* objfiles.c: Likewise.
    	* source.c: Likewise.
    	* symtab.c: Likewise.
    	* utils.c: Include "common/pathstuff.h".
    	(gdb_realpath): Move to "common/pathstuff.c".
    	(gdb_realpath_keepfile): Likewise.
    	(gdb_abspath): Likewise.
    	* utils.h (gdb_realpath): Move to "common/pathstuff.h".
    	(gdb_realpath_keepfile): Likewise.
    	(gdb_abspath): Likewise.
    
    gdb/gdbserver/ChangeLog:
    2018-02-28  Sergio Durigan Junior  <sergiodj@redhat.com>
    
    	* Makefile.in (SFILES): Add "$(srcdir)/common/pathstuff.c".
    	(OBJS): Add "pathstuff.o".
    	* server.c (current_directory): New global variable.
    	(captured_main): Initialize "current_directory".
    b4987c95