This is the mail archive of the insight@sourceware.org mailing list for the Insight project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: Build problem on OpenBSD MIPS


 Hi John,

  it indeed seems to be that your build
doesn't use YACC debugging and that this could be the reason of the
unused function that generates the error.

You could:
1) delete c-exp.c in the build directory
and check how this file is regenerated by the make script.

a simple 
rm c-exp.y
make c-exp.y should be enough for this.

2) Test recompiling the new c-exp.c file
make c-exp.o
should be enough.

If you do get again the same error, you can 
bypass it simply by disabling the "consider a warning as an error" option
which is the -Werror option of GNU C compiler.

3)
To do this, simply run
make c-exp.o WERROR_CFLAGS=""

4) After that, a normal 
make gdb insight
should work.

If point 2) still fails,
it would be worthwhile to state that problem to gdb@sourceware.org
specifying how c-exp.c was regenerated at point 1
(and the version of the executable used, which might well
be of importance here).

Hopefully you will be able to complete insight compilation...


Pierre Muller



> -----Message d'origine-----
> De : insight-owner@sourceware.org [mailto:insight-owner@sourceware.org] De
> la part de John Long
> Envoyé : jeudi 4 juillet 2013 17:39
> À : Pierre Muller
> Cc : insight@sourceware.org
> Objet : Re: Build problem on OpenBSD MIPS
> 
> On Thu, Jul 04, 2013 at 05:22:30PM +0200, Pierre Muller wrote:
> >   Maybe it is a problem with the tool that is used
> > to generate  the c-exp.c from the c-exp.y source.
> >
> > I have the impression that OpenBSD often tends to still use old GNU
> tools...
> >
> >   On my successful build,
> > c_print_token is used in YYPRINT macro:
> >
> > $ grep YYPRINT c-*.c -n -A 5
> > 398:#define YYPRINT(FILE, TYPE, VALUE) c_print_token (FILE, TYPE, VALUE)
> > 399-
> > 400-/* Line 390 of yacc.c  */
> > 401-#line 402 "c-exp.c"
> > 402-
> > 403-#ifdef short
> > --
> > 867:# ifdef YYPRINT
> > 868-/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
> > 869-   token YYLEX-NUM.  */
> > 870-static const yytype_uint16 yytoknum[] =
> > 871-{
> > 872-       0,   256,   257,   258,   259,   260,   261,   262,   263,
> 264,
> > --
> > 1589:# ifdef YYPRINT
> > 1590-  if (yytype < YYNTOKENS)
> > 1591:    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
> > 1592-# else
> > 1593-  YYUSE (yyoutput);
> > 1594-# endif
> > 1595-  switch (yytype)
> > 1596-    {
> > --
> > 5989:/* This is called via the YYPRINT macro when parser debugging is
> > 5990-   enabled.  It prints a token's value.  */
> > 5991-
> > 5992-static void
> > 5993-c_print_token (FILE *file, int type, YYSTYPE value)
> > 5994-{
> >
> > $ head c-exp.c
> > /* A Bison parser, made by GNU Bison 2.7.  */
> >
> > /* Bison implementation for Yacc-like parsers in C
> >
> > Could you check if YYPRINT is used in your c-exp.c file,
> > and which tool was used to create it (it will probably be mentioned
> > in the header like here).
> >
> >
> > Pierre Muller
> >
> 
> Hi, I have no idea what I am doing so I just tried your commands as is.
Here
> is the output:
> 
> grep YYPRINT c-*.c -n -A 5
> 146:#define YYPRINT(FILE, TYPE, VALUE) c_print_token (FILE, TYPE, VALUE)
> 147-#line 148 "c-exp.c"
> 148-#define INT 257
> 149-#define FLOAT 258
> 150-#define DECFLOAT 259
> 151-#define STRING 260
> 4233:/* This is called via the YYPRINT macro when parser debugging is
> 4234-   enabled.  It prints a token's value.  */
> 4235-
> 4236-static void
> 4237-c_print_token (FILE *file, int type, YYSTYPE value)
> 4238-{
> user:/tmp/insight-cvs/insight/gdb$
> 
> head c-exp.c
> #include <stdlib.h>
> #include <string.h>
> #define YYBYACC 1
> #define YYMAJOR 1
> #define YYMINOR 9
> #define YYLEX yylex()
> #define YYEMPTY -1
> #define yyclearin (yychar=(YYEMPTY))
> #define yyerrok (yyerrflag=0)
> #define YYRECOVERING() (yyerrflag!=0)
> user:/tmp/insight-cvs/insight/gdb$
> 
> I don't see that YYPRINT is used anywhere else in c-exp.c
> 
> Does the following suggest this isn't going to be used in a normal build?
> 
> /* This is called via the YYPRINT macro when parser debugging is
>    enabled.  It prints a token's value.  */
> 
> static void
> c_print_token (FILE *file, int type, YYSTYPE value)
> {
>   switch (type)
>     {
>     case INT:
>       fprintf (file, "typed_val_int<%s, %s>",
> 	       TYPE_SAFE_NAME (value.typed_val_int.type),
> 
> Thanks,
> 
> /jl


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]