Imagination PowerVR SDK Blog

Maemo 5 libstdc++, CXXABI_ARM_1.3.3 not found.


#1

Hi!





I’m having problems trying to build a runnable binary with some of the lessons and demos.





I can build and run the first 5 lessons in the SDK’s TrainingCourse directory, but run into problems with lesson 6.





The build process completes, but when I try and run the executable on the target platform (a Noka N900), I get:





/home/user/OGLES2IntroducingPVRTools: /usr/lib/libstdc++.so.6: version `CXXABI_ARM_1.3.3’ not found (required by /home/user/OGLES2IntroducingPVRTools)





My build environment is Centos 5.3, where I’ve installed the madde dev tool ( http://wiki.maemo.org/MADDE )





I’m using the arm-2009q1-203-arm-none-linux-gnueabi_linux toolchain and the libs provided with madde, controlled by CentOS’s make.





Since the libstdc++.so provided with madde differs in filesize from the one in the N900’s /usr/lib, I tried copying the N900’s into the madde sysroot /usr/lib, and building from scratch, but it makes no difference.





I’m guessing this is something to do with a library internal to the SDK needing this libstdc++ version, and that there’s maybe not much I can do about it, but thought I’d ask in case there is a solution.





Any help would be much appreciated!





Having said that, even if I’m unable to build the remaining lessons and demos, I’d still consider the SDK a worthwhile download for learning gles2 - it seems quite hard to get easily digestible material on that topic! - so thanks for that :slight_smile:





Gory details of my build config follow, in case they’re useful.





In order to get the build process to work, I’ve followed the process in the pdf in SDKPackage/





so I have:




echo $TOOLCHAIN

/opt/madde/.madde/0.5/toolchains/arm-2009q1-203-arm-none-linux-gnueabi_linux

echo $X11ROOT

/opt/madde/.madde/0.5/sysroots/fremantle-qt-arm-sysroot-0942/usr

[/CODE]

I run make with:

<br />make PLATFORM=LinuxOMAP3 X11BUILD=1 <br />

additionally, I found I needed to add some switches in the Builds/OGLES2/LinuxOMAP3/make_platform.mak file, so I defined:

<br />LIBDIR_FLAGS = --sysroot=/opt/madde/.madde/0.5/sysroots/fremantle-qt-arm-sysroot-0942 <br /> -DBUILD_OGLES2 -Wall -DRELEASE -O2 <br /> -DKEYPAD_INPUT=""/dev/input/event1"" <br />

and

<br />PLAT_CFLAGS&nbsp;&nbsp;&nbsp;= --sysroot=/opt/madde/.madde/0.5/sysroots/fremantle-qt-arm-sysroot-0942 <br />-I/opt/madde/.madde/0.5/sysroots/fremantle-qt-arm-sysroot-0942/usr/include <br /> -DBUILD_OGLES2 -Wall -DRELEASE -O2 -DKEYPAD_INPUT=""/dev/input/event1""



(some of the above is probably redundant, still whittling it down :slight_smile:

<br /> <br />echo $TOOLCHAIN<br /> <br />/opt/madde/.madde/0.5/toolchains/arm-2009q1-203-arm-none-linux-gnueabi_linux<br /> <br />echo $X11ROOT<br /> <br />/opt/madde/.madde/0.5/sysroots/fremantle-qt-arm-sysroot-0942/usr<br /> <br />


I run make with:




make PLATFORM=LinuxOMAP3 X11BUILD=1

[/CODE]

additionally, I found I needed to add some switches in the Builds/OGLES2/LinuxOMAP3/make_platform.mak file, so I defined:

<br />LIBDIR_FLAGS = --sysroot=/opt/madde/.madde/0.5/sysroots/fremantle-qt-arm-sysroot-0942 <br /> -DBUILD_OGLES2 -Wall -DRELEASE -O2 <br /> -DKEYPAD_INPUT=""/dev/input/event1"" <br />

and

<br />PLAT_CFLAGS&nbsp;&nbsp;&nbsp;= --sysroot=/opt/madde/.madde/0.5/sysroots/fremantle-qt-arm-sysroot-0942 <br />-I/opt/madde/.madde/0.5/sysroots/fremantle-qt-arm-sysroot-0942/usr/include <br /> -DBUILD_OGLES2 -Wall -DRELEASE -O2 -DKEYPAD_INPUT=""/dev/input/event1""



(some of the above is probably redundant, still whittling it down :slight_smile:

<br /> <br />make PLATFORM=LinuxOMAP3 X11BUILD=1<br /> <br />


additionally, I found I needed to add some switches in the Builds/OGLES2/LinuxOMAP3/make_platform.mak file, so I defined:




LIBDIR_FLAGS = --sysroot=/opt/madde/.madde/0.5/sysroots/fremantle-qt-arm-sysroot-0942

-DBUILD_OGLES2 -Wall -DRELEASE -O2

-DKEYPAD_INPUT=""/dev/input/event1""

[/CODE]

and

<br />PLAT_CFLAGS&nbsp;&nbsp;&nbsp;= --sysroot=/opt/madde/.madde/0.5/sysroots/fremantle-qt-arm-sysroot-0942 <br />-I/opt/madde/.madde/0.5/sysroots/fremantle-qt-arm-sysroot-0942/usr/include <br /> -DBUILD_OGLES2 -Wall -DRELEASE -O2 -DKEYPAD_INPUT=""/dev/input/event1""



(some of the above is probably redundant, still whittling it down :slight_smile:

<br /> <br />LIBDIR_FLAGS = --sysroot=/opt/madde/.madde/0.5/sysroots/fremantle-qt-arm-sysroot-0942<br /> <br /> -DBUILD_OGLES2 -Wall -DRELEASE -O2 <br /> <br /> -DKEYPAD_INPUT=""/dev/input/event1""<br /> <br />


and




PLAT_CFLAGS   = --sysroot=/opt/madde/.madde/0.5/sysroots/fremantle-qt-arm-sysroot-0942

-I/opt/madde/.madde/0.5/sysroots/fremantle-qt-arm-sysroot-0942/usr/include

-DBUILD_OGLES2 -Wall -DRELEASE -O2 -DKEYPAD_INPUT=""/dev/input/event1""[/CODE]



(some of the above is probably redundant, still whittling it down :slight_smile:

<br /> <br />PLAT_CFLAGS&nbsp;&nbsp;&nbsp;= --sysroot=/opt/madde/.madde/0.5/sysroots/fremantle-qt-arm-sysroot-0942 <br /> <br />-I/opt/madde/.madde/0.5/sysroots/fremantle-qt-arm-sysroot-0942/usr/include <br /> <br /> -DBUILD_OGLES2 -Wall -DRELEASE -O2 -DKEYPAD_INPUT=""/dev/input/event1""





(some of the above is probably redundant, still whittling it down :slight_smile:



#2

Just to note, a workaround was provided by one of the MADDE-knowledgeable people at talk.maemo.org





http://talk.maemo.org/showthread.php?p=488332#post488332





which fixed this issue for me. So definitely not a problem with the SDK itself.


#3

It’s good to hear that you found a solution - thanks for letting us know.