This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
c++/1584: Qt library crashes on sgi IRIX
- To: gcc-gnats at gcc dot gnu dot org
- Subject: c++/1584: Qt library crashes on sgi IRIX
- From: siggelkow at informatik dot uni-freiburg dot de
- Date: 8 Jan 2001 12:02:59 -0000
- Reply-To: siggelkow at informatik dot uni-freiburg dot de
>Number: 1584
>Category: c++
>Synopsis: Qt library crashes on sgi IRIX
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Mon Jan 08 04:06:01 PST 2001
>Closed-Date:
>Last-Modified:
>Originator: Sven Siggelkow, Freiburg University
>Release: gcc version 2.95.2 19991024 (release)
>Organization:
>Environment:
Manufacturer is sgi (Silicon Graphics, Inc.)
Number of CPUs is 2
CPU Type is mips R10000 2.7
App Architecture is mips
Kernel Architecture is IP30
OS Name is IRIX64
OS Version is 6.5
Kernel Version is IRIX Release 6.5 IP30 Version 04191312 System V (64 bit)
>Description:
All Qt- based programs compile well but when started they crash without any stack remaining.
I contacted Trolltech and we found out that probably the problem is the following (citing an email from them):
> I tried randomly several of the examples, always the same message in
> gdb: SIGSEGV, program no longer exists, although having debug enabled,
> see below.
This means that the error happens inside the initialization
code of some library, before entering main().
This suddenly reminds me of a similar crash we had on the
Irix/GCC platform with the OpenGL examples. This only happened
with the OpenGL examples only though. The fact that it happens
with the Designer is new to us.
The problem was that two C++ libraries were linked in, the
native SGI C++ library (libC.so) and the GCC C++ library
(libstdc++.so). This happened because libGLU.so is linked
with libC.so (it appears the GLU library contains C++ code
built with the native C++ compiler and even has a small C++
API extension):
$ ldd /usr/lib32/libGLU.so
libGL.so => /usr/lib32/libGL.so
libm.so => /usr/lib32/libm.so
libc.so.1 => /usr/lib32/libc.so.1
libC.so.2 => /usr/lib32/libC.so.2
libGLcore.so => /usr/lib32/libGLcore.so
libXsgivc.so => /usr/lib32/libXsgivc.so
libXext.so => /usr/lib32/libXext.so
libX11.so.1 => /usr/lib32/libX11.so.1
libvice.so => /usr/lib32/libvice.so
libdmedia.so => /usr/lib32/libdmedia.so
libmutex.so => /usr/lib32/libmutex.so
The SGI and GNU C++ libraries somehow interfere. This suggests
they use similar name-mangling or have initialization functions
with the same name. Which means that you cannot use the GNU
compiler for compiling on Irix (at least when using system
libraries linked with the native C++ library).
In fact all works fine when configuring with -no-opengl, which for the
moment is fine with me.
>How-To-Repeat:
Compile Qt-2.2.3 on SGI Irix
configure -platform irix-g++ -system-jpeg
>Fix:
not a fix, but it works when disabling GL extensions by configuring with -no-opengl
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/x-unknown-content-type-comfile; name="no attachments, just try compiling qt-2.2.3 from www.trolltech.com"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="no attachments, just try compiling qt-2.2.3 from www.trolltech.com"