2012-05-09 4 views
21

Valgrind nicht wie glibc 2.15:valgrind nicht akzeptiert neueste Version von glibc

checking the GLIBC_VERSION version... unsupported version 2.15 
configure: error: Valgrind requires glibc version 2.2 - 2.14 

Wie kann ich damit umgehen? Muss ich glibc downgraden? Ich arbeite an Ubuntu 12.04, wenn das relevante Informationen sind.

Update:

Also ich versuche Quelle zum Herunterladen und Installieren von dort anstelle der Verwendung von apt-get, da ich werde durch Lernen C the Hard Way. Nachdem ich dieses Problem hatte, griff ich zu apt-get, um zu sehen, ob es funktionieren würde. installiert dieses Paket für mich:

libc6-dbg - Embedded GNU C Library: detached debugging symbols 

Antwort

9

How can I deal with this?

eine von zwei Möglichkeiten:

  1. Distribution verwenden und das Paket herunterladen sie bereits für Sie erstellt haben, oder
  2. Figur aus der Problem (das ist, dass configure nicht regeneriert wurde, nachdem 2.15 zu configure.in hinzugefügt wurde) und beheben Sie es.

do I have to downgrade glibc?

, die wahrscheinlich Ihr System nicht mehr bootet (weil die meisten anderen Binärdateien sind abhängig von 2.15) übertragen wird.

18

Ich gehe auch durch dieses Buch und stieß auf dieses Problem. Ich habe es gegooglet und bin hier dem Rat von Employee Russian gefolgt. Ich bin reingegangen und habe mit den configure-Dateien gespielt und es zur Arbeit gebracht.

Gehen Sie in Ihrem configure über Leitung 6404 und fügen Sie diese in:

  2.15) 
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.15 family" >&5 
$as_echo "2.15 family" >&6; } 

$as_echo "#define GLIBC_2_14 1" >>confdefs.h 

DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}" 
DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}" 
DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}" 
;; 

Dann lief ich configure, make und dann sudo make install und alles funktionierte. In der Datei configure.in habe ich auch Code um 777 hinzugefügt, aber ich denke nicht, dass es wichtig für das Endergebnis war, wenn es im Grunde nur kopiert die vorherigen Sachen, 2.14, eingefügt und änderte alles auf 2,15

this helps

+1

vielen Dank dafür. Ich konnte auch die Befehle make und install installieren und ausführen. Thought valgrind jetzt Beschwerden über die Verwendung von "install glibc debuginfo", Valgrind selbst scheint installiert worden zu sein. Danke vielmals. – Ayusman

3

Neugestaltete für valgrind-3.8.1 (und dies sollte auf jeder quasi-aktuelle Box Linux arbeiten - getestet auf Slackware 14.0):

Added a "2,17" Option (ca. Zeile 6607) zwischen dem Ende von "2.16" & der Anfang von "Darwin" in "Valgrind-3.8.1/konfigurieren" f Ile.

Arbeitete wie ein Charme! Danke für die Hilfe Jungs!

Prost!

--at

10

Update für valgrind 3.9.0 und glibc 2.19:

ich das gleiche Problem haben, und das Hinzufügen dieser an das Skript configure, vor der Zeile mit darwin), es fest:

 2.19) 
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.19 family" >&5 
$as_echo "2.19 family" >&6; } 

$as_echo "#define GLIBC_2_19 1" >>confdefs.h 

    DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}" 
    DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}" 
    DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}" 
    ;; 

auf KUbuntu Getestet 14.04

+0

Die Remember-Zeilennummer wurde in '6551' geändert. Also kopieren Sie es nicht um '6404' (Für diejenigen, die Angst haben, die Konfigurationsdatei zu bearbeiten). – kAmol

1

Es scheint, wann immer Eine neue Version wird freigegeben Terminal fragt nach verschiedenen Versionen von Glibc. Also, wenn Terminal einen solchen Fehler gibt:

checking the GLIBC_VERSION version... unsupported version 2.19 
configure: error: Valgrind requires glibc version 2.2 - 2.14 

Dann müssen Sie Datei für 2,19 Version konfigurieren bearbeiten, da diese Version nicht unterstützt wird, wie in teminal berichtet.

So finden Sie die Datei und öffnen Sie in der Datei folgenden Code namens configure in valgrind Verzeichnis und mit STRG + F finden:

case "${GLIBC_VERSION}" in 2.2)

Wenn Sie im Editor zu dieser Zeile Code erhalten (immer die Zeilennummer kann sich durch die neue Version ändern) Sie finden den folgenden Code beginnend mit 2.2).

 2.2) 
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.15 family" >&5 
$as_echo "2.15 family" >&6; } 

$as_echo "#define GLIBC_2_14 1" >>confdefs.h 

DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}" 
DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}" 
DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}" 
;; 

Und wenn du da unten bekommen sollte der gleiche Code für jede Version 2.2-2.21 oder mehr sein. Kopieren Sie den Code jeder Version und nach der letzten Version, aber beachten Sie, dass der obige Code nur für 2.2 Version ist, die mit 2.2) beginnt, müssen Sie alle diese 2.2) 's zu der Version, die Sie benötigen von Terminal, die ist 2.19) in meinem Fall.

Also, wenn Version 2.19 von Terminal erforderlich ist der Code, den Sie hinzufügen werden wird wie folgt aussehen:

 2.19) 
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.19 family" >&5 
$as_echo "2.19 family" >&6; } 

$as_echo "#define GLIBC_2_19 1" >>confdefs.h 

DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}" 
DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}" 
DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}" 
;; 

Und nach Ihrem Code, wenn die Datei nach unten geht dort darwin) auf den nächsten Zeilen sein sollte.

+0

Es hat für mich funktioniert. Danke vielmals. –

+0

Das war mein Fehler: Überprüfung der Version GLIBC_VERSION ... nicht unterstützte Version 2.21 configure: Fehler: Valgrind erfordert glibc Version 2.2 - 2.19 Dann folgte ich Ihren Anweisungen und arbeitete wie ein Charme. –