public inbox for gdb-prs@sourceware.org
help / color / mirror / Atom feed
* [Bug build/18898] New: Cannot specify non-default list of directories as argument of --with-auto-load-dir on Windows
@ 2015-08-29 12:57 eliz at gnu dot org
  2015-08-29 13:06 ` [Bug build/18898] " jan.kratochvil at redhat dot com
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: eliz at gnu dot org @ 2015-08-29 12:57 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=18898

            Bug ID: 18898
           Summary: Cannot specify non-default list of directories as
                    argument of --with-auto-load-dir on Windows
           Product: gdb
           Version: 7.10
            Status: NEW
          Severity: normal
          Priority: P2
         Component: build
          Assignee: unassigned at sourceware dot org
          Reporter: eliz at gnu dot org
  Target Milestone: ---

An attempt to specify on MS-Windows non-default values for the GDB
configure-time options --with-auto-load-dir and --with-auto-load-safe-path
fails because everything after the first semi-colon is removed.

The semi-colon ';' is the directory separator character in PATH-style lists of
directories on MS-Windows.  However, using it in the argument to these two
configure-time options, for example:

  --with-auto-load-safe-path='$debugdir;$datadir/../auto-load'

causes this to be written to gdb/config.h:

  #define AUTO_LOAD_SAFE_PATH "$debugdir"

where everything beyond the first semi-colon was removed, even though the whole
argument was quoted with '..', as shown above.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug build/18898] Cannot specify non-default list of directories as argument of --with-auto-load-dir on Windows
  2015-08-29 12:57 [Bug build/18898] New: Cannot specify non-default list of directories as argument of --with-auto-load-dir on Windows eliz at gnu dot org
@ 2015-08-29 13:06 ` jan.kratochvil at redhat dot com
  2023-10-26 11:55 ` eliz at gnu dot org
  2023-10-27  0:07 ` thiago.bauermann at linaro dot org
  2 siblings, 0 replies; 4+ messages in thread
From: jan.kratochvil at redhat dot com @ 2015-08-29 13:06 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=18898

Jan Kratochvil <jan.kratochvil at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jan.kratochvil at redhat dot com

-- 
You are receiving this mail because:
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug build/18898] Cannot specify non-default list of directories as argument of --with-auto-load-dir on Windows
  2015-08-29 12:57 [Bug build/18898] New: Cannot specify non-default list of directories as argument of --with-auto-load-dir on Windows eliz at gnu dot org
  2015-08-29 13:06 ` [Bug build/18898] " jan.kratochvil at redhat dot com
@ 2023-10-26 11:55 ` eliz at gnu dot org
  2023-10-27  0:07 ` thiago.bauermann at linaro dot org
  2 siblings, 0 replies; 4+ messages in thread
From: eliz at gnu dot org @ 2023-10-26 11:55 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=18898

--- Comment #1 from Eli Zaretskii <eliz at gnu dot org> ---
In https://sourceware.org/pipermail/gdb-patches/2023-October/203020.html Thiago
Jung Bauermann <thiago.bauermann@linaro.org> proposed a workaround, which was
found to work perfectly.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug build/18898] Cannot specify non-default list of directories as argument of --with-auto-load-dir on Windows
  2015-08-29 12:57 [Bug build/18898] New: Cannot specify non-default list of directories as argument of --with-auto-load-dir on Windows eliz at gnu dot org
  2015-08-29 13:06 ` [Bug build/18898] " jan.kratochvil at redhat dot com
  2023-10-26 11:55 ` eliz at gnu dot org
@ 2023-10-27  0:07 ` thiago.bauermann at linaro dot org
  2 siblings, 0 replies; 4+ messages in thread
From: thiago.bauermann at linaro dot org @ 2023-10-27  0:07 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=18898

Thiago Jung Bauermann <thiago.bauermann at linaro dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |thiago.bauermann at linaro dot org

--- Comment #2 from Thiago Jung Bauermann <thiago.bauermann at linaro dot org> ---
I looked into this issue a bit more today. Here is my understanding of the
problem:

It happens because the AC_DEFINE_DIR macro calls eval twice on the value
provided via these configure options, causing the ';' to be interpreted by the
shell.  E.g.,

  $ ~/src/binutils-gdb/configure \
      --disable-{binutils,ld,gold,gas,sim,gprof,gprofng} \
      --with-auto-load-dir='foo;bar' && make
      ⋮
  checking for default auto-load directory...
/home/bauermann/src/binutils-gdb/gdb/configure: line 18004: bar: command not
found
  foo;bar
  checking for default auto-load safe-path...
/home/bauermann/src/binutils-gdb/gdb/configure: line 18031: bar: command not
found
  foo;bar

Line 18004 is:

  ac_define_dir=`eval echo $escape_dir`

Line 18031 is identical.

With some escaping, it's possible to avoid the problem:

  $ ~/src/binutils-gdb/configure \
      --disable-{binutils,ld,gold,gas,sim,gprof,gprofng} \
      --with-auto-load-dir='foo\\\;bar\\\;baz' && make
      ⋮
  checking for default auto-load directory... foo\\\;bar\\\;baz
  checking for default auto-load safe-path... foo\\\;bar\\\;baz
      ⋮
  $ grep AUTO_LOAD gdb/config.h
  #define AUTO_LOAD_DIR "foo;bar;baz"
  #define AUTO_LOAD_SAFE_PATH "foo;bar;baz"

We provide the definition of AC_DEFINE_DIR in gdb/acinclude.m4 so the simplest
approach to fix this problem would be to remove the evals from the macro.

I don't know why they are there however, so a more conservative solution is to
make gdb/configure.ac automatically add those escaping characters to the values
of the options if the host OS is Windows.

I just posted a patch doing that:

https://inbox.sourceware.org/gdb-patches/20231026234013.937210-1-thiago.bauermann@linaro.org/

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2023-10-27  0:07 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-08-29 12:57 [Bug build/18898] New: Cannot specify non-default list of directories as argument of --with-auto-load-dir on Windows eliz at gnu dot org
2015-08-29 13:06 ` [Bug build/18898] " jan.kratochvil at redhat dot com
2023-10-26 11:55 ` eliz at gnu dot org
2023-10-27  0:07 ` thiago.bauermann at linaro dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).