Repository 32bit  Forum
Repository 64bit  Wiki

chiarimenti su rpath

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

chiarimenti su rpath

Messaggioda conraid » sab feb 12, 2011 14:25

chi mi spiega bene questo parametro del configure?
--disable-rpath

nel senso non che serve a dibisalitare il "runtime library search paths", ma proprio cosa è questo controllo. Se disabilito (ho visto che su arch compilano quasi tutto così per esempio) ho vantaggi o svantaggi? i pacchetti hanno meno "dipendenza" dalla versione delle librerie? o è solo un modo per trovare prima il path delle stesse?
cercando in rete ho trovato una spiegazione su come agire con cmake
http://www.itk.org/Wiki/CMake_RPATH_han ... ATH_at_all
ed ho letto varie cose, ma se qualcuno mi spiega meglio ne sarei grato
Avatar utente
conraid
Staff
Staff
 
Messaggi: 11987
Iscritto il: mer lug 13, 2005 23:00
Località: Livorno
Nome Cognome: Corrado Franco
Slackware: current

Re: chiarimenti su rpath

Messaggioda 414N » sab feb 12, 2011 14:55

Da come l'ho capita io, è un modo per cablare il percorso di ricerca delle librerie condivise richieste da un'applicazione nel binario dell'applicazione stessa.
In questo modo, in caso di librerie differenti ma omonime presenti sul sistema, si può forzare un binario a caricare quella giusta, e non la prima che si presenta nel percorso di ricerca.
Il fatto che in Arch venga rimosso è dovuto ad un possibile problema di sicurezza insito nell'uso degli rpath: è infatti possibile modificare l'ubicazione delle librerie puntate dal rpath per puntare a proprie librerie, magari piene di codice "malizioso".
Avatar utente
414N
Iper Master
Iper Master
 
Messaggi: 2877
Iscritto il: mer feb 13, 2008 16:19
Località: Bulagna
Slackware: 14.0 (x64)
Kernel: 3.2.29
Desktop: LXDE

Re: chiarimenti su rpath

Messaggioda conraid » sab feb 12, 2011 15:00

grazie
Avatar utente
conraid
Staff
Staff
 
Messaggi: 11987
Iscritto il: mer lug 13, 2005 23:00
Località: Livorno
Nome Cognome: Corrado Franco
Slackware: current

Re: chiarimenti su rpath

Messaggioda targzeta » sab feb 12, 2011 15:07

Interessante il link che hai postato Corrado. Io avevo sempre utlizzato la variabile d'ambiente LD_LIBRARY_PATH per indicare al linker dove andare a cercare le mie librerie, non sapevo neanche dell'esistenza di RPATH. Concordo con l'interpretazione di 414N.

Emanuele
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà
Avatar utente
targzeta
Iper Master
Iper Master
 
Messaggi: 6149
Iscritto il: gio nov 03, 2005 14:05
Località: Carpignano Sal. (LE) <-> Pisa
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM

Re: chiarimenti su rpath

Messaggioda conraid » sab feb 12, 2011 15:20

quel che non capisco è se però andrebbe indicato al momento della compilazione questo percorso o lo prende da se non disabilitandolo.
Avatar utente
conraid
Staff
Staff
 
Messaggi: 11987
Iscritto il: mer lug 13, 2005 23:00
Località: Livorno
Nome Cognome: Corrado Franco
Slackware: current

Re: chiarimenti su rpath

Messaggioda targzeta » sab feb 12, 2011 16:33

Allora, -rpath è una opzione per il linker (man ld). Il compilatore gnu non setta il run path all'interno dell'eseguibile a meno che non lo si specifichi. Ho provato a compilare un programma con 'make' e poi con 'LD_RUN_PATH=/home/spina/ make', nel secondo caso:
Codice: Seleziona tutto
readelf -d acpi| grep RPATH
 0x000000000000000f (RPATH)              Library rpath: [/home/spina/]

Emanuele

P.S. Ecco un altro link:
http://gcc.gnu.org/faq.html#rpath
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà
Avatar utente
targzeta
Iper Master
Iper Master
 
Messaggi: 6149
Iscritto il: gio nov 03, 2005 14:05
Località: Carpignano Sal. (LE) <-> Pisa
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite