Re: flexlexer.h include path

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: flexlexer.h include path

Werner Scheinast
Am 01.06.05 schrieb Werner Scheinast:

> "make clean" (or the "make" before) also removes some files included in
> the original source package, especially these four in the directory
> lily/out/: FlexLexer.h, lexer.cc, parser.cc, parser.hh
> During the second "make" they are created again - or just copied
> from my system includes (in case of FlexLexer.h).
> So, my guess is that the first build attempt accesses one of these
> original files, which leads to a conflict with the later dynamically
> created ones.

I had another look at this.

First, thanks for removing the spurious configure warning about flex in
2.5.27. But the actual bug persists with that new release:
The first time build fails because of an incompatibility with my flex
version 2.5.31. lily/includable-lexer.cc employs some variables
(yy_buffer_stack, yy_buffer_stack_top) that are not declared in the
lily/out/FlexLexer.h delivered with lilypond, but they are declared in
my /usr/include/FlexLexer.h. For some strange reason, the former is
included in lily/includable-lexer.cc _before_ it is overwritten by the
latter.
In fact, when I delete FlexLexer.h and lexer.cc in lily/out/ before the
build, it works with the first attempt. Therefore my question:
Are these files needed for anything?
If not, please omit them from the source package. If yes, they should be
overwritten _before_ compiling lily/includable-lexer.cc in the build
process, if possible.

By the way, is anybody out there who also observed such thing with a new
flex version, probably >=2.5.29?

nightly regards
Werner


_______________________________________________
bug-lilypond mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/bug-lilypond
Reply | Threaded
Open this post in threaded view
|

Re: flexlexer.h include path

Han-Wen Nienhuys
Werner Scheinast wrote:

> Am 01.06.05 schrieb Werner Scheinast:
>
>
>>"make clean" (or the "make" before) also removes some files included in
>>the original source package, especially these four in the directory
>>lily/out/: FlexLexer.h, lexer.cc, parser.cc, parser.hh
>>During the second "make" they are created again - or just copied
>>from my system includes (in case of FlexLexer.h).
>>So, my guess is that the first build attempt accesses one of these
>>original files, which leads to a conflict with the later dynamically
>>created ones.
>
>
> I had another look at this.
>
> First, thanks for removing the spurious configure warning about flex in
> 2.5.27. But the actual bug persists with that new release:
> The first time build fails because of an incompatibility with my flex
> version 2.5.31. lily/includable-lexer.cc employs some variables
> (yy_buffer_stack, yy_buffer_stack_top) that are not declared in the
> lily/out/FlexLexer.h delivered with lilypond, but they are declared in
> my /usr/include/FlexLexer.h. For some strange reason, the former is
> included in lily/includable-lexer.cc _before_ it is overwritten by the
> latter.
> In fact, when I delete FlexLexer.h and lexer.cc in lily/out/ before the
> build, it works with the first attempt. Therefore my question:
> Are these files needed for anything?

Yes, they are there for all those people that have old Flex versions,
which will break lilypond compiles. What you have, is the FlexLexer.h
from my system (as I build the tarballs).  What puzzles me is that I can
  compile it (I use g++ 3.4) but you can't. Can you send me the output of

   g++ -E

so I can analyse the problem in more detail?

thanks.

--
  Han-Wen Nienhuys - [hidden email] - http://www.xs4all.nl/~hanwen


_______________________________________________
bug-lilypond mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/bug-lilypond
Reply | Threaded
Open this post in threaded view
|

Re: flexlexer.h include path

Werner Scheinast
Am 03.06.05 schrieb Han-WenNienhuys:

> Werner Scheinast wrote:
> >
> > In fact, when I delete FlexLexer.h and lexer.cc in lily/out/ before the
> > build, it works with the first attempt. Therefore my question:
> > Are these files needed for anything?
>
> Yes, they are there for all those people that have old Flex versions,
> which will break lilypond compiles. What you have, is the FlexLexer.h
> from my system (as I build the tarballs).  What puzzles me is that I can
>   compile it (I use g++ 3.4) but you can't. Can you send me the output of
>
>    g++ -E

I uploaded the output of ...

