summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRepository mirror & CI <repomirrorci@gentoo.org>2019-05-03 22:37:14 +0000
committerRepository mirror & CI <repomirrorci@gentoo.org>2019-05-03 22:37:14 +0000
commit64ef8c5f4950730780c4d4c76f9336038f58ddc0 (patch)
tree4b61f0dc4579528748206b10133d1c0c7e6d99d5
parent2019-05-03 21:06:27 UTC (diff)
parentsys-libs/glibc: Keyword ~riscv (diff)
downloadgentoo-64ef8c5f4950730780c4d4c76f9336038f58ddc0.tar.gz
gentoo-64ef8c5f4950730780c4d4c76f9336038f58ddc0.tar.bz2
gentoo-64ef8c5f4950730780c4d4c76f9336038f58ddc0.zip
Merge updates from master
-rw-r--r--eclass/multilib.eclass14
-rw-r--r--profiles/arch.list1
-rw-r--r--profiles/arch/base/make.defaults2
-rw-r--r--profiles/arch/base/use.mask3
-rw-r--r--profiles/arch/riscv/eapi1
-rw-r--r--profiles/arch/riscv/make.defaults25
-rw-r--r--profiles/arch/riscv/package.accept_keywords10
-rw-r--r--profiles/arch/riscv/package.use.mask7
-rw-r--r--profiles/arch/riscv/packages.build7
-rw-r--r--profiles/arch/riscv/parent1
-rw-r--r--profiles/arch/riscv/rv64gc/eapi1
-rw-r--r--profiles/arch/riscv/rv64gc/lp64/eapi1
-rw-r--r--profiles/arch/riscv/rv64gc/lp64/make.defaults15
-rw-r--r--profiles/arch/riscv/rv64gc/lp64/package.use.force5
-rw-r--r--profiles/arch/riscv/rv64gc/lp64/use.mask8
-rw-r--r--profiles/arch/riscv/rv64gc/lp64d/eapi1
-rw-r--r--profiles/arch/riscv/rv64gc/lp64d/make.defaults15
-rw-r--r--profiles/arch/riscv/rv64gc/lp64d/package.use.force5
-rw-r--r--profiles/arch/riscv/rv64gc/lp64d/use.mask8
-rw-r--r--profiles/arch/riscv/rv64gc/make.defaults40
-rw-r--r--profiles/arch/riscv/rv64gc/package.mask5
-rw-r--r--profiles/arch/riscv/rv64gc/parent2
-rw-r--r--profiles/arch/riscv/rv64gc/use.force9
-rw-r--r--profiles/arch/riscv/rv64gc/use.mask14
-rw-r--r--profiles/arch/riscv/use.force5
-rw-r--r--profiles/arch/riscv/use.mask8
-rw-r--r--profiles/base/make.defaults4
-rw-r--r--profiles/default/linux/riscv/17.0/eapi1
-rw-r--r--profiles/default/linux/riscv/17.0/parent2
-rw-r--r--profiles/default/linux/riscv/17.0/rv64gc/eapi1
-rw-r--r--profiles/default/linux/riscv/17.0/rv64gc/lp64/eapi1
-rw-r--r--profiles/default/linux/riscv/17.0/rv64gc/lp64/parent2
-rw-r--r--profiles/default/linux/riscv/17.0/rv64gc/lp64d/eapi1
-rw-r--r--profiles/default/linux/riscv/17.0/rv64gc/lp64d/parent2
-rw-r--r--profiles/default/linux/riscv/17.0/rv64gc/parent2
-rw-r--r--profiles/default/linux/riscv/eapi1
-rw-r--r--profiles/default/linux/riscv/parent2
-rw-r--r--profiles/features/multilib/package.use2
-rw-r--r--profiles/profiles.desc5
-rw-r--r--sys-devel/gcc/files/gcc-8.3.0-norisc32.patch27
-rw-r--r--sys-devel/gcc/gcc-8.3.0-r1.ebuild3
-rw-r--r--sys-libs/glibc/glibc-2.29-r2.ebuild2
42 files changed, 265 insertions, 6 deletions
diff --git a/eclass/multilib.eclass b/eclass/multilib.eclass
index 393f0db073c3..63bde5cbb601 100644
--- a/eclass/multilib.eclass
+++ b/eclass/multilib.eclass
@@ -385,6 +385,20 @@ multilib_env() {
: ${MULTILIB_ABIS=ppc64 ppc}
: ${DEFAULT_ABI=ppc64}
;;
+ riscv64*)
+ export CFLAGS_lp64d=${CFLAGS_lp64d--mabi=lp64d}
+ export CHOST_lp64d=${CTARGET}
+ export CTARGET_lp64d=${CTARGET}
+ export LIBDIR_lp64d="lib64/lp64d"
+
+ export CFLAGS_lp64=${CFLAGS_lp64--mabi=lp64}
+ export CHOST_lp64=${CTARGET}
+ export CTARGET_lp64=${CTARGET}
+ export LIBDIR_lp64="lib64/lp64"
+
+ : ${MULTILIB_ABIS=lp64d lp64}
+ : ${DEFAULT_ABI=lp64d}
+ ;;
s390x*)
export CFLAGS_s390=${CFLAGS_s390--m31} # the 31 is not a typo
export CHOST_s390=${CTARGET/s390x/s390}
diff --git a/profiles/arch.list b/profiles/arch.list
index a917db8334a7..53911cfb7246 100644
--- a/profiles/arch.list
+++ b/profiles/arch.list
@@ -9,6 +9,7 @@ m68k
mips
ppc
ppc64
+riscv
s390
sh
sparc
diff --git a/profiles/arch/base/make.defaults b/profiles/arch/base/make.defaults
index e6c80707fdee..5dc717cefd49 100644
--- a/profiles/arch/base/make.defaults
+++ b/profiles/arch/base/make.defaults
@@ -3,6 +3,6 @@
USE_EXPAND_UNPREFIXED="ARCH"
USE_EXPAND_IMPLICIT="ARCH"
-USE_EXPAND_VALUES_ARCH="alpha amd64 amd64-fbsd amd64-linux arm arm64 hppa ia64 m68k m68k-mint mips ppc ppc64 ppc64-linux ppc-aix ppc-macos s390 sh sparc sparc64-solaris sparc-solaris x64-cygwin x64-macos x64-solaris x86 x86-cygwin x86-fbsd x86-linux x86-macos x86-solaris x86-winnt"
+USE_EXPAND_VALUES_ARCH="alpha amd64 amd64-fbsd amd64-linux arm arm64 hppa ia64 m68k m68k-mint mips ppc ppc64 ppc64-linux ppc-aix ppc-macos riscv s390 sh sparc sparc64-solaris sparc-solaris x64-cygwin x64-macos x64-solaris x86 x86-cygwin x86-fbsd x86-linux x86-macos x86-solaris x86-winnt"
PROFILE_ONLY_VARIABLES="${PROFILE_ONLY_VARIABLES} ARCH USE_EXPAND_VALUES_ARCH"
diff --git a/profiles/arch/base/use.mask b/profiles/arch/base/use.mask
index f1ee795b436e..67f844eba9af 100644
--- a/profiles/arch/base/use.mask
+++ b/profiles/arch/base/use.mask
@@ -198,6 +198,8 @@ abi_mips_n32
abi_mips_n64
abi_ppc_32
abi_ppc_64
+abi_riscv_lp64d
+abi_riscv_lp64
abi_s390_32
abi_s390_64
@@ -231,6 +233,7 @@ m68k
mips
ppc
ppc64
+riscv
s390
sh
sparc
diff --git a/profiles/arch/riscv/eapi b/profiles/arch/riscv/eapi
new file mode 100644
index 000000000000..7ed6ff82de6b
--- /dev/null
+++ b/profiles/arch/riscv/eapi
@@ -0,0 +1 @@
+5
diff --git a/profiles/arch/riscv/make.defaults b/profiles/arch/riscv/make.defaults
new file mode 100644
index 000000000000..bae66d7316cc
--- /dev/null
+++ b/profiles/arch/riscv/make.defaults
@@ -0,0 +1,25 @@
+# Copyright 2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Main RISC-V profile directory.
+
+# This is not a complete profile. Use the subdirectories!
+
+ARCH="riscv"
+ACCEPT_KEYWORDS="riscv ~riscv"
+
+CHOST="riscv64-unknown-linux-gnu"
+
+# Since many people will want to test this in qemu...
+FEATURES="-pid-sandbox -network-sandbox -ipc-sandbox"
+
+# The following stuff is, e.g., defined in subdirs:
+# CFLAGS
+# CXXFLAGS
+# FFLAGS
+# FCFLAGS
+# ABI
+# DEFAULT_ABI
+# MULTILIB_ABIS
+# CHOST_riscv
+# LIBDIR_riscv
diff --git a/profiles/arch/riscv/package.accept_keywords b/profiles/arch/riscv/package.accept_keywords
new file mode 100644
index 000000000000..ba134491c30e
--- /dev/null
+++ b/profiles/arch/riscv/package.accept_keywords
@@ -0,0 +1,10 @@
+# Copyright 2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Even if someone makes Portage accept other keywords, here
+# we need specific versions / patches for riscv!
+sys-devel/gcc -amd64 -~amd64
+sys-libs/glibc -amd64 -~amd64
+
+# For the stages and qemu, we need static qemu *from* ~amd64
+app-emulation/qemu-riscv64-bin ~amd64
diff --git a/profiles/arch/riscv/package.use.mask b/profiles/arch/riscv/package.use.mask
new file mode 100644
index 000000000000..4d9a2d4184b9
--- /dev/null
+++ b/profiles/arch/riscv/package.use.mask
@@ -0,0 +1,7 @@
+# Copyright 2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# This doesn't work for (any) riscv yet.
+dev-libs/libpcre2 jit
+dev-libs/libpcre jit
+dev-vcs/git pcre-jit
diff --git a/profiles/arch/riscv/packages.build b/profiles/arch/riscv/packages.build
new file mode 100644
index 000000000000..c85897cb6cac
--- /dev/null
+++ b/profiles/arch/riscv/packages.build
@@ -0,0 +1,7 @@
+# Copyright 2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# For now we add the x86-64 qemu-riscv64 static binary to all
+# stages. This makes life somewhat simpler when working without
+# real hardware.
+app-emulation/qemu-riscv64-bin
diff --git a/profiles/arch/riscv/parent b/profiles/arch/riscv/parent
new file mode 100644
index 000000000000..eb001c6e8ab8
--- /dev/null
+++ b/profiles/arch/riscv/parent
@@ -0,0 +1 @@
+../base
diff --git a/profiles/arch/riscv/rv64gc/eapi b/profiles/arch/riscv/rv64gc/eapi
new file mode 100644
index 000000000000..7ed6ff82de6b
--- /dev/null
+++ b/profiles/arch/riscv/rv64gc/eapi
@@ -0,0 +1 @@
+5
diff --git a/profiles/arch/riscv/rv64gc/lp64/eapi b/profiles/arch/riscv/rv64gc/lp64/eapi
new file mode 100644
index 000000000000..7ed6ff82de6b
--- /dev/null
+++ b/profiles/arch/riscv/rv64gc/lp64/eapi
@@ -0,0 +1 @@
+5
diff --git a/profiles/arch/riscv/rv64gc/lp64/make.defaults b/profiles/arch/riscv/rv64gc/lp64/make.defaults
new file mode 100644
index 000000000000..8c6534c6999a
--- /dev/null
+++ b/profiles/arch/riscv/rv64gc/lp64/make.defaults
@@ -0,0 +1,15 @@
+# Copyright 2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# RISC-V rv64gc/lp64 no-multilib profile
+
+CFLAGS="-O2 -pipe -march=rv64gc -mabi=lp64"
+CXXFLAGS="${CFLAGS}"
+FFLAGS="${CFLAGS}"
+FCFLAGS="${CFLAGS}"
+
+# We have only one ABI
+MULTILIB_ABIS="lp64"
+
+# We hide the useflags for the ABIs
+USE_EXPAND_HIDDEN="ABI_RISCV"
diff --git a/profiles/arch/riscv/rv64gc/lp64/package.use.force b/profiles/arch/riscv/rv64gc/lp64/package.use.force
new file mode 100644
index 000000000000..e25bb13182b5
--- /dev/null
+++ b/profiles/arch/riscv/rv64gc/lp64/package.use.force
@@ -0,0 +1,5 @@
+# Copyright 2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Undo multilib forcing.
+sys-apps/sandbox -abi_riscv_lp64d
diff --git a/profiles/arch/riscv/rv64gc/lp64/use.mask b/profiles/arch/riscv/rv64gc/lp64/use.mask
new file mode 100644
index 000000000000..9f26ae637a8a
--- /dev/null
+++ b/profiles/arch/riscv/rv64gc/lp64/use.mask
@@ -0,0 +1,8 @@
+# Copyright 2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Mask multilib, since we do not want to use it.
+multilib
+
+# Mask the other multilib flags back for non-multilib profile.
+abi_riscv_lp64d
diff --git a/profiles/arch/riscv/rv64gc/lp64d/eapi b/profiles/arch/riscv/rv64gc/lp64d/eapi
new file mode 100644
index 000000000000..7ed6ff82de6b
--- /dev/null
+++ b/profiles/arch/riscv/rv64gc/lp64d/eapi
@@ -0,0 +1 @@
+5
diff --git a/profiles/arch/riscv/rv64gc/lp64d/make.defaults b/profiles/arch/riscv/rv64gc/lp64d/make.defaults
new file mode 100644
index 000000000000..85372ab59289
--- /dev/null
+++ b/profiles/arch/riscv/rv64gc/lp64d/make.defaults
@@ -0,0 +1,15 @@
+# Copyright 2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# RISC-V rv64gc/lp64d no-multilib profile
+
+CFLAGS="-O2 -pipe -march=rv64gc -mabi=lp64d"
+CXXFLAGS="${CFLAGS}"
+FFLAGS="${CFLAGS}"
+FCFLAGS="${CFLAGS}"
+
+# We have only one ABI
+MULTILIB_ABIS="lp64d"
+
+# We hide the useflags for the ABIs
+USE_EXPAND_HIDDEN="ABI_RISCV"
diff --git a/profiles/arch/riscv/rv64gc/lp64d/package.use.force b/profiles/arch/riscv/rv64gc/lp64d/package.use.force
new file mode 100644
index 000000000000..73fe93666cc9
--- /dev/null
+++ b/profiles/arch/riscv/rv64gc/lp64d/package.use.force
@@ -0,0 +1,5 @@
+# Copyright 2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Undo multilib forcing.
+sys-apps/sandbox -abi_riscv_lp64
diff --git a/profiles/arch/riscv/rv64gc/lp64d/use.mask b/profiles/arch/riscv/rv64gc/lp64d/use.mask
new file mode 100644
index 000000000000..fd1d1445c965
--- /dev/null
+++ b/profiles/arch/riscv/rv64gc/lp64d/use.mask
@@ -0,0 +1,8 @@
+# Copyright 2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Mask multilib, since we do not want to use it.
+multilib
+
+# Mask the other multilib flags back for non-multilib profile.
+abi_riscv_lp64
diff --git a/profiles/arch/riscv/rv64gc/make.defaults b/profiles/arch/riscv/rv64gc/make.defaults
new file mode 100644
index 000000000000..a98e8e97dd6e
--- /dev/null
+++ b/profiles/arch/riscv/rv64gc/make.defaults
@@ -0,0 +1,40 @@
+# Copyright 2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# RISC-V profile for rv64gc multilib
+
+CFLAGS="-O2 -pipe -march=rv64gc"
+CXXFLAGS="${CFLAGS}"
+FFLAGS="${CFLAGS}"
+FCFLAGS="${CFLAGS}"
+
+# Multilib ABIs
+MULTILIB_ABIS="lp64d lp64"
+DEFAULT_ABI="lp64d"
+ABI="lp64d"
+
+# Library directories
+LIBDIR_lp64d="lib64/lp64d"
+LIBDIR_lp64="lib64/lp64"
+SYMLINK_LIB="no"
+
+# Flags for lp64d
+CFLAGS_lp64d="-mabi=lp64d"
+# LDFLAGS_lp64d
+
+# Flags for lp64
+CFLAGS_lp64="-mabi=lp64"
+# LDFLAGS_lp64
+
+# Enable lp64d by default
+ABI_RISCV="lp64d"
+
+# Unhide the riscv/rv64gc-specific USE_EXPANDs
+USE_EXPAND_HIDDEN="-ABI_RISCV"
+
+# Implicitly enable lp64d in ebuilds without multilib support
+IUSE_IMPLICIT="abi_riscv_lp64d"
+
+# Enable Python 3.7 since we can't use earlier versions
+PYTHON_TARGETS="python3_7"
+PYTHON_SINGLE_TARGET="python3_7"
diff --git a/profiles/arch/riscv/rv64gc/package.mask b/profiles/arch/riscv/rv64gc/package.mask
new file mode 100644
index 000000000000..43580b7b49a0
--- /dev/null
+++ b/profiles/arch/riscv/rv64gc/package.mask
@@ -0,0 +1,5 @@
+# Copyright 2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Doesnt work properly with the two-level libdirs
+<dev-lang/python-3.7
diff --git a/profiles/arch/riscv/rv64gc/parent b/profiles/arch/riscv/rv64gc/parent
new file mode 100644
index 000000000000..6ee1b9eff10c
--- /dev/null
+++ b/profiles/arch/riscv/rv64gc/parent
@@ -0,0 +1,2 @@
+..
+../../../features/multilib
diff --git a/profiles/arch/riscv/rv64gc/use.force b/profiles/arch/riscv/rv64gc/use.force
new file mode 100644
index 000000000000..7ce55a8948e1
--- /dev/null
+++ b/profiles/arch/riscv/rv64gc/use.force
@@ -0,0 +1,9 @@
+# Copyright 2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Force the flag corresponding to the default ABI.
+abi_riscv_lp64d
+
+# Right now we have only one Python available, so we must use it
+python_targets_python3_7
+python_single_target_python3_7
diff --git a/profiles/arch/riscv/rv64gc/use.mask b/profiles/arch/riscv/rv64gc/use.mask
new file mode 100644
index 000000000000..529c1d546345
--- /dev/null
+++ b/profiles/arch/riscv/rv64gc/use.mask
@@ -0,0 +1,14 @@
+# Copyright 2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Unmask the multilib flags for this arch.
+-abi_riscv_lp64d
+-abi_riscv_lp64
+
+# Our Python has a lot of trouble with the two-level libdir.
+python_targets_python2_7
+python_targets_python3_5
+python_targets_python3_6
+python_single_target_python2_7
+python_single_target_python3_5
+python_single_target_python3_6
diff --git a/profiles/arch/riscv/use.force b/profiles/arch/riscv/use.force
new file mode 100644
index 000000000000..5e5e335685cb
--- /dev/null
+++ b/profiles/arch/riscv/use.force
@@ -0,0 +1,5 @@
+# Copyright 2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Force the flag which corresponds to ARCH.
+riscv
diff --git a/profiles/arch/riscv/use.mask b/profiles/arch/riscv/use.mask
new file mode 100644
index 000000000000..7e3b45411913
--- /dev/null
+++ b/profiles/arch/riscv/use.mask
@@ -0,0 +1,8 @@
+# Copyright 2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Unmask the flag which corresponds to ARCH.
+-riscv
+
+# The required library has not been ported to riscv yet.
+seccomp
diff --git a/profiles/base/make.defaults b/profiles/base/make.defaults
index 7fc93d902675..2ffb8d9669ea 100644
--- a/profiles/base/make.defaults
+++ b/profiles/base/make.defaults
@@ -13,11 +13,11 @@ USE_EXPAND_VALUES_USERLAND="BSD GNU"
# Env vars to expand into USE vars. Modifying this requires prior
# discussion on gentoo-dev@lists.gentoo.org.
-USE_EXPAND="ABI_MIPS ABI_PPC ABI_S390 ABI_X86 ALSA_CARDS APACHE2_MODULES APACHE2_MPMS CALLIGRA_FEATURES CAMERAS COLLECTD_PLUGINS CPU_FLAGS_ARM CPU_FLAGS_X86 CURL_SSL ELIBC ENLIGHTENMENT_MODULES FFTOOLS GPSD_PROTOCOLS GRUB_PLATFORMS INPUT_DEVICES KERNEL L10N LCD_DEVICES LIBREOFFICE_EXTENSIONS LIRC_DEVICES LLVM_TARGETS MONKEYD_PLUGINS NETBEANS_MODULES NGINX_MODULES_HTTP NGINX_MODULES_MAIL NGINX_MODULES_STREAM OFED_DRIVERS OFFICE_IMPLEMENTATION OPENMPI_FABRICS OPENMPI_OFED_FEATURES OPENMPI_RM PHP_TARGETS POSTGRES_TARGETS PYTHON_SINGLE_TARGET PYTHON_TARGETS QEMU_SOFTMMU_TARGETS QEMU_USER_TARGETS ROS_MESSAGES RUBY_TARGETS SANE_BACKENDS USERLAND UWSGI_PLUGINS VIDEO_CARDS VOICEMAIL_STORAGE XFCE_PLUGINS XTABLES_ADDONS"
+USE_EXPAND="ABI_MIPS ABI_PPC ABI_RISCV ABI_S390 ABI_X86 ALSA_CARDS APACHE2_MODULES APACHE2_MPMS CALLIGRA_FEATURES CAMERAS COLLECTD_PLUGINS CPU_FLAGS_ARM CPU_FLAGS_X86 CURL_SSL ELIBC ENLIGHTENMENT_MODULES FFTOOLS GPSD_PROTOCOLS GRUB_PLATFORMS INPUT_DEVICES KERNEL L10N LCD_DEVICES LIBREOFFICE_EXTENSIONS LIRC_DEVICES LLVM_TARGETS MONKEYD_PLUGINS NETBEANS_MODULES NGINX_MODULES_HTTP NGINX_MODULES_MAIL NGINX_MODULES_STREAM OFED_DRIVERS OFFICE_IMPLEMENTATION OPENMPI_FABRICS OPENMPI_OFED_FEATURES OPENMPI_RM PHP_TARGETS POSTGRES_TARGETS PYTHON_SINGLE_TARGET PYTHON_TARGETS QEMU_SOFTMMU_TARGETS QEMU_USER_TARGETS ROS_MESSAGES RUBY_TARGETS SANE_BACKENDS USERLAND UWSGI_PLUGINS VIDEO_CARDS VOICEMAIL_STORAGE XFCE_PLUGINS XTABLES_ADDONS"
# USE_EXPAND variables whose contents are not shown in package manager
# output. Changes need discussion on gentoo-dev.
-USE_EXPAND_HIDDEN="USERLAND KERNEL ELIBC ABI_MIPS ABI_PPC ABI_S390 ABI_X86 CPU_FLAGS_ARM CPU_FLAGS_X86"
+USE_EXPAND_HIDDEN="USERLAND KERNEL ELIBC ABI_MIPS ABI_PPC ABI_RISCV ABI_S390 ABI_X86 CPU_FLAGS_ARM CPU_FLAGS_X86"
CONFIG_PROTECT="/etc"
CONFIG_PROTECT_MASK="/etc/env.d /etc/gconf"
diff --git a/profiles/default/linux/riscv/17.0/eapi b/profiles/default/linux/riscv/17.0/eapi
new file mode 100644
index 000000000000..7ed6ff82de6b
--- /dev/null
+++ b/profiles/default/linux/riscv/17.0/eapi
@@ -0,0 +1 @@
+5
diff --git a/profiles/default/linux/riscv/17.0/parent b/profiles/default/linux/riscv/17.0/parent
new file mode 100644
index 000000000000..4ce24f0217a8
--- /dev/null
+++ b/profiles/default/linux/riscv/17.0/parent
@@ -0,0 +1,2 @@
+..
+../../../../releases/17.0
diff --git a/profiles/default/linux/riscv/17.0/rv64gc/eapi b/profiles/default/linux/riscv/17.0/rv64gc/eapi
new file mode 100644
index 000000000000..7ed6ff82de6b
--- /dev/null
+++ b/profiles/default/linux/riscv/17.0/rv64gc/eapi
@@ -0,0 +1 @@
+5
diff --git a/profiles/default/linux/riscv/17.0/rv64gc/lp64/eapi b/profiles/default/linux/riscv/17.0/rv64gc/lp64/eapi
new file mode 100644
index 000000000000..7ed6ff82de6b
--- /dev/null
+++ b/profiles/default/linux/riscv/17.0/rv64gc/lp64/eapi
@@ -0,0 +1 @@
+5
diff --git a/profiles/default/linux/riscv/17.0/rv64gc/lp64/parent b/profiles/default/linux/riscv/17.0/rv64gc/lp64/parent
new file mode 100644
index 000000000000..0273fe595371
--- /dev/null
+++ b/profiles/default/linux/riscv/17.0/rv64gc/lp64/parent
@@ -0,0 +1,2 @@
+..
+../../../../../../arch/riscv/rv64gc/lp64
diff --git a/profiles/default/linux/riscv/17.0/rv64gc/lp64d/eapi b/profiles/default/linux/riscv/17.0/rv64gc/lp64d/eapi
new file mode 100644
index 000000000000..7ed6ff82de6b
--- /dev/null
+++ b/profiles/default/linux/riscv/17.0/rv64gc/lp64d/eapi
@@ -0,0 +1 @@
+5
diff --git a/profiles/default/linux/riscv/17.0/rv64gc/lp64d/parent b/profiles/default/linux/riscv/17.0/rv64gc/lp64d/parent
new file mode 100644
index 000000000000..f497f659b838
--- /dev/null
+++ b/profiles/default/linux/riscv/17.0/rv64gc/lp64d/parent
@@ -0,0 +1,2 @@
+..
+../../../../../../arch/riscv/rv64gc/lp64d
diff --git a/profiles/default/linux/riscv/17.0/rv64gc/parent b/profiles/default/linux/riscv/17.0/rv64gc/parent
new file mode 100644
index 000000000000..4bbbd0ac47fc
--- /dev/null
+++ b/profiles/default/linux/riscv/17.0/rv64gc/parent
@@ -0,0 +1,2 @@
+..
+../../../../../arch/riscv/rv64gc
diff --git a/profiles/default/linux/riscv/eapi b/profiles/default/linux/riscv/eapi
new file mode 100644
index 000000000000..7ed6ff82de6b
--- /dev/null
+++ b/profiles/default/linux/riscv/eapi
@@ -0,0 +1 @@
+5
diff --git a/profiles/default/linux/riscv/parent b/profiles/default/linux/riscv/parent
new file mode 100644
index 000000000000..9f9d2cbed246
--- /dev/null
+++ b/profiles/default/linux/riscv/parent
@@ -0,0 +1,2 @@
+../../../base
+..
diff --git a/profiles/features/multilib/package.use b/profiles/features/multilib/package.use
index b171f871ab08..93511b0bcf54 100644
--- a/profiles/features/multilib/package.use
+++ b/profiles/features/multilib/package.use
@@ -3,4 +3,4 @@
# Enable all ABIs by default so we can protect any non-native binaries that
# might be executed.
-sys-apps/sandbox abi_x86_32 abi_x86_64 abi_x86_x32 abi_mips_o32 abi_mips_n32 abi_mips_n64 abi_ppc_32 abi_ppc_64 abi_s390_32 abi_s390_64
+sys-apps/sandbox abi_x86_32 abi_x86_64 abi_x86_x32 abi_mips_o32 abi_mips_n32 abi_mips_n64 abi_ppc_32 abi_ppc_64 abi_riscv_lp64d abi_riscv_lp64 abi_s390_32 abi_s390_64
diff --git a/profiles/profiles.desc b/profiles/profiles.desc
index eab4d48a2c4c..990b4fb017ae 100644
--- a/profiles/profiles.desc
+++ b/profiles/profiles.desc
@@ -252,6 +252,11 @@ ppc64 default/linux/powerpc/ppc64/17.0/64bit-userland/developer
ppc64 default/linux/powerpc/ppc64/17.0/64bit-userland/little-endian exp
ppc64 default/linux/powerpc/ppc64/17.0/64bit-userland/little-endian/systemd exp
+# RISC-V Profiles
+# @MAINTAINER: riscv@gentoo.org
+riscv default/linux/riscv/17.0/rv64gc exp
+riscv default/linux/riscv/17.0/rv64gc/lp64d exp
+
# S390 Profiles
# @MAINTAINER: s390@gentoo.org
s390 default/linux/s390/13.0 exp
diff --git a/sys-devel/gcc/files/gcc-8.3.0-norisc32.patch b/sys-devel/gcc/files/gcc-8.3.0-norisc32.patch
new file mode 100644
index 000000000000..9315dc44893c
--- /dev/null
+++ b/sys-devel/gcc/files/gcc-8.3.0-norisc32.patch
@@ -0,0 +1,27 @@
+diff -ruN gcc-8.3.0.orig/gcc/config/riscv/t-linux-multilib gcc-8.3.0/gcc/config/riscv/t-linux-multilib
+--- gcc-8.3.0.orig/gcc/config/riscv/t-linux-multilib 2017-02-06 22:38:37.000000000 +0100
++++ gcc-8.3.0/gcc/config/riscv/t-linux-multilib 2019-04-28 16:37:44.377841943 +0200
+@@ -20,21 +20,9 @@
+ ilp32d \
+ lp64 \
+ lp64d
+-MULTILIB_REQUIRED = march=rv32imac/mabi=ilp32 \
+-march=rv32imafdc/mabi=ilp32d \
+-march=rv64imac/mabi=lp64 \
++MULTILIB_REQUIRED = march=rv64imac/mabi=lp64 \
+ march=rv64imafdc/mabi=lp64d
+-MULTILIB_REUSE = march.rv32imac/mabi.ilp32=march.rv32ima/mabi.ilp32 \
+-march.rv32imac/mabi.ilp32=march.rv32imaf/mabi.ilp32 \
+-march.rv32imac/mabi.ilp32=march.rv32imafd/mabi.ilp32 \
+-march.rv32imac/mabi.ilp32=march.rv32imafc/mabi.ilp32 \
+-march.rv32imac/mabi.ilp32=march.rv32imafdc/mabi.ilp32 \
+-march.rv32imac/mabi.ilp32=march.rv32g/mabi.ilp32 \
+-march.rv32imac/mabi.ilp32=march.rv32gc/mabi.ilp32 \
+-march.rv32imafdc/mabi.ilp32d=march.rv32imafd/mabi.ilp32d \
+-march.rv32imafdc/mabi.ilp32d=march.rv32gc/mabi.ilp32d \
+-march.rv32imafdc/mabi.ilp32d=march.rv32g/mabi.ilp32d \
+-march.rv64imac/mabi.lp64=march.rv64ima/mabi.lp64 \
++MULTILIB_REUSE = march.rv64imac/mabi.lp64=march.rv64ima/mabi.lp64 \
+ march.rv64imac/mabi.lp64=march.rv64imaf/mabi.lp64 \
+ march.rv64imac/mabi.lp64=march.rv64imafd/mabi.lp64 \
+ march.rv64imac/mabi.lp64=march.rv64imafc/mabi.lp64 \
diff --git a/sys-devel/gcc/gcc-8.3.0-r1.ebuild b/sys-devel/gcc/gcc-8.3.0-r1.ebuild
index 4ccee806e938..26b05fa3555c 100644
--- a/sys-devel/gcc/gcc-8.3.0-r1.ebuild
+++ b/sys-devel/gcc/gcc-8.3.0-r1.ebuild
@@ -7,7 +7,7 @@ PATCH_VER="1.1"
inherit toolchain
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd"
RDEPEND=""
DEPEND="${RDEPEND}
@@ -21,4 +21,5 @@ fi
src_prepare() {
toolchain_src_prepare
eapply "${FILESDIR}"/gcc-8.3.0-ia64-bootstrap.patch
+ eapply "${FILESDIR}"/gcc-8.3.0-norisc32.patch
}
diff --git a/sys-libs/glibc/glibc-2.29-r2.ebuild b/sys-libs/glibc/glibc-2.29-r2.ebuild
index 60641cf7a5d0..f65ca48ab825 100644
--- a/sys-libs/glibc/glibc-2.29-r2.ebuild
+++ b/sys-libs/glibc/glibc-2.29-r2.ebuild
@@ -20,7 +20,7 @@ if [[ ${PV} == 9999* ]]; then
EGIT_REPO_URI="https://sourceware.org/git/glibc.git"
inherit git-r3
else
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86"
SRC_URI="mirror://gnu/glibc/${P}.tar.xz"
fi