segmentation fault at graphics_system_name.isEmpty()
-
I have ported Qt 4.8.6 to sparc linux.as per my knowledge Sparc and Linux support is not available in qws folder.
I have copied linux-generic-g++ to linux-sparc-g++ and changed qmake.conf as per my toolchain functionality as shown below.qmake configuration for building with g++
include(../../common/linux.conf)
include(../../common/gcc-base-unix.conf)
include(../../common/g++-unix.conf)
#include (../../common/gcc-base-.conf)
#include(../../common/g++.conf)
include(../../common/qws.conf)modifications to g++.conf
#Toolchain
#Compiler Flags to take advantage of the sparc architecture
QMAKE_CFLAGS_RELEASE = -nostdlib -nostartfiles -shared
QMAKE_CXXFLAGS_RELEASE = -nostdlib -nostartfiles -shared
QMAKE_LFLAGS_RELEASE = -nostdlib -nostartfiles -sharedQMAKE_CC = sparc-elf-gcc
QMAKE_CXX = sparc-elf-g++
QMAKE_LINK = sparc-elf-g++
QMAKE_LINK_SHLIB = sparc-elf-g++modifications to linux.conf
QMAKE_AR = sparc-elf-ar cqs
QMAKE_OBJCOPY = sparc-elf-objcopy
QMAKE_STRIP = sparc-elf-stripload(qt_config)
After this I have configured with below configuration feature
./configure -verbose -opensource -confirm-license -no-qt3support -no-glib -depths 32 -qt-gfx-vnc -no-gfx-qvfb -no-gfx-multiscreen -no-gfx-directfb -debug -shared -embedded sparc -platform qws/linux-x86_64-g++ -xplatform qws/linux-sparc-g++ -host-little-endian -little-endian -no-openssl -no-opengl -no-sql-sqlite -no-xmlpatterns -no-multimedia -no-audio-backend -no-phonon -no-script -no-phonon-backend -no-svg -multimedia -no-webkit -nomake demos -no-separate-debug-info -prefix /usr/local/ -plugindir /usr/local/plugins -importdir /usr/local/imports -translationdir /usr/local/translations -no-rpathI have successfully crated all shared library and copied into my board /lib/ path
Now my plan is to run analogclock example on board using below command(I don't have display that's what I am using VNC display)
./analogclock -qws -display VNC:0analogclock[120]: segfault at 8 ip 5019b06c (rpc f000eff0) sp ef82cae8 error 30001 in libQtGui.so.4.8.6[50017000+10cb000]
Segmentation faultI am getting segmentation fault when graphics_system_name.isEmpty(); in src/gui/kernel/qapplication.cpp file is invoked.
After debugging I found that global "QString QApplicationPrivate::graphics_system_name;" object is created successfully with valid address 0x5143a400.
However I could not access any QString member functions such as (graphics_system_name.data(), graphics_system_name.size().....)I have ported Qt 4.8.6 to sparc linux.as per my knowledge Sparc and Linux support is not available in qws folder.
I have copied linux-generic-g++ to linux-sparc-g++ and changed qmake.conf as per my toolchain functionality as shown below.qmake configuration for building with g++
include(../../common/linux.conf)
include(../../common/gcc-base-unix.conf)
include(../../common/g++-unix.conf)
#include (../../common/gcc-base-.conf)
#include(../../common/g++.conf)
include(../../common/qws.conf)modifications to g++.conf
#Toolchain
#Compiler Flags to take advantage of the sparc architecture
QMAKE_CFLAGS_RELEASE = -nostdlib -nostartfiles -shared
QMAKE_CXXFLAGS_RELEASE = -nostdlib -nostartfiles -shared
QMAKE_LFLAGS_RELEASE = -nostdlib -nostartfiles -sharedQMAKE_CC = sparc-elf-gcc
QMAKE_CXX = sparc-elf-g++
QMAKE_LINK = sparc-elf-g++
QMAKE_LINK_SHLIB = sparc-elf-g++modifications to linux.conf
QMAKE_AR = sparc-elf-ar cqs
QMAKE_OBJCOPY = sparc-elf-objcopy
QMAKE_STRIP = sparc-elf-stripload(qt_config)
After this I have configured with below configuration feature
./configure -verbose -opensource -confirm-license -no-qt3support -no-glib -depths 32 -qt-gfx-vnc -no-gfx-qvfb -no-gfx-multiscreen -no-gfx-directfb -debug -shared -embedded sparc -platform qws/linux-x86_64-g++ -xplatform qws/linux-sparc-g++ -host-little-endian -little-endian -no-openssl -no-opengl -no-sql-sqlite -no-xmlpatterns -no-multimedia -no-audio-backend -no-phonon -no-script -no-phonon-backend -no-svg -multimedia -no-webkit -nomake demos -no-separate-debug-info -prefix /usr/local/ -plugindir /usr/local/plugins -importdir /usr/local/imports -translationdir /usr/local/translations -no-rpathI have successfully crated all shared library and copied into my board /lib/ path
Now my plan is to run analogclock example on board using below command(I don't have display that's what I am using VNC display)
./analogclock -qws -display VNC:0analogclock[120]: segfault at 8 ip 5019b06c (rpc f000eff0) sp ef82cae8 error 30001 in libQtGui.so.4.8.6[50017000+10cb000]
Segmentation faultI am getting segmentation fault when graphics_system_name.isEmpty(); in src/gui/kernel/qapplication.cpp file is invoked.
After debugging I found that global "QString QApplicationPrivate::graphics_system_name;" object is created successfully with valid address 0x5143a400.
However I could not access any QString member functions such as (graphics_system_name.data(), graphics_system_name.size().....)if I create local QString class object,it is working fine.if global segmentation fault.
Please help me....
Thanks
Manjunath Goudar