FLTK logo

[fltk.coredev] fltk-1.4 fluid build broken on 32-bit mingw

FLTK matrix user chat room
(using Element browser app)   FLTK gitter user chat room   GitHub FLTK Project   FLTK News RSS Feed  
  FLTK Apps      FLTK Library      Forums      Links     Login 
 All Forums  |  Back to fltk.coredev  ]
 
Previous Message ]New Message | Reply ]Next Message ]

fltk-1.4 fluid build broken on 32-bit mingw imacarthur Sep 27, 2021  
  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...







--
You received this message because you are subscribed to the Google Groups "fltk.coredev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to fltkcoredev+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/fltkcoredev/133d2224-b0e7-4b44-be73-7c3331f060e0n%40googlegroups.com.
Direct Link to Message ]
 
     
Previous Message ]New Message | Reply ]Next Message ]
 
 

Comments are owned by the poster. All other content is copyright 1998-2024 by Bill Spitzak and others. This project is hosted by The FLTK Team. Please report site problems to 'erco@seriss.com'.