This has likely been broken (for me) for a bit, but I only checked the logs from my build script today, after trying to build on a new WIn10 laptop...
FWIW, the 64-bit build is fine, which possibly explains why I never noticed there was an issue: The build machine runs a different gcc variant for the 32-bit and 64-bit targets, for obscure historical reasons...
The 32-bit version reports itself as: gcc version 6.3.0 (MinGW.org GCC-6.3.0-1)
The 64-bit version is: gcc version 5.1.0 (tdm64-1)
Anyway, here's the error:
Compiling fluid.cxx...
In file included from ../FL/fl_utf8.h:32:0,
from ../FL/Fl.H:32,
from fluid.cxx:17:
fluid.cxx:1356:7: error: expected unqualified-id before ')' token
int fileno() const {
^
fluid.cxx:1356:7: error: expected ')' before '->' token
int fileno() const {
^
fluid.cxx: In function 'void shell_pipe_cb(FL_SOCKET, void*)':
fluid.cxx:1504:26: error: expected unqualified-id before '(' token
Fl::remove_fd(s_proc.fileno());
^
fluid.cxx:1504:26: error: expected primary-_expression_ before ')' token
Fl::remove_fd(s_proc.fileno());
^
fluid.cxx: In function 'void do_shell_command(Fl_Return_Button*, void*)':
fluid.cxx:1540:21: error: expected unqualified-id before '(' token
Fl::add_fd(s_proc.fileno(), shell_pipe_cb);
^
fluid.cxx:1540:21: error: expected primary-_expression_ before ')' token
Fl::add_fd(s_proc.fileno(), shell_pipe_cb);
^
make[1]: *** [fluid.o] Error 1
The crux is this code, added to fluid.cxx in 1.4:
// returns fileno(FILE*):
// (file must be open, i.e. _fpt must be non-null)
// *FIXME* we should find a better solution for the 'fileno' issue
int fileno() const {
#ifdef _MSC_VER
return _fileno(_fpt); // suppress MSVC warning
#else
return ::fileno(_fpt);
#endif
} // non null if file is open
Which chokes on my 32-bit build because the "stdio.h" in that system defines:
#define _fileno(__F) ((__F)->_file)
#ifndef _NO_OLDNAMES
#define fileno(__F) ((__F)->_file) <-- this is the problem in my build!
#endif
And that #define then chokes the fluid.cxx code, preventing it from compiling...
Comments are owned by the poster. All other content is copyright 1998-2025 by Bill Spitzak and others. This project is hosted by The FLTK Team. Please report site problems to 'erco@seriss.com'.