# CFLAGS for Atom N270

## emc

Hi,

recently I've update gcc to 4.5.3 and btw I've change CFLAGS -march=native. I thinking if it's everything, going thru gentoo wiki a decide to set my flags like:

```
CFLAGS="-march=native -msse3 -mmmx -mssse3 -msse2 -mfpmath=sse -pipe -fomit-frame-pointer -O2"

CXXFLAGS="${CFLAGS}"

CHOST="i686-pc-linux-gnu"

MAKEOPTS="-j3"
```

Since -mtune=atom (because -march=native and new gcc) will be added automatically, is unnecessary.

Generally how is yours CFLAGS form Atom configured? I not 100% if all mxx nad sse* added correctly?  :Wink: 

thx in advance

----------

## gringo

im not in front of my eeepc now but if you are going to use -march=native you dont need all the optimizations in your make.conf. 

-O2 -march=native -pipe -fomit-frame-pointer or sth. similar will do the same job

cheers

----------

## emc

you mean all need params for atom listed here:

```
meee ~ # cc -march=native -E -v - </dev/null 2>&1 | grep cc1

 /usr/libexec/gcc/i686-pc-linux-gnu/4.5.3/cc1 -E -quiet -v - -D_FORTIFY_SOURCE=2 -march=atom -msahf -mmovbe --param l1-cache-size=24 --param l1-cache-line-size=64 --param l2-cache-size=512 -mtune=atom
```

and here:

```
meee ~ # echo | gcc -dM -E - -march=native

#define __DBL_MIN_EXP__ (-1021)

#define __UINT_LEAST16_MAX__ 65535

#define __FLT_MIN__ 1.17549435082228750797e-38F

#define __UINT_LEAST8_TYPE__ unsigned char

#define __INTMAX_C(c) c ## LL

#define __CHAR_BIT__ 8

#define __UINT8_MAX__ 255

#define __WINT_MAX__ 4294967295U

#define __SIZE_MAX__ 4294967295U

#define __WCHAR_MAX__ 2147483647L

#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1

#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1

#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1

#define __DBL_DENORM_MIN__ ((double)4.94065645841246544177e-324L)

#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1

#define __FLT_EVAL_METHOD__ 2

#define __unix__ 1

#define __UINT_FAST64_MAX__ 18446744073709551615ULL

#define __SIG_ATOMIC_TYPE__ int

#define __DBL_MIN_10_EXP__ (-307)

#define __FINITE_MATH_ONLY__ 0

#define __GNUC_PATCHLEVEL__ 3

#define __UINT_FAST8_MAX__ 255

#define __DEC64_MAX_EXP__ 385

#define __INT8_C(c) c

#define __UINT_LEAST64_MAX__ 18446744073709551615ULL

#define __SHRT_MAX__ 32767

#define __LDBL_MAX__ 1.18973149535723176502e+4932L

#define __UINT_LEAST8_MAX__ 255

#define __UINTMAX_TYPE__ long long unsigned int

#define __linux 1

#define __DEC32_EPSILON__ 1E-6DF

#define __unix 1

#define __UINT32_MAX__ 4294967295U

#define __LDBL_MAX_EXP__ 16384

#define __WINT_MIN__ 0U

#define __linux__ 1

#define __SCHAR_MAX__ 127

#define __WCHAR_MIN__ (-__WCHAR_MAX__ - 1)

#define __INT64_C(c) c ## LL

#define __DBL_DIG__ 15

#define _FORTIFY_SOURCE 2

#define __SIZEOF_INT__ 4

#define __SIZEOF_POINTER__ 4

#define __USER_LABEL_PREFIX__ 

#define __STDC_HOSTED__ 1

#define __LDBL_HAS_INFINITY__ 1

#define __FLT_EPSILON__ 1.19209289550781250000e-7F

#define __LDBL_MIN__ 3.36210314311209350626e-4932L

#define __DEC32_MAX__ 9.999999E96DF

#define __INT32_MAX__ 2147483647

#define __SIZEOF_LONG__ 4

#define __UINT16_C(c) c

#define __DECIMAL_DIG__ 21

#define __gnu_linux__ 1

#define __LDBL_HAS_QUIET_NAN__ 1

#define __GNUC__ 4

#define __MMX__ 1

#define __FLT_HAS_DENORM__ 1

#define __SIZEOF_LONG_DOUBLE__ 12

#define __BIGGEST_ALIGNMENT__ 16

#define __DBL_MAX__ ((double)1.79769313486231570815e+308L)

#define __INT_FAST32_MAX__ 2147483647

#define __DBL_HAS_INFINITY__ 1

#define __DEC32_MIN_EXP__ (-94)

#define __INT_FAST16_TYPE__ int

#define __LDBL_HAS_DENORM__ 1

#define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL

#define __INT_LEAST32_MAX__ 2147483647

#define __DEC32_MIN__ 1E-95DF

#define __DBL_MAX_EXP__ 1024

#define __DEC128_EPSILON__ 1E-33DL

#define __PTRDIFF_MAX__ 2147483647

#define __LONG_LONG_MAX__ 9223372036854775807LL

#define __SIZEOF_SIZE_T__ 4

#define __SIZEOF_WINT_T__ 4

#define __GXX_ABI_VERSION 1002

#define __FLT_MIN_EXP__ (-125)

#define __INT_FAST64_TYPE__ long long int

#define __DBL_MIN__ ((double)2.22507385850720138309e-308L)

#define __DECIMAL_BID_FORMAT__ 1

#define __DEC128_MIN__ 1E-6143DL

#define __REGISTER_PREFIX__ 

#define __UINT16_MAX__ 65535

#define __DBL_HAS_DENORM__ 1

#define __UINT8_TYPE__ unsigned char

#define __NO_INLINE__ 1

#define __i386 1

#define __FLT_MANT_DIG__ 24

#define __VERSION__ "4.5.3"

#define __UINT64_C(c) c ## ULL

#define __INT32_C(c) c

#define __DEC64_EPSILON__ 1E-15DD

#define __DEC128_MIN_EXP__ (-6142)

#define __INT_FAST32_TYPE__ int

#define __UINT_LEAST16_TYPE__ short unsigned int

#define unix 1

#define __INT16_MAX__ 32767

#define __i386__ 1

#define __SIZE_TYPE__ unsigned int

#define __UINT64_MAX__ 18446744073709551615ULL

#define __INT8_TYPE__ signed char

#define __ELF__ 1

#define __FLT_RADIX__ 2

#define __INT_LEAST16_TYPE__ short int

#define __LDBL_EPSILON__ 1.08420217248550443401e-19L

#define __UINTMAX_C(c) c ## ULL

#define __SIG_ATOMIC_MAX__ 2147483647

#define __SIZEOF_PTRDIFF_T__ 4

#define __tune_atom__ 1

#define __DEC32_SUBNORMAL_MIN__ 0.000001E-95DF

#define __INT_FAST16_MAX__ 2147483647

#define __UINT_FAST32_MAX__ 4294967295U

#define __UINT_LEAST64_TYPE__ long long unsigned int

#define __FLT_HAS_QUIET_NAN__ 1

#define __FLT_MAX_10_EXP__ 38

#define __LONG_MAX__ 2147483647L

#define __DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL

#define __FLT_HAS_INFINITY__ 1

#define __UINT_FAST16_TYPE__ unsigned int

#define __DEC64_MAX__ 9.999999999999999E384DD

#define __atom 1

#define __CHAR16_TYPE__ short unsigned int

#define __PRAGMA_REDEFINE_EXTNAME 1

#define __INT_LEAST16_MAX__ 32767

#define __DEC64_MANT_DIG__ 16

#define __INT64_MAX__ 9223372036854775807LL

#define __UINT_LEAST32_MAX__ 4294967295U

#define __INT_LEAST64_TYPE__ long long int

#define __INT16_TYPE__ short int

#define __INT_LEAST8_TYPE__ signed char

#define __DEC32_MAX_EXP__ 97

#define __INT_FAST8_MAX__ 127

#define __INTPTR_MAX__ 2147483647

#define linux 1

#define __SSE2__ 1

#define __SSSE3__ 1

#define __LDBL_MANT_DIG__ 64

#define __DBL_HAS_QUIET_NAN__ 1

#define __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1)

#define __INTPTR_TYPE__ int

#define __UINT16_TYPE__ short unsigned int

#define __WCHAR_TYPE__ long int

#define __SIZEOF_FLOAT__ 4

#define __UINTPTR_MAX__ 4294967295U

#define __DEC64_MIN_EXP__ (-382)

#define __INT_FAST64_MAX__ 9223372036854775807LL

#define __FLT_DIG__ 6

#define __UINT_FAST64_TYPE__ long long unsigned int

#define __INT_MAX__ 2147483647

#define __INT64_TYPE__ long long int

#define __FLT_MAX_EXP__ 128

#define __DBL_MANT_DIG__ 53

#define __INT_LEAST64_MAX__ 9223372036854775807LL

#define __DEC64_MIN__ 1E-383DD

#define __WINT_TYPE__ unsigned int

#define __UINT_LEAST32_TYPE__ unsigned int

#define __SIZEOF_SHORT__ 2

#define __SSE__ 1

#define __LDBL_MIN_EXP__ (-16381)

#define __INT_LEAST8_MAX__ 127

#define __LDBL_MAX_10_EXP__ 4932

#define __DBL_EPSILON__ ((double)2.22044604925031308085e-16L)

#define __UINT8_C(c) c

#define __atom__ 1

#define __INT_LEAST32_TYPE__ int

#define __SIZEOF_WCHAR_T__ 4

#define __UINT64_TYPE__ long long unsigned int

#define __INT_FAST8_TYPE__ signed char

#define __DEC_EVAL_METHOD__ 2

#define __UINT32_C(c) c ## U

#define __INTMAX_MAX__ 9223372036854775807LL

#define __FLT_DENORM_MIN__ 1.40129846432481707092e-45F

#define __INT8_MAX__ 127

#define __UINT_FAST32_TYPE__ unsigned int

#define __CHAR32_TYPE__ unsigned int

#define __FLT_MAX__ 3.40282346638528859812e+38F

#define __INT32_TYPE__ int

#define __SIZEOF_DOUBLE__ 8

#define __FLT_MIN_10_EXP__ (-37)

#define __INTMAX_TYPE__ long long int

#define i386 1

#define __DEC128_MAX_EXP__ 6145

#define __GNUC_MINOR__ 5

#define __UINTMAX_MAX__ 18446744073709551615ULL

#define __DEC32_MANT_DIG__ 7

#define __DBL_MAX_10_EXP__ 308

#define __LDBL_DENORM_MIN__ 3.64519953188247460253e-4951L

#define __INT16_C(c) c

#define __STDC__ 1

#define __PTRDIFF_TYPE__ int

#define __UINT32_TYPE__ unsigned int

#define __UINTPTR_TYPE__ unsigned int

#define __DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD

#define __DEC128_MANT_DIG__ 34

#define __LDBL_MIN_10_EXP__ (-4931)

#define __SIZEOF_LONG_LONG__ 8

#define __LDBL_DIG__ 18

#define __UINT_FAST16_MAX__ 4294967295U

#define __GNUC_GNU_INLINE__ 1

#define __SSE3__ 1

#define __UINT_FAST8_TYPE__ unsigned char
```

are included? Just checking.

I can ignore that:

```
meee ~ # gcc -Q --help=target -march=native

The following options are target specific:

  -m128bit-long-double              [disabled]

  -m32                              [enabled]

  -m3dnow                           [disabled]

  -m3dnowa                          [disabled]

  -m64                              [disabled]

  -m80387                           [enabled]

  -m96bit-long-double               [enabled]

  -mabi=                            

  -mabm                             [disabled]

  -maccumulate-outgoing-args        [disabled]

  -maes                             [disabled]

  -malign-double                    [disabled]

  -malign-functions=                

  -malign-jumps=                    

  -malign-loops=                    

  -malign-stringops                 [enabled]

  -march=                           atom

  -masm=                            

  -mavx                             [disabled]

  -mbranch-cost=                    

  -mcld                             [disabled]

  -mcmodel=                         

  -mcrc32                           [disabled]

  -mcx16                            [disabled]

  -mfancy-math-387                  [enabled]

  -mfma                             [disabled]

  -mfma4                            [disabled]

  -mforce-drap                      [disabled]

  -mfp-ret-in-387                   [enabled]

  -mfpmath=                         

  -mfused-madd                      [enabled]

  -mglibc                           [enabled]

  -mhard-float                      [enabled]

  -mieee-fp                         [enabled]

  -mincoming-stack-boundary=        

  -minline-all-stringops            [disabled]

  -minline-stringops-dynamically    [disabled]

  -mintel-syntax                    [disabled]

  -mlarge-data-threshold=           

  -mlwp                             [disabled]

  -mmmx                             [disabled]

  -mmovbe                           [enabled]

  -mms-bitfields                    [disabled]

  -mno-align-stringops              [disabled]

  -mno-fancy-math-387               [disabled]

  -mno-push-args                    [disabled]

  -mno-red-zone                     [disabled]

  -mno-sse4                         [enabled]

  -momit-leaf-frame-pointer         [disabled]

  -mpc                              

  -mpclmul                          [disabled]

  -mpopcnt                          [disabled]

  -mpreferred-stack-boundary=       

  -mpush-args                       [enabled]

  -mrecip                           [disabled]

  -mred-zone                        [enabled]

  -mregparm=                        

  -mrtd                             [disabled]

  -msahf                            [enabled]

  -msoft-float                      [disabled]

  -msse                             [disabled]

  -msse2                            [disabled]

  -msse2avx                         [disabled]

  -msse3                            [disabled]

  -msse4                            [disabled]

  -msse4.1                          [disabled]

  -msse4.2                          [disabled]

  -msse4a                           [disabled]

  -msseregparm                      [disabled]

  -mssse3                           [disabled]

  -mstack-arg-probe                 [disabled]

  -mstackrealign                    [enabled]

  -mstringop-strategy=              

  -mtls-dialect=                    

  -mtls-direct-seg-refs             [enabled]

  -mtune=                           atom

  -muclibc                          [disabled]

  -mveclibabi=                      

  -mxop                             [disabled]
```

I mean sse* mmx are disabled.

----------

