Jump to content


Photo

Yactfeau


  • Please log in to reply
113 replies to this topic

#91 delete000

delete000

    Member

  • Members
  • PipPip
  • 16 posts

Posted 28 April 2011 - 07:55 PM

One small addition: I got the libmpfr error, but there was no 32bit libmpfr available on kubuntu 10.10 repos. I googled a bit and found out that symlinking to libgmp.so.3 also works. Tried it and the compilation went smooth as butter.


I'm trying to cross-compile audacious on my laptop running 64bit Ubuntu 10.04. Unfortunately, neither libmpfr* nor libgmp* exist in /usr/lib32 on my machine. I remember that installing individual 32bit libs on a 64bit machine is quite a hassle, please tell me there's an easier way... thanks in advance.

Edited by delete000, 28 April 2011 - 07:56 PM.


#92 delete000

delete000

    Member

  • Members
  • PipPip
  • 16 posts

Posted 28 April 2011 - 08:16 PM


One small addition: I got the libmpfr error, but there was no 32bit libmpfr available on kubuntu 10.10 repos. I googled a bit and found out that symlinking to libgmp.so.3 also works. Tried it and the compilation went smooth as butter.


I'm trying to cross-compile audacious on my laptop running 64bit Ubuntu 10.04. Unfortunately, neither libmpfr* nor libgmp* exist in /usr/lib32 on my machine. I remember that installing individual 32bit libs on a 64bit machine is quite a hassle, please tell me there's an easier way... thanks in advance.


I managed to compile libmowgli, but when I try to compile libmcs I get the following:

configure: WARNING: using cross tools not prefixed with host triplet
checking pkg-config is at least version 0.9.0... yes
checking for MOWGLI... no
configure: error: libmowgli 0.4.0 or newer required

My guess is libmowgli is built successfully but is not installed properly. I looked for it in $SDK_PATH/usr/lib but it's not there. I copied it there but I got the same error. Now what am I doing wrong?... :huh:

#93 sebt3

sebt3

    homebrew player (P. & C.)

  • GP32 Hardcore
  • PipPipPipPipPipPip
  • 1897 posts
  • Gender:Male
  • Location:QC

Posted 28 April 2011 - 08:17 PM

Have a look into $SDK_PATH/host-lib (probably /usr/local/angstrom/arm/host-lib)

#94 delete000

delete000

    Member

  • Members
  • PipPip
  • 16 posts

Posted 28 April 2011 - 08:42 PM

Have a look into $SDK_PATH/host-lib (probably /usr/local/angstrom/arm/host-lib)

Nope, it's not in there. I copied libmowgli.so there but I still get the same error. I have put SDK_PATH somewhere in my home directory, I hope this is not a problem. Here's some more info:

stefanos@lapp:~/Pandora/audacious/libmcs-0.7.2$ echo $LD_LIBRARY_PATH 
/opt/intel/Compiler/11.1/072/lib/intel64:/opt/intel/Compiler/11.1/072/mkl/lib/em64t:/home/stefanos/Documents/pandora/SDK/host-lib
stefanos@lapp:~/Pandora/audacious/libmcs-0.7.2$ cd /home/stefanos/Documents/pandora/SDK/host-lib
stefanos@lapp:~/Documents/pandora/SDK/host-lib$ ls
libgmp.so.3  libgmp.so.3.5.2  libmowgli.so  libmpfr.so.1  libmpfr.so.1.2.2

Edit:: here's another suspicious snippet I get when compiling libmcs:

checking for arm-angstrom-linux-gnueabi-pkg-config... no
checking for pkg-config... /usr/bin/pkg-config
configure: WARNING: using cross tools not prefixed with host triplet

The first line is what worries me. Is it normal?

Edited by delete000, 28 April 2011 - 08:53 PM.


#95 sebt3

sebt3

    homebrew player (P. & C.)

  • GP32 Hardcore
  • PipPipPipPipPipPip
  • 1897 posts
  • Gender:Male
  • Location:QC

Posted 28 April 2011 - 09:33 PM


Have a look into $SDK_PATH/host-lib (probably /usr/local/angstrom/arm/host-lib)

Nope, it's not in there. I copied libmowgli.so there but I still get the same error. I have put SDK_PATH somewhere in my home directory, I hope this is not a problem.

I was replying to :


One small addition: I got the libmpfr error, but there was no 32bit libmpfr available on kubuntu 10.10 repos. I googled a bit and found out that symlinking to libgmp.so.3 also works. Tried it and the compilation went smooth as butter.


I'm trying to cross-compile audacious on my laptop running 64bit Ubuntu 10.04. Unfortunately, neither libmpfr* nor libgmp* exist in /usr/lib32 on my machine. I remember that installing individual 32bit libs on a 64bit machine is quite a hassle, please tell me there's an easier way... thanks in advance.


checking for arm-angstrom-linux-gnueabi-pkg-config... no
checking for pkg-config... /usr/bin/pkg-config
configure: WARNING: using cross tools not prefixed with host triplet

The first line is what worries me. Is it normal?

As long as you have PKG_CONFIG_SYSROOT_DIR and PKG_CONFIG_SYSROOT_DIR set, that's not a problem (setprj command set that).

Have you installed libmowgli ? (should be in /mnt/utmp/audacious)

#96 delete000

delete000

    Member

  • Members
  • PipPip
  • 16 posts

Posted 29 April 2011 - 07:58 AM

Have you installed libmowgli ? (should be in /mnt/utmp/audacious)

I have changed $PND_BASEDIR to point somewhere in my home directory instead of /mnt/utmp, but yes, libmowgli is in my PND_BASEDIR. Still, it is not found when compiling libmcs.

#97 sebt3

sebt3

    homebrew player (P. & C.)

  • GP32 Hardcore
  • PipPipPipPipPipPip
  • 1897 posts
  • Gender:Male
  • Location:QC

Posted 29 April 2011 - 10:54 AM

Finding stuff is pkg-config job (yet the config.log would have shown this).
So what's your PKG_CONFIG_PATH ?
$PND_BASEDIR/$PRJ/lib/pkgconfig/libmowgli.pc exist ? and provide the righ path ?
What does "pkg-config --libs libmowgli" say ?

#98 delete000

delete000

    Member

  • Members
  • PipPip
  • 16 posts

Posted 29 April 2011 - 01:14 PM

So what's your PKG_CONFIG_PATH ?

stefanos@lapp:~/Pandora/audacious$ echo $PKG_CONFIG_PATH
/mnt/utmp/audacious/lib/pkgconfig:/home/stefanos/Documents/pandora/SDK/arm-angstrom-linux-gnueabi/usr/lib/pkgconfig

$PND_BASEDIR/$PRJ/lib/pkgconfig/libmowgli.pc exist ? and provide the righ path ?

stefanos@lapp:~/Pandora/audacious/libmcs-0.7.2$ ls $PND_BASEDIR/$PRJ/lib/pkgconfig/libmowgli.pc
/home/stefanos/Documents/pandora/SDK/mnt/audacious/lib/pkgconfig/libmowgli.pc
stefanos@lapp:~/Pandora/audacious/libmcs-0.7.2$ cat $PND_BASEDIR/$PRJ/lib/pkgconfig/libmowgli.pc
prefix=/home/stefanos/Documents/pandora/SDK/mnt/audacious
exec_prefix=${prefix}
datarootdir=${prefix}/share
data_dir=${datarootdir}/libmowgli

version=0.7.1
include_dir=${prefix}/include/libmowgli
lib_dir=${exec_prefix}/lib

Name: libmowgli
Description: A library which contains many utility functions and classes.
Version: 0.7.1
Libs: -L${lib_dir} -lmowgli
Cflags: -I${include_dir}

What does "pkg-config --libs libmowgli" say ?

stefanos@lappy:~/Pandora/audacious/libmcs-0.7.2$ pkg-config --libs libmowgli
Package libmowgli was not found in the pkg-config search path.
Perhaps you should add the directory containing `libmowgli.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libmowgli' found

libmowgli.pc is indeed not copied into PKG_CONFIG_PATH. I manually copied it there and compilation of libmcs completed normally. Then, during compilation of audacious I get the following:
checking for MOWGLI... yes
checking for LIBMCS... no
configure: error: 
Cannot find libmcs! If you are using binary packages based system, check that you
have the corresponding -dev/devel packages installed.

Same story: manually copied libmcs.pc into PKG_CONFIG_PATH and tried again. Now audacious compiles fine, but gives the warning:
**
** NOTICE! Configure has discovered that you already have Audacious installed
** and it does not match with the given --prefix. You have Audacious installed
** in /usr/bin and you chose /home/stefanos/Documents/pandora/SDK/mnt/audacious/bin.
**
** If you don't want two copies of Audacious installed, rerun configure with
** the --prefix option set to the location of the old Audacious, or uninstall
** the old Audacious.
**

I guess this is normal though. It would be nice if the .pc files are copied automatically in the right directory.

Then, after installing audacious, I tried genpxml. I get the following error:
stefanos@lapp:~/Pandora/audacious/audacious-2.4.3$ genpxml 
/mnt/utmp/audacious don't exist
/home/stefanos/Documents/pandora/SDK/scripts/genpxml [args] :
-s|--src <src dir>      : Define source directory (default: /home/stefanos/Pandora/audacious/audacious-2.4.3)
-n|--name <name>	: Define the pnd base name (default: audacious)
-d|--dest <dest dir>    : Define destination directory (default: /mnt/utmp/audacious)
-a|--author <name>      : programmers names (default: stefanos)
-v|--version <version>  : Define the version (default: 2.4.3)
-w|--website <url>      : Define the url (default: http://www.openpandora.org/)
-b|--build <build id>   : Define the build number (default: 1)
-f|--force	      : overide PXML.xml file if found
-h|--help	       : show this screen

so then I tried "genpxml -d /home/stefanos/Documents/pandora/SDK/mnt/audacious/" and it worked. Finally, I run pndmakeauto and a nice audacious.pnd appeared in my 'PNDs' folder! genpxml was probably smart enough to find the icon by itself.

Thanks for the help sebt3! I'm glad I managed to make this work. Now I can start trying to port stuff :) If I am allowed to make a request, I would have liked it if the steps I had to do manually were automated somehow. Maybe I can look into it, but my impression is that it is probably a very easy edit for the people who maintain the toolchain.

Thanks again for all the work you've put into this.

#99 sebt3

sebt3

    homebrew player (P. & C.)

  • GP32 Hardcore
  • PipPipPipPipPipPip
  • 1897 posts
  • Gender:Male
  • Location:QC

Posted 29 April 2011 - 02:05 PM

When I made that installable anywhere, I didnt tested it ;)
This where things got broken ;)

there is a symlink in $SDK_ROOT pointing to /mnt.
change it to your actual $PND_BASEDIR/..
Something like this should do it :
ln -sf $(basename $PND_BASEDIR) $SDK_ROOT/mnt

#100 Alex777

Alex777

    GP32 User

  • Members
  • PipPipPip
  • 32 posts

Posted 07 May 2011 - 09:30 PM

I'm having a problem with this, trying to cross-compile the new version of Crawl. (the last version worked fine) I get the following:

devel@devel-VirtualBox:~/Pandora/stone_soup-0.8.0/source$ make install CROSSHOST=arm-angstrom-linux-gnueabi PREFIX=/mnt/utmp
(...)
    CXX libunix.o
In file included from libunix.cc:70:
/usr/include/ncursesw/curses.h:60:34: error: ncursesw/ncurses_dll.h: No such file or directory
/usr/include/ncursesw/curses.h:1969:29: error: ncursesw/unctrl.h: No such file or directory
(...)
(Lots of declaration errors follow)
But I have these header files. What gives?

#101 Exophase

Exophase

    Exophase is bad. Nothing good will ever come of him.

  • GP Guru
  • 5463 posts
  • Location:Cleveland OH

Posted 05 June 2011 - 08:39 PM

I installed the latest toolchain today because my toolchain from last year had a bug in its as that's not allowing it to accept any immediates I try in vbic/vorr in NEON.

After installing I'm finding that the bug is still there, but more alarming is that the versions of GCC and AS are actually older than I started with! They're both from 2008 distributions. I'm probably going to go back to my old toolchain but update the compiler part with the latest CodeSourcery or whatever (I know they can be buggy but I'll take my chances), but is there any reason why the components of this toolchain are so old? This is pretty critical for ARM development, it's not taking advantage years of backend improvements.

(please understand, I do appreciate what you're doing, just curious)

Edited by Exophase, 05 June 2011 - 08:46 PM.


#102 Ivanovic

Ivanovic

    GP32 Hardcore

  • Members
  • PipPipPipPip
  • 161 posts

Posted 06 June 2011 - 08:13 AM

After installing I'm finding that the bug is still there, but more alarming is that the versions of GCC and AS are actually older than I started with! They're both from 2008 distributions. I'm probably going to go back to my old toolchain but update the compiler part with the latest CodeSourcery or whatever (I know they can be buggy but I'll take my chances), but is there any reason why the components of this toolchain are so old? This is pretty critical for ARM development, it's not taking advantage years of backend improvements.

The reason is simple: this one is directly based on the OpenEmbedded Recipes that also create the pandora image itself. So it uses the same compiler, the same glibc and all that stuff, as is used if you had it on the pandora.

If you want a toolchain with all the stuff that is available on the pandora but based on the latest codesourcery compiler, you should have a look at the toolchain setup script I created: http://www.gp32x.com...53
The basic difference between these two toolchains is the compiler provided, the rest is rather similar.

#103 Exophase

Exophase

    Exophase is bad. Nothing good will ever come of him.

  • GP Guru
  • 5463 posts
  • Location:Cleveland OH

Posted 06 June 2011 - 05:59 PM

Thanks Ivanovic. I manually copied over the latest CodeSourcery over my old toolchain, but I'm sure I'll find out I messed up something later (right now just running some code without any of the Pandora libraries so..). So I'll probably move to your toolchain.

Looks like the OpenEmbedded folks should update.. I know using CS is a little risky but at least newer versions of GCC mainline have incorporated a lot of the improvements over the years.

(btw, that bug I found was really in my inability to read the manual ;))

#104 Schnatterplatsch

Schnatterplatsch

    GP32 Hardcore

  • GP32 Hardcore
  • PipPipPipPip
  • 218 posts
  • Gender:Male

Posted 16 June 2011 - 08:39 AM

I keep on getting the "/usr/local/angstrom/arm/libexec/gcc/arm-angstrom-linux-gnueabi/4.3.3/cc1plus: error while loading shared libraries: libmpfr.so.1: cannot open shared object file: No such file or directory" error.

After I failed fixing it several times(also tried PokeParadox suggestion... no luck), I have now reinstalled the toolchain and would be extremly grateful to get a step-by-step guidance.

I followed those steps to install the thing: http://pandorawiki.org/Setting_up_a_cross-compiler

Next I commented out the named lines in environment-setup.

And now? Which script am I supposed to run???

Thanks in advance :)

#105 B-ZaR

B-ZaR

    A Commando

  • GP32 Hardcore
  • PipPipPipPipPipPip
  • 1397 posts
  • Gender:Male
  • Location:Finland

Posted 16 June 2011 - 09:13 AM

I've commented on this problem before somewhere in this thread. The problem is probably that you use a 64bit distribution which doesn't have a 32bit version of libmpfr available. The solution is to link to another file that seems to be binary compatible. The exact steps are mentioned in that older post of mine :)