Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-31948

Qt 4.8.x Solaris 10+11 Studi 12.3 lots of 3rdparty/javascriptcore/JavaScriptCore code non compliant

    XMLWordPrintable

Details

    • Bug
    • Resolution: Out of scope
    • Not Evaluated
    • None
    • 4.8.4
    • Other
    • None
    • solaris

    Description

      Solaris 10, Solaris 11, SPARC, i86pc
      Sun Studio 12.3 compiler
      gmake 3.82
      stdcxx 4.2.1
      
      The recipe so far:
      
          cd /var/tmp
          rm -rf /qt qt-qt
          gunzip -c /usr/local/src/graphics/qt-4.8.2013.06.24.tar.gz | gtar -xvf -
          cd qt-qt
          mkdir /qt
          /bin/perl -pe 's#/bin/sh#/bin/bash#'                              -i configure
          /bin/perl -pe 's#OPT_CONFIRM_LICENSE=no#OPT_CONFIRM_LICENSE=yes#' -i configure
      
          /bin/perl -pe 's#^QMAKE_INCDIR\s+=.*#QMAKE_INCDIR=/usr/local/include#'         -i mkspecs/solaris-cc/qmake.conf
          /bin/perl -pe 's#^QMAKE_LIBDIR\s+=.*#QMAKE_LIBDIR=/usr/local/lib#'             -i mkspecs/solaris-cc/qmake.conf
          /bin/perl -pe 's#^QMAKE_INCDIR_X11\s+=.*#QMAKE_INCDIR_X11=/usr/local/include#' -i mkspecs/solaris-cc/qmake.conf
          /bin/perl -pe 's#^QMAKE_LIBDIR_X11\s+=.*#QMAKE_LIBDIR_X11=/usr/local/lib#'     -i mkspecs/solaris-cc/qmake.conf
          /bin/perl -pe "s#^QMAKE_CC\s+=.*#QMAKE_CC=${CC}#"                              -i mkspecs/solaris-cc/qmake.conf
          /bin/perl -pe "s#^QMAKE_CXX\s+=.*#QMAKE_CXX=${CXX}#"                           -i mkspecs/solaris-cc/qmake.conf
          /bin/perl -pe "s#^QMAKE_LINK\s+=.*#QMAKE_LINK=${LINK}#"                        -i mkspecs/solaris-cc/qmake.conf
          /bin/perl -pe "s#^QMAKE_LINK_SHLIB\s+=.*#QMAKE_LINK_SHLIB=${LINK}#"            -i mkspecs/solaris-cc/qmake.conf
          /bin/perl -pe "s#^QMAKE_AR\s+=.*#QMAKE_AR=${AR} #"                             -i mkspecs/solaris-cc/qmake.conf
          /bin/perl -pe 's#canBuildWebKit=\"no\"#canBuildWebKit=\"yes\"#'                -i configure
          /bin/perl -pe 's#canBuildQtConcurrent=\"no\"#canBuildQtConcurrent=\"yes\"#'    -i configure
      
          ./configure -prefix /qt \
              -qpa xcb \
              -release \
              -opensource \
              -shared \
              -no-fast \
              -largefile \
              -no-system-proxies \
              -exceptions \
              -accessibility \
              -stl \
              -qt-sql-sqlite \
              -system-sqlite \
              -no-qt3support \
              -xmlpatterns \
              -multimedia \
              -audio-backend \
              -no-phonon \
              -phonon-backend \
              -svg \
              -webkit \
              -x11 \
              -no-javascript-jit \
              -script \
              -no-scripttools \
              -declarative \
              -platform solaris-cc \
              -no-mmx \
              -no-3dnow \
              -no-sse \
              -no-sse2 \
              -no-sse3 \
              -no-sse4.1 \
              -no-sse4.2 \
              -no-avx \
              -no-neon \
              -system-zlib \
              -system-libtiff \
              -system-libpng \
              -no-libmng \
              -system-libjpeg \
              -openssl \
              -nomake tests \
              -R /usr/local/lib \
              -I /usr/local/include \
              -L /usr/local/lib \
              -verbose \
              -no-cups \
              -iconv \
              -no-gtkstyle \
              -no-nas-sound \
              -sm \
              -xshape \
              -no-xvideo \
              -xsync \
              -xinerama \
              -xcursor \
              -xfixes \
              -no-xrandr \
              -xrender \
              -mitshm \
              -fontconfig \
              -no-xinput \
              -xkb \
              -no-glib \
              -confirm-license \
              -system-freetype
      
          foreach file (3rdparty/javascriptcore/JavaScriptCore/runtime/* 3rdparty/javascriptcore/JavaScriptCore/runtime/* 3rdparty/javascriptcore/JavaScriptCore/API/*)
              perl -pe 's#ENABLE\(GLIB_SUPPORT\)#0#' -i $file
              perl -pe 's#OS\(DARWIN\)#0#' -i $file
              perl -pe 's#OS\(WINCE\)#0#' -i $file
              perl -pe 's#OS\(WINDOWS\)#0#' -i $file
              perl -pe 's#OS\(SYMBIAN\)#0#' -i $file
              perl -pe 's#OS\(OPENBSD\)#0#' -i $file
              perl -pe 's#OS\(QNX\)#0#' -i $file
              perl -pe 's#OS\(ANDROID\)#0#' -i $file
              perl -pe 's#OS\(RVCT\)#0#' -i $file
              perl -pe 's#OS\(FREEBSD\)#0#' -i $file
              perl -pe 's#OS\(HAIKU\)#0#' -i $file
              perl -pe 's#OS\(NETBSD\)#0#' -i $file
              perl -pe 's#OS\(MAC_OS_X\)#0#' -i $file
              perl -pe 's#OS\(IOS\)#0#' -i $file
              perl -pe 's#OS\(AIX\)#0#' -i $file
              perl -pe 's#OS\(LINUX\)#0#' -i $file
              perl -pe 's#OS\(UNIX\)#1#' -i $file
              perl -pe 's#OS\(SOLARIS\)#1#' -i $file
              perl -pe 's#PLATFORM\(BREWMP\)#0#' -i $file
              perl -pe 's#PLATFORM\(MAC\)#0#' -i $file
              perl -pe 's#PLATFORM\(WIN\)#0#' -i $file
              perl -pe 's#PLATFORM\(CHROMIUM\)#0#' -i $file
              perl -pe 's#PLATFORM\(WX\)#0#' -i $file
              perl -pe 's#PLATFORM\(GTK\)#0#' -i $file
              perl -pe 's#COMPILER\(MSVC\)#0#' -i $file
              perl -pe 's#COMPILER\(MINGW\)#0#' -i $file
              perl -pe 's#COMPILER\(GCC\)#0#' -i $file
          end
          perl -pe '($. == 28) && s/^/#include "DateConversion.h"\n#include "DateInstance.h"/' -i 3rdparty/javascriptcore/JavaScriptCore/runtime/DateInstanceCache.h
          foreach file (3rdparty/javascriptcore/JavaScriptCore/runtime/*)
              perl -pe 's#JS_EXPORTDATA#__declspec(dllexport)#' -i $file
          end
          gmake
      
      

      Not sure what component JavaScriptCore belongs under.

      Needing to compile wkhtmltopdf which requires Qt with webkit.

      We use the Sun Studio 12.3 compiler on Solaris 10 & 11 SPARC and i86pc.

      I've downloaded Qt 5 and Qt 4.8.4 and the latest Qt 4.8 tar.gz from the source tree as of today. This bug is against that source tree.

      The whole Qt tree except the JavaScriptCore sub-branch compiles fine.. it's 95% finished which is very frustrating as the last 5% has wasted a week trying to port.

      The Studio compiler is much more adherent to the standard than the more lax gcc. What is let through on gcc will result in compile errors on Studio. Essentially the whole JavaScriptCore tree is a lot of non compliant code which I've been trying to get working. I don't know C++ though so it's tediously slow googling every error and looking for solutions.

      The latest one that I can't figure out is this one:

      gmake[1]: Entering directory `/var/tmp/qt-qt/src/script'
      CC -I/usr/local/include -mt -library=no%Cstd -L/usr/local/lib -lstdcxx4 -DUSE_SYSTEM_MALLOC -c -I/usr/local/include -mt -library=no%Cstd -L/usr/local/lib -lstdcxx4 -DUSE_SYSTEM_MALLOC -I/usr/local/include -O2 -mt -KPIC -DQT_SHARED -DJSC=QTJSC -Djscyyparse=qtjscyyparse -Djscyylex=qtjscyylex -Djscyyerror=qtjscyyerror -DWTF=QTWTF -DQT_BUILD_SCRIPT_LIB -DQT_NO_USING_NAMESPACE -DQLALR_NO_QSCRIPTGRAMMAR_DEBUG_INFO -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DBUILDING_QT_=1 -DWTF_USE_ACCELERATED_COMPOSITING -DNDEBUG -DBUILDING_QT_ -DBUILDING_JavaScriptCore -DBUILDING_WTF -DENABLE_JIT=0 -DENABLE_YARR_JIT=0 -DENABLE_YARR=0 -DWTF_USE_JAVASCRIPTCORE_BINDINGS=1 -DWTF_CHANGES=1 -DNDEBUG -DJS_NO_EXPORT -DQT_NO_DEBUG -DQT_CORE_LIB -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I../../mkspecs/solaris-cc -I. -I../../include/QtCore -I../../include -I../3rdparty/javascriptcore/JavaScriptCore -I../3rdparty/javascriptcore -I../3rdparty/javascriptcore/JavaScriptCore/assembler -I../3rdparty/javascriptcore/JavaScriptCore/bytecode -I../3rdparty/javascriptcore/JavaScriptCore/bytecompiler -I../3rdparty/javascriptcore/JavaScriptCore/debugger -I../3rdparty/javascriptcore/JavaScriptCore/interpreter -I../3rdparty/javascriptcore/JavaScriptCore/jit -I../3rdparty/javascriptcore/JavaScriptCore/parser -I../3rdparty/javascriptcore/JavaScriptCore/pcre -I../3rdparty/javascriptcore/JavaScriptCore/profiler -I../3rdparty/javascriptcore/JavaScriptCore/runtime -I../3rdparty/javascriptcore/JavaScriptCore/wrec -I../3rdparty/javascriptcore/JavaScriptCore/wtf -I../3rdparty/javascriptcore/JavaScriptCore/wtf/symbian -I../3rdparty/javascriptcore/JavaScriptCore/wtf/unicode -I../3rdparty/javascriptcore/JavaScriptCore/yarr -I../3rdparty/javascriptcore/JavaScriptCore/API -I../3rdparty/javascriptcore/JavaScriptCore/ForwardingHeaders -I../3rdparty/javascriptcore/JavaScriptCore/generated -I../../include/QtScript -I.rcc/release-shared -I/var/tmp/qt-qt/src/3rdparty/javascriptcore/WebKit/qt/Api -I../3rdparty/javascriptcore/JavaScriptCore/pcre -I/var/tmp/qt-qt/src/3rdparty/javascriptcore/JavaScriptCore/tmp -I../3rdparty/javascriptcore/JavaScriptCore -I../3rdparty/javascriptcore/JavaScriptCore/parser -I../3rdparty/javascriptcore/JavaScriptCore/bytecompiler -I../3rdparty/javascriptcore/JavaScriptCore/debugger -I../3rdparty/javascriptcore/JavaScriptCore/runtime -I../3rdparty/javascriptcore/JavaScriptCore/wtf -I/var/tmp/qt-qt/src/script/../3rdparty/javascriptcore/JavaScriptCore/unicode -I../3rdparty/javascriptcore/JavaScriptCore/interpreter -I../3rdparty/javascriptcore/JavaScriptCore/jit -I../3rdparty/javascriptcore/JavaScriptCore/profiler -I../3rdparty/javascriptcore/JavaScriptCore/wrec -I../3rdparty/javascriptcore/JavaScriptCore/API -I../3rdparty/javascriptcore/JavaScriptCore/bytecode -I../3rdparty/javascriptcore/JavaScriptCore/assembler -I../3rdparty/javascriptcore/JavaScriptCore/generated -I. -Iparser -I.moc/release-shared -I/usr/local/include -o obj/release/JSBase.o ../3rdparty/javascriptcore/JavaScriptCore/API/JSBase.cpp
      "../3rdparty/javascriptcore/JavaScriptCore/runtime/UStringImpl.h", line 164: Warning: Identifier expected instead of "}".
      "../3rdparty/javascriptcore/JavaScriptCore/runtime/ScopeChain.h", line 120: Warning: next hides QTJSC::ScopeChainNode::next.
      "../3rdparty/javascriptcore/JavaScriptCore/runtime/ScopeChain.h", line 134: Warning: Questionable return type for QTJSC::ScopeChainIterator::operator->() const.
      "../3rdparty/javascriptcore/JavaScriptCore/interpreter/CallFrame.h", line 87: Warning: Implicit int is not supported in C++.
      "../3rdparty/javascriptcore/JavaScriptCore/interpreter/CallFrame.h", line 87: Error: "," expected instead of "&".
      "../3rdparty/javascriptcore/JavaScriptCore/interpreter/CallFrame.h", line 88: Error: Use ";" to terminate declarations.
      "../3rdparty/javascriptcore/JavaScriptCore/interpreter/CallFrame.h", line 94: Warning: Implicit int is not supported in C++.
      "../3rdparty/javascriptcore/JavaScriptCore/interpreter/CallFrame.h", line 94: Error: "," expected instead of "*".
      "../3rdparty/javascriptcore/JavaScriptCore/interpreter/CallFrame.h", line 95: Error: Use ";" to terminate declarations.
      "../3rdparty/javascriptcore/JavaScriptCore/interpreter/CallFrame.h", line 95: Warning: Implicit int is not supported in C++.
      "../3rdparty/javascriptcore/JavaScriptCore/interpreter/CallFrame.h", line 95: Error: Multiple declaration for HashTable.
      "../3rdparty/javascriptcore/JavaScriptCore/interpreter/CallFrame.h", line 95: Error: "," expected instead of "*".
      "../3rdparty/javascriptcore/JavaScriptCore/interpreter/CallFrame.h", line 96: Error: Use ";" to terminate declarations.
      "../3rdparty/javascriptcore/JavaScriptCore/interpreter/CallFrame.h", line 96: Warning: Implicit int is not supported in C++.
      "../3rdparty/javascriptcore/JavaScriptCore/interpreter/CallFrame.h", line 96: Error: Multiple declaration for HashTable.
      "../3rdparty/javascriptcore/JavaScriptCore/interpreter/CallFrame.h", line 96: Error: "," expected instead of "*".
      "../3rdparty/javascriptcore/JavaScriptCore/interpreter/CallFrame.h", line 97: Error: Use ";" to terminate declarations.
      "../3rdparty/javascriptcore/JavaScriptCore/interpreter/CallFrame.h", line 97: Warning: Implicit int is not supported in C++.
      "../3rdparty/javascriptcore/JavaScriptCore/interpreter/CallFrame.h", line 97: Error: Multiple declaration for HashTable.
      "../3rdparty/javascriptcore/JavaScriptCore/interpreter/CallFrame.h", line 97: Error: "," expected instead of "*".
      "../3rdparty/javascriptcore/JavaScriptCore/interpreter/CallFrame.h", line 98: Error: Use ";" to terminate declarations.
      "../3rdparty/javascriptcore/JavaScriptCore/interpreter/CallFrame.h", line 98: Warning: Implicit int is not supported in C++.
      "../3rdparty/javascriptcore/JavaScriptCore/interpreter/CallFrame.h", line 98: Error: Multiple declaration for HashTable.
      "../3rdparty/javascriptcore/JavaScriptCore/interpreter/CallFrame.h", line 98: Error: "," expected instead of "*".
      "../3rdparty/javascriptcore/JavaScriptCore/interpreter/CallFrame.h", line 99: Error: Use ";" to terminate declarations.
      "../3rdparty/javascriptcore/JavaScriptCore/interpreter/CallFrame.h", line 99: Warning: Implicit int is not supported in C++.
      "../3rdparty/javascriptcore/JavaScriptCore/interpreter/CallFrame.h", line 99: Error: Multiple declaration for HashTable.
      "../3rdparty/javascriptcore/JavaScriptCore/interpreter/CallFrame.h", line 99: Error: "," expected instead of "*".
      "../3rdparty/javascriptcore/JavaScriptCore/interpreter/CallFrame.h", line 100: Error: Use ";" to terminate declarations.
      "../3rdparty/javascriptcore/JavaScriptCore/interpreter/CallFrame.h", line 100: Warning: Implicit int is not supported in C++.
      "../3rdparty/javascriptcore/JavaScriptCore/interpreter/CallFrame.h", line 100: Error: Multiple declaration for HashTable.
      "../3rdparty/javascriptcore/JavaScriptCore/interpreter/CallFrame.h", line 100: Error: "," expected instead of "*".
      "../3rdparty/javascriptcore/JavaScriptCore/interpreter/CallFrame.h", line 101: Error: Use ";" to terminate declarations.
      "../3rdparty/javascriptcore/JavaScriptCore/interpreter/CallFrame.h", line 101: Warning: Implicit int is not supported in C++.
      "../3rdparty/javascriptcore/JavaScriptCore/interpreter/CallFrame.h", line 101: Error: Multiple declaration for HashTable.
      "../3rdparty/javascriptcore/JavaScriptCore/interpreter/CallFrame.h", line 101: Error: "," expected instead of "*".
      "../3rdparty/javascriptcore/JavaScriptCore/interpreter/CallFrame.h", line 103: Error: Use ";" to terminate declarations.
      Compilation aborted, too many Error messages.
      gmake[1]: *** [obj/release/JSBase.o] Error 2
      gmake[1]: Leaving directory `/var/tmp/qt-qt/src/script'
      gmake: *** [sub-script-make_default-ordered] Error 2

      host:/var/tmp/qt-qt/src root# cat -n 3rdparty/javascriptcore/JavaScriptCore/interpreter/CallFrame.h

      85 JSValue* exceptionSlot()

      { return &globalData().exception; }

      86 bool hadException() const

      { return globalData().exception; }

      87
      88 const CommonIdentifiers& propertyNames() const

      { return *globalData().propertyNames; }

      89 const MarkedArgumentBuffer& emptyList() const

      { return *globalData().emptyList; }

      90 Interpreter* interpreter()

      { return globalData().interpreter; }

      91 Heap* heap()

      { return &globalData().heap; }

      92 #ifndef NDEBUG
      93 void dumpCaller();
      94 #endif
      95 static const HashTable* arrayTable(CallFrame* callFrame)

      { return callFrame->globalData().arrayTable; }

      96 static const HashTable* dateTable(CallFrame* callFrame)

      { return callFrame->globalData().dateTable; }

      97 static const HashTable* jsonTable(CallFrame* callFrame)

      { return callFrame->globalData().jsonTable; }

      98 static const HashTable* mathTable(CallFrame* callFrame)

      { return callFrame->globalData().mathTable; }

      99 static const HashTable* numberTable(CallFrame* callFrame)

      { return callFrame->globalData().numberTable; }

      100 static const HashTable* regExpTable(CallFrame* callFrame)

      { return callFrame->globalData().regExpTable; }

      101 static const HashTable* regExpConstructorTable(CallFrame* callFrame)

      { return callFrame->globalData().regExpConstructorTable; }

      102 static const HashTable* stringTable(CallFrame* callFrame)

      { return callFrame->globalData().stringTable; }

      103

      What can I alter those lines (88 -> 103) to to make them compliant to the C++ standard?

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            macadder Jason McDonald
            marksolaris Mark Solaris
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes