* [gentoo-commits] repo/gentoo:master commit in: profiles/arch/riscv/, profiles/arch/riscv/rv64gc/, ...
@ 2019-05-03 21:49 Andreas K. Hüttel
0 siblings, 0 replies; only message in thread
From: Andreas K. Hüttel @ 2019-05-03 21:49 UTC (permalink / raw
To: gentoo-commits
commit: ce55dceabc5387634829f8b124626246725b6c1c
Author: Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
AuthorDate: Wed May 1 19:46:23 2019 +0000
Commit: Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
CommitDate: Fri May 3 21:43:56 2019 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ce55dcea
profiles: Add arch/riscv directory and subdirectories
Signed-off-by: Andreas K. Hüttel <dilfridge <AT> gentoo.org>
profiles/arch/riscv/eapi | 1 +
profiles/arch/riscv/make.defaults | 25 ++++++++++++++
profiles/arch/riscv/package.accept_keywords | 10 ++++++
profiles/arch/riscv/package.use.mask | 7 ++++
profiles/arch/riscv/packages.build | 7 ++++
profiles/arch/riscv/parent | 1 +
profiles/arch/riscv/rv64gc/eapi | 1 +
profiles/arch/riscv/rv64gc/lp64/eapi | 1 +
profiles/arch/riscv/rv64gc/lp64/make.defaults | 15 ++++++++
profiles/arch/riscv/rv64gc/lp64/package.use.force | 5 +++
profiles/arch/riscv/rv64gc/lp64/use.mask | 8 +++++
profiles/arch/riscv/rv64gc/lp64d/eapi | 1 +
profiles/arch/riscv/rv64gc/lp64d/make.defaults | 15 ++++++++
profiles/arch/riscv/rv64gc/lp64d/package.use.force | 5 +++
profiles/arch/riscv/rv64gc/lp64d/use.mask | 8 +++++
profiles/arch/riscv/rv64gc/make.defaults | 40 ++++++++++++++++++++++
profiles/arch/riscv/rv64gc/package.mask | 5 +++
profiles/arch/riscv/rv64gc/parent | 2 ++
profiles/arch/riscv/rv64gc/use.force | 9 +++++
profiles/arch/riscv/rv64gc/use.mask | 14 ++++++++
profiles/arch/riscv/use.force | 5 +++
profiles/arch/riscv/use.mask | 8 +++++
22 files changed, 193 insertions(+)
diff --git a/profiles/arch/riscv/eapi b/profiles/arch/riscv/eapi
new file mode 100644
index 00000000000..7ed6ff82de6
--- /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 00000000000..bae66d7316c
--- /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 00000000000..ba134491c30
--- /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 00000000000..4d9a2d4184b
--- /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 00000000000..c85897cb6ca
--- /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 00000000000..eb001c6e8ab
--- /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 00000000000..7ed6ff82de6
--- /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 00000000000..7ed6ff82de6
--- /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 00000000000..8c6534c6999
--- /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 00000000000..e25bb13182b
--- /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 00000000000..9f26ae637a8
--- /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 00000000000..7ed6ff82de6
--- /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 00000000000..85372ab5928
--- /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 00000000000..73fe93666cc
--- /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 00000000000..fd1d1445c96
--- /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 00000000000..a98e8e97dd6
--- /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 00000000000..43580b7b49a
--- /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 00000000000..6ee1b9eff10
--- /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 00000000000..7ce55a8948e
--- /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 00000000000..529c1d54634
--- /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 00000000000..5e5e335685c
--- /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 00000000000..7e3b4541191
--- /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
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2019-05-03 21:49 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-05-03 21:49 [gentoo-commits] repo/gentoo:master commit in: profiles/arch/riscv/, profiles/arch/riscv/rv64gc/, Andreas K. Hüttel
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox