GDB13 fails to build on MacOS using supplied GNU Bison 2.3

Torbjorn SVENSSON torbjorn.svensson@foss.st.com
Thu Sep 14 20:26:33 GMT 2023


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);


More information about the Gdb mailing list