рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдо рдХреЗрд╡рд▓
CFLAGS
рдЪрд░ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред
CXXFLAGS
CXXFLAGS="${CFLAGS}"
рдмрд░рд╛рдмрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░
MAKEOPTS
рдХреЗрд╡рд▓ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдЪрд▓ рд░рд╣реА рд╕рдВрдХрд▓рди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ (рдЖрдорддреМрд░ рдкрд░ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛрд░ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ + 1 рд╣реИ)ред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди
"-O2 -pipe"
ред
-O
рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдЕрдиреБрдХреВрд▓рди рдХреЗ рд╕реНрддрд░ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред рджреВрд╕рд░реЗ рд╕реНрддрд░ рдХреЛ рд╕рдмрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреАрд╕рд░реЗ рд╕реНрддрд░ рдХреЗ рд╕рд╛рде, рдХрд╛рдо рдХреА рдЕрд╕реНрдерд┐рд░рддрд╛ рдЕрдХреНрд╕рд░ рдкреНрд░рдХрдЯ рд╣реЛрддреА рд╣реИред
-pipe
рдкреИрд░рд╛рдореАрдЯрд░ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрдХрд▓рди рдЪрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдмрдЬрд╛рдп рдореЗрдореЛрд░реА рдореЗрдВ рдкрд╛рдЗрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП gcc рдХреЛ рдмрддрд╛рддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдХреЗ рд╕рд╛рде, рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рддрд╣рдд рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡рд┐рднрд┐рдиреНрди рдкреНрд░реЛрд╕реЗрд╕рд░ рдореЙрдбрд▓ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдореЙрдбрд▓ рдХрд╛ рд▓рд╛рдн рдирд╣реАрдВ рдЙрдард╛рддреЗ рд╣реИрдВред
рдЖрдк рдпрд╣рд╛рдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд░реЛрд╕реЗрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕реБрд░рдХреНрд╖рд┐рдд рдЕрдиреБрдХреВрд▓рди рдзреНрд╡рдЬ рд╕реЗрдЯ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ: http://en.gentoo-wiki.com/wiki/Safe_Cflags ред рдЗрдВрдЧрд┐рдд рдХрд┐рдП рдЧрдП рдЭрдВрдбреЗ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд┐рдд рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╕рд╛рде рд╣реА рд╕рд╛рде рдЗрд╕рдХреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓рд╛рднреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
-march=native
, рд╕рдВрд╕реНрдХрд░рдг рек.реи рдХреЗ рд╕рд╛рде рд╢реБрд░реВ,
-march=native
рдзреНрд╡рдЬ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рд╣реИред рдЗрд╕ рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде, gcc рдЕрдкрдиреЗ рдЖрдк рдкреНрд░реЛрд╕реЗрд╕рд░ рдкреНрд░рдХрд╛рд░, рд╕рдорд░реНрдерд┐рдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЕрдиреБрдХреВрд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд░реЗрдВ:
- рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХрд╛ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ:
cat /proc/cpuinfo
, рдЭрдВрдбреЗ рд▓рд╛рдЗрди рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдПрдордПрдордПрдХреНрд╕ * , 3 рдбреАрдПрдирд╡реА * , рдПрд╕рд╕реАрдИ * , рд╕реАрдПрдХреНрд╕ * ; - рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ gmar -march = рдиреЗрдЯрд┐рд╡:
gcc -march=native -O2 -Q --help=target -fverbose-asm
рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛; - write
-march=native
in make.conf рдФрд░, рд╕рдВрднрд╡рддрдГ, рдХреБрдЫ рдФрд░-m*
, рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИрдВ; - рдпрджрд┐ рдЖрдкрдХрд╛ рдкреНрд░реЛрд╕реЗрд╕рд░ sse рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрджрд┐
-mfpmath=
рдзреНрд╡рдЬ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ make.conf-mfpmath=sse
; - рджреЗрдЦреЗрдВ рдХрд┐ рдХреМрди-рдХреМрди рд╕реЗ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди gcc рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:
gcc -march=native -O2 -Q --help=optimizers -fverbose-asm
; - рдЕрдЧрд░ gcc рдХрд┐рд╕реА рднреА рдЕрдиреБрдХреВрд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЙрдиреНрд╣реЗрдВ make.conf рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВред рдХреБрдЫ рдЕрдиреБрдХреВрд▓рди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рд╕реЗ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдирд┐рд╖реНрдХреНрд░рд┐рдпрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣рд╛рдВ рдЖрдкрдХреЛ рдХреЗрд╡рд▓
-fomit-frame-pointer
рд╡рд┐рдХрд▓реНрдк рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрджрд┐ рдЖрдк рдбрд┐рдмрдЧ рдирд╣реАрдВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдЗрд╕рдХрд╛ рд╕рдорд╛рд╡реЗрд╢ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИред
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рджреЗрдЦреЛ рдХрд┐ рдЖрдкрдХреЗ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд╕рд╛рде gcc рдХреНрдпрд╛ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛:
gcc <your_options> -Q --help = target -fverbose-asm
gcc <your_options> -Q --help = optimizers -fverbose-asm
-fverbose-asm
рдлреНрд▓реИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛, gcc рдЕрдорд╛рдиреНрдп рдбреЗрдЯрд╛ рджрд┐рдЦрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкрд░ рдпрд╣рд╛рдВ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИ: http://www.gentoo.ru/node/14818 ред
рдФрд░ рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджрд┐рдЦрд╛рдПрдЧреА рдХрд┐ рдХрдВрдкрд╛рдЗрд▓рд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдореЗрдВ рдХреНрдпрд╛ рдорд┐рд▓рддрд╛ рд╣реИ:
gcc <your_options> -E -v - </dev/null 2>&1 | sed -n 's/.* -v - //p'
gcc <your_options> -E -v - </dev/null 2>&1 | sed -n 's/.* -v - //p'
ред рдмреНрдпрд╛рдЬ рдХреА рд╢рд╛рдпрдж рдХреЗрд╡рд▓ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рд╣реИред