GLIBC

Tryphon

Padawan
Bonjour,

J'ai un peu de temps pour reprendre mes investigations sur GLIBC. J'ai encore du ménage et des préparations à faire pour être capable de compiler des sources pour mon NAS : TS-653 Pro 8Go QTS 4.2.0.

1) Sur ce QTS je trouve deux versions de GLIBC 2.6.1 et 2.19. La première serait pour le mode 32 bit et la seconde pour le mode 64 bit. Mais je ne sais pas comment le NAS les utilise conjointement. J'aimerais utiliser la version 2.19 pour compiler mes sources. Quelqu'un a déjà tenté cette cohabitation là : http://linuxfr.org/users/tilk/journaux/faire-coexister-plusieurs-versions-de-la-glibc mais ça a l'air bizarre.

2) Si c'est possible, il me faudrait un OS Debian avec cette version ? Comme la Debian 8.x (x=?) ... Bref un nouveau ToolChain ?

Cher(s) maître(s), que voyez-vous dans votre cristal?

Merci!
 

QoolBox

Représentant QNAP
oui c'est possible d'utiliser la glibc 64bit

mais tu dois crosslinker les librairies de ton toolchain avec tes compilations et les inclure dans ton répertoire $PREFIX/lib (ou lib64 comme je le fais)

j'ai mon propre toolchain x64 sous ubuntu 1404 x64

exemple :

Code:
LIBS="-lrt -lm -lgcc -lstdc++" \
CXX=${HOST}-g++                 \
LD=${HOST}-ld                   \
AS=${HOST}-as                   \
AR=${HOST}-ar                   \
CC=${HOST}-gcc \
LD=${HOST}-ld \
PKG_CONFIG_PATH="$PREFIX/lib64/pkgconfig"  \
CXXFLAGS="-O2 -I$PREFIX/include"     \
LDFLAGS="-L$PREFIX/lib64 -Wl,-rpath,$PREFIX/lib64" \
CPPFLAGS="-O2  -I$PREFIX/include"     \
CFLAGS="-O2 -I$PREFIX/include  " \
./configure \
--prefix=$PREFIX \
--bindir=$PREFIX/bin \
--sbindir=$PREFIX/bin \
--libexecdir=$PREFIX/lib64exec \
--libdir=$PREFIX/lib64 \
--datadir=$PREFIX/share \
--datarootdir=$PREFIX/share \
--sysconfdir=$PREFIX/etc \
--sharedstatedir=$PREFIX/com \
--localstatedir=$PREFIX/var \
--includedir=$PREFIX/include \
--oldincludedir=$PREFIX/include \
--infodir=$PREFIX/share/info \
--localedir=$PREFIX/share/locale \
--enable-shared

LIBS= crosslink les librairies que tu auras inclus dans lib64 car elles sont manquantes dans kernel (sauf model x80), ça évite de faire un export de LD_LIBRARY_PATH

mon toolchain : http://www.positiv-it.fr/QNAP/APP/TOOLCHAINS/Ubuntu1404x64/toolchaine_ubuntu1404x64_gcc 5.2.1.tgz

aprés faut adapter ton fichier .bash_profile de ton user 'root', tu trouveras des exemples (en tapant toolchain dans le moteur de recherche en haut a droite)
 

Tryphon

Padawan
Merci !!!

Je peux compiler directement sur mon PC sous Ubuntu 14.

Encore une question : est-ce que je peux utiliser ton toolchain directement dans un docker, celui de Ubuntu 14 installable avec le QPKG Container ? Ainsi je pourrais tout faire directement avec le NAS ...
 

Tryphon

Padawan
Bonjour,

Je crois que je suis parvenu à installer le ToolChain dans Ubuntu 14 sous Docker. Comme c'est le NAS qui lance la commande docker et ses paramètres, je ne peux pas exécuter certaines commandes (comme export) dans .bash_profile (ou .profile). On dirait que ces commandes sont ignorées. Par contre je peux les inclure dans .bashrc et ça marche lorsque je lance $HOST-gcc --help.

Il y a tout de même un gros inconvénient avec la solution Container : je n'ai pas de copier coller!

Je peux commencer à travailler.

Merci.
 

Tryphon

Padawan
Bonjour,

J'ai besoin de recompiler un pilote pour TS-x53 via les GPL sources de Qnap (4.2). L'ennui est qu'il ne contient pas de fichier compiler-gcc5.h, gcc4 au mieux :cry: .

Faut-il un toolchain avec gcc 4 compilant en 64 bits? Je m'y perds!

Merci.
 

Tryphon

Padawan
En fait j'ai téléchargé le fichier compiler-gcc5.h que j'ai ajouté aux sources de GPL_TS et cette fois je peux compiler le pilote avec gcc5.2.0 dans ton toolchain. Je trouve que c'est un peu fumeux, mais ça marche et le pilote compilé reconnaît mon périphérique connecté au TS-653.

Merci !
 

QoolBox

Représentant QNAP
mmmmm

je connais pas ce fichier généralement j'utilise une autre méthode pour compiler un driver

par exemple pour les driver serial usb

Code:
export CXX=${HOST}-g++                 
export LD=${HOST}-ld                 
export AS=${HOST}-as               
export AR=${HOST}-ar                  
export CC=${HOST}-gcc


make ARCH=x86_64 CROSS_COMPILE=${HOST}- prepare
make ARCH=x86_64 CROSS_COMPILE=${HOST}- scripts

make M=drivers/usb/serial ARCH=x86_64             \
    CROSS_COMPILE=${HOST}-    \
    CONFIG_USB_SERIAL=m                         \
    CONFIG_USB_SERIAL_FTDI_SIO=m                \
    CONFIG_USB_SERIAL_PL2303=m                  \
CONFIG_USB_SERIAL_AIRCABLE=m                  \
CONFIG_USB_SERIAL_ARK3116=m                  \
CONFIG_USB_SERIAL_BELKIN=m                  \
CONFIG_USB_SERIAL_CH341=m                  \
CONFIG_USB_SERIAL_CP210X=m                  \
CONFIG_USB_SERIAL_CYBERJACK=m                  \
CONFIG_USB_SERIAL_CYPRESS_M8=m                  \
CONFIG_USB_SERIAL_DEBUG=m                  \
CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m                  \
CONFIG_USB_SERIAL_EDGEPORT=m                  \
CONFIG_USB_SERIAL_EDGEPORT_TI=m                  \
CONFIG_USB_SERIAL_EMPEG=m                  \
CONFIG_USB_SERIAL_F81232=m              \
CONFIG_USB_SERIAL_FTDI_SIO=m            \
CONFIG_USB_SERIAL_FUNSOFT=m                  \
CONFIG_USB_SERIAL_GARMIN=m                  \
CONFIG_USB_SERIAL_HP4X=m                  \
CONFIG_USB_SERIAL_IPAQ=m                  \
CONFIG_USB_SERIAL_IPW=m                  \
CONFIG_USB_SERIAL_IR=m                  \
CONFIG_USB_SERIAL_IUU=m                  \
CONFIG_USB_SERIAL_KEYSPAN=m                  \
CONFIG_USB_SERIAL_KEYSPAN_PDA=m                  \
CONFIG_USB_SERIAL_KLSI=m                  \
CONFIG_USB_SERIAL_KOBIL_SCT=m                  \
CONFIG_USB_SERIAL_MCT_U232=m                  \
CONFIG_USB_SERIAL_METRO=m                     \
CONFIG_USB_SERIAL_MOS7720=m                  \
CONFIG_USB_SERIAL_MOS7840=m                  \
CONFIG_USB_SERIAL_MOTOROLA=m                  \
CONFIG_USB_SERIAL_NAVMAN=m                  \
CONFIG_USB_SERIAL_OMNINET=m                  \
CONFIG_USB_SERIAL_OPTICON=m                  \
CONFIG_USB_SERIAL_OPTION=m                  \
CONFIG_USB_SERIAL_OTI6858=m                  \
CONFIG_USB_SERIAL_QUALCOMM=m                  \
CONFIG_USB_SERIAL_SAFE=m                  \
CONFIG_USB_SERIAL_SIEMENS_MPI=m                  \
CONFIG_USB_SERIAL_SIERRAWIRELESS=m                  \
CONFIG_USB_SERIAL_SPCP8X5=m                  \
CONFIG_USB_SERIAL_SYMBOL=m                  \
CONFIG_USB_SERIAL_WWAN=m                   \
CONFIG_USB_SERIAL_TI=m                  \
CONFIG_USB_SERIAL_VISOR=m                  \
CONFIG_USB_SERIAL_WHITEHEAT=m                  \
CONFIG_USB_SERIAL_XIRCOM=m                  \
CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m      \
CONFIG_USB_SERIAL_ZIO=m                \
    modules
 
Haut Bas