# use-flags und c bzw. c++ flags

## hoschi

# Copyright 2000-2003 Daniel Robbins, Gentoo Technologies, Inc.

# Contains local system settings for Portage system

# $Header: /home/cvsroot/gentoo-src/portage/cnf/make.conf,v 1.67 2003/08/21 01:01:26 carpaski Exp $

# Please review 'man make.conf' for more information.

# Build-time functionality

# ========================

#

# The USE variable is used to enable optional build-time functionality. For

# example, quite a few packages have optional X, gtk or GNOME functionality

# that can only be enabled or disabled at compile-time. Gentoo Linux has a

# very extensive set of USE variables described in our USE variable HOWTO at

# http://www.gentoo.org/doc/use-howto.html

#

# The available list of use flags with descriptions is in your portage tree.

# Use 'less' to view them:  --> less /usr/portage/profiles/use.desc <--

#

# 'ufed' is an ncurses/dialog interface available in portage to make handling

# useflags for you. 'emerge app-admin/ufed'

#

# Example:

USE="mmx sse sse2 icc icc-pgo opengl alsa usb apm acpi gnome gtk gtk2 mpeg avi dvd cdr dvdr dvb quicktime xv dga ggi fbcon svga oggvorbis xmms gphoto2 png jpeg gif tiff ipv6 samba firebird moznoirc moznomail moznocompose flash cups scanner truetype -kde -qt"

# Host Setting

# ============

#

# If you are using a Pentium Pro or greater processor, leave this line as-is;

# otherwise, change to i586, i486 or i386 as appropriate. All modern systems

# (even Athlons) should use "i686-pc-linux-gnu". All K6's are i586.

#

CHOST="i686-pc-linux-gnu"

# Host and optimization settings 

# ==============================

#

# For optimal performance, enable a CFLAGS setting appropriate for your CPU.

#

# Please note that if you experience strange issues with a package, it may be

# due to gcc's optimizations interacting in a strange way. Please test the

# package (and in some cases the libraries it uses) at default optimizations

# before reporting errors to developers.

#

# -mcpu=<cpu-type> means optimize code for the particular type of CPU without

# breaking compatibility with other CPUs.

#

# -march=<cpu-type> means to take full advantage of the ABI and instructions

# for the particular CPU; this will break compatibility with older CPUs (for

# example, -march=athlon-xp code will not run on a regular Athlon, and

# -march=i686 code will not run on a Pentium Classic.

#

# CPU types supported in gcc-3.2 and higher: athlon-xp, athlon-mp,

# athlon-tbird, athlon, k6, k6-2, k6-3, i386, i486, i586 (Pentium), i686

# (PentiumPro), pentium, pentium-mmx, pentiumpro, pentium2 (Celeron), pentium3.

# Note that Gentoo Linux 1.4 and higher include at least gcc-3.2.

# 

# CPU types supported in gcc-2.95*: k6, i386, i486, i586 (Pentium), i686

# (Pentium Pro), pentium, pentiumpro Gentoo Linux 1.2 and below use gcc-2.95*

#

# CRITICAL WARNINGS: ****************************************************** #

# ATHLON-4 will generate invalid SSE  instructions; use 'athlon'   instead. #

# PENTIUM4 will generate invalid SSE2 instructions; use 'pentium3' instead. #

# K6 markings are deceptive. Avoid setting -march for them. See Bug #24379. #

# ************************************************************************* #

#

# Decent examples:

#

#CFLAGS="-mcpu=athlon-xp -O3 -pipe"

CFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer"

# If you set a CFLAGS above, then this line will set your default C++ flags to

# the same settings.

CXXFLAGS="${CFLAGS}"

bitte verzeiht mir das ich den angehefteten thread nicht verwendet habe, aber ich denke so ists besser  :Very Happy: 

sys:

ich habe einen intelp4(northwood)>>damals war nix bekannt von falschen pentium4 ergebnissen beim kompilieren(was ist eigentlich ein athlon4?)

gaming-kernel 2.4.20-r3

gentoo1.4

gnome2.4 

nvidia bzw. ati eigenen treiber 

alsa

mozilla-firebird (nicht mozilla)

xmms

gmplayer

gxine

quake3

ut2003

framebuffer-console samt will ich auch mal probieren, eventuell auch mal mplayer in console deswegen fbcon oder ggi!?

...

me will will dvds und divx usw. schauen und vor allem spielen(quake3)  :Mr. Green: 

was meint ihr zu meinen c und c++ flags und zu den use-flags?

darf man sse2 verwenden, soweit ich weiß schon?

nehmen wir an ich hätte einen athlon-xp (als use flags: mmx sse und 3dnow), kann ich hier auch 3dnow-professional verwenden (gibts eigentlich beim athlon64 eine neue version von 3dnow?)

danke im voraus, ich hoffe ich habe nicht zu viele unlogische useflags  :Rolling Eyes: 

nachtrag:

welcher von diesen flags macht den was bzw. gibt es zu diesem thema gute websites?

-m3dnow -mmmx -msse -mfpmath=sse,387 -finline-functions -fmerge-all-constants -fthread-jumps -fomit-frame-pointer -fexpensive-optimizations -ffast-math -fforce-addr -falign-functions=64 -falign-jumps=4 -falign-loops=4 -frerun-cse-after-loop -frerun-loop-opt -fprefetch-loop-arrays -maccumulate-outgoing-args

was bewirkt das m for mmx usw?

was macht funroll-loops usw?

ich weiß das "über_super_alles_aus_dem_compiler_rausquetsch_flags_auch _nicht_so_gut_sind" aber einige haben sicher ihre existensberichtigung, ich ich bin so ein nerd der kategorie:

"framerate is life" oder more fps=larger penis*trollschmeiss*

grüße

----------

## andreh

 *hoschi wrote:*   

> ich weiß das "über_super_alles_aus_dem_compiler_rausquetsch_flags_auch _nicht_so_gut_sind" aber einige haben sicher ihre existensberichtigung, ich ich bin so ein nerd der kategorie:
> 
> "framerate is life" oder more fps=larger penis*trollschmeiss*
> 
> grüße

 

Du bist ein Gamer, ja. Zu den anderen Sachen: schau einfach mal in die Dokumentationen, dort steht alles drin.

----------

## hoschi

ich weiß eben nichts von den c und c++ flags, dazu steht nichts in den docs auf gentoo.org (man-seite war eher entäuschend) und bei den use flags ist auch nicht alles aktuell soweit ich mal gehört habe:(

>>z.b. sse2 ??

gibt es eine gutes deutsches gcc-flag howto, google war net sehr hiflfreich

edit: gut das man hier posts löschen kann, mooonsterpost

----------

## AkR0N

http://www.sunsite.ualberta.ca/Documentation/Gnu/gcc-3.0.2/html_chapter/gcc_3.html#SEC13

Zwar in Englisch, aber wenn man sowieso nicht mit der Materie vertraut ist, macht das glaube ich keinen Unterschied.

----------

## ian!

 *hoschi wrote:*   

> 
> 
> ich weiß das "über_super_alles_aus_dem_compiler_rausquetsch_flags_auch _nicht_so_gut_sind" aber einige haben sicher ihre existensberichtigung, ich ich bin so ein nerd der kategorie:
> 
> "framerate is life" oder more fps=larger penis*trollschmeiss*
> ...

 

Naja. Was soll ich dazu noch sagen?  :Rolling Eyes: 

Um fachlich zu bleiben:

1.) Deine CFLAGS sind bis auf das march=pentium4 in Ordnung

2.) Wenn "framerate" = "life" dann solltest Du bei den stabilen CFLAGS bleiben. Der Spass mit Optimierungen hört nämlich an der Stelle auf, an der dein System instabil wird.

3.) Benutze den icc, wenn die ebuilds es zulassen. Momentan baut der icc noch schnellere Binarys als der gcc (zumindest für Intel Prozessoren).

4.) Quake3 wird IMHO als Binary ausgeliefert. Da nützen auch die tollsten CFLAGS nichts.

Also besser Finger weg von den CFLAGS! Eine schnellere CPU kostet auch nicht die Welt und bringt meist mehr --- vorallem ohne Kopfschmerzen zu bereiten. Auch mehr RAM ist für ein System (fast) immer gut.

Schalte alle unbenötigten Systemdienste aus. Befasse Dich mit XFree GLX tweaking. etc.

Aber wenn Du nach meiner Meinung fragst, dann rate ich Dir die Finger von den - scheinbar soooo verführerischen - CFLAGS zu lassen.

Ansonsten kann ich es nicht ganz glauben, daß Du es im Spiel echt merkst, ob Du nun 100 oder 110 FPS hast, wenn dein Monitor eh nur mit 90 Hz synct.

So long.

ian!

----------

## hoschi

 *ian! wrote:*   

>  *hoschi wrote:*   
> 
> ich weiß das "über_super_alles_aus_dem_compiler_rausquetsch_flags_auch _nicht_so_gut_sind" aber einige haben sicher ihre existensberichtigung, ich ich bin so ein nerd der kategorie:
> 
> "framerate is life" oder more fps=larger penis*trollschmeiss*
> ...

 

----------

## hoschi

 *AkR0N wrote:*   

> http://www.sunsite.ualberta.ca/Documentation/Gnu/gcc-3.0.2/html_chapter/gcc_3.html#SEC13
> 
> Zwar in Englisch, aber wenn man sowieso nicht mit der Materie vertraut ist, macht das glaube ich keinen Unterschied.

 

ich hatte befürchtet dass der link kommt:(

nochmal zum intel compiler:

ich dachte/denke kümmert sich selbst um diesen, wenn man dieses use-flag hat...stimmt das nicht?

----------

## ian!

 *hoschi wrote:*   

> 
> 
> ich frage deswegen ja auch, den zu viel des guten ist ja auch net gut
> 
> 

 

Genau _das_ wollte ich vermitteln.

Gruß,

ian!

----------

## ian!

 *hoschi wrote:*   

> nochmal zum intel compiler:
> 
> ich dachte/denke kümmert sich selbst um diesen, wenn man dieses use-flag hat...stimmt das nicht?

 

Dazu musst Du den icc IMHO erstmal emergen.

Gruß,

ian!

----------

## hoschi

also icc als aller erstes mergen, dann erst bootstrap?

----------

## ian!

 *hoschi wrote:*   

> also icc als aller erstes mergen, dann erst bootstrap?

 

_Sollte_ funktionieren. Wobei ich direkt anmerken muss, daß das nicht unbedingt Sinn machen muss, da sehr wenige Pakete (gerade systemnahe) mit dem icc compilebar sind. Allerdings kannst Du dir damit IMHO nichts kaputt schiessen (ohne Gewähr).

Ob sich das allerdings lohnt, daß komplette System neu aufzuziehen, wage ich zu bezweifeln. Dann doch eher ein:

```

emerge icc

(icc zu den USEFLAGS aufnehmen)

emerge -upe <paketname>

```

Das baut dir zwar auch fast das gesamte System neu, aber Du kannst zumindest damit in der Zwischenzeit arbeiten.

Gruß,

ian!

----------

## hoschi

ahh, danke  :Very Happy: 

kann man die pakete erkennen oder gibt es da regelungen?

----------

## ian!

 *hoschi wrote:*   

> ahh, danke 
> 
> kann man die pakete erkennen oder gibt es da regelungen?

 

Ja. Man kann es an den ebuilds erkennen.

Siehe hierzu z.B. /usr/portage/media-gfx/povray/povray-3.50c.ebuild.

Gruß,

ian!

----------

## AkR0N

 *hoschi wrote:*   

>  *AkR0N wrote:*   http://www.sunsite.ualberta.ca/Documentation/Gnu/gcc-3.0.2/html_chapter/gcc_3.html#SEC13
> 
> Zwar in Englisch, aber wenn man sowieso nicht mit der Materie vertraut ist, macht das glaube ich keinen Unterschied. 
> 
> ich hatte befürchtet dass der link kommt:(
> ...

 

Besser als dort wirds wohl auch keine andere Seite erklären können. Und wenns nicht reicht, versuch diesen hier: www.gelbeseiten.de

Dort einfach eine Grossraumbibliothek in deiner Nähe raussuchen und ein paar Tage/Wochen in C, C++, GCC und Linuxkernel einlesen.

----------

