Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[GENTOO] Créer un binaire statique
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
Ascodas
Apprentice
Apprentice


Joined: 18 Nov 2004
Posts: 259

PostPosted: Sun Dec 20, 2009 5:53 am    Post subject: [GENTOO] Créer un binaire statique Reply with quote

Salut,

Toujours dans la recheche de logiciel me facilitant la vie avec l'interfacage linux/iphone sans jailbreak, j'ai trouvé un logiciel d'encodage video pour iphone assez performant (j'avoue que les qques scripts de conversions trouvés sur le net ne m'ont pas du tout convaincu), il s'agit de Handbrake et au miracle un ebuild est dispo sur bugs.gentoo.

Tout se compile et marche parfaitement, et j'aimerais figer la situation concernant ce logiciel en créant un binaire avec les librairies en statique (même si c lourd) pour ne pas avoir un jour de mauvaise surprise.

Il n'y a pas de use static dispo et il ne semble pas y avoir de possibilité avec quickpkg ?

Merci de me dire si c'est possible ou si je me trompe carrement.

+
Back to top
View user's profile Send private message
kernelsensei
Bodhisattva
Bodhisattva


Joined: 22 Feb 2004
Posts: 5619
Location: Woustviller/Moselle/FRANCE (49.07°N;7.02°E)

PostPosted: Sun Dec 20, 2009 9:40 am    Post subject: Reply with quote

Salut,

je crois qu'il suffit de rajouter un cflag -static

Tu peux l'activer uniquement pour handbrake en mettant une variable CFLAGS personnalisée dans le fichier /etc/portage/env/<categorie>/handbrake
_________________
$ ruby -e'puts " .:@BFegiklnorst".unpack("x4ax7aaX6ax5aX15ax4aax6aaX7ax2aX5aX8 \
axaX3ax8aX4ax6aX3aX6ax3ax3aX9ax4ax2aX9axaX6ax3aX2ax4ax3aX4aXaX12ax10aaX7a").join'
Back to top
View user's profile Send private message
Ascodas
Apprentice
Apprentice


Joined: 18 Nov 2004
Posts: 259

PostPosted: Mon Dec 21, 2009 7:39 pm    Post subject: Reply with quote

Merci pour ta réponse j'ai en effet avec ces éléments trouvé qquechose qui allait dans ce sens.

donc :
Code:

[thomas@corei7 portage]$ cd env/media-video/
[thomas@corei7 media-video]$ pwd
/etc/portage/env/media-video
[thomas@corei7 media-video]$ cat handbrake
CFLAGS="-static"
CXXFLAGS="${CFLAGS}"
[thomas@corei7 media-video]$


Je relance le merge de handbrake sans grand changement et le package binaire que je crée après n'augmente pas en taille donc je suppose que ca ne fonctionne pas comme attendu, je me demande si le flag static fonctionne.
Back to top
View user's profile Send private message
Leander256
l33t
l33t


Joined: 05 Jul 2003
Posts: 909
Location: Singapour

PostPosted: Tue Dec 22, 2009 12:24 am    Post subject: Reply with quote

Salut,

Il existe un moyen très simple de vérifier que ton binaire est compilé en statique, la commande ldd:
Code:
$ gcc pouet.c -static -o pouet
$ ldd pouet
   not a dynamic executable


Le problème (si il y en a un) vient probablement du fait que le Makefile de ce programme n'utilise pas gcc pour éditer les liens du binaire mais invoque directement ld. Essaye donc en rajoutant cette ligne dans ton fichier handbrake:
Code:
LDFLAGS="-static"
Back to top
View user's profile Send private message
Ascodas
Apprentice
Apprentice


Joined: 18 Nov 2004
Posts: 259

PostPosted: Tue Dec 22, 2009 6:12 am    Post subject: Reply with quote

Ok merci pour le commande ldd et ca confirme bien que ce n'est pas compilé en statique.

Par contre avec ton option LDFLAGS="-static" la compilation plante.

Code:
(.text+0xd7): undefined reference to `dlopen'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.3.4/../../../../lib64/libSDL.a(SDL_sysloadso.o): In function `SDL_LoadObject':
(.text+0xdf): undefined reference to `dlerror'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.3.4/../../../../lib64/libSDL.a(SDL_sysloadso.o): In function `SDL_UnloadObject':
(.text+0x6): undefined reference to `dlclose'
collect2: ld a retourné 1 code d'état d'exécution
make[1]: *** [ffplay_g] Erreur 1
make[1]: quittant le répertoire « /var/tmp/portage/media-video/handbrake-0.9.4/work/HandBrake-0.9.4/build/contrib/ffmpeg/ffmpeg-r19067 »
make: *** [contrib/ffmpeg/.stamp.build] Erreur 2
make: quittant le répertoire « /var/tmp/portage/media-video/handbrake-0.9.4/work/HandBrake-0.9.4/build »
 *
 * ERROR: media-video/handbrake-0.9.4 failed.
 * Call stack:
 *               ebuild.sh, line   49:  Called src_compile
 *             environment, line  321:  Called die
 * The specific snippet of code:
 *       emake -C build || die "failed compiling ${PN}"
 *  The die message:
 *   failed compiling handbrake
 *
 * If you need support, post the topmost build error, and the call stack if relevant.
 * A complete build log is located at '/var/tmp/portage/media-video/handbrake-0.9.4/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/media-video/handbrake-0.9.4/temp/environment'.
 *

>>> Failed to emerge media-video/handbrake-0.9.4, Log file:

>>>  '/var/tmp/portage/media-video/handbrake-0.9.4/temp/build.log'

 * Messages for package media-video/handbrake-0.9.4:

 *
 * ERROR: media-video/handbrake-0.9.4 failed.
 * Call stack:
 *               ebuild.sh, line   49:  Called src_compile
 *             environment, line  321:  Called die
 * The specific snippet of code:
 *       emake -C build || die "failed compiling ${PN}"
 *  The die message:
 *   failed compiling handbrake
 *
 * If you need support, post the topmost build error, and the call stack if relevant.
 * A complete build log is located at '/var/tmp/portage/media-video/handbrake-0.9.4/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/media-video/handbrake-0.9.4/temp/environment'.
 *
[root@corei7 ~]$


Merci.
Back to top
View user's profile Send private message
Leander256
l33t
l33t


Joined: 05 Jul 2003
Posts: 909
Location: Singapour

PostPosted: Tue Dec 22, 2009 8:47 am    Post subject: Reply with quote

Apparemment ce n'est pas gagné, cf ce thread:
http://www.linux-archive.org/gentoo-user/294715-building-static-libraries.html

Il me semble qu'on avait eu une discussion sur ce genre de problème dans le forum il y a très longtemps, cela vient du fait que certaines bibliothèques (libSDL dans ton cas) sont conçues pour charger à la volée d'autres bibliothèques, tu ne peux donc pas avoir une version statique.

Je ne vais pas répéter bêtement tout ce qui est dit dans le lien, je pense qu'il y a des gens versés dans ce genre de manipulations sur le forum qui te feront une réponse plus complète (et plus pertinente).
Back to top
View user's profile Send private message
Ascodas
Apprentice
Apprentice


Joined: 18 Nov 2004
Posts: 259

PostPosted: Tue Dec 22, 2009 7:11 pm    Post subject: Reply with quote

Ok ben merci pour tous ces renseignements, je me coucherais moins bête.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum