• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Kompilieren ohne Debugoptionen

ponto

Newbie
Hallo,

viele Pakete, die man selbst kompileren kann, werden durch "configure" Skripte konfiguriert. Bei einigen Programmen ist das Ergebnis, dass die Sourcen mit "-g -O2" kompiliert werden. Das "-g" Flag möchte ich jedoch nicht haben. Zwar kostet das nicht viel Laufzeit, aber es macht die Programme nicht kleiner und manchmal muss man doch auf den Platz achten.

Manche Skripte bieten die Optionen --disable-debug oder --with-debug=no oder ähnliches. Was macht man jedoch bei Paketen, die diese Optionen nicht anbieten und wo sie folglich nicht wirken? Wie bringt man diese dazu Makefiles zu erzeugen, wo "-g" nicht gesetzt ist?
 
OP
P

ponto

Newbie
Hmm,

diese Frage hat doch nichts mit Programmieren zu tun, sondern eher mit der Installation von Programmpaketen. Warum also die Verschiebung in dieses Forum?
 

panamajo

Guru
Wg. Verschiebung: es geht ums compilieren aus den Sourcen, also hats was mit Programmierung zu tun.
Zum Thema: von welchen Programmen redest du? IMHO ist es eher umgekehrt und debug Optionen müssen eher explizit angegeben werden...
 
A

Anonymous

Gast
Ich mache so was immer händisch und dann oftmals sogar extrem in dem ich noch radikalere Linkeroptionen setze.
Einen Blick in die Makefile hat mir jedenfalls schon öfter versteckte Optimierungshinweise aufgezeigt, wer weis was er da macht, findet hier immer was.

also bei kleinen Programmen ist es relativ einfach in der Makefile versteckt.
Code:
# Generated automatically from Makefile.in by configure.
#C-Compiler (gcc if exist):
CC=             gcc
CFLAGS=         -g -O2  -I/usr/X11R6/include
#CFLAGS=                -g -O2 @EXTRA_CFLAGS@  -I/usr/X11R6/include
bei mittelgroßen Programmen wirds schon unübersichtlich Ausgangspunkt für die Suche ist in der Regel CFLAGS
Code:
CDEBUGFLAGS = -O2 -g
CINCS = -Iinclude
# CINCS += -I/usr/src/sys/i386/isa/sound
CDEFS = -Wall -Dlinux

CFLAGS = $(CDEBUGFLAGS) $(CINCS) $(CDEFS)
bei großen Projekten ist es meistens nicht gesetzt oder wird mittels configure gesetzt.
Code:
ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
CFLAGS          += -Os
else
CFLAGS          += -O2
endif

ifndef CONFIG_FRAME_POINTER
CFLAGS          += -fomit-frame-pointer
endif

ifdef CONFIG_DEBUG_INFO
CFLAGS          += -g
endif
Dann ist die Einstellung einfach in der Konfigurationsfile zu änderen oftmals config.h
Code:
# CONFIG_DEBUG_PAGEALLOC is not set
# CONFIG_DEBUG_HIGHMEM is not set
# CONFIG_DEBUG_INFO is not set
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
# CONFIG_FRAME_POINTER is not set
Man muss aber bedenken wenn man manuell an der Makefile ändert , dass es dann rekursiv auch in allen Makefiles in jedem Verzeichniss geändert werden sollte, das macht dann doch schon etwas mehr Arbeit.

robi
 
OP
P

ponto

Newbie
panamajo schrieb:
Wg. Verschiebung: es geht ums compilieren aus den Sourcen, also hats was mit Programmierung zu tun.
Zum Thema: von welchen Programmen redest du? IMHO ist es eher umgekehrt und debug Optionen müssen eher explizit angegeben werden...

Folgende Programme, die ich zur Zeit kompiliere, habe ich mit

--with-debug=no
--disable-debug

oder ähnlichem zu konfigurieren versucht, aber es wird immer noch -g -O2 benutzt:

alsa-lib, atk, binutils, curl, expat, flac, fontconfig, gcc, glib, gnupg, gtk+, libao, libart_lgpl, libidn, libogg, libsamplerate, libsndfile, libvorbis, libxml2, libxslt, pango, pcre, pkgconfig, speex, tiff, vorbis_tools, xft, xrender
 
Oben