PDA

View Full Version : Cross Compiling Qtopia with SH4 and ended up with segfault, please help



nkans
7th November 2006, 04:19
Hi,

I have specified the architecture specific files for SH4 to cross compile QT.
Compilation and building the libraries works fine and when i execute a sample program or tutorial in the SH4 target I get segmentation fault.

Here is what i have tried to debug it.

When i try to add debug information to the QtLibraries, the binary file size comes to around 93MB size. I can successfully load it to the target. When i try to execute, i still get segmentation fault and no active debug information is reported. Also, when i load with gdb, gdb finds insufficient memory and could not load the program for execution. I really dunno how to debug it.

I first want to confirm whether the architecture specific configuration is good,

Qtopia root directory,

created mkspecs/qws/linux-sh4-g++

inside it has two files,

qmake.conf

MAKEFILE_GENERATOR = UNIX
TEMPLATE = app
CONFIG += qt warn_on release link_prl
QT += core gui network
QMAKE_INCREMENTAL_STYLE = sublib

QMAKE_CC = /opt/STM/STLinux-2.0/devkit/sh4/bin/sh4-linux-gcc
QMAKE_LEX = flex
QMAKE_LEXFLAGS =
QMAKE_YACC = yacc
QMAKE_YACCFLAGS = -d
QMAKE_CFLAGS = -pipe
QMAKE_CFLAGS_WARN_ON = -Wall -w
QMAKE_CFLAGS_WARN_OFF = -w
QMAKE_CFLAGS_RELEASE = -O2
QMAKE_CFLAGS_DEBUG = -g
QMAKE_CFLAGS_SHLIB = -fPIC
QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
QMAKE_CFLAGS_THREAD = -D_REENTRANT
QMAKE_CFLAGS_HIDESYMS = -fvisibility=hidden

QMAKE_CXX = /opt/STM/STLinux-2.0/devkit/sh4/bin/sh4-linux-g++
QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB
QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
QMAKE_CXXFLAGS_HIDESYMS = $$QMAKE_CFLAGS_HIDESYMS -fvisibility-inlines-hidden

QMAKE_INCDIR =
QMAKE_LIBDIR = /opt/STM/STLinux-2.0/devkit/sh4/target/usr/lib
QMAKE_INCDIR_X11 =
QMAKE_LIBDIR_X11 =
QMAKE_INCDIR_QT = $$[QT_INSTALL_HEADERS]
QMAKE_LIBDIR_QT = $$[QT_INSTALL_LIBS]

QMAKE_INCDIR =
QMAKE_LIBDIR = /opt/STM/STLinux-2.0/devkit/sh4/target/usr/lib
QMAKE_INCDIR_X11 =
QMAKE_LIBDIR_X11 =
QMAKE_INCDIR_QT = $$[QT_INSTALL_HEADERS]
QMAKE_LIBDIR_QT = $$[QT_INSTALL_LIBS]
QMAKE_INCDIR_OPENGL =
QMAKE_LIBDIR_OPENGL =
QMAKE_INCDIR_QTOPIA = $(QPEDIR)/include
QMAKE_LIBDIR_QTOPIA = $(QPEDIR)/lib

QMAKE_LINK = /opt/STM/STLinux-2.0/devkit/sh4/bin/sh4-linux-g++
QMAKE_LINK_SHLIB = /opt/STM/STLinux-2.0/devkit/sh4/bin/sh4-linux-g++
QMAKE_LFLAGS =
QMAKE_LFLAGS_RELEASE =
QMAKE_LFLAGS_DEBUG =
QMAKE_LFLAGS_SHLIB = -shared
QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
QMAKE_LFLAGS_SONAME = -Wl,-soname,
QMAKE_LFLAGS_THREAD =
QMAKE_RPATH = -Wl,-rpath,

QMAKE_LIBS =
QMAKE_LIBS_DYNLOAD = -ldl
QMAKE_LIBS_X11 =
QMAKE_LIBS_X11SM =
QMAKE_LIBS_QT = -lqte
QMAKE_LIBS_QT_THREAD = -lqte-mt
QMAKE_LIBS_QT_OPENGL = -lqgl
QMAKE_LIBS_QTOPIA = -lqpe -lqtopia
QMAKE_LIBS_THREAD = -lpthread

QMAKE_MOC = $$[QT_INSTALL_BINS]/moc
QMAKE_UIC = $$[QT_INSTALL_BINS]/uic

QMAKE_AR = /opt/STM/STLinux-2.0/devkit/sh4/bin/sh4-linux-ar cqs
QMAKE_RANLIB = /opt/STM/STLinux-2.0/devkit/sh4/bin/sh4-linux-ranlib

QMAKE_COPY = cp -f
QMAKE_MOVE = mv -f
QMAKE_DEL_FILE = rm -f
QMAKE_DEL_DIR = rmdir
QMAKE_STRIP = /opt/STM/STLinux-2.0/devkit/sh4/bin/sh4-linux-strip
QMAKE_CHK_DIR_EXISTS = test -d
QMAKE_MKDIR = mkdir -p
load(qt_config)


Second File is,

qplatformdefs.h

#include "../../linux-g++/qplatformdefs.h"

Let me know if i need ti modify anything on the above files.

Thanks.
Kannaiyan

wysota
19th January 2007, 12:27
When i try to add debug information to the QtLibraries, the binary file size comes to around 93MB size. I can successfully load it to the target. When i try to execute, i still get segmentation fault and no active debug information is reported. Also, when i load with gdb, gdb finds insufficient memory and could not load the program for execution. I really dunno how to debug it.
Maybe it dumps a core which you could debug?