-->
  • Accueil
  • Mes projets
  • Mon CV
  • A propos
  • Contact
« Projet Armadeus – Sortie de la version 3.3
Problème de Captcha résolu »
Cross compiler V8 sur ARM 9 avec uClibc et Buildroot

Parce que j’ai mis un moment à trouver les bonnes options pour cross-compiler V8 (le moteur Javascript de Google) sur ARM9 (armv4), voici les étapes que j’ai suivies.

Tout d’abord, V8 utilise execinfo. Et comme uClibC ne l’intègre pas (contrairement à glibc) il faut légèrement feinter. N’ayant pas besoin de backtrace dans mon cas, il suffit de créer un fichier execinfo.h redéfinissant les fonctions de backtraces.

?View Code C
#ifndef _EXECINFO_H_
#define _EXECINFO_H_ 1
 
#include 
 
__BEGIN_DECLS
 
int backtrace(void**,int){ return 0; }
char** backtrace_symbols(void* const*,int){return NULL; }
void backtrace_symbols_fd(void* const*,int,int){}
 
__END_DECLS
 
#endif /* !_EXECINFO_H_ */

Ce n’est pas super propre, mais ça fonctionne. Donc en se basant sur le trunk de V8, il suffit d’utiliser les commandes suivantes. Partir du trunk est important car il contient un patch récent pour ARM nécessaire pour la compilation.

En plaçant en gros bourrin le execinfo.h à la racine de V8 et en laçant le script suivant, V8 compile. (Nécessite de définir BUILDROOT_PATH tout de même)

?View Code SHELL
#!/bin/bash
export GCC_VERSION=44
 
export CC="$BUILDROOT_PATH/output/staging/usr/bin/arm-linux-gcc"
export CXX="$BUILDROOT_PATH/output/staging/usr/bin/arm-linux-g++"
 
export CXXFLAGS="-I. -mcpu=arm920t"
export CFLAGS="-I. -mcpu=arm920t"
 
scons mode=release arch=arm library=shared prof=off os=linux profilingsupport=off snapshot=off

Il n’y a plus qu’à stripper le .so « Et voilà ! »

Par contre si quelqu’un a une solution plus propre pour execinfo je suis preneur.

Share

Mots-clefs : ARM, backtrace, Buildroot, cross-compilation, execinfo, Google, uClibc, V8

Cet article a été publié le Lundi 6 septembre 2010 à 14 h 16 min et est classé dans linux, Systèmes Embarqués. Vous pouvez en suivre les commentaires par le biais du flux RSS 2.0. Vous pouvez laisser un commentaire, ou faire un trackback depuis votre propre site.




Un commentaire sur “Cross compiler V8 sur ARM 9 avec uClibc et Buildroot”

  1. R@OUL dit :
    7 septembre 2010 à 20 h 58 min

    Je ne connais pas, mais la version la plus propre que je vois c’est de mettre des flags correspondant à la uClibC. Et pourquoi pas trouver l’équivalent de ces backtraces dans ton environnement. Mais c’est vrai que j’ai eu des problèmes de backtrace moi aussi en essayant de compiler valgrind pour arm. Au final j’ai du abandonner les manip, c’est pas pour rien que valgrind n’est pas porté sur arm :-)

Laisser une réponse

Cliquez ici pour annuler la réponse.

Image CAPTCHA
Rafraîchir l'image
*

Spam Protection by WP-SpamFree



Un peu de moi autrepart :

  • rss Twitter
  • rss LinkedIn
  • rss Viadeo
  • rss Developpez.com
  • rss Github
  • rss Youtube
  • rss Flickr
  • rss Mon CV (pdf, odt) - ENGLISH
  • rss Flux RSS

  • Articles récents

    • Raspberry Pi – Premières images de la version alpha
    • Au revoir Mindscape
    • Concours de création de système Linux embarqué sur carte Mini2440
    • Juillet 2011 – Quelques news en vrac sur l’actualité de l’embarqué
    • Mass Storage USB sur tous les OS grâce au File-backed Storage Gadget (g_file_storage)
  • Commentaires récents

    • TRYSS dans DSO nano – L’oscilloscope numérique de poche
    • Yoann Sculo dans Raspberry Pi – Premières images de la version alpha
    • R@OUL dans Raspberry Pi – Premières images de la version alpha
    • sache dans Vicacopter, un hélicoptère autonome open source fort sympathique
    • Yoann Sculo dans Au revoir Mindscape
  • Catégories

    • Applications
    • Emploi
    • Général
    • linux
    • Non classé
    • Robotique
    • Systèmes Embarqués
    • Traitement d'image
  • Mots-clefs

    Android Arduino ARM association caliban Buildroot C caliban camera caprica 2010 carte fox CELF conférence ELCE 2010 embarqué Embedded Linux Conference Emploi foxboard Free Electrons G20 Genesis Karotz lapin Libre Linaro linux linux embarqué Linux Magazine magazine MeeGo Mindscape nabaztag Nokia open source planète robots Robert robot Robotique robotique amateur Simerion système embarqué Systèmes Embarqués UTT video violet électronique


Yoann Sculo est fièrement propulsé par WordPress
Articles (RSS) et Commentaires (RSS).