Compiling gcc 4.9.1 and its dependencies
I decided to use an up-to-date gcc version to benefit as much as possible from the improvements introduced on the ARM targets. Honestly, I am not sure this had a great impact. But, hey, I had time to do this, so why not?
gmp-5.1.3
Official link: ftp://ftp.gmplib.org/pub/gmp/gmp-5.1.3.tar.bz2In some temporary folder:
tar -xjf gmp-5.1.3.tar.bz2
cd gmp-5.1.3
CFLAGS= ./configure --prefix=/media/BBB
make && make install
mpfr-3.1.2
Official link: http://www.mpfr.org/mpfr-current/mpfr-3.1.2.tar.gz
In some temporary folder:
tar -xzf mpfr-3.1.2.tar.gz
cd mpfr-3.1.2
CFLAGS= ./configure --with-gmp-include=/media/BBB/include/ --with-gmp-lib=/media/BBB/lib/ --prefix=/media/BBB
make && make install
mpc-1.0.2
Official link: ftp://ftp.gnu.org/gnu/mpc/mpc-1.0.2.tar.gz
In some temporary folder:
tar -xzf mpc-1.0.2.tar.gz
cd mpc-1.0.2
CFLAGS= ./configure --with-gmp-include=/media/BBB/include/ --with-gmp-lib=/media/BBB/lib/ --prefix=/media/BBB --with-mpfr-lib=/media/BBB/lib/ --with-mpfr-include=/media/BBB/include/
make && make install
gcc-4.9.1
Official link: ftp://ftp.gnu.org/gnu/gcc/gcc-4.9.1/gcc-4.9.1.tar.gz
In some temporary folder:
tar -xzf gcc-4.9.1.tar.gz
cd gcc-4.9.1
./configure --enable-languages=c,c++ --prefix=/media/BBB --with-gmp-include=/media/BBB/include --with-mpc-include=/media/BBB/include --with-mpfr-include=/media/BBB/include --with-mpc-lib=/media/BBB/lib --with-gmp-lib=/media/BBB/lib --with-mpfr-lib=/media/BBB/lib --with-arch=armv7-a --with-fpu=vfpv3-d16 --with-float=hard --with-mode=thumb --enable-checking=release --build=arm-linux-gnueabihf --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf && make && make install
Tweaking the compilation flags
Aiming at getting the most of the BBB, I tested several benchmarks (e.g. himeno: http://accc.riken.jp/2444.htm) to get an idea of the influence of several compilation flags on the actual performances of the compiler. I know this has its limits, as emulators are highly dependent on integer computation performance, and some benchmarks focus more on the FPU aspect for example (see himeno). I just used these results as a "hint" that the compiler was doing sensible things, and hoping everything would be for the best in the SDL/emulation world.
I ended up with the following flags, that I added to my /etc/profile./pixbox.sh script:
export CFLAGS="-O3 -march=armv7-a -mtune=cortex-a8 -mfloat-abi=hard -mfpu=vfpv3-d16 -ffast-math"
export CXXFLAGS="$CFLAGS"
Compiling the SDL library and the required modules
I intended to compile the SDL library myself as this library is essential for the performance of lots of emulators. At least, I know how this has been compiled, and especially, that the hard float ABI has been used.
SDL-1.2.15
Official link: https://www.libsdl.org/release/SDL-1.2.15.tar.gz
In some temporary folder:
tar -xzf SDL-1.2.15.tar.gz
cd SDL-1.2.15
./configure --prefix=/media/BBB/ && make && make install
SDL modules:
Do exactly the same for the following libraries:
No comments:
Post a Comment