g++ -E -DHAVE_CONFIG_H -DNDEBUG -DSTRING_UTILS_INLINED -Iinclude -I./out
-I../flower/include -I../flower/./out -I../ttftool/include
-I/usr/include/python2.3 -I/opt/gnome/include/pango-1.0
-I/usr/include/freetype2 -I/opt/gnome/include/glib-2.0
-I/opt/gnome/lib/glib-2.0/include -O2 includable-lexer.cc >preprocessed

... to the address
http://www.scheinast.homepage.t-online.de/preprocessed

Without the -E option, the same command would reproduce the error.

regards
Werner


_______________________________________________
bug-lilypond mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/bug-lilypond
Reply | Threaded
Open this post in threaded view
|

Re: flexlexer.h include path

Han-Wen Nienhuys
Werner Scheinast wrote:

> Am 03.06.05 schrieb Han-WenNienhuys:
>
>
>>Werner Scheinast wrote:
>>
>>>In fact, when I delete FlexLexer.h and lexer.cc in lily/out/ before the
>>>build, it works with the first attempt. Therefore my question:
>>>Are these files needed for anything?
>>
>>Yes, they are there for all those people that have old Flex versions,
>>which will break lilypond compiles. What you have, is the FlexLexer.h
>>from my system (as I build the tarballs).  What puzzles me is that I can
>>  compile it (I use g++ 3.4) but you can't. Can you send me the output of
>>
>>   g++ -E
>
>
> I uploaded the output of ...
>
> g++ -E -DHAVE_CONFIG_H -DNDEBUG -DSTRING_UTILS_INLINED -Iinclude -I./out
> -I../flower/include -I../flower/./out -I../ttftool/include
> -I/usr/include/python2.3 -I/opt/gnome/include/pango-1.0
> -I/usr/include/freetype2 -I/opt/gnome/include/glib-2.0
> -I/opt/gnome/lib/glib-2.0/include -O2 includable-lexer.cc >preprocessed
>
> ... to the address
> http://www.scheinast.homepage.t-online.de/preprocessed
>
> Without the -E option, the same command would reproduce the error.

Apparently, there is a incompatibilities RH and Suse in both directions.
I get.    I think I will stop distributing flex output again.

n file included from /usr/include/g++/bits/basic_ios.h:44,
                  from /usr/include/g++/ios:51,
                  from /usr/include/g++/ostream:45,
                  from /usr/include/g++/iostream:45,
                  from out/FlexLexer.h:47,
                  from include/includable-lexer.hh:14,
                  from includable-lexer.cc:9:
/usr/include/g++/bits/locale_facets.h: In constructor
`std::numpunct_byname<_CharT>::numpunct_byname(const char*, size_t)':
/usr/include/g++/bits/locale_facets.h:696: error: there are no arguments
to `_S_create_c_locale' that depend on a template parameter, so a
declaration of `_S_create_c_locale' must be available
/usr/include/g++/bits/locale_facets.h:696: error: (if you use
`-fpermissive', G++ will accept your code, but allowing the use of an
undeclared name is deprecated)
/usr/include/g++/bits/locale_facets.h:697: error: there are no arguments
to `_M_initialize_numpunct' that depend on a template parameter, so a
declaration of `_M_initialize_numpunct' must be available
/usr/include/g++/bits/locale_facets.h: In destructor `virtual
std::numpunct_byname<_CharT>::~numpunct_byname()':
/usr/include/g++/bits/locale_facets.h:703: error: there are no arguments
to `_S_destroy_c_locale' that depend on a template parameter, so a
declaration




--
  Han-Wen Nienhuys - [hidden email] - http://www.xs4all.nl/~hanwen


_______________________________________________
bug-lilypond mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/bug-lilypond
Reply | Threaded
Open this post in threaded view
|

Re: flexlexer.h include path

Werner Scheinast
Am 06.06.05 schrieb Han-WenNienhuys:

> Apparently, there is a incompatibilities RH and Suse in both directions.
> I get.    I think I will stop distributing flex output again.

Wait a minute! My flex is not SuSE's original (2.5.4a for SuSE 9.0) but a
self-made one from the latest source tarball (2.5.31). So this will per-
haps occur with all Linux distributions when they start using new flex
versions.
Your above intention sounds like doing big changes. Perhaps it's suffi-
cient to remove those delivered flex fragments in time, _if_ the configure
script detects a newer flex version in the system.

Just my 2ยข
Werner


_______________________________________________
bug-lilypond mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/bug-lilypond