Kompilieren mit GCC für nicht Programmierer (MinGW, MSYS, GPG) FAST fertig.

Thread Starter
Mitglied seit
03.08.2006
Beiträge
1.662
Hi

Ich hab beschlossen GnuPG mal selbst zu kompilieren. Solange das Wetter es noch hergibt :) Nach dieser Anleitung. Building GnuPG for Win32 using MinGW Die ist zwar nicht mehr die neuste, grad was ihre Links angeht, aber ich hab so nach und nach alles gefunden. Und es scheint auch weitgehend alles richtig installiert zu sein.

Das Problem ist jetzt beim Punkt 5b. So wie ich das verstehe, haut man die CFLAGS rein und beim Bestätigen geht der Buildprozess los. Ist der beendet, kann wird die ganze Soße über make kompiliert.
Nach dem bestätigen der CFLAGS passiert hier aber garnichts. Auch make streikt anschliessend. Wenn jetzt der Build usw. mit Fehlern abbrechen würde, dann wäre es vielleicht ein tiefgründigeres Prob der Installation bzw. in den Sources usw.
So vermute ich aber erstmal nur eine Kleinigkeit. Die werde ich aber nicht alleine finden können.
Jemand eine Idee? :(
 

Anhänge

  • NoBuildProcess.png
    NoBuildProcess.png
    10,6 KB · Aufrufe: 74
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Er sagt ja, dass er die make file nicht finden kann. Ich vermute jetzt einfach mal, die wurde noch nicht erstellt ;). Gebe mal den Befehel './config' (ohne die ') in dem aktuellen Verzeichnis ein. Ich denke der Autor hat diesen Schritt einfach vergessen, da in diesem Bild, zu sehen ist, dass config ausgeführt wurde.

Edit:
Der Befehl kann auch './configure' heißen. Musst mal schauen was klappt.
 
Zuletzt bearbeitet:
Der Author hat das ./configure nicht vergessen. Es ist nur in der falschen Zeite, nämlich direkt hinter den CFLAGS
Code:
[B]b)[/B] CFLAGS='-O3 -mtune=i386 -march=i386 -mfpmath=387 -mno-mmx -mno-sse -mno-3dnow -mno-sse2' LDFLAGS='-s' ./configure <--- DA :D

Richtiger Weise müsste es so geschrieben werden:
Code:
CFLAGS='-O3 -mtune=i386 -march=i386 -mfpmath=387 -mno-mmx -mno-sse -mno-3dnow -mno-sse2' LDFLAGS='-s'
./configure
 
@Nascar
Das kann man aber ziemlich leicht übersehen ;).

Super, dass wir dir helfen konnten.
 
Ich hätte da noch eine wenig wichtigere Zusatzfrage :) Im "configure" von GnuPG steht:
# gcc 4.6 uses by default -fomit-frame-pointer. This
# conflicts with mingw runtime's setjmp/longjmp usage. The
# actual bug we notice is a segv related to the dlopened
# iconv.dll: After returning from set_native_charset the stack
# frame is corrupt.
if test -n "$GCC" ; then
CFLAGS="$CFLAGS -fno-omit-frame-pointer"

Weiß jemand, ob das Problem noch besteht? Oder ob es relevant ist, wenn man über mingw TDM drüberbügelt?
 
Ich denke, das sollte kein Problem sein.
In
Code:
if test -n "$GCC" ; then
CFLAGS="$CFLAGS -fno-omit-frame-pointer"
wird ja explizit getestet, ob es denn die Variable $GCC exisitiert. Wenn ja, wird CFLAG um -fno-omit-frame-pointer erweitert. Das sollte gerade den Bug betreffen der dort angesprochen wurde. Ich würde es einfach mal test. Evtl. wäre es auch interresant, wenn du das alles mal unter CygWin machst. Finde ich persönlich besser als MinGW.
 
Ja, ich sehe das auch :) Wenn die Variable >= (?) 4.6 ist, wird -fno-omit-frame-pointer benutzt. Wegen dem berschriebenen Problem. Die Frage aber war:
Ob dieser Fehler auch besteht, wenn man ohne -g kompiliert (wie in originalen Sources). Oder um was es überhaupt geht (Zusatzfrage ganz unten)

Ob ich cygwin oder mingw bzw. tdm-mingw nehme ist mir soweit Schnuppe, denn das Biotop hier funzt und ich brauche es erstmal nur für GnuPG. Das beschriebene Progblem betrifft so oder so GCC selbst.

Zusatzfrage. Leute um was geht es hier?
SJLJ or DW2?
The MinGW/TDM edition of TDM-GCC additionally offers two different methods of exception handling for your programs: SJLJ (setjmp/longjmp) and DW2 (Dwarf-2). As a general rule, you should choose the default SJLJ packages, unless you know you need faster exception handling and can guarantee you'll never need to unwind through non-DW2-compiled stack frames (such as a Windows callback). If you choose the DW2 packages, consider removing the "-dw2" suffix from the program names. See "SJLJ unwinding vs. DW2 unwinding" in the README for further notes on this topic.

The MinGW-w64/TDM64 edition currently only supports SJLJ unwinding.

Geht es hier um exceptions wie sie im debugcode vorkommen oder um alle Ereignisse welche die kompilierte Soft betreffen bzw. in der kompilierten Soft vorkommen können?
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh