Greetings.

I am trying to resolve an issue installing GNU Octave with the MacPorts system.

Octave includes qscilexeroctave.h, which includes a whole bunch of other files 
until it gets to a header file from Gnulib.
Gnulib attempts to add a security warning to the C functions gets.
Because qscilexeroctave.h wraps everything in “extern "C++",” there is a 
conflict between the linkages of gets (C vs C++).

A few solutions have been proposed in the various discussions about this 
problem (see references below).
On solution is to remove the “extern "C++"” from the Qt4Qt5/Qsci/*.h qscintilla 
header files:

-#ifdef __APPLE__                                                               
                                                                                
                                            
-extern "C++" {                                                                 
                                                                                
                                            
-#endif
...
-#ifdef __APPLE__                                                               
                                                                                
                                            
-}                                                                              
                                                                                
                                            
-#endif 

For me, qscintilla and Octave both build fine after the change.

Is this a safe change?
Any insight into why forcing C++ linkage is necessary (but just on Macs) would 
be appreciated.

Is this a change that can be considered upstream?

Thank you,
Marcus

Bug References:
https://trac.macports.org/ticket/51399 
<https://trac.macports.org/ticket/51399>http://octave.1599824.n4.nabble.com/build-failure-on-OSX-10-9-td4659114.html
 <http://octave.1599824.n4.nabble.com/build-failure-on-OSX-10-9-td4659114.html>
http://savannah.gnu.org/bugs/?43243 <http://savannah.gnu.org/bugs/?43243>
​http://octave.1599824.n4.nabble.com/Building-3-8-0-on-Mountain-Lion-10-8-5-td4660795.html
 
<http://octave.1599824.n4.nabble.com/Building-3-8-0-on-Mountain-Lion-10-8-5-td4660795.html>

Software References:
https://www.gnu.org/software/octave/ <https://www.gnu.org/software/octave/>
https://www.macports.org <https://www.macports.org/>
https://www.gnu.org/software/gnulib/ <https://www.gnu.org/software/gnulib/>




_______________________________________________
QScintilla mailing list
[email protected]
https://www.riverbankcomputing.com/mailman/listinfo/qscintilla

Reply via email to