# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/profiles/arch/amd64/make.defaults,v 1.4 2009/08/16 22:06:33 remi Exp $

ARCH="amd64"
ACCEPT_KEYWORDS="${ARCH}"

CHOST="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe"
CXXFLAGS="${CFLAGS}"

# 2006/06/07 - Danny van Dyk <kugelfang@gentoo.org>
# Multilib settings for all amd64 subprofiles.
MULTILIB_ABIS="amd64 x86"
DEFAULT_ABI="amd64"
# Do not remove this one, or all kinds of hell breaks loose.
ABI="amd64"

# 64bit specific settings.
CHOST_amd64="x86_64-pc-linux-gnu"
CDEFINE_amd64="__x86_64__"

# 32bit specific settings.
CFLAGS_x86="-m32"
LDFLAGS_x86="-m elf_i386"
ASFLAGS_x86="--32"
CHOST_x86="i686-pc-linux-gnu"
CDEFINE_x86="__i386__"

# 2006/10/24 - Simon Stelling <blubb@gentoo.org>
# They are masked, but we can enable them anyway for those who have
# >=portage-2.1.2_pre3-r4
USE="mmx mmxext sse sse2"
CPU_FLAGS_X86="mmx mmxext sse sse2"

# Michał Górny <mgorny@gentoo.org> (03 Sep 2013)
# Enable abi_x86_64 for packages that don't have it forced.
ABI_X86="64"

# 2016/05/27 - Yunlian Jiang <yunlian@google.com>
# Enable transparent hugepage for amd64 architecture.
USE="${USE} transparent_hugepage"

# 2006/08/18 - Donnie Berkholz <dberkholz@gentoo.org>
# Defaults for video drivers
VIDEO_CARDS="fbdev glint intel mach64 mga neomagic nv r128 radeon savage sis tdfx trident vesa vga via vmware voodoo"

# 2006/12/22 - Danny van Dyk <kugelfang@gentoo.org>
# Default for ALSA_CARDS USE_EXPAND variable.
ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci"

# Michał Górny <mgorny@gentoo.org> (26 Jan 2013)
# Unhide the x86-specific USE_EXPANDs.
USE_EXPAND_HIDDEN="-ABI_X86 -CPU_FLAGS_X86"

# Michał Górny <mgorny@gentoo.org> (25 Jun 2014)
# Make the native ABI implicit so that MULTILIB_USEDEP can be satisfied
# by non-multilib ebuilds when non-native ABIs are disabled.
IUSE_IMPLICIT="abi_x86_64"
