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.
Avatar utente
conraid
Staff
Staff
Messaggi: 12650
Iscritto il: gio lug 14, 2005 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Località: Livorno
Contatta:

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
414N
Iper Master
Iper Master
Messaggi: 2893
Iscritto il: mer feb 13, 2008 16:19
Slackware: current
Kernel: 3.14.23
Desktop: KDE4
Località: Bulagna
Contatta:

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
conraid
Staff
Staff
Messaggi: 12650
Iscritto il: gio lug 14, 2005 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Località: Livorno
Contatta:

Re: chiarimenti su rpath

Messaggioda conraid » sab feb 12, 2011 15:00

grazie

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6352
Iscritto il: gio nov 03, 2005 14:05
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

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
conraid
Staff
Staff
Messaggi: 12650
Iscritto il: gio lug 14, 2005 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Località: Livorno
Contatta:

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
targzeta
Iper Master
Iper Master
Messaggi: 6352
Iscritto il: gio nov 03, 2005 14:05
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

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à 


Torna a “Programmazione”

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite