# ¿march=native no detecta todas mis flags?{resuelto}

## papu

Tengo curiosidad por saber ¿porque poniendo -march=native o en mi caso algo más concreto como core-avx-i, he de indicarlo a mano en make.conf para que detecte todas mis flags de la cpu? solo detecta mmx, sse y sse2.

http://gcc.gnu.org/onlinedocs/gcc-4.6.3/gcc/i386-and-x86_002d64-Options.html#i386-and-x86_002d64-Options

cat /proc/cpuinfo

```
  

processor       : 0

vendor_id       : GenuineIntel

cpu family      : 6

model           : 58

model name      : Intel(R) Core(TM) i5-3570K CPU @ 3.40GHz

stepping        : 9

microcode       : 0x15

cpu MHz         : 1600.000

cache size      : 6144 KB

physical id     : 0

siblings        : 4

core id         : 0

cpu cores       : 4

apicid          : 0

initial apicid  : 0

fpu             : yes

fpu_exception   : yes

cpuid level     : 13

wp              : yes

flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms

bogomips        : 6799.93

clflush size    : 64

cache_alignment : 64

address sizes   : 36 bits physical, 48 bits virtual

power management:
```

cat /etc/portage/make.conf

```

CFLAGS="-march=native -O2 -pipe"

CXXFLAGS="${CFLAGS}"

CHOST="x86_64-pc-linux-gnu"

MAKEOPS="-j5"

LINGUAS="ca ca_ES"

cpu="ssse3 sse3 sse4_1 sse4_2 avx smp"

multimedia="-oss pulseaudio dvd vdpau alsa xvmc gstreamer openal v4l bluray cdda cddb"

escriptori="-gtk -gnome qt4 kde qt3support"

general="-hal -handbook dbus udev unicode sqlite bash-completion icu policykit zeroconf avahi lzma spell"

xorg_kde="opengl X semantic-desktop opencl xv"

disseny="truetype png jpeg svg lcms jpeg2k"

USE="${cpu} ${multimedia} ${escriptori} ${general} ${xorg_kde} ${disseny}"

INPUT_DEVICES="evdev"

VIDEO_CARDS="radeon"

ALSA_CARDS="hda-intel"

FEATURES="ccache parallel-fetch nodoc candy"

#PORTAGE_ELOG_CLASSES="error info"

#PORTAGE_ELOG_SYSTEM="metalog" 

EMERGE_DEFAULT_OPTS="-v --keep-going --with-bdeps=y --autounmask-write=y"

ACCEPT_LICENSE="*"

ACCEPT_KEYWORDS="~amd64"

GENTOO_MIRRORS="ftp://mirror.switch.ch/mirror/gentoo/"

SYNC="rsync://rsync4.fr.gentoo.org/gentoo-portage"

#source /var/lib/layman/make.conf
```

saludos, ad1

----------

## gringo

como sabes que solo "detecta mmx, sse y sse2" ?

-march=native me habilita para mi cpu (i5 520M) lo siguiente :

```
 -march=corei7 -mcx16 -msahf -mno-movbe -maes -mpclmul -mpopcnt -mno-abm -mno-lwp -mno-fma -mno-fma4 -mno-xop -mno-bmi -mno-tbm -mno-avx -msse4.2 -msse4.1 --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=3072 -mtune=corei7
```

http://en.gentoo-wiki.com/wiki/Safe_Cflags

saluetes

----------

## papu

 *gringo wrote:*   

> como sabes que solo "detecta mmx, sse y sse2" ?
> 
> -march=native me habilita para mi cpu (i5 520M) lo siguiente :
> 
> ```
> ...

 

pues sino tengo activado esto en make.conf:  cpu="ssse3 sse3 sse4_1 sse4_2 avx smp"   , ocurre lo siguiente:

https://i.minus.com/ibyoFl8zoH5rKk.png

esta claro entonces que la cosa parece no funciona  :Smile: 

saludos, ad1

----------

## gringo

no tiene nada que ver con -march=native, es mas bien un problema de algún archivo de configuración mal redactado o del propio bash.

Es fácil saberlo, si p.ej. ejecutas algo como 

```
USE="ssse3 sse3 sse4_1" emerge -av1 libvpx
```

te las habilita ?

Si es asi, lo dicho, o hay algo mal en el make.conf o en el perfil o en el .bashrc del usuario o estás cargando alguna variable que da por saco.

Que versión de portage usas ?

saluetes

----------

## papu

 *gringo wrote:*   

> no tiene nada que ver con -march=native, es mas bien un problema de algún archivo de configuración mal redactado o del propio bash.
> 
> Es fácil saberlo, si p.ej. ejecutas algo como 
> 
> ```
> ...

 

si claro haciendo eso las habilita(por eso lo tengo puesto en make.conf),  de ahí mi pregunta ya que esta detección  tendría que ser automática.  :Smile: 

emerge --info

```
Portage 2.1.11.31 (default/linux/amd64/10.0, gcc-4.6.3, glibc-2.15-r3, 3.7.0-rc3 x86_64)

=================================================================

System uname: Linux-3.7.0-rc3-x86_64-Intel-R-_Core-TM-_i5-3570K_CPU_@_3.40GHz-with-gentoo-2.2

Timestamp of tree: Wed, 31 Oct 2012 12:45:01 +0000

ld GNU ld (GNU Binutils) 2.23

ccache version 3.1.8 [enabled]

app-shells/bash:          4.2_p37

dev-java/java-config:     2.1.12

dev-lang/python:          2.7.3-r2, 3.2.3-r1

dev-util/ccache:          3.1.8

dev-util/cmake:           2.8.9-r1

dev-util/pkgconfig:       0.27.1

sys-apps/baselayout:      2.2

sys-apps/openrc:          0.11.2

sys-apps/sandbox:         2.6

sys-devel/autoconf:       2.13, 2.69

sys-devel/automake:       1.11.6, 1.12.4

sys-devel/binutils:       2.23

sys-devel/gcc:            4.6.3

sys-devel/gcc-config:     1.7.3

sys-devel/libtool:        2.4.2

sys-devel/make:           3.82-r4

sys-kernel/linux-headers: 3.6 (virtual/os-headers)

sys-libs/glibc:           2.15-r3

Repositories:

gentoo

    location: /usr/portage

    sync: rsync://rsync4.fr.gentoo.org/gentoo-portage

    priority: -1000

ABI="amd64"

ACCEPT_KEYWORDS="amd64 ~amd64"

ACCEPT_LICENSE="*"

ACCEPT_PROPERTIES="*"

ALSA_CARDS="hda-intel"

ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol"

ANT_HOME="/usr/share/ant"

APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias"

ARCH="amd64"

AUTOCLEAN="yes"

BOOTSTRAP_USE="cxx unicode multilib"

CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump"

CAMERAS="ptp2"

CBUILD="x86_64-pc-linux-gnu"

CFLAGS="-march=native -O2 -pipe"

CFLAGS_amd64="-m64"

CFLAGS_x32="-mx32"

CFLAGS_x86="-m32"

CHOST="x86_64-pc-linux-gnu"

CHOST_amd64="x86_64-pc-linux-gnu"

CHOST_x32="x86_64-pc-linux-gnux32"

CHOST_x86="i686-pc-linux-gnu"

CLEAN_DELAY="5"

COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog"

COLLISION_IGNORE="/lib/modules/* *.py[co]"

COLORFGBG="15;0"

CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt"

CONFIG_PROTECT_MASK="${EPREFIX}/etc/gconf /etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"

CVS_RSH="ssh"

CXXFLAGS="-march=native -O2 -pipe"

DBUS_SESSION_BUS_ADDRESS="unix:abstract=/tmp/dbus-X2CoiCFRtL,guid=79dcd20a136cd2ae8f61b15850908c70"

DEFAULT_ABI="amd64"

DESKTOP_SESSION="KDE-4"

DISPLAY=":0"

DISTDIR="/usr/portage/distfiles"

DM_CONTROL="/var/run/xdmctl"

EDITOR="/bin/nano"

ELIBC="glibc"

EMERGE_DEFAULT_OPTS="-v --keep-going --with-bdeps=y --autounmask-write=y"

EMERGE_WARNING_DELAY="10"

EPREFIX=""

EROOT="/"

FCFLAGS="-O2 -pipe"

FEATURES="assume-digests binpkg-logs candy ccache config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news nodoc parallel-fetch protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"

FETCHCOMMAND="wget -t 3 -T 60 --passive-ftp -O "${DISTDIR}/${FILE}" "${URI}""

FETCHCOMMAND_RSYNC="rsync -avP "${URI}" "${DISTDIR}/${FILE}""

FETCHCOMMAND_SFTP="bash -c "x=\${2#sftp://} ; host=\${x%%/*} ; port=\${host##*:} ; host=\${host%:*} ; [[ \${host} = \${port} ]] && port=22 ; exec sftp -P \${port} \"\${host}:/\${x#*/}\" \"\$1\"" sftp "${DISTDIR}/${FILE}" "${URI}""

FETCHCOMMAND_SSH="bash -c "x=\${2#ssh://} ; host=\${x%%/*} ; port=\${host##*:} ; host=\${host%:*} ; [[ \${host} = \${port} ]] && port=22 ; exec rsync --rsh=\"ssh -p\${port}\" -avP \"\${host}:/\${x#*/}\" \"\$1\"" rsync "${DISTDIR}/${FILE}" "${URI}""

FFLAGS="-O2 -pipe"

GCC_SPECS=""

GDK_USE_XFT="1"

GENTOO_MIRRORS="ftp://mirror.switch.ch/mirror/gentoo/"

GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx"

GRUB_PLATFORMS=""

GSETTINGS_BACKEND="gconf"

GS_LIB="/home/enric/.fonts"

GTK2_RC_FILES="/etc/gtk-2.0/gtkrc:/home/enric/.gtkrc-2.0:/home/enric/.kde4/share/config/gtkrc-2.0"

GTK_RC_FILES="/etc/gtk/gtkrc:/home/enric/.gtkrc:/home/enric/.kde4/share/config/gtkrc"

GUILE_LOAD_PATH="/usr/share/guile/1.8"

HG="/usr/bin/hg"

HOME="/home/enric"

INFOPATH="/usr/share/info:/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.3/info:/usr/share/binutils-data/x86_64-pc-linux-gnu/2.23/info"

INPUT_DEVICES="evdev"

IUSE_IMPLICIT="prefix"

JAVAC="/etc/java-config-2/current-system-vm/bin/javac"

JAVA_HOME="/etc/java-config-2/current-system-vm"

JDK_HOME="/etc/java-config-2/current-system-vm"

KDE_FULL_SESSION="true"

KDE_MULTIHEAD="false"

KDE_SESSION_UID="1000"

KDE_SESSION_VERSION="4"

KERNEL="linux"

KONSOLE_DBUS_SERVICE=":1.148"

KONSOLE_DBUS_SESSION="/Sessions/3"

KONSOLE_DBUS_WINDOW="/Windows/1"

KONSOLE_PROFILE_NAME="Intèrpret d'ordres"

LANG="ca_ES.UTF-8"

LANGUAGE=""

LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text"

LC_COLLATE="C"

LDFLAGS="-Wl,-O1 -Wl,--as-needed"

LDFLAGS_amd64="-m elf_x86_64"

LDFLAGS_x32="-m elf32_x86_64"

LDFLAGS_x86="-m elf_i386"

LESS="-R -M --shift 5"

LESSOPEN="|lesspipe %s"

LIBDIR_amd64="lib64"

LIBDIR_amd64_fbsd="lib64"

LIBDIR_n32="lib32"

LIBDIR_n64="lib64"

LIBDIR_o32="lib"

LIBDIR_ppc="lib32"

LIBDIR_ppc64="lib64"

LIBDIR_s390="lib32"

LIBDIR_s390x="lib64"

LIBDIR_sparc32="lib32"

LIBDIR_sparc64="lib64"

LIBDIR_x32="libx32"

LIBDIR_x86="lib32"

LIBDIR_x86_fbsd="lib32"

LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer"

LINGUAS="ca ca_ES"

LOGNAME="enric"

LS_COLORS="rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.

gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.pdf=00;32:*.ps=00;32:*.txt=00;32:*.patch=00;32:*.diff=00;32:*.log=00;32:*.tex=00;32:*.doc=00;32:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:"

MAKEOPS="-j5"

MANPATH="/etc/java-config-2/current-system-vm/man:/usr/local/share/man:/usr/share/man:/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.3/man:/usr/share/binutils-data/x86_64-pc-linux-gnu/2.23/man:/etc/java-config-2/current-system-vm/man/"

MULTILIB_ABIS="amd64 x86"

MULTILIB_STRICT_DENY="64-bit.*shared object"

MULTILIB_STRICT_DIRS="/lib32 /lib /usr/lib32 /usr/lib /usr/kde/*/lib32 /usr/kde/*/lib /usr/qt/*/lib32 /usr/qt/*/lib /usr/X11R6/lib32 /usr/X11R6/lib"

MULTILIB_STRICT_EXEMPT="(perl5|gcc|gcc-lib|binutils|eclipse-3|debug|portage|udev)"

NETBEANS="apisupport cnd groovy gsf harness ide identity j2ee java mobility nb php profiler soa visualweb webcommon websvccommon xml"

NOCOLOR="true"

OLDPWD="/etc/portage"

OPENCL_PROFILE="intel"

OPENGL_PROFILE="xorg-x11"

PAGER="/usr/bin/less"

PATH="/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3:/usr/games/bin"

PHP_TARGETS="php5-3"

PKGDIR="/usr/portage/packages"

PORTAGE_ARCHLIST="ppc sparc64-freebsd ppc-openbsd x86-openbsd ppc64 x86-winnt x86-fbsd ppc-aix alpha arm x86-freebsd s390 amd64 arm-linux x86-macos x64-openbsd ia64-hpux hppa x86-netbsd ppc64-linux x86-cygwin amd64-linux ia64-linux x86 sparc-solaris x64-freebsd sparc64-solaris x86-linux x64-macos sparc m68k-mint ia64 mips ppc-macos x86-interix hppa-hpux amd64-fbsd x64-solaris m68k sh x86-solaris sparc-fbsd"

PORTAGE_BIN_PATH="/usr/lib64/portage/bin"

PORTAGE_COMPRESS_EXCLUDE_SUFFIXES="css gif htm[l]? jp[e]?g js pdf png"

PORTAGE_CONFIGROOT="/"

PORTAGE_DEBUG="0"

PORTAGE_DEPCACHEDIR="/var/cache/edb/dep"

PORTAGE_ELOG_CLASSES="log warn error"

PORTAGE_ELOG_MAILFROM="portage@localhost"

PORTAGE_ELOG_MAILSUBJECT="[portage] ebuild log for ${PACKAGE} on ${HOST}"

PORTAGE_ELOG_MAILURI="root"

PORTAGE_ELOG_SYSTEM="save_summary:log,warn,error,qa echo"

PORTAGE_FETCH_CHECKSUM_TRY_MIRRORS="5"

PORTAGE_FETCH_RESUME_MIN_SIZE="350K"

PORTAGE_GID="250"

PORTAGE_GPG_SIGNING_COMMAND="gpg --sign --digest-algo SHA256 --clearsign --yes --default-key "${PORTAGE_GPG_KEY}" --homedir "${PORTAGE_GPG_DIR}" "${FILE}""

PORTAGE_INST_GID="0"

PORTAGE_INST_UID="0"

PORTAGE_OVERRIDE_EPREFIX=""

PORTAGE_PYM_PATH="/usr/lib64/portage/pym"

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"

PORTAGE_RSYNC_RETRIES="-1"

PORTAGE_SYNC_STALE="30"

PORTAGE_TMPDIR="/var/tmp"

PORTAGE_VERBOSE="1"

PORTAGE_WORKDIR_MODE="0700"

PORTDIR="/usr/portage"

PORTDIR_OVERLAY=""

PORT_LOGDIR_CLEAN="find "${PORT_LOGDIR}" -type f ! -name "summary.log*" -mtime +7 -delete"

PRELINK_PATH_MASK="/usr/lib64/libfreebl3.so:/usr/lib64/libnssdbm3.so:/usr/lib64/libsoftokn3.so:/opt/bin/skype"

PROFILEHOME=""

PROFILE_ONLY_VARIABLES="ARCH ELIBC IUSE_IMPLICIT KERNEL USERLAND USE_EXPAND_IMPLICIT USE_EXPAND_UNPREFIXED USE_EXPAND_VALUES_ARCH USE_EXPAND_VALUES_ELIBC USE_EXPAND_VALUES_KERNEL USE_EXPAND_VALUES_USERLAND"

PWD="/etc/portage/env"

PYTHONDONTWRITEBYTECODE="1"

PYTHONPATH="/usr/lib/portage/pym"

PYTHON_TARGETS="python3_2 python2_7"

QT_GRAPHICSSYSTEM="raster"

QT_PLUGIN_PATH="/usr/lib64/kde4/plugins:/home/enric/.kde4/lib64/kde4/plugins/:/usr/lib64/kde4/plugins/"

RESUMECOMMAND="wget -c -t 3 -T 60 --passive-ftp -O "${DISTDIR}/${FILE}" "${URI}""

RESUMECOMMAND_RSYNC="rsync -avP "${URI}" "${DISTDIR}/${FILE}""

RESUMECOMMAND_SSH="bash -c "x=\${2#ssh://} ; host=\${x%%/*} ; port=\${host##*:} ; host=\${host%:*} ; [[ \${host} = \${port} ]] && port=22 ; exec rsync --rsh=\"ssh -p\${port}\" -avP \"\${host}:/\${x#*/}\" \"\$1\"" rsync "${DISTDIR}/${FILE}" "${URI}""

ROOT="/"

ROOTPATH="/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3"

RPMDIR="/usr/portage/rpm"

RUBY_TARGETS="ruby18 ruby19"

SESSION_MANAGER="local/Ordinador:@/tmp/.ICE-unix/2464,unix/Ordinador:/tmp/.ICE-unix/2464"

SHELL="/bin/bash"

SHELL_SESSION_ID="11af82d58ed64000a4dec18e56863395"

SHLVL="2"

SYMLINK_LIB="yes"

SYNC="rsync://rsync4.fr.gentoo.org/gentoo-portage"

TERM="xterm"

UNINSTALL_IGNORE="/lib/modules/*"

USE="X acl alsa amd64 avahi avx bash-completion berkdb bluray bzip2 cdda cddb cli cracklib crypt cups cxx dbus dri dvd fortran gdbm gpm gstreamer iconv icu ipv6 jpeg jpeg2k kde lcms lzma mmx modules mudflap multilib ncurses nls nptl openal opencl opengl openmp pam pcre png policykit pppd pulseaudio qt3support qt4 readline semantic-desktop session smp spell sqlite sse sse2 sse3 sse4_1 sse4_2 ssl ssse3 svg tcpd truetype udev unicode v4l vdpau xv xvmc zeroconf zlib" ALSA_CARDS="hda-intel" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info 

log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="ca ca_ES" PHP_TARGETS="php5-3" PYTHON_TARGETS="python3_2 python2_7" RUBY_TARGETS="ruby18 ruby19" USERLAND="GNU" VIDEO_CARDS="radeon" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"

USER="enric"

USERLAND="GNU"

USE_EXPAND="ALSA_CARDS ALSA_PCM_PLUGINS APACHE2_MODULES APACHE2_MPMS CALLIGRA_FEATURES CAMERAS COLLECTD_PLUGINS CROSSCOMPILE_OPTS CURL_SSL DRACUT_MODULES DVB_CARDS ELIBC FCDSL_CARDS FFTOOLS FOO2ZJS_DEVICES FRITZCAPI_CARDS GPSD_PROTOCOLS GRUB_PLATFORMS INPUT_DEVICES KERNEL LCD_DEVICES LIBREOFFICE_EXTENSIONS LINGUAS LIRC_DEVICES MISDN_CARDS NETBEANS_MODULES NGINX_MODULES_HTTP NGINX_MODULES_MAIL OFED_DRIVERS OPENMPI_FABRICS OPENMPI_OFED_FEATURES OPENMPI_RM PHP_TARGETS PYTHON_TARGETS QEMU_SOFTMMU_TARGETS QEMU_USER_TARGETS RUBY_TARGETS SANE_BACKENDS USERLAND VIDEO_CARDS VOICEMAIL_STORAGE XFCE_PLUGINS XTABLES_ADDONS"

USE_EXPAND_HIDDEN="CROSSCOMPILE_OPTS ELIBC KERNEL USERLAND"

USE_EXPAND_IMPLICIT="ARCH ELIBC KERNEL USERLAND"

USE_EXPAND_UNPREFIXED="ARCH"

USE_EXPAND_VALUES_ARCH="alpha amd64 amd64-fbsd amd64-linux arm arm-linux hppa hppa-hpux ia64 ia64-hpux ia64-linux m68k m68k-mint mips ppc ppc64 ppc64-linux ppc-aix ppc-macos ppc-openbsd s390 sh sparc sparc64-freebsd sparc64-solaris sparc-fbsd sparc-solaris x64-freebsd x64-macos x64-openbsd x64-solaris x86 x86-cygwin x86-fbsd x86-freebsd x86-interix x86-linux x86-macos x86-netbsd x86-openbsd x86-solaris x86-winnt"

USE_EXPAND_VALUES_ELIBC="AIX Cygwin Darwin FreeBSD glibc HPUX Interix mintlib NetBSD OpenBSD SunOS uclibc Winnt"

USE_EXPAND_VALUES_KERNEL="AIX Cygwin Darwin FreeBSD freemint HPUX Interix linux NetBSD OpenBSD SunOS Winnt"

USE_EXPAND_VALUES_USERLAND="BSD GNU"

USE_ORDER="env:pkg:conf:defaults:pkginternal:repo:env.d"

VIDEO_CARDS="radeon"

WINDOWID="62914587"

WINDOWPATH="7"

XCURSOR_SIZE="0"

XCURSOR_THEME="DMZ-Red"

XDG_CONFIG_DIRS="/etc/xdg"

XDG_DATA_DIRS="/usr/local/share:/usr/share"

XDG_MENU_PREFIX="kde-4-"

XDG_SESSION_COOKIE="26e7641feb81d94552166d8b5086f6cf-1351650415.945387-836348999"

XDM_MANAGED="method=classic"

XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"

_="/usr/bin/emerge"

cpu="ssse3 sse3 sse4_1 sse4_2 avx smp"

disseny="truetype png jpeg svg lcms jpeg2k"

escriptori="-gtk -gnome qt4 kde qt3support"

general="-hal -handbook dbus udev unicode sqlite bash-completion icu policykit zeroconf avahi lzma spell"

multimedia="-oss pulseaudio dvd vdpau alsa xvmc gstreamer openal v4l bluray cdda cddb"

xorg_kde="opengl X semantic-desktop opencl xv"

```

/etc/skel/.bashrc

```
# 

#

# This file is sourced by all *interactive* bash shells on startup,

# including some apparently interactive shells such as scp and rcp

# that can't tolerate any output.  So make sure this doesn't display

# anything or bad things will happen !

# Test for an interactive shell.  There is no need to set anything

# past this point for scp and rcp, and it's important to refrain from

# outputting anything in those cases.

if [[ $- != *i* ]] ; then

   # Shell is non-interactive.  Be done now!

   return

fi

# Put your fun stuff here.

export LANG="ca_ES.UTF-8"

export LC_COLLATE="C"

alias eixi="eix -I"

alias act="sudo eix-sync"

alias pse="sudo nano -wS /etc/portage/package.use"

alias mnf="sudo nano -wS /etc/portage/make.conf"

alias mon="sudo emerge -auDN world"

alias des="sudo emerge -C"

alias ins="sudo emerge -a"

alias ll="ls -lah"

alias lsportage="equery list --portage-tree"

alias n="nano -wS"

alias nn="sudo nano -wS"

alias re="sudo shutdown -r now"

alias at="sudo shutdown -h"

alias cP="sudo cp"

alias mV="sudo mv"
```

----------

## cameta

Quizas sea una tonteria pero comprueba que versión de GCC estas usando. Para detectar automaticamente por lo visto ha de ser superior a la 4.2.

----------

## Mustela

 *cameta wrote:*   

> Quizas sea una tonteria pero comprueba que versión de GCC estas usando. Para detectar automaticamente por lo visto ha de ser superior a la 4.2.

 

+1 Además, no es lo mismo usar la variable USE que la instrucción march. Y cuidado, porque si quieres usar AVX es obligado que te pases al 4.6.

GCC 4.6:

 *Quote:*   

> Support for Intel Core i3/i5/i7 processors with AVX is now available through the -march=corei7-avx and -mtune=corei7-avx options.
> 
> (...)

 

¡Saludos!

----------

## papu

 *Mustela wrote:*   

>  *cameta wrote:*   Quizas sea una tonteria pero comprueba que versión de GCC estas usando. Para detectar automaticamente por lo visto ha de ser superior a la 4.2. 
> 
> +1 Además, no es lo mismo usar la variable USE que la instrucción march. Y cuidado, porque si quieres usar AVX es obligado que te pases al 4.6.
> 
> GCC 4.6:
> ...

 

vamos a ver he puesto el emerge --info ahí sale perfectamente el gcc que uso 4.6.3, y como he explicado solo me detecta los flags de mi cpu si los pongo en el make.conf, supongo que tendría que ser automatico, pero es que tampoco lo se de ahí mi pregunta.

```

-mtune=cpu-type

    Tune to cpu-type everything applicable about the generated code, except for the ABI and the set of available instructions. The choices for cpu-type are:

    generic

        Produce code optimized for the most common IA32/AMD64/EM64T processors. If you know the CPU on which your code will run, then you should use the corresponding -mtune option instead of -mtune=generic. But, if you do not know exactly what CPU users of your application will have, then you should use this option.

        There is no -march=generic option because -march indicates the instruction set the compiler can use, and there is no generic instruction set applicable to all processors. In contrast, -mtune indicates the processor (or, in this case, collection of processors) for which the code is optimized.

    

    native

        This selects the CPU to tune for at compilation time by determining the processor type of the compiling machine. Using -mtune=native will produce code optimized for the local machine under the constraints of the selected instruction set. Using -march=native will enable all instruction subsets supported by the local machine (hence the result might not run on different machines).

corei7

    Intel Core i7 CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 and SSE4.2 instruction set support.

corei7-avx

    Intel Core i7 CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AES and PCLMUL instruction set support.

core-avx-i

    Intel Core CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AES, PCLMUL, FSGSBASE, RDRND and F16C instruction set support. 
```

saludos, adéu   :Rolling Eyes: 

----------

## quilosaq

-march=native es una parte de la variable CFLAGS que hace que gcc tenga en cuenta (genere código adecuado para) las características del procesador que se está utilizando. Esto lo hace gcc independientemente de la distribución linux que se trate y de si existe un portage o no. Digamos que es una variable que sirve a gcc y no a portage.

Lo que llamamos USE ssse3 (por poner un ejemplo) es parte de la variable USE de PORTAGE. Su existencia le indica al portage (vía emerge) que tenga en cuenta esta característica, en los ebuilds que la tengan contemplada, claro está. Esto se traduce en la incorporación del parámetro -mssse3 al entorno de compilación de gcc para ese paquete concreto para que, como en el caso anterior, se genere el código adecuado.

En el caso de un procesador core-avx-i, si tienes -march=native, no tiene sentido tener puesta ssse3 porque ya va a ser tenida en cuenta de todas formas.

Podría servir para especificar que un paquete (o todos los que la tienen declarada) no se compile con instrucciones ssse3. Entonces habría que poner -ssse3 que se traduciría al parámetro

-mno-ssse3 de gcc.

En cualquier caso USE y CFLAGS son variables independientes. Portage no mira CFLAGS ni actualiza el contenido de la USE ni gcc mira la USE para nada.

Advierto que no estoy seguro al 100% de lo que he dicho pero así es como lo veo.

----------

## papu

 *quilosaq wrote:*   

> 
> 
> En el caso de un procesador core-avx-i, si tienes -march=native, no tiene sentido tener puesta ssse3 porque ya va a ser tenida en cuenta de todas formas.
> 
> .

 

precisamente sino las pongo en USE (make.conf) solo se compilan los paquetes con mmx, sse y sse2 las demás no se tienen en cuenta de eso me quejo  :Smile: 

saludos, ad1

----------

## Mustela

 *papu wrote:*   

> 
> 
> vamos a ver he puesto el emerge --info ahí sale perfectamente el gcc que uso 4.6.3, y como he explicado solo me detecta los flags de mi cpu si los pongo en el make.conf, supongo que tendría que ser automatico, pero es que tampoco lo se de ahí mi pregunta.
> 
> saludos, adéu  :roll:

 

Sí, perdona, no sé entonces dónde carayo he visto que usabas un 4.3...

Lo que no tienes es -mtune=native en CFLAGS. Habilítalo porque eso también produce código optimizado y quizá venga de ahí el problema.

----------

## Arctic

Segun el antiguo manual de gentoo ,se cogian las flags que parecen en el /proc/cpuinfo y se ponian como USES :

```
flags      : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt nodeid_msr cpb hw_pstate npt lbrv svm_lock nrip_save pausefilter

```

Logicamente esto activa automaticamente todas las flags que soporte el procesador, ademas de eso :

```
CFLAGS="-march=amdfam10 -O2 -pipe"

```

Que se supone genera codigo mas optimizado para esa CPU ,lo que no entiendo es que se espera del native, no se si si es tan simple como hacer un grep del cpuinfo y que cargue la misma configuracion que el codigo que he puesto o si añade algo a mas ........................

----------

## papu

 *Arctic wrote:*   

> Segun el antiguo manual de gentoo ,se cogian las flags que parecen en el /proc/cpuinfo y se ponian como USES :
> 
> ```
> flags      : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt nodeid_msr cpb hw_pstate npt lbrv svm_lock nrip_save pausefilter
> 
> ...

 

pues si la verdas lo mismo me pregunto pero si pongo cualquier otro flag para mi cpu, que no sea native, no se hasta que punto hace algo de todas formas he puesto 

```
CFLAGS="-march=core-avx-i -O2 -pipe"
```

 que es el mas cercano a mi cpu y he puesto todas las flags en mi make.conf xDD

a falta de saber el misterio este del flag -march=xxxx que no hace nada parece ser...

```
CFLAGS="-march=core-avx-i -O2 -pipe"

CXXFLAGS="${CFLAGS}"

CHOST="x86_64-pc-linux-gnu"

MAKEOPS="-j5"

LINGUAS="ca ca_ES"

cpu="fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms"

multimedia="-oss pulseaudio dvd vdpau alsa xvmc gstreamer openal v4l bluray cdda cddb"

escriptori="-gtk -gnome qt4 kde qt3support"

general="-hal -handbook dbus udev unicode sqlite bash-completion icu policykit zeroconf avahi lzma spell"

xorg_kde="opengl X semantic-desktop opencl xv egl openvg gles2 gallium"

disseny="truetype png jpeg svg lcms jpeg2k"

USE="${cpu} ${multimedia} ${escriptori} ${general} ${xorg_kde} ${disseny}"

INPUT_DEVICES="evdev"

VIDEO_CARDS="radeon"

ALSA_CARDS="hda-intel"

FEATURES="ccache parallel-fetch nodoc candy"

#PORTAGE_ELOG_CLASSES="error info"

#PORTAGE_ELOG_SYSTEM="metalog" 

#PORTAGE_NICENESS=""

EMERGE_DEFAULT_OPTS="-v --keep-going --with-bdeps=y --autounmask-write=y"

ACCEPT_LICENSE="*"

ACCEPT_KEYWORDS="~amd64"

GENTOO_MIRRORS="ftp://mirror.switch.ch/mirror/gentoo/"

SYNC="rsync://rsync4.fr.gentoo.org/gentoo-portage"

