Menu

#84 toextract.cpp fails on OS X 10.9 (missing #include unistd.h)

None
closed-fixed
None
5
2016-02-26
2014-08-10
No

On OS X 10.9, with clang++ as the default C++ compiler, tora 2.1.3 fails with this error:

cd /sw/build.build/tora-2.1.3-1/tora-2.1.3/finkbuild/src && /sw/var/lib/fink/path-prefix-clang/c++ -DCMAKE_BUILD -DHAVE_CONFIG_H -DHAVE_DLFCN_H -DHAVE_UNISTD_H -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_THREAD_LIB -DQT_XML_LIB -DTOMONOLITHIC -DTO_NO_ORACLE -MD -O3 -DNDEBUG -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -mmacosx-version-min=10.9 -I/sw/build.build/tora-2.1.3-1/tora-2.1.3/finkbuild/src -I/sw/build.build/tora-2.1.3-1/tora-2.1.3/src -isystem /sw/lib/qt4-mac/include -F/sw/lib/qt4-mac/lib -isystem /sw/lib/qt4-mac/include/QtGui -isystem /sw/lib/qt4-mac/include/QtXml -isystem /sw/lib/qt4-mac/include/QtSql -isystem /sw/lib/qt4-mac/include/QtNetwork -isystem /sw/lib/qt4-mac/lib/QtCore.framework/Headers -I/sw/build.build/tora-2.1.3-1/tora-2.1.3 -I/sw/build.build/tora-2.1.3-1/tora-2.1.3/finkbuild -I/sw/lib/qt4-mac/include/QtDesigner -I/sw/lib/qt4-mac/include/QtDeclarative -I/sw/lib/qt4-mac/include/QtScriptTools -I/sw/lib/qt4-mac/include/QtDBus -I/sw/lib/qt4-mac/include/QtOpenGL -I/sw/lib/qt4-mac/include/QtMultimedia -I/sw/lib/qt4-mac/include/QtXmlPatterns -I/sw/lib/qt4-mac/include/QtWebKit -I/sw/lib/qt4-mac/include/QtHelp -I/sw/lib/qt4-mac/include/QtUiTools -I/sw/lib/qt4-mac/include/QtTest -I/sw/lib/qt4-mac/include/QtScript -I/sw/lib/qt4-mac/include/QtSvg -I/sw/lib/qt4-mac/include/Qt3Support -I/sw/lib/qt4-mac/share/qt4/mkspecs/default -I/sw/build.build/tora-2.1.3-1/tora-2.1.3/src/loki/include -I/sw/build.build/tora-2.1.3-1/tora-2.1.3/src/otl -I/sw/lib/qt4-mac/include/Qsci -DTOVERSION=\"2.1.3\" -DDEFAULT_PLUGIN_DIR=\"/sw/share/tora/\" -DQT -DSCI_LEXER -o CMakeFiles/TOra.dir/toextract.o -c /sw/build.build/tora-2.1.3-1/tora-2.1.3/src/toextract.cpp
/sw/build.build/tora-2.1.3-1/tora-2.1.3/src/toextract.cpp:690:5: error: use of undeclared identifier 'gethostname'
gethostname(host, 1024);
^

unistd.h is no longer #included through other headers and must be explicitly #included:

diff -ruN tora-2.1.3-orig/src/toextract.cpp tora-2.1.3/src/toextract.cpp
--- tora-2.1.3-orig/src/toextract.cpp   2010-02-02 12:25:43.000000000 -0600
+++ tora-2.1.3/src/toextract.cpp    2014-08-10 07:16:31.000000000 -0500
@@ -46,6 +46,9 @@
 #include "toextract.h"

 #include <stdio.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif

 #include <qapplication.h>
 #include <qlabel.h>

Related

Bugs: #881

Discussion

  • Hanspeter Niederstrasser

    Turns out src/toreport.cpp also needs to explicitly #include <unistd.h>

    diff -ruNp tora-2.1.3-orig/src/toextract.cpp tora-2.1.3/src/toextract.cpp
    --- tora-2.1.3-orig/src/toextract.cpp   2010-02-02 12:25:43.000000000 -0600
    +++ tora-2.1.3/src/toextract.cpp    2014-08-16 20:03:11.000000000 -0500
    @@ -45,6 +45,10 @@
     #include "toconnection.h"
     #include "toextract.h"
    
    +#ifdef HAVE_UNISTD_H
    +#include <unistd.h>
    +#endif
    +
     #include <stdio.h>
    
     #include <qapplication.h>
    --- a/src/toreport.cpp  2010-01-14 10:39:02.000000000 -0600
    +++ b/src/toreport.cpp  2015-03-08 21:15:09.000000000 -0500
    @@ -47,6 +47,10 @@
     #include "toextract.h"
     #include "toreport.h"
    
    +#ifdef HAVE_UNISTD_H
    +#include <unistd.h>
    +#endif
    +
     #include <qapplication.h>
     #include <qdatetime.h>
     #ifdef Q_OS_WIN32
    
     
  • Ivan Brezina

    Ivan Brezina - 2016-02-26
    • status: open --> closed-fixed
    • assigned_to: Ivan Brezina
    • Group: -->
     
  • Ivan Brezina

    Ivan Brezina - 2016-02-26

    this should work now

     

Log in to post a comment.