Re: GDB13 fails to build on MacOS using supplied GNU Bison 2.3

Torbjorn SVENSSON via Gdb <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <[email protected]>
Hi Tom,

Sorry for taking so long to check your patch, but I've been OoO for the 
past 2 weeks.

What type of tests did you have in mind when you, in a previous mail in 
the same thread, wrote:

   If the appended works for you (be sure to run some tests), I can check
   it in.

Is it sufficient with a simple C project and a simple C++ project (my 
example was using std::vector to get some namespace and template 
expansion) built for arm-none-eabi? Those 2 projects appears to work as 
expected anyway.

Kind regards,
Torbjörn



On 2023-09-01 15:02, Tom Tromey wrote:
> Martin> Also need to patch gdb/split-name.c?
> 
> Really thought I built it but apparently not.  Thanks.
> 
> Tom
> 
> diff --git a/gdb/dwarf2/cooked-index.c b/gdb/dwarf2/cooked-index.c
> index d6531260c86..58ea541a5c9 100644
> --- a/gdb/dwarf2/cooked-index.c
> +++ b/gdb/dwarf2/cooked-index.c
> @@ -267,7 +267,7 @@ cooked_index_shard::handle_gnat_encoded_entry (cooked_index_entry *entry,
>     if (canonical.empty ())
>       return {};
>     std::vector<gdb::string_view> names = split_name (canonical.c_str (),
> -						    split_style::DOT);
> +						    split_style::DOT_STYLE);
>     gdb::string_view tail = names.back ();
>     names.pop_back ();
>   
> diff --git a/gdb/split-name.c b/gdb/split-name.c
> index a50a6fa4946..0253b3cf675 100644
> --- a/gdb/split-name.c
> +++ b/gdb/split-name.c
> @@ -58,7 +58,7 @@ split_name (const char *name, split_style style)
>   	}
>         break;
>   
> -    case split_style::DOT:
> +    case split_style::DOT_STYLE:
>         /* D and Go-style names.  */
>         for (const char *iter = strchr (name, '.');
>   	   iter != nullptr;
> diff --git a/gdb/split-name.h b/gdb/split-name.h
> index 47896cc4406..7648cf9b900 100644
> --- a/gdb/split-name.h
> +++ b/gdb/split-name.h
> @@ -30,8 +30,9 @@ enum class split_style
>     NONE,
>     /* C++ style, with "::" and template parameter intelligence.  */
>     CXX,
> -  /* Split at ".".  Used by Ada, Go, D.  */
> -  DOT,
> +  /* Split at ".".  Used by Ada, Go, D.  This has a funny name to work
> +     around a bug in Bison 2.3, which is used on macOS.  */
> +  DOT_STYLE,
>     /* Split at "__".  Used by Ada encoded names.  */
>     UNDERSCORE,
>   };
> diff --git a/gdb/symtab.h b/gdb/symtab.h
> index ca3b1a4a0b6..8f587807ff9 100644
> --- a/gdb/symtab.h
> +++ b/gdb/symtab.h
> @@ -305,7 +305,7 @@ class lookup_name_info final
>   	break;
>         case language_d:
>         case language_go:
> -	style = split_style::DOT;
> +	style = split_style::DOT_STYLE;
>   	break;
>         }
>       return ::split_name (language_lookup_name (lang), style);
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.