Hi all,
Apologies if this is off-topic or excessively noobish.
As an educational process, I've been working on a script to get Lilypond
2.19.82 to build on MacOS Mojave with dependencies mostly handled by
Homebrew. I had to build extractpdfmark by hand, but the rest of the
dependency tree is Homebrew. I am using guile 1.8.8, gcc 7.4.0, and flex
2.6.4. Here's my configure line:
PATH="/usr/local/opt/texinfo/bin:/usr/local/opt/flex/bin:/usr/local/opt/bison/bin:$PATH"
\
CC=/usr/local/bin/gcc-7 CXX=/usr/local/bin/gcc-7
CPP=/usr/local/bin/cpp-7 \
CPPFLAGS="-I/usr/local/include -I/usr/local/opt/flex/include" \
LDFLAGS="-L/usr/local/lib -L/usr/local/opt/flex/lib
-L/usr/local/opt/bison/lib" \
./configure --with-texgyre-dir=/Library/Fonts --disable-documentation
--disable-optimising \
--disable-pipe --disable-debugging --disable-guile2 --disable-profiling
On build, I get a long string of errors originating in out/lexer.cc:
out/lexer.cc:6272:46: error: cannot convert 'std::istream {aka
std::basic_istream<char>}' to 'std::istream* {aka
std::basic_istream<char>*}' in assignment
YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
^~~~
out/lexer.cc: In constructor 'yyFlexLexer::yyFlexLexer(std::istream*,
std::ostream*)':
out/lexer.cc:6387:75: error: 'std::basic_istream<_CharT,
_Traits>::basic_istream() [with _CharT = char; _Traits =
std::char_traits<char>]' is protected within this context
yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream*
arg_yyout )
^
In file included from
/usr/local/Cellar/gcc@7/7.4.0/include/c++/7.4.0/iostream:40:0,
from out/lexer.cc:120:
/usr/local/Cellar/gcc@7/7.4.0/include/c++/7.4.0/istream:606:7: note:
declared protected here
basic_istream()
^~~~~~~~~~~~~
out/lexer.cc:6387:75: error: 'std::basic_ostream<_CharT,
_Traits>::basic_ostream() [with _CharT = char; _Traits =
std::char_traits<char>]' is protected within this context
yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream*
arg_yyout )
^
In file included from
/usr/local/Cellar/gcc@7/7.4.0/include/c++/7.4.0/iostream:39:0,
from out/lexer.cc:120:
/usr/local/Cellar/gcc@7/7.4.0/include/c++/7.4.0/ostream:384:7: note:
declared protected here
basic_ostream()
^~~~~~~~~~~~~
out/lexer.cc:6389:9: error: no match for 'operator=' (operand types are
'std::istream {aka std::basic_istream<char>}' and 'std::istream* {aka
std::basic_istream<char>*}')
yyin = arg_yyin;
^~~~~~~~
In file included from
/usr/local/Cellar/gcc@7/7.4.0/include/c++/7.4.0/iostream:40:0,
from out/lexer.cc:120:
/usr/local/Cellar/gcc@7/7.4.0/include/c++/7.4.0/istream:625:7: note:
candidate: std::basic_istream<_CharT, _Traits>&
std::basic_istream<_CharT,
_Traits>::operator=(std::basic_istream<_CharT, _Traits>&&) [with _CharT
= char; _Traits = std::char_traits<char>]
operator=(basic_istream&& __rhs)
^~~~~~~~
/usr/local/Cellar/gcc@7/7.4.0/include/c++/7.4.0/istream:625:7: note:
no known conversion for argument 1 from 'std::istream* {aka
std::basic_istream<char>*}' to 'std::basic_isttream<char>&&'
out/lexer.cc:6390:10: error: no match for 'operator=' (operand types are
'std::ostream {aka std::basic_ostream<char>}' and 'std::ostream* {aka
std::basic_ostream<char>*}')
yyout = arg_yyout;
^~~~~~~~~
In file included from
/usr/local/Cellar/gcc@7/7.4.0/include/c++/7.4.0/iostream:39:0,
from out/lexer.cc:120:
/usr/local/Cellar/gcc@7/7.4.0/include/c++/7.4.0/ostream:402:7: note:
candidate: std::basic_ostream<_CharT, _Traits>&
std::basic_ostream<_CharT,
_Traits>::operator=(std::basic_ostream<_CharT, _Traits>&&) [with _CharT
= char; _Traits = std::char_traits<char>]
operator=(basic_ostream&& __rhs)
^~~~~~~~
/usr/local/Cellar/gcc@7/7.4.0/include/c++/7.4.0/ostream:402:7: note:
no known conversion for argument 1 from 'std::ostream* {aka
std::basic_ostream<char>*}' to 'std::basic_ostream<char>&&'
out/lexer.cc: In member function 'virtual void
yyFlexLexer::switch_streams(std::istream*, std::ostream*)':
out/lexer.cc:6436:11: error: no match for 'operator=' (operand types are
'std::ostream {aka std::basic_ostream<char>}' and 'std::ostream* {aka
std::basic_ostream<char>*}')
yyout = new_out;
^~~~~~~
In file included from
/usr/local/Cellar/gcc@7/7.4.0/include/c++/7.4.0/iostream:39:0,
from out/lexer.cc:120:
/usr/local/Cellar/gcc@7/7.4.0/include/c++/7.4.0/ostream:402:7: note:
candidate: std::basic_ostream<_CharT, _Traits>&
std::basic_ostream<_CharT,
_Traits>::operator=(std::basic_ostream<_CharT, _Traits>&&) [with _CharT
= char; _Traits = std::char_traits<char>]
operator=(basic_ostream&& __rhs)
^~~~~~~~
/usr/local/Cellar/gcc@7/7.4.0/include/c++/7.4.0/ostream:402:7: note:
no known conversion for argument 1 from 'std::ostream* {aka
std::basic_ostream<char>*}' to 'std::basic_ostream<char>&&'
out/lexer.cc: At global scope:
out/lexer.cc:32:25: error: prototype for 'size_t
yyFlexLexer::LexerInput(char*, size_t)' does not match any in class
'yyFlexLexer'
#define yyFlexLexer yyFlexLexer
^
out/lexer.cc:6442:8: note: in expansion of macro 'yyFlexLexer'
size_t yyFlexLexer::LexerInput( char* buf, size_t max_size )
^~~~~~~~~~~
In file included from out/lexer.cc:383:0:
/usr/local/opt/flex/include/FlexLexer.h:148:15: error: candidate is:
virtual int yyFlexLexer::LexerInput(char*, int)
virtual int LexerInput( char* buf, int max_size );
^~~~~~~~~~
out/lexer.cc:32:25: error: prototype for 'void
yyFlexLexer::LexerOutput(const char*, size_t)' does not match any in
class 'yyFlexLexer'
#define yyFlexLexer yyFlexLexer
^
out/lexer.cc:6469:6: note: in expansion of macro 'yyFlexLexer'
void yyFlexLexer::LexerOutput( const char* buf, size_t size )
^~~~~~~~~~~
In file included from out/lexer.cc:383:0:
/usr/local/opt/flex/include/FlexLexer.h:149:16: error: candidate is:
virtual void yyFlexLexer::LexerOutput(const char*, int)
virtual void LexerOutput( const char* buf, int size );
^~~~~~~~~~~
out/lexer.cc: In member function 'int yyFlexLexer::yy_get_next_buffer()':
out/lexer.cc:5017:52: warning: conversion to 'int' from 'yy_size_t {aka
long unsigned int}' may alter its value [-Wconversion]
if ( (result = LexerInput( (char *) buf, max_size )) < 0 ) \
^
out/lexer.cc:6578:3: note: in expansion of macro 'YY_INPUT'
YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
^~~~~~~~
out/lexer.cc: In member function 'void yyFlexLexer::yyunput(int, char*)':
out/lexer.cc:6693:45: warning: conversion to 'int' from 'yy_size_t {aka
long unsigned int}' may alter its value [-Wconversion]
(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
out/lexer.cc: In member function 'virtual void
yyFlexLexer::yyrestart(std::istream*)':
out/lexer.cc:6803:48: error: no matching function for call to
'yyFlexLexer::yy_init_buffer(yy_buffer_state*, std::istream*&)'
yy_init_buffer( YY_CURRENT_BUFFER, input_file );
^
In file included from out/lexer.cc:383:0:
/usr/local/opt/flex/include/FlexLexer.h:156:8: note: candidate: void
yyFlexLexer::yy_init_buffer(yy_buffer_state*, std::istream&)
void yy_init_buffer( yy_buffer_state* b, std::istream& s );
^~~~~~~~~~~~~~
/usr/local/opt/flex/include/FlexLexer.h:156:8: note: no known
conversion for argument 2 from 'std::istream* {aka
std::basic_istream<char>*}' to 'std::istream& {aka
std::basic_istream<char>&}'
out/lexer.cc: In member function 'void yyFlexLexer::yy_load_buffer_state()':
out/lexer.cc:6852:47: warning: conversion to 'int' from 'yy_size_t {aka
long unsigned int}' may alter its value [-Wconversion]
(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
out/lexer.cc:6854:35: error: no match for 'operator=' (operand types are
'std::istream {aka std::basic_istream<char>}' and 'std::istream* {aka
std::basic_istream<char>*}')
yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
^~~~~~~~~~~~~
In file included from
/usr/local/Cellar/gcc@7/7.4.0/include/c++/7.4.0/iostream:40:0,
from out/lexer.cc:120:
/usr/local/Cellar/gcc@7/7.4.0/include/c++/7.4.0/istream:625:7: note:
candidate: std::basic_istream<_CharT, _Traits>&
std::basic_istream<_CharT,
_Traits>::operator=(std::basic_istream<_CharT, _Traits>&&) [with _CharT
= char; _Traits = std::char_traits<char>]
operator=(basic_istream&& __rhs)
^~~~~~~~
/usr/local/Cellar/gcc@7/7.4.0/include/c++/7.4.0/istream:625:7: note:
no known conversion for argument 1 from 'std::istream* {aka
std::basic_istream<char>*}' to 'std::basic_istream<char>&&'
out/lexer.cc: In member function 'virtual yy_buffer_state*
yyFlexLexer::yy_create_buffer(std::istream*, int)':
out/lexer.cc:6887:26: error: no matching function for call to
'yyFlexLexer::yy_init_buffer(yy_buffer_state*&, std::istream*&)'
yy_init_buffer( b, file );
^
In file included from out/lexer.cc:383:0:
/usr/local/opt/flex/include/FlexLexer.h:156:8: note: candidate: void
yyFlexLexer::yy_init_buffer(yy_buffer_state*, std::istream&)
void yy_init_buffer( yy_buffer_state* b, std::istream& s );
^~~~~~~~~~~~~~
/usr/local/opt/flex/include/FlexLexer.h:156:8: note: no known
conversion for argument 2 from 'std::istream* {aka
std::basic_istream<char>*}' to 'std::istream& {aka
std::basic_istream<char>&}'
out/lexer.cc: At global scope:
out/lexer.cc:32:25: error: prototype for 'void
yyFlexLexer::yy_init_buffer(YY_BUFFER_STATE, std::istream*)' does not
match any in class 'yyFlexLexer'
#define yyFlexLexer yyFlexLexer
^
out/lexer.cc:6929:10: note: in expansion of macro 'yyFlexLexer'
void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream*
file )
^~~~~~~~~~~
In file included from out/lexer.cc:383:0:
/usr/local/opt/flex/include/FlexLexer.h:156:8: error: candidate is: void
yyFlexLexer::yy_init_buffer(yy_buffer_state*, std::istream&)
void yy_init_buffer( yy_buffer_state* b, std::istream& s );
^~~~~~~~~~~~~~
I have no idea where to go from here. My impulse would be that I have an
incompatible version of flex, but I think I was able to build Lilypond
on my Gentoo box against this same version. Does anyone have any
concrete suggestions?
Cheers,
Daniel
_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel