Pandora Crosscompiler Toolchain Based On Openpandora.org Ipks

Discussion in 'General Discussions' started by ivanovic, Feb 14, 2012.

  1. mcobit

    mcobit Advanced Member

    Joined:
    Jul 28, 2008
    Messages:
    6,755
    Or just run a 32Bit VM.
     
  2. TrashyMG

    TrashyMG Sarcasm Dispenser Staff Member

    Joined:
    Jan 18, 2010
    Messages:
    10,193
    It works fine on my 64-bit Fedora install on my laptop.
     
  3. peelie

    peelie Member

    Joined:
    Apr 6, 2007
    Messages:
    887
  4. jA_cOp

    jA_cOp Still Fresh

    Joined:
    Jun 4, 2013
    Messages:
    26
    Getting this when trying to compile OpenClonk using this toolchain:

    /home/jakob/programming/pandora/dev/arm-2011.09/bin/arm-none-linux-gnueabi-g++ -std=gnu++0x -DHAVE_CONFIG_H -I. -I./src -I./src/c4group -I./src/config -I./src/control -I./src/editor -I./src/game -I./src/gamescript -I./src/graphics -I./src/gui -I./src/landscape -I./src/lib -I./src/network -I./src/object -I./src/platform -I./src/player -I./src/res -I./src/script -I./thirdparty -I/home/jakob/programming/pandora/dev/arm-2011.09/usr/include -pthread -Wall -Wextra -Wredundant-decls -Wendif-labels -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -Winit-self -Wsign-promo -Wno-reorder -Wno-unused-parameter -Wnon-virtual-dtor -Woverloaded-virtual -Winvalid-pch -fpch-deps -DOC_SYSTEM_DATA_DIR=\"/usr/local/share/openclonk\" -DPANDORA -Os -pipe -march=armv7-a -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -ftree-vectorize -ffast-math -x c++-header -MT C4Include.h.gch -MD -MP -MF .deps/C4Include.Tpo -c -o C4Include.h.gch ./src/C4Include.h
    In file included from /home/jakob/programming/pandora/dev/arm-2011.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/include/c++/4.6.1/random:38:0,
    from /home/jakob/programming/pandora/dev/arm-2011.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/include/c++/4.6.1/bits/stl_algo.h:67,
    from /home/jakob/programming/pandora/dev/arm-2011.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/include/c++/4.6.1/algorithm:63,
    from /home/jakob/programming/pandora/dev/arm-2011.09/usr/include/boost/function/detail/prologue.hpp:13,
    from /home/jakob/programming/pandora/dev/arm-2011.09/usr/include/boost/function.hpp:24,
    from ./src/C4Include.h:36:
    /home/jakob/programming/pandora/dev/arm-2011.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/include/c++/4.6.1/cmath:975:11: error: '::acoshl' has not been declared
    /home/jakob/programming/pandora/dev/arm-2011.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/include/c++/4.6.1/cmath:979:11: error: '::asinhl' has not been declared
    /home/jakob/programming/pandora/dev/arm-2011.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/include/c++/4.6.1/cmath:983:11: error: '::atanhl' has not been declared
    /home/jakob/programming/pandora/dev/arm-2011.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/include/c++/4.6.1/cmath:987:11: error: '::cbrtl' has not been declared
    /home/jakob/programming/pandora/dev/arm-2011.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/include/c++/4.6.1/cmath:991:11: error: '::copysignl' has not been declared
    /home/jakob/programming/pandora/dev/arm-2011.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/include/c++/4.6.1/cmath:995:11: error: '::erfl' has not been declared
    /home/jakob/programming/pandora/dev/arm-2011.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/include/c++/4.6.1/cmath:999:11: error: '::erfcl' has not been declared
    /home/jakob/programming/pandora/dev/arm-2011.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/include/c++/4.6.1/cmath:1003:11: error: '::exp2l' has not been declared
    /home/jakob/programming/pandora/dev/arm-2011.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/include/c++/4.6.1/cmath:1007:11: error: '::expm1l' has not been declared
    /home/jakob/programming/pandora/dev/arm-2011.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/include/c++/4.6.1/cmath:1011:11: error: '::fdiml' has not been declared
    /home/jakob/programming/pandora/dev/arm-2011.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/include/c++/4.6.1/cmath:1015:11: error: '::fmal' has not been declared
    /home/jakob/programming/pandora/dev/arm-2011.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/include/c++/4.6.1/cmath:1019:11: error: '::fmaxl' has not been declared
    /home/jakob/programming/pandora/dev/arm-2011.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/include/c++/4.6.1/cmath:1023:11: error: '::fminl' has not been declared
    /home/jakob/programming/pandora/dev/arm-2011.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/include/c++/4.6.1/cmath:1027:11: error: '::hypotl' has not been declared
    /home/jakob/programming/pandora/dev/arm-2011.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/include/c++/4.6.1/cmath:1031:11: error: '::ilogbl' has not been declared
    /home/jakob/programming/pandora/dev/arm-2011.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/include/c++/4.6.1/cmath:1035:11: error: '::lgammal' has not been declared
    /home/jakob/programming/pandora/dev/arm-2011.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/include/c++/4.6.1/cmath:1039:11: error: '::llrintl' has not been declared
    /home/jakob/programming/pandora/dev/arm-2011.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/include/c++/4.6.1/cmath:1043:11: error: '::llroundl' has not been declared
    /home/jakob/programming/pandora/dev/arm-2011.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/include/c++/4.6.1/cmath:1047:11: error: '::log1pl' has not been declared
    /home/jakob/programming/pandora/dev/arm-2011.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/include/c++/4.6.1/cmath:1051:11: error: '::log2l' has not been declared
    /home/jakob/programming/pandora/dev/arm-2011.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/include/c++/4.6.1/cmath:1055:11: error: '::logbl' has not been declared
    /home/jakob/programming/pandora/dev/arm-2011.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/include/c++/4.6.1/cmath:1059:11: error: '::lrintl' has not been declared
    /home/jakob/programming/pandora/dev/arm-2011.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/include/c++/4.6.1/cmath:1063:11: error: '::lroundl' has not been declared
    /home/jakob/programming/pandora/dev/arm-2011.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/include/c++/4.6.1/cmath:1067:11: error: '::nanl' has not been declared
    /home/jakob/programming/pandora/dev/arm-2011.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/include/c++/4.6.1/cmath:1071:11: error: '::nearbyintl' has not been declared
    /home/jakob/programming/pandora/dev/arm-2011.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/include/c++/4.6.1/cmath:1075:11: error: '::nextafterl' has not been declared
    /home/jakob/programming/pandora/dev/arm-2011.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/include/c++/4.6.1/cmath:1079:11: error: '::nexttowardl' has not been declared
    /home/jakob/programming/pandora/dev/arm-2011.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/include/c++/4.6.1/cmath:1083:11: error: '::remainderl' has not been declared
    /home/jakob/programming/pandora/dev/arm-2011.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/include/c++/4.6.1/cmath:1087:11: error: '::remquol' has not been declared
    /home/jakob/programming/pandora/dev/arm-2011.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/include/c++/4.6.1/cmath:1091:11: error: '::rintl' has not been declared
    /home/jakob/programming/pandora/dev/arm-2011.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/include/c++/4.6.1/cmath:1095:11: error: '::roundl' has not been declared
    /home/jakob/programming/pandora/dev/arm-2011.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/include/c++/4.6.1/cmath:1099:11: error: '::scalblnl' has not been declared
    /home/jakob/programming/pandora/dev/arm-2011.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/include/c++/4.6.1/cmath:1103:11: error: '::scalbnl' has not been declared
    /home/jakob/programming/pandora/dev/arm-2011.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/include/c++/4.6.1/cmath:1107:11: error: '::tgammal' has not been declared
    /home/jakob/programming/pandora/dev/arm-2011.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/include/c++/4.6.1/cmath:1111:11: error: '::truncl' has not been declared
    In file included from ./src/C4Include.h:102:0:
    ./src/lib/StdBuf.h:656:7: note: the mangling of 'va_list' has changed in GCC 4.4
    make: *** [C4Include.h.gch] Error 1

    Commenting out these `using ::foobar;` declarations in `arm-none-linux-gnueabi/include/c++/4.6.1/cmath` causes a similar error down the line. The last note about va_list is probably irrelevant.

    The project uses autoconf and a configure file, the latter of which I ran with pandora_configure.sh.

    Any idea what's going on?
     
  5. WizardStan

    WizardStan Mega GP Mania

    Joined:
    May 24, 2008
    Messages:
    16,566
    So I just discovered this thread exists. I'd done the whole process manually, grabbing dev packages as I needed them over the years, then last week I rebuilt my system and forgot to backup my crosscompile directory and was sad. With such a simple script I don't feel sad any more. Kinda stupid, but not sad. :p

    Thanks!
     
    PokeParadox likes this.
  6. PokeParadox

    PokeParadox Founder of Pirate Games - Penjin Coder Staff Member

    Joined:
    Dec 8, 2005
    Messages:
    6,508
    Location:
    UK
    ^

    I can vouch for that - recently set this up on my netbook and it was far simpler than I remember it being!
     
  7. MrConfusion

    MrConfusion Very Active Member

    Joined:
    Apr 11, 2013
    Messages:
    325
    Grabbed this and it is incredibly streamlined and easy!

    Thanks a lot!

    I remember trying to figure out compiling for the Pandora 3-4 years ago and getting somewhere, but since the Pandora never arrived I simply left the environment after an evening or two... now that UPS finally has my Pandora I started looking into this again and realized things are a lot more streamlined these days!

    I hit two little snags you might want to mention in the docs, though:

    1. At least in my setup installation fails if running across two filesystems, i.e. install source dir in fs 1, install target in fs 2.
      • Here-documents in Bash fail, when linking temp file to it's destination fails
      • Probably fixable by running cat in the same dir where the config file is created to, instead of install source location, but when I figured what the problem was I simply moved to the same filesystem. Don't know whether Bash takes this into account these days...
      • It's not the first time I've seen this in my setup, but of course I didn't know the script uses here-documents in advance :)
    2. Script documentation says 2 Gb + 700 temp. Based on this I then created a loop filesystem with 3Gb in it and ran out of space in the final stages... so even 3 Gb is not enough currently?
    You don't hit problems like this normally, since most people have diskspace to spare. My whole laptop is on an old, small SSD, so I don't generally reserve any extra space to virtual drives, but rather try to use vboxsf or add more mountpoints when I really need more space. (vboxsf has no symlinks, so I couldn't install to that directly, unfortunately)

    (

    relevant:

    GNU bash 4.1.9(2)

    VM running a fairly messed up Gentoo not synced or updated for nearly two years, but running smoothly for the stuff I've needed...

    )

    (edit, decided to check my install: 3,5 Gb is enough and leaves 300 Mb free after installation... this apparently fluctuates a bit according to libraries' combined size?)
     
    Last edited by a moderator: Sep 22, 2013
  8. ssokolow

    ssokolow Member

    Joined:
    May 24, 2012
    Messages:
    240
    Location:
    Ontario, Canada
    Given that this message is flat-out wrong for people not using bash (eg. zsh is my login and terminal emulator shell and bash exists on my system only to execute shell scripts), it'd probably be a good idea to do some kind of quick check that $SHELL ends with /bash and, if not, respond accordingly.

    At the very least, print an extra message in some eye-grabbing colour warning users that they'll need to manually copy it into the appropriate file.
     
  9. Rockthesmurf

    Rockthesmurf Advanced Member

    Joined:
    Jul 18, 2003
    Messages:
    1,093
    Location:
    Manchester, UK
    I had a go of using this script, my base OS is Windows 7, and I am running Ubuntu inside VirtualBox. I received an error from the script whilst configuring pkg-config-0.26


    configure: error: pkg-config and glib-2.0 not found, please set GLIB_CFLAGS and GLIB_LIBS to the correct values

    From doing a few Google searches, the recommended 'fix' for this is to use version 0.25 instead. Luckily the script had 0.25 commented out, so I commented 0.25 back in (and commented out 0.26) and ended up with a working toolchain.

    Well, I say 'working', it built an arm executable, I haven't actually tried running the executable yet, but I am assuming (hoping) it'll work!
     
    Last edited by a moderator: Oct 9, 2013
  10. Rockthesmurf

    Rockthesmurf Advanced Member

    Joined:
    Jul 18, 2003
    Messages:
    1,093
    Location:
    Manchester, UK
    Decided to give this a go on OSX; had to do a few things to get the script to run:

    • Ensure wget and curl is installed via macports (hard to know if there are other dependencies that I have grabbed from macports in the past, but these two were enough for today)
    • Patch all calls to 'md5sum' in the script to use 'md5 -r' instead
    • Add a couple of patches to make opkg work (not crash) that I put together myself (I don't normally make patches, but I tried a fresh run of the scripts and they appeared to work)
    • Apply the same fix as my above post (use pkg-config 0.25 instead of 0.26)
    My diff against the current script is as follows:
    Code:
    1,2c1,3
    <
    < penpandora_toolchain.sh:
    ---
    > #!/bin/bash
    > #
    > # openpandora_toolchain.sh:
    127,130c128,131
    < #PKGCONFIG_VERSION=pkg-config-0.25
    < #PKGCONFIG_ARCHIVE_MD5=a3270bab3f4b69b7dc6dbdacbcae9745
    < PKGCONFIG_VERSION=pkg-config-0.26
    < PKGCONFIG_ARCHIVE_MD5=47525c26a9ba7ba14bf85e01509a7234
    ---
    > PKGCONFIG_VERSION=pkg-config-0.25
    > PKGCONFIG_ARCHIVE_MD5=a3270bab3f4b69b7dc6dbdacbcae9745
    > #PKGCONFIG_VERSION=pkg-config-0.26
    > #PKGCONFIG_ARCHIVE_MD5=47525c26a9ba7ba14bf85e01509a7234
    139c140
    < REQUIRED_PROGS="wget md5sum tar make cut grep sed find awk xargs chmod"
    ---
    > REQUIRED_PROGS="wget md5 tar make cut grep sed find awk xargs chmod"
    188,189c189,190
    <       cecho "Verifying the integrity of $LOCAL_ARCHIV" $green
    <       md5=$(md5sum $TMPDIR/$LOCAL_ARCHIV |cut -d' ' -f1)
    ---
    >       echo "Verifying the integrity of $LOCAL_ARCHIV" $green
    >       md5=$(md5 -r $TMPDIR/$LOCAL_ARCHIV |cut -d' ' -f1)
    278a280,284
    >
    >       echo -e
    >       cecho "Patching with OSX fix"
    >       patch tmp/opkg-0.1.8/tests/libopkg_test.c libopkg_test_state_changed_fix_osx
    >       patch tmp/opkg-0.1.8/libopkg/opkg_download.c libopkg_basename_fix_osx
    
    With the patches mentioned above (the second fixes basename not being found, program still compiles and links, but at runtime it basename returns a bad address which segfaults deeper into the program):
    Code:
    mac:pandora-dev scraft$ cat libopkg_test_state_changed_fix_osx
    7a8
    > int opkg_state_changed;
     
    mac:pandora-dev scraft$ cat libopkg_basename_fix_osx
    75a76,79
    > #if defined(__APPLE__) && defined(__MACH__)
    > #     include <libgen.h>
    > #endif
    >
    
    With these little bits and pieces fixed up, the script runs through, and creates a tool chain, unfortunately it appears to be a Linux one! I guess I would need to build the source for Codesourcery to get an OSX one, which I may try next, unless there are any prebuilt ones the script can be tuned to download instead?
     
    Last edited by a moderator: Oct 21, 2013
  11. Rockthesmurf

    Rockthesmurf Advanced Member

    Joined:
    Jul 18, 2003
    Messages:
    1,093
    Location:
    Manchester, UK
    Okay, I patched it to grab a OSX tool chain:

    Code:
    1,2c1,3
    <
    < penpandora_toolchain.sh:
    ---
    > #!/bin/bash
    > #
    > # openpandora_toolchain.sh:
    121,123c122,127
    < TOOLCHAIN_URL=http://sourcery.mentor.com/sgpp/lite/arm/portal/package9728/public/arm-none-linux-gnueabi/arm-2011.09-70-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
    < TOOLCHAIN_TARBALL_NAME=arm-2011.09-70-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
    < TOOLCHAIN_MD5=56d9a77654d012914e703dc8d9383246
    ---
    > #TOOLCHAIN_URL=http://sourcery.mentor.com/sgpp/lite/arm/portal/package9728/public/arm-none-linux-gnueabi/arm-2011.09-70-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
    > #TOOLCHAIN_TARBALL_NAME=arm-2011.09-70-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
    > #TOOLCHAIN_MD5=56d9a77654d012914e703dc8d9383246
    > TOOLCHAIN_TARBALL_NAME=arm-none-linux-gnueabi-q1-2010-darwin10-binary.tar.gz
    > TOOLCHAIN_URL=http://www.cs.washington.edu/homes/sidhant/arm-linux/arm-none-linux-gnueabi-q1-2010-darwin10-binary.tar.gz
    > TOOLCHAIN_MD5=0616bacb2df0f67dc08328bbd7df8046
    127,130c131,134
    < #PKGCONFIG_VERSION=pkg-config-0.25
    < #PKGCONFIG_ARCHIVE_MD5=a3270bab3f4b69b7dc6dbdacbcae9745
    < PKGCONFIG_VERSION=pkg-config-0.26
    < PKGCONFIG_ARCHIVE_MD5=47525c26a9ba7ba14bf85e01509a7234
    ---
    > PKGCONFIG_VERSION=pkg-config-0.25
    > PKGCONFIG_ARCHIVE_MD5=a3270bab3f4b69b7dc6dbdacbcae9745
    > #PKGCONFIG_VERSION=pkg-config-0.26
    > #PKGCONFIG_ARCHIVE_MD5=47525c26a9ba7ba14bf85e01509a7234
    139c143
    < REQUIRED_PROGS="wget md5sum tar make cut grep sed find awk xargs chmod"
    ---
    > REQUIRED_PROGS="wget md5 tar make cut grep sed find awk xargs chmod"
    188,189c192,193
    <       cecho "Verifying the integrity of $LOCAL_ARCHIV" $green
    <       md5=$(md5sum $TMPDIR/$LOCAL_ARCHIV |cut -d' ' -f1)
    ---
    >       echo "Verifying the integrity of $LOCAL_ARCHIV" $green
    >       md5=$(md5 -r $TMPDIR/$LOCAL_ARCHIV |cut -d' ' -f1)
    244a249,252
    >       cecho "Fixing directory name"
    >       rsync -avh tools/ arm-2011.09/
    >       rm -fr tools/
    >
    278a287,291
    >
    >       echo -e
    >       cecho "Patching with OSX fix"
    >       patch tmp/opkg-0.1.8/tests/libopkg_test.c libopkg_test_state_changed_fix_osx
    >       patch tmp/opkg-0.1.8/libopkg/opkg_download.c libopkg_basename_fix_osx
    
    I end up with a usable toolchain, however I have to specify the --sysroot to be able to compile. Without:

    Code:
    mac:pandora-dev scraft$ arm-2011.09/bin/arm-none-linux-gnueabi-g++ main.cpp
    /Users/scraft/pandora-dev/arm-2011.09/bin/../lib/gcc/arm-none-linux-gnueabi/4.4.1/../../../../arm-none-linux-gnueabi/bin/ld: crt1.o: No such file: No such file or directory
    collect2: ld returned 1 exit status
    
    With:

    Code:
    mac:pandora-dev scraft$ arm-2011.09/bin/arm-none-linux-gnueabi-g++ --sysroot=arm-2011.09/ main.cpp
    mac:pandora-dev scraft$ file a.out
    a.out: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.16, not stripped
    
     
  12. ekianjo

    ekianjo Hardcore Member

    Joined:
    May 7, 2012
    Messages:
    8,261
    Location:
    神戸市、日本 (Japan)
    Would your toolchain work on a Linux machine too ?
     
  13. Rockthesmurf

    Rockthesmurf Advanced Member

    Joined:
    Jul 18, 2003
    Messages:
    1,093
    Location:
    Manchester, UK
    My post #69 in this thread was me running the tool chain install script on a Linux machine (well a Linux VM running inside a Windows box), it all seemed to work with the one change I mention in #69. The changes in my posts #70 and #71 make a toolchain that appear to work on a OSX box, but they will break the script from working on a Linux box (I'm sure the small changes could be set up to work for both though, I'm not overly familiar with shell scripting for *nix but I'm sure there is a way to switch OS using uname or something).
     
  14. gibs

    gibs Still Fresh

    Joined:
    Nov 24, 2013
    Messages:
    23
    Hello Steven,

    Can you please post the full OSX script ?

    Thanks
     
  15. Rockthesmurf

    Rockthesmurf Advanced Member

    Joined:
    Jul 18, 2003
    Messages:
    1,093
    Location:
    Manchester, UK
    I have attached the scripts I had on the OSX box I was experimenting with. I can't remember for sure where I got to with these scripts, but perhaps you can give them a try and post whether it was successful or not?

    OSX.zip
     

    Attached Files:

    • OSX.zip
      File size:
      23.1 KB
      Views:
      58
    Last edited by a moderator: Dec 9, 2013
  16. gibs

    gibs Still Fresh

    Joined:
    Nov 24, 2013
    Messages:
    23
    Hello,

    MacBook2012:~ gibs$ cd /Users/gibs/ToolChain/OSX cd /Users/gibs/ToolChain/OSX 

    MacBook2012:OSX gibs$ ls

    libopkg_basename_fix_osx libopkg_test_state_changed_fix_osx

    libopkg_test_sprintf_alloc_fix_osx openpandora_toolchain.sh

    libopkg_test_sprintf_alloc_fix_plus_8k_osx

    MacBook2012:OSX gibs$ chmod 755 openpandora_toolchain.sh 

    MacBook2012:OSX gibs$ ./openpandora_toolchain.sh 

    -bash: ./openpandora_toolchain.sh: /bin/bash^M: bad interpreter: No such file or directory

    if I remove the 1st line :

    MacBook2012:OSX gibs$ ./openpandora_toolchain.sh 

    : command not foundhain.sh: line 1: 

    : command not foundhain.sh: line 96: 

    : command not foundhain.sh: line 97: 

    : command not foundhain.sh: line 101: 

    : command not foundhain.sh: line 102: 

    : command not foundhain.sh: line 109: 

    : command not foundhain.sh: line 111: 

    : command not foundhain.sh: line 136: 

    : command not foundhain.sh: line 137: 

    /Users/gibs/ToolChain/OSX

    : command not foundhain.sh: line 142: 

    : command not foundhain.sh: line 144: 

    : command not foundhain.sh: line 154: 

    : command not foundhain.sh: line 155: 

    '/openpandora_toolchain.sh: line 157: syntax error near unexpected token `{

    '/openpandora_toolchain.sh: line 157: `{
     
  17. Pickle

    Pickle Mega GP Mania

    Joined:
    May 30, 2006
    Messages:
    5,389
    Location:
    Detroit, Michigan
    osx support dos2unix? I think that ^M is a problem.
     
  18. Rockthesmurf

    Rockthesmurf Advanced Member

    Joined:
    Jul 18, 2003
    Messages:
    1,093
    Location:
    Manchester, UK
    Pickle is right, I don't have access to an OSX box right now to check what tools are available, but currently it appears the scripts is 'Windows formatted' and it needs to be Unix formatted. If there is the dos2unix tool you can call that and pass the scripts to it, hopefully it'll fix the file up so you can try again.

    You may want to edit the script and make sure you are setting the PNDSDK variable correctly.

    For what it is worth, I tried running the script the other day in a fresh directory on an OSX box and it installed the toolchain (with the caveat described above about having to set the sys root flag when compiling).
     
  19. elwing

    elwing Rabbit Addict

    Joined:
    Feb 23, 2009
    Messages:
    3,118
    hum, that thread is pretty old, is that still the prefered way to crosscompile in Linux?

    I'dd like to start a port...
     
  20. x1212

    x1212 Member

    Joined:
    Apr 1, 2013
    Messages:
    128
    For me it still works most of the times ... sometimes I have to do some symlink stuff to let build-systems know where gcc is or rename some libs in order to make sure they won't be used (opengl for example).

    But I expect c++11 might be a problem because the gcc (and g++) is still on version 4.6 (afaik full support of c++11 was first included in version 4.7?).
     
    Last edited by a moderator: May 16, 2014

Share This Page

Loading...