#source /var/lib/layman/make.conf
```

ad1

----------

## Arctic

Supongo y digo supongo porque es una especulacion mia, lo que hace es autodetectar tu cpu para cargar las flags mas adecuadas y optimizar codigo, si te fijas cada nueva version que sale de gcc se mejora el soporte de los procesadores generando mejor codigo, en la ultima version  ,mejoran el soporte de los buldozer de 8 nucleos, para eso se habilita una nueva id de -march , que es lo que se supone que hace native pero de forma automatica y que deberia ser lo logico ya que el cpuinfo detecta el numero de familia del procesador y las flags que soporta.

----------

## papu

 *Arctic wrote:*   

> Supongo y digo supongo porque es una especulacion mia, lo que hace es autodetectar tu cpu para cargar las flags mas adecuadas y optimizar codigo, si te fijas cada nueva version que sale de gcc se mejora el soporte de los procesadores generando mejor codigo, en la ultima version  ,mejoran el soporte de los buldozer de 8 nucleos, para eso se habilita una nueva id de -march , que es lo que se supone que hace native pero de forma automatica y que deberia ser lo logico ya que el cpuinfo detecta el numero de familia del procesador y las flags que soporta.

 

claro segun eso un march=native tendría que autodetectar todo eso que he puesto a mano en lugar de tener que meterlo yo en make.conf...digo yo  :Smile: 

Surfeando vi por ahí encontré esta instrucción parece  que native detecta mi cpu como corei7-avx aunque tampoco me saca de demasiadas dudas.

# gcc -### -march=native -E /usr/include/stdlib.h 2>&1 | grep "/usr/libexec/gcc/.*cc1" 

 *Quote:*   

> gcc -### -march=native -E /usr/include/stdlib.h 2>&1 | grep "/usr/libexec/gcc/.*cc1" 
> 
>  /usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.3/cc1 -E -quiet /usr/include/stdlib.h "-march=corei7-avx" -mcx16 -msahf -mno-movbe -maes -mpclmul -mpopcnt -mno-abm -mno-lwp -mno-fma -mno-fma4 -mno-xop -mno-bmi -mno-tbm -mavx -msse4.2 -msse4.1 --param "l1-cache-size=32" --param "l1-cache-line-size=64" --param "l2-cache-size=6144" "-mtune=generic"

 

ad1

----------

## SS3

 *papu wrote:*   

> Tengo curiosidad por saber ¿porque poniendo -march=native o en mi caso algo más concreto como core-avx-i, he de indicarlo a mano en make.conf para que detecte todas mis flags de la cpu? solo detecta mmx, sse y sse2.
> 
> http://gcc.gnu.org/onlinedocs/gcc-4.6.3/gcc/i386-and-x86_002d64-Options.html#i386-and-x86_002d64-Options
> 
> cat /proc/cpuinfo
> ...

 

Necesitas una versión más actual de gcc para que detecte automáticamente las flags para tu cpu, en su día me sucedió lo mismo usando un 2600K prueba con gcc 4.7.1 y luego compruebas las flags usando algo como :

$ echo "" | gcc  -march=native -v -E - 2>&1 | grep cc1

Ahora ya no tengo el mismo problema y puedo usar -march=native :

% echo "" | gcc  -march=native -v -E - 2>&1 | grep cc1                     

 /usr/libexec/gcc/x86_64-pc-linux-gnu/4.7.2/cc1 -E -quiet -v - -march=corei7-avx -mcx16 -msahf -mno-movbe -maes -mpclmul -mpopcnt -mno-abm -mno-lwp -mno-fma -mno-fma4 -mno-xop -mno-bmi -mno-bmi2 -mno-tbm -mavx -mno-avx2 -msse4.2 -msse4.1 -mno-lzcnt -mno-rdrnd -mno-f16c -mno-fsgsbase --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=8192 -mtune=corei7-avx

%

----------

## papu

 *SS3 wrote:*   

>  *papu wrote:*   Tengo curiosidad por saber ¿porque poniendo -march=native o en mi caso algo más concreto como core-avx-i, he de indicarlo a mano en make.conf para que detecte todas mis flags de la cpu? solo detecta mmx, sse y sse2.
> 
> http://gcc.gnu.org/onlinedocs/gcc-4.6.3/gcc/i386-and-x86_002d64-Options.html#i386-and-x86_002d64-Options
> 
>  
> ...

 

GCC 4.6.3 detecta:

 *Quote:*   

> echo "" | gcc -march=native -v -E - 2>&1 | grep cc1 
> 
>  /usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.3/cc1 -E -quiet -v - -march=corei7-avx -mcx16 -msahf -mno-movbe -maes -mpclmul -mpopcnt -mno-abm -mno-lwp -mno-fma -mno-fma4 -mno-xop -mno-bmi -mno-tbm -mavx -msse4.2 -msse4.1 --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=6144 -mtune=generic

 

GCC 4.7.2 detecta:

 *Quote:*   

> 
> 
>  echo "" | gcc -march=native -v -E - 2>&1 | grep cc1
> 
>  /usr/libexec/gcc/x86_64-pc-linux-gnu/4.7.2/cc1 -E -quiet -v - -march=corei7-avx -mcx16 -msahf -mno-movbe -maes -mpclmul -mpopcnt -mno-abm -mno-lwp -mno-fma -mno-fma4 -mno-xop -mno-bmi -mno-bmi2 -mno-tbm -mavx -mno-avx2 -msse4.2 -msse4.1 -mno-lzcnt -mrdrnd -mf16c -mfsgsbase --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=6144 -mtune=generic

 

 *gringo wrote:*   

> como sabes que solo "detecta mmx, sse y sse2" ?
> 
> -march=native me habilita para mi cpu (i5 520M) lo siguiente :
> 
> ```
> ...

 

estas flags que yo le llamo " por defecto" ahora se que va en función del perfil escogido ([1]   default/linux/amd64/10.0 *) el cual  te pone unos flags por defecto al sistema,  y nada tiene que ver con los USE personalizados o con el -march="" de CFLAGS.

También he medio entendido que: el  hecho de compilar un paquete con sus  USE en concreto, no tiene nada que ver con el -march="" de CFLAGS, son cosas separadas. 

 -march= optimiza el codigo gcc   y las USE optimiza el/los paquete/s, yo crei que cuando se ponia -march="" los paquetes ya se compilaban segun los flags de cpuinfo, pero no es asi, sino que tu eres quien ha de decidir mediante USE el flag de cpu de cada paquete.

saludos, ad1

----------

## SS3

papu pásate por aquí a ver si te aclara un poco las ideas:

http://www.gentoo.org/doc/es/gcc-optimization.xml

----------

## papu

 *SS3 wrote:*   

> papu pásate por aquí a ver si te aclara un poco las ideas:
> 
> http://www.gentoo.org/doc/es/gcc-optimization.xml

 

pues eso digo que ya se ahora como va el tema, siempre hay cosas que crees son una cosa y luego ves que no pero es que hay tantos detalles pfrrr  :Smile: , no se hasta que punto sería recomendable borrar el post porque creo que mas que ayudar confunde a la gente que lo lee jajaja

No existe un foro de linux mejor que gentoo de los que he estado, no hay color  :Smile: 

saludos, ad1

----------

