Menu

#718 Internal Compiler error when building Qt

v1.0 (example)
closed-works-for-me
nobody
None
5
2018-04-09
2018-04-06
No

This bug is related to the issue #714.
In this issue, i proposed to Qt to update them configuration and building scripts (see configure script ).
But, them tries to compile Qt with official packages ( at least i686-7.3.0-release-win32-sjlj-rt_v5-rev0.7z official package ) fails due to an internal compiler error in qsizetype qt_random_cpu(void*, qsizetype)' at global\qrandom.cpp:121:1 regardless of the MINGW_HAS_SECURE_API define.

Discussion

  • niXman

    niXman - 2018-04-06

    philippe dunski 2018-04-06 17:10:

    Hi,

    at global\qrandom.cpp:121

    Where can I see this file?

    --
    Regards, niXman


    Work for Bitcoins


    Dual-target(32 & 64-bit) MinGW-W64 compilers for 32 and 64-bit Windows:
    https://sf.net/p/mingw-w64/

     
  • philippe dunski

    philippe dunski - 2018-04-06

    Ooppsss... Sorry. Here is it
    It seems to be a problem with a label used by goto :P

     

    Last edit: philippe dunski 2018-04-06
    • niXman

      niXman - 2018-04-06

      philippe dunski 2018-04-06 17:26:

      Ooppsss... Sorry. Here is it

      Attachments:

      -
      qrandom.cpp
      (51.0 kB; text/plain)

      Try to change this file like this: see attach

      --
      Regards, niXman


      Work for Bitcoins


      Dual-target(32 & 64-bit) MinGW-W64 compilers for 32 and 64-bit Windows:
      https://sf.net/p/mingw-w64/

       
  • niXman

    niXman - 2018-04-06

    philippe dunski 2018-04-06 17:10:

    But, them tries to compile Qt with official packages ( at least
    i686-7.3.0-release-win32-sjlj-rt_v5-rev0.7z official package )

    As far as I can remember, they use builds with DWARF exceptions, not
    sjlj.
    i.e.: i686-7.3.0-release-win32-dwarf-rt_v5-rev0.7z

    --
    Regards, niXman


    Work for Bitcoins


    Dual-target(32 & 64-bit) MinGW-W64 compilers for 32 and 64-bit Windows:
    https://sf.net/p/mingw-w64/

     
  • philippe dunski

    philippe dunski - 2018-04-06

    I'm just the messenger, here... Friedemann Kleint tolk me about sjlj. I'm just copying what he said ;) Here is the ticket on Qt's bugtracker.
    I was on the way to make different tries to see if one of the official package may be used. Your info makes me begin by dwarf and seh versions ;)

     

    Last edit: philippe dunski 2018-04-06
  • philippe dunski

    philippe dunski - 2018-04-07

    Hi niXman,
    You were right: all non sjlj packages compile the Qt framework fine, with both win32 and linux threads support.
    I have just a last problem for two of its modules, whose are using std::future : the complete definition of this class is protected by both
    #if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1)
    and
    #ifndef _GLIBCXX_ASYNC_ABI_COMPAT
    In your opinion, which official package would it be best to add the missing definition (if there is one, of course)?
    Because, we can avoid those modules to be build, but they provide some web engine utilities, and people will be glad to use them...

     
    • niXman

      niXman - 2018-04-07

      philippe dunski 2018-04-07 14:28:

      Hi,

      Hi niXman,
      You were right: all non sjlj packages compile the Qt framework fine,
      with both win32 and linux threads support.
      pthreads - posix threads, not linux threads ;)

      I have just a last problem for two of its modules, whose are using
      std::future : the
      complete definition of this class is protected by both
      #if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1)
      and
      #ifndef _GLIBCXX_ASYNC_ABI_COMPAT
      where can you see this #ifdefs?

      --
      Regards, niXman


      Work for Bitcoins


      Dual-target(32 & 64-bit) MinGW-W64 compilers for 32 and 64-bit Windows:
      https://sf.net/p/mingw-w64/

       
  • philippe dunski

    philippe dunski - 2018-04-07

    In the future C++ header file, on line 195 for #if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1)
    and on line 655 for #ifndef _GLIBCXX_ASYNC_ABI_COMPAT.
    In this file, we have one accessible without any condition pre declaration of the template <>future class (in line 127) , but its complete definition is protected by those two conditions...

     
    • niXman

      niXman - 2018-04-07

      philippe dunski 2018-04-07 17:50:

      In the future C++ header file, on line 195 for #if
      defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1)
      and on line 655 for #ifndef _GLIBCXX_ASYNC_ABI_COMPAT.
      In this file, we have one accessible without any condition pre
      declaration of the template <>future class (in line 127) , but its
      complete definition is protected by those two conditions...

      in order to use 'std Thread support
      library'(http://en.cppreference.com/w/cpp/thread) you should to use
      MingW-W64 builds with 'posix' threads.

      --
      Regards, niXman


      Work for Bitcoins


      Dual-target(32 & 64-bit) MinGW-W64 compilers for 32 and 64-bit Windows:
      https://sf.net/p/mingw-w64/

       
  • philippe dunski

    philippe dunski - 2018-04-08

    It is effectively what i have expected...
    I'm trying for now to compile with the x86_64-7.3.0-release-posix-seh-rt_v5-rev0 package, and the _GLIBCXX_HAS_GTHREADS explicitely defined in the conf file be sure that everything will compile fine...
    In a second time, I will try with the i686-7.3.0-release-posix-sjlj-rt_v5-rev0 .
    If everything works well (Who knows... i could have other suprises :D ) , i will close this issue and send a complete report to Qt

     
  • philippe dunski

    philippe dunski - 2018-04-09

    As all tests i done confirm that <future> Qt dependant module can build with the non sjlj, posix threads packages, i close this issue.
    There is just a last problem to resolve for configuration, but it depends on Qt team ;)
    Thx a lot for your help ;)

     
  • philippe dunski

    philippe dunski - 2018-04-09
    • status: open --> closed-works-for-me
     

Log in to post a comment.