profiles: Add arch/riscv directory and subdirectories
authorAndreas K. Hüttel <dilfridge@gentoo.org>
Wed, 1 May 2019 19:46:23 +0000 (21:46 +0200)
committerAndreas K. Hüttel <dilfridge@gentoo.org>
Fri, 3 May 2019 21:43:56 +0000 (23:43 +0200)
Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
22 files changed:
profiles/arch/riscv/eapi [new file with mode: 0644]
profiles/arch/riscv/make.defaults [new file with mode: 0644]
profiles/arch/riscv/package.accept_keywords [new file with mode: 0644]
profiles/arch/riscv/package.use.mask [new file with mode: 0644]
profiles/arch/riscv/packages.build [new file with mode: 0644]
profiles/arch/riscv/parent [new file with mode: 0644]
profiles/arch/riscv/rv64gc/eapi [new file with mode: 0644]
profiles/arch/riscv/rv64gc/lp64/eapi [new file with mode: 0644]
profiles/arch/riscv/rv64gc/lp64/make.defaults [new file with mode: 0644]
profiles/arch/riscv/rv64gc/lp64/package.use.force [new file with mode: 0644]
profiles/arch/riscv/rv64gc/lp64/use.mask [new file with mode: 0644]
profiles/arch/riscv/rv64gc/lp64d/eapi [new file with mode: 0644]
profiles/arch/riscv/rv64gc/lp64d/make.defaults [new file with mode: 0644]
profiles/arch/riscv/rv64gc/lp64d/package.use.force [new file with mode: 0644]
profiles/arch/riscv/rv64gc/lp64d/use.mask [new file with mode: 0644]
profiles/arch/riscv/rv64gc/make.defaults [new file with mode: 0644]
profiles/arch/riscv/rv64gc/package.mask [new file with mode: 0644]
profiles/arch/riscv/rv64gc/parent [new file with mode: 0644]
profiles/arch/riscv/rv64gc/use.force [new file with mode: 0644]
profiles/arch/riscv/rv64gc/use.mask [new file with mode: 0644]
profiles/arch/riscv/use.force [new file with mode: 0644]
profiles/arch/riscv/use.mask [new file with mode: 0644]

diff --git a/profiles/arch/riscv/eapi b/profiles/arch/riscv/eapi
new file mode 100644 (file)
index 0000000..7ed6ff8
--- /dev/null
@@ -0,0 +1 @@
+5
diff --git a/profiles/arch/riscv/make.defaults b/profiles/arch/riscv/make.defaults
new file mode 100644 (file)
index 0000000..bae66d7
--- /dev/null
@@ -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 (file)
index 0000000..ba13449
--- /dev/null
@@ -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 (file)
index 0000000..4d9a2d4
--- /dev/null
@@ -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 (file)
index 0000000..c85897c
--- /dev/null
@@ -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 (file)
index 0000000..eb001c6
--- /dev/null
@@ -0,0 +1 @@
+../base
diff --git a/profiles/arch/riscv/rv64gc/eapi b/profiles/arch/riscv/rv64gc/eapi
new file mode 100644 (file)
index 0000000..7ed6ff8
--- /dev/null
@@ -0,0 +1 @@
+5
diff --git a/profiles/arch/riscv/rv64gc/lp64/eapi b/profiles/arch/riscv/rv64gc/lp64/eapi
new file mode 100644 (file)
index 0000000..7ed6ff8
--- /dev/null
@@ -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 (file)
index 0000000..8c6534c
--- /dev/null
@@ -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 (file)
index 0000000..e25bb13
--- /dev/null
@@ -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 (file)
index 0000000..9f26ae6
--- /dev/null
@@ -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 (file)
index 0000000..7ed6ff8
--- /dev/null
@@ -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 (file)
index 0000000..85372ab
--- /dev/null
@@ -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 (file)
index 0000000..73fe936
--- /dev/null
@@ -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 (file)
index 0000000..fd1d144
--- /dev/null
@@ -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 (file)
index 0000000..a98e8e9
--- /dev/null
@@ -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 (file)
index 0000000..43580b7
--- /dev/null
@@ -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 (file)
index 0000000..6ee1b9e
--- /dev/null
@@ -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 (file)
index 0000000..7ce55a8
--- /dev/null
@@ -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 (file)
index 0000000..529c1d5
--- /dev/null
@@ -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 (file)
index 0000000..5e5e335
--- /dev/null
@@ -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 (file)
index 0000000..7e3b454
--- /dev/null
@@ -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