Faisant usage de mfloat-abi=dur et mfpu=vfp/neon Codesourcery Lite 2013.05-24
De faire usage de vfp ou néon, j'ai ajouté -mfpu=vfp et -mfloat-abi=dur pour mon cross compilation. Le Programme est très simple hellofloat.cpp qui alors ne se compile pas plus avec le Sourcery CodeBench Lite 2013.05-24.
#include <string>
#include <iostream>
using namespace std;
int main()
{
double val=1.04;
cout << "Hello Float: " << val << endl;
}
Compiler instruction:
arm-none-linux-gnueabi-g++ -o armhf-main main.cpp -march=armv7-a -mfloat-abi=hard -mfpu=neon
Je suis confondu, car Codesorcery devrait soutenir armhf compilation?
Erreur:
In file included from /home/user/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_GNU_Linux/bin/../arm-none-linux-gnueabi/libc/usr/include/features.h:399:0,
from /home/user/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_GNU_Linux/bin/../lib/gcc/arm-none-linux-gnueabi/4.7.3/../../../../arm-none-linux-gnueabi/include/c++/4.7.3/arm-none-linux-gnueabi/bits/os_defines.h:40,
from /home/user/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_GNU_Linux/bin/../lib/gcc/arm-none-linux-gnueabi/4.7.3/../../../../arm-none-linux-gnueabi/include/c++/4.7.3/arm-none-linux-gnueabi/bits/c++config.h:414,
from /home/user/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_GNU_Linux/bin/../lib/gcc/arm-none-linux-gnueabi/4.7.3/../../../../arm-none-linux-gnueabi/include/c++/4.7.3/string:40,
from main.cpp:1:
/home/user/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_GNU_Linux/bin/../arm-none-linux-gnueabi/libc/usr/include/gnu/stubs.h:10:29: fatal error: gnu/stubs-hard.h: No such file or directory
compilation terminated.
Compilateur
arm-none-linux-gnueabi-g++ -v
Using built-in specs.
COLLECT_GCC=arm-none-linux-gnueabi-g++
COLLECT_LTO_WRAPPER=/home/user/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_GNU_Linux/bin/../libexec/gcc/arm-none-linux-gnueabi/4.7.3/lto-wrapper
Target: arm-none-linux-gnueabi
Configured with: /scratch/jbrown/2013.05-arm-linux-release/src/gcc-4.7-2013.05/configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=arm-none-linux-gnueabi --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --enable-extra-sgxxlite-multilibs --with-arch=armv5te --with-gnu-as --with-gnu-ld --with-specs='%{save-temps: -fverbose-asm} %{funwind-tables|fno-unwind-tables|mabi=*|ffreestanding|nostdlib:;:-funwind-tables} -D__CS_SOURCERYGXX_MAJ__=2013 -D__CS_SOURCERYGXX_MIN__=5 -D__CS_SOURCERYGXX_REV__=24 %{O2:%{!fno-remove-local-statics: -fremove-local-statics}} %{O*:%{O|O0|O1|O2|Os:;:%{!fno-remove-local-statics: -fremove-local-statics}}}' --enable-languages=c,c++ --enable-shared --enable-lto --enable-symvers=gnu --enable-__cxa_atexit --with-pkgversion='Sourcery CodeBench Lite 2013.05-24' --with-bugurl=https://sourcery.mentor.com/GNUToolchain/--disable-nls --prefix=/opt/codesourcery --with-sysroot=/opt/codesourcery/arm-none-linux-gnueabi/libc --with-build-sysroot=/scratch/jbrown/2013.05-arm-linux-release/install/arm-none-linux-gnueabi/libc --with-gmp=/scratch/jbrown/2013.05-arm-linux-release/obj/pkg-2013.05-24-arm-none-linux-gnueabi/arm-2013.05-24-arm-none-linux-gnueabi.extras/host-libs-i686-pc-linux-gnu/usr --with-mpfr=/scratch/jbrown/2013.05-arm-linux-release/obj/pkg-2013.05-24-arm-none-linux-gnueabi/arm-2013.05-24-arm-none-linux-gnueabi.extras/host-libs-i686-pc-linux-gnu/usr --with-mpc=/scratch/jbrown/2013.05-arm-linux-release/obj/pkg-2013.05-24-arm-none-linux-gnueabi/arm-2013.05-24-arm-none-linux-gnueabi.extras/host-libs-i686-pc-linux-gnu/usr --with-ppl=/scratch/jbrown/2013.05-arm-linux-release/obj/pkg-2013.05-24-arm-none-linux-gnueabi/arm-2013.05-24-arm-none-linux-gnueabi.extras/host-libs-i686-pc-linux-gnu/usr --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --with-cloog=/scratch/jbrown/2013.05-arm-linux-release/obj/pkg-2013.05-24-arm-none-linux-gnueabi/arm-2013.05-24-arm-none-linux-gnueabi.extras/host-libs-i686-pc-linux-gnu/usr --with-libelf=/scratch/jbrown/2013.05-arm-linux-release/obj/pkg-2013.05-24-arm-none-linux-gnueabi/arm-2013.05-24-arm-none-linux-gnueabi.extras/host-libs-i686-pc-linux-gnu/usr --disable-libgomp --disable-libitm --enable-poison-system-directories --with-build-time-tools=/scratch/jbrown/2013.05-arm-linux-release/install/arm-none-linux-gnueabi/bin --with-build-time-tools=/scratch/jbrown/2013.05-arm-linux-release/install/arm-none-linux-gnueabi/bin
Thread model: posix
gcc version 4.7.3 (Sourcery CodeBench Lite 2013.05-24)
wiki.debian.org/ArmHardFloatPort et wiki.debian.org/ArmHardFloatPort/VfpComparison
Pouvez-vous compilez avec
Essayez
Sauf si vous avez de se lier à des libstdc++ construit avec
sry je n'ai pas accès au conseil d'administration jusqu'à lundi, je vais poster la -v en sortie de. softfp fonctionne, car il doit être le même que n'utilisant pas de mfloat-abi option
Pouvez-vous compilez avec
softfp
ou tout autre test simple demande? Ressemble à une chaîne de traitement question.Essayez
arm-none-linux-gnueabi-g++ -v
et après la sortie.Sauf si vous avez de se lier à des libstdc++ construit avec
-mfloat-abi=hard
, vous êtes en reliant deux incompatibles ABIs. La décadence est à prévoir.sry je n'ai pas accès au conseil d'administration jusqu'à lundi, je vais poster la -v en sortie de. softfp fonctionne, car il doit être le même que n'utilisant pas de mfloat-abi option
OriginalL'auteur eactor | 2013-06-28
Vous devez vous connecter pour publier un commentaire.
La Sourcery CodeBench Lite de la chaîne ne pas soutien armhf. Ni le Scolaire ou Personnelle éditions.
Vous aurez besoin d'acheter la version Standard ou la version Professionnelle pour obtenir ce que.
Sinon, je crois que le cross-compilateur paquets pour Ubuntu prennent en charge la configuration dont vous avez besoin (en fait, seulement que la configuration).
Si vous n'utilisez pas Ubuntu, puis le pré-construit Linaro toolchains doit être exactement ce dont vous avez besoin. (L'Ubuntu cross compilateur paquets sont/ont été également construits par Linaro les gens, mais en utilisant le fichier Debian/Ubuntu spécifiques deb système de construction.)
En effet, j'oublie que tout le monde n'utilise pas Ubuntu. Le Linaro les outils sont exactement les mêmes, mais sont plus facilement installable.
C'est une honte BRAS cessé de le parrainage de la CodeSourcery outils, mais il n'est pas difficile de voir pourquoi avec Linaro autour.
Alors à vous de savoir si, éventuellement, le Xilinx prise en charge du compilateur armhf? Ils addjust la Codesorcery compilateur et de l'ajouter à leur ISE Suite comme bras-xilinx-linux-gnueabi?
Je crois que le Xilinx toolchains utiliser le softfp ABI (c'est à dire qu'ils sont pas
armhf
), mais je ne peux pas le jurer.OriginalL'auteur ams