
Recherche avancée
Autres articles (112)
-
Personnaliser en ajoutant son logo, sa bannière ou son image de fond
5 septembre 2013, parCertains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;
-
Le profil des utilisateurs
12 avril 2011, parChaque utilisateur dispose d’une page de profil lui permettant de modifier ses informations personnelle. Dans le menu de haut de page par défaut, un élément de menu est automatiquement créé à l’initialisation de MediaSPIP, visible uniquement si le visiteur est identifié sur le site.
L’utilisateur a accès à la modification de profil depuis sa page auteur, un lien dans la navigation "Modifier votre profil" est (...) -
La sauvegarde automatique de canaux SPIP
1er avril 2010, parDans le cadre de la mise en place d’une plateforme ouverte, il est important pour les hébergeurs de pouvoir disposer de sauvegardes assez régulières pour parer à tout problème éventuel.
Pour réaliser cette tâche on se base sur deux plugins SPIP : Saveauto qui permet une sauvegarde régulière de la base de donnée sous la forme d’un dump mysql (utilisable dans phpmyadmin) mes_fichiers_2 qui permet de réaliser une archive au format zip des données importantes du site (les documents, les éléments (...)
Sur d’autres sites (29276)
-
Evolution #4417 : Augmenter la longueur du mot de passe demandé pour créer un nouvel auteur
19 décembre 2019, par jean marie gralljean marie grall a écrit :
Je vois bien la pertinence du principe effectivement. Il n’y a pas un système qui empêche la brute force ? (1000 essais par seconde, ça se voit, non ?)
Alors qu’avoir le nom de son chat basket, suffit d’être le voisin du bureau pour le trouver et ça, c’est difficile à repérer :)Bref, c’était une proposition suite à #4416, je trouvais que 6 caractères, c’était vraiment pas bcp :)
-
Including objects to a shared library from a C++ archive (.a)
1er septembre 2021, par El SampsaI am trying to include some object files into a shared library I am building. Take the following command (things in [ETC] have been omitted for brevity) :





/usr/bin/c++ -fPIC -std=c++14 -pthread -Iinclude/ext/liveMedia -Iinclude/ext/groupsock [ETC] -g -shared -Wl,-soname,libValkka.so -o lib/libValkka.so CMakeFiles/Valkka.dir/src/avthread.cpp.o CMakeFiles/Valkka.dir/src/opengl.cpp.o [ETC] CMakeFiles/Valkka.dir/src/decoders.cpp.o -lX11 -lGLEW -lGLU -lGL -Wl,—whole-archive lib/libavcodec.a -Wl,—no-whole-archive





So basically I am just creating a shared library where most of the objects come from my own source code (i.e. CMakeFiles/Valkka.dir/src/*.o), but some of them come from an external static library, located at "lib/libavcodec.a". I get the following error :





/usr/bin/ld : lib/libavcodec.a(h264_cabac.o) : relocation R_X86_64_PC32 against symbol 'ff_h264_cabac_tables' can not be used when making a shared object ; recompile with -fPIC
 /usr/bin/ld : final link failed : Bad value
 collect2 : error : ld returned 1 exit status





But that is so untrue ! I can extract "libavcodec.a" with



ar x libavcodec.a




And after that check that



readelf --relocs h264_cabac.o | egrep '(GOT|PLT|JU?MP_SLOT)' 




does give some **it :





00000000175d 003100000004 R_X86_64_PLT32 0000000000000000 __stack_chk_fail - 4
 000000001926 003100000004 R_X86_64_PLT32 0000000000000000 __stack_chk_fail - 4

 

...





As does



objdump -r h264_cabac.o | grep -i "relocation"




So, indeed, the object files in "libavcodec.a" have been compiled to get PIC (position independent code).



Why does the linker believe otherwise !?



Related links :



How to include all objects of an archive in a shared object ?



Linking archives (.a) into shared object (.so)



Is there a way to determine that a .a or .so library has been compiled as position indepenent code ?



How can I tell, with something like objdump, if an object file has been built with -fPIC ?


-
Anomalie #3748 (Fermé) : La fonction recuperer_lapage est obsolète ; à remplacer par recuperer_url
10 mars 2016Après la release de 3.1.1, en local et chez OVH, la détection de version de SPIP affichée en pied du backoffice ne fonctionnait plus.
Je n’avais pas l’annonce "La mise à jour 3.1.1 de SPIP est disponible" même après lancement du genie mise_a_jour.En local mon /tmp/cache/xml/archives.xml restait vide
Apparement le problème vient de :
genie/mise_a_jour.php
$res = recuperer_lapage($url, false, ’GET’, _COPIE_LOCALE_MAX_SIZE, ’’, false, $a) ;
qui ne renvoie rien
en remplacant par la fonction non obsolète
$res = recuperer_url($url) ;
on récupère bien l’archive et résout le bug