Cygwin unter Windows 7 x64

13293
Rom

Bei der Migration zu Windows 7 x64 habe ich Probleme, Cygwin in dieser Umgebung auszuführen. Anscheinend ist die ASLR-Funktion von Windows 7 die Ursache. Dadurch werden verschiedene DLLs an verschiedenen Adressen im virtuellen Speicher geladen. Cygwin erwartet, dass dieselben Basisadressen für dieselben DLLs in den übergeordneten und untergeordneten Prozessen vorhanden sind, wenn ein untergeordneter Prozess erzeugt wird. Anscheinend gibt es dafür eine spezifische Prüfung und die folgende Meldung wird angezeigt:

5816 [main] perl 4148 C:\Cygwin\bin\perl.exe: *** fatal error - unable to remap C:\Cygwin\lib\perl5\5.10\i686-Cygwin\auto\Data\Dumper\Dumper.dll to same address as parent(0x9A0000) != 0xB40000 

Ich habe versucht, ASLR zu deaktivieren, indem ich HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Speicherverwaltung \ MoveImages: DWORD auf 0 gesetzt habe, aber es scheint nichts zu tun: Die DLLs werden immer noch in zufällige Bereiche geladen (verifiziert durch das Obige Nachricht und durch Anzeigen des Adressraums der beiden Prozesse mithilfe von Process Explorer)

Während ich vorhabe, den XP-Modus zum Ausführen von Cygwin zu verwenden, erscheint es etwas künstlich und schafft einige Einschränkungen.

Kennt jemand eine Möglichkeit, Cygwin direkt unter Windows 7 x64 auszuführen?

6
Haben Sie Cygwin im "Kompatibilitätsmodus" ausgeführt? Reuben vor 14 Jahren 0
Ja. Auch als Administrator (dh im erhöhten Modus). Keiner von ihnen hilft :( Rom vor 14 Jahren 0

3 Antworten auf die Frage

4
akira

hatte das gleiche Problem unter Windows 7 64-Bit, rebase löst es:

das macht es, danke! Rom vor 14 Jahren 0
1
Reini Urban

Perlrebase (Ich bin der Betreuer und Autor)

Noch nicht verifiziert:

  • Wenn Sie weiterhin Fork-Fehler erhalten, versuchen Sie, das ASLR-Flag in den DLLs zu löschen.
    peflags -d0 in allen DLLs (zB Ihre Rebase.Lst)

Ich versuche das jetzt und wenn es hilft, werde ich eine neue Perl-Version veröffentlichen.

Kannst du erklären, wie das dem OP tatsächlich hilft? Canadian Luke vor 8 Jahren 0
0
A Dwarf

Dies ist eine der wenigen Situationen, in denen Sie den Windows XP-Modus und nicht die XP-Kompatibilität benötigen . Hoffentlich erfüllt Ihr Prozessor die Anforderungen. Sie benötigen einen Prozessor, der Hardware-Virtualisierung unterstützt.

Um sicherzugehen, führen Sie das entsprechende Tool aus.

  • Intel Prozessor-Identifizierungsprogramm
  • AMD Virtualization System Compatibility Dienstprogramm

Hinweis Der XP-Modus befindet sich noch im Release-Kandidatenmodus. Zumindest auf meiner 32-Bit-Maschine verhält es sich gut. Ich bin zuversichtlich, dass Sie mit Ihrem x64 eine ähnliche Erfahrung machen werden.

BEARBEITEN: Ich kann nur einen Hyperlink pro Antwort posten, bis ich kein neuer Benutzer mehr bin. Also gehen die Links auf einen Kommentar zu diesem Beitrag

Also, Intel: http://www.intel.com/support/processors/tools/piu/ AMD: http://support.amd.com/us/Search/results.aspx?k=amd%20virtualization%20compatibility% 20check A Dwarf vor 14 Jahren 0
Sie sagten, Sie hätten es geplant, es aber nicht bereits im XP-Modus ausgeführt. Welche Einschränkungen können das auf jeden Fall sein? Der XP-Modus ist ein vollständiger Virtualisierungsmodus. Das Programm hat keine Möglichkeit zu wissen, dass es sich in einer VM-Umgebung befindet. A Dwarf vor 14 Jahren 0
Dies ist für die ursprüngliche Frage irrelevant, aber für den Fall, dass es für jemanden nützlich sein kann, gibt es für mich Einschränkungen beim Ausführen im XP-Modus: a) Der x64-Modus ist im Win7 XP-Modus nicht verfügbar. b) Es ist nur eine CPU verfügbar c) Ein bestimmtes Tool arbeitet mit den lokalen Festplatten anders als mit zugeordneten "Netzwerk" -Disketten. Daher muss ich es auf dem Hauptcomputer ausführen. Alle diese Probleme haben eine Problemumgehung oder können toleriert werden, aber die wirkliche Lösung wird bevorzugt Rom vor 14 Jahren 0