summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--profiles/arch/loong/eapi1
-rw-r--r--profiles/arch/loong/la64v100/lp64d/eapi1
-rw-r--r--profiles/arch/loong/la64v100/lp64d/make.defaults21
-rw-r--r--profiles/arch/loong/make.defaults52
-rw-r--r--profiles/arch/loong/package.use.force15
-rw-r--r--profiles/arch/loong/package.use.mask44
-rw-r--r--profiles/arch/loong/parent1
-rw-r--r--profiles/arch/loong/use.force5
-rw-r--r--profiles/arch/loong/use.mask5
-rw-r--r--profiles/default/linux/loong/22.0/la64v100/eapi1
-rw-r--r--profiles/default/linux/loong/22.0/la64v100/lp64d/desktop/eapi1
-rw-r--r--profiles/default/linux/loong/22.0/la64v100/lp64d/desktop/parent2
-rw-r--r--profiles/default/linux/loong/22.0/la64v100/lp64d/desktop/systemd/eapi1
-rw-r--r--profiles/default/linux/loong/22.0/la64v100/lp64d/desktop/systemd/parent2
-rw-r--r--profiles/default/linux/loong/22.0/la64v100/lp64d/eapi1
-rw-r--r--profiles/default/linux/loong/22.0/la64v100/lp64d/parent2
-rw-r--r--profiles/default/linux/loong/22.0/la64v100/lp64d/systemd/eapi1
-rw-r--r--profiles/default/linux/loong/22.0/la64v100/lp64d/systemd/parent2
-rw-r--r--profiles/default/linux/loong/22.0/la64v100/parent2
-rw-r--r--profiles/default/linux/loong/eapi1
-rw-r--r--profiles/default/linux/loong/parent3
-rw-r--r--profiles/profiles.desc7
22 files changed, 171 insertions, 0 deletions
diff --git a/profiles/arch/loong/eapi b/profiles/arch/loong/eapi
new file mode 100644
index 000000000000..7ed6ff82de6b
--- /dev/null
+++ b/profiles/arch/loong/eapi
@@ -0,0 +1 @@
+5
diff --git a/profiles/arch/loong/la64v100/lp64d/eapi b/profiles/arch/loong/la64v100/lp64d/eapi
new file mode 100644
index 000000000000..7ed6ff82de6b
--- /dev/null
+++ b/profiles/arch/loong/la64v100/lp64d/eapi
@@ -0,0 +1 @@
+5
diff --git a/profiles/arch/loong/la64v100/lp64d/make.defaults b/profiles/arch/loong/la64v100/lp64d/make.defaults
new file mode 100644
index 000000000000..bbe4f93abf3c
--- /dev/null
+++ b/profiles/arch/loong/la64v100/lp64d/make.defaults
@@ -0,0 +1,21 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# LoongArch la64v100/lp64d no-multilib profile
+#
+# la64v100 -- the ISA as defined in LoongArch Reference Manual Volume 1, v1.00.
+
+CHOST="loongarch64-unknown-linux-gnu"
+MULTILIB_ABIS="lp64d"
+DEFAULT_ABI="lp64d"
+ABI="lp64d"
+
+CFLAGS="-O2 -pipe -march=loongarch64 -mabi=lp64d"
+CXXFLAGS="${CFLAGS}"
+FFLAGS="${CFLAGS}"
+FCFLAGS="${CFLAGS}"
+
+# We have only one ABI
+MULTILIB_ABIS="lp64d"
+DEFAULT_ABI="lp64d"
+ABI="lp64d"
diff --git a/profiles/arch/loong/make.defaults b/profiles/arch/loong/make.defaults
new file mode 100644
index 000000000000..3c0828d8bc2b
--- /dev/null
+++ b/profiles/arch/loong/make.defaults
@@ -0,0 +1,52 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Main LoongArch profile directory. Common settings for all loong profiles.
+#
+# Subdirectories represent choices for base instruction set; the names come
+# from the "Base Architecture" table, in the *LoongArch Toolchain Conventions*
+# document.
+#
+# https://loongson.github.io/LoongArch-Documentation/LoongArch-toolchain-conventions-EN.html
+
+# This is not a complete profile. Use the subdirectories!
+
+ARCH="loong"
+ACCEPT_KEYWORDS="loong ~loong"
+
+USE_EXPAND_VALUES_ARCH="${USE_EXPAND_VALUES_ARCH} loong"
+
+CFLAGS="-O2 -pipe"
+CXXFLAGS="${CFLAGS}"
+FFLAGS="${CFLAGS}"
+FCFLAGS="${CFLAGS}"
+
+SYMLINK_LIB="no"
+
+# Note about LIBDIR_*:
+#
+# Unlike riscv profiles, LoongArch so far has not defined exact multilib
+# layouts for non-multiarch (i.e. non-Debian-derived) systems; also the ABIs
+# other than LP64D are underdeveloped and likely unusable. So here we only
+# give definitions for lp64d.
+#
+# Should any official spec be revised such that a multilib layout is given,
+# definitions here should be updated to stay compliant.
+
+# Flags for lp64d
+LIBDIR_lp64d="lib64"
+CFLAGS_lp64d="-mabi=lp64d"
+LDFLAGS_lp64d="-m elf64loongarch"
+CHOST_lp64d="loongarch64-unknown-linux-gnu"
+
+# Since many people will want to test this in qemu...
+FEATURES="-pid-sandbox -network-sandbox -ipc-sandbox"
+
+# We need to fetch https git repo (gcc) during bootstrap, before gcc-12.1.0
+# is officially released.
+BOOTSTRAP_USE="${BOOTSTRAP_USE} curl_ssl_openssl ssl"
+
+# The following stuff MUST be defined in subdirs:
+# ABI
+# DEFAULT_ABI
+# MULTILIB_ABIS
diff --git a/profiles/arch/loong/package.use.force b/profiles/arch/loong/package.use.force
new file mode 100644
index 000000000000..c48378812752
--- /dev/null
+++ b/profiles/arch/loong/package.use.force
@@ -0,0 +1,15 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# WANG Xuerui <xen0n@gentoo.org> (2022-04-24)
+# Force-enable experimental-loong on toolchain packages; we're loong.
+sys-kernel/linux-headers experimental-loong
+sys-libs/glibc experimental-loong
+
+# WANG Xuerui <xen0n@gentoo.org> (2022-04-18)
+# gcc-12 is live ebuild for now, hence requiring this
+dev-vcs/git curl
+
+# WANG Xuerui <xen0n@gentoo.org> (2022-04-18)
+# Newer spidermonkey not available yet (due to absence of rust)
+sys-auth/polkit duktape
diff --git a/profiles/arch/loong/package.use.mask b/profiles/arch/loong/package.use.mask
new file mode 100644
index 000000000000..277c269898d7
--- /dev/null
+++ b/profiles/arch/loong/package.use.mask
@@ -0,0 +1,44 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# WANG Xuerui <xen0n@gentoo.org> (2022-04-24)
+# Unmask experimental-loong on toolchain packages; we're loong.
+sys-kernel/linux-headers -experimental-loong
+sys-libs/glibc -experimental-loong
+
+# WANG Xuerui <xen0n@gentoo.org> (2022-04-18)
+# Mask io-uring & zbc pending keywording
+sys-block/fio -io-uring -zbc
+
+# WANG Xuerui <xen0n@gentoo.org> (2022-04-18)
+# We never had non-deprecated libcrypt support from glibc, so disable compat
+# from libxcrypt for a world without libcrypt.so.1
+>=sys-libs/libxcrypt-4.4.23-r1 compat
+
+# WANG Xuerui <xen0n@gentoo.org> (2022-04-18)
+# Catalyst has support for assembling bootloader on this arch
+dev-util/catalyst -system-bootloader
+
+# The below masks are liberally taken from riscv, which has similar
+# limitations.
+
+# LoongArch has no gold
+sys-devel/binutils gold
+
+# sys-libs/libunwind do not support LoongArch for now
+dev-libs/efl unwind
+dev-util/strace unwind
+media-libs/gstreamer unwind
+media-libs/mesa unwind
+net-libs/zeromq unwind
+net-mail/dovecot unwind
+x11-base/xorg-server unwind
+x11-base/xwayland unwind
+
+# These aren't ported to LoongArch yet
+dev-libs/libpcre2 jit
+dev-libs/libpcre jit
+<dev-vcs/git-2.31.0 pcre-jit
+www-servers/nginx pcre-jit
+
+# End snippets taken from riscv
diff --git a/profiles/arch/loong/parent b/profiles/arch/loong/parent
new file mode 100644
index 000000000000..eb001c6e8ab8
--- /dev/null
+++ b/profiles/arch/loong/parent
@@ -0,0 +1 @@
+../base
diff --git a/profiles/arch/loong/use.force b/profiles/arch/loong/use.force
new file mode 100644
index 000000000000..a75f45bda3b2
--- /dev/null
+++ b/profiles/arch/loong/use.force
@@ -0,0 +1,5 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Force the flag which corresponds to ARCH.
+loong
diff --git a/profiles/arch/loong/use.mask b/profiles/arch/loong/use.mask
new file mode 100644
index 000000000000..bc841c189ccb
--- /dev/null
+++ b/profiles/arch/loong/use.mask
@@ -0,0 +1,5 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Unmask the flag which corresponds to ARCH.
+-loong
diff --git a/profiles/default/linux/loong/22.0/la64v100/eapi b/profiles/default/linux/loong/22.0/la64v100/eapi
new file mode 100644
index 000000000000..7ed6ff82de6b
--- /dev/null
+++ b/profiles/default/linux/loong/22.0/la64v100/eapi
@@ -0,0 +1 @@
+5
diff --git a/profiles/default/linux/loong/22.0/la64v100/lp64d/desktop/eapi b/profiles/default/linux/loong/22.0/la64v100/lp64d/desktop/eapi
new file mode 100644
index 000000000000..7ed6ff82de6b
--- /dev/null
+++ b/profiles/default/linux/loong/22.0/la64v100/lp64d/desktop/eapi
@@ -0,0 +1 @@
+5
diff --git a/profiles/default/linux/loong/22.0/la64v100/lp64d/desktop/parent b/profiles/default/linux/loong/22.0/la64v100/lp64d/desktop/parent
new file mode 100644
index 000000000000..fae96e8d36b2
--- /dev/null
+++ b/profiles/default/linux/loong/22.0/la64v100/lp64d/desktop/parent
@@ -0,0 +1,2 @@
+..
+../../../../../../../targets/desktop
diff --git a/profiles/default/linux/loong/22.0/la64v100/lp64d/desktop/systemd/eapi b/profiles/default/linux/loong/22.0/la64v100/lp64d/desktop/systemd/eapi
new file mode 100644
index 000000000000..7ed6ff82de6b
--- /dev/null
+++ b/profiles/default/linux/loong/22.0/la64v100/lp64d/desktop/systemd/eapi
@@ -0,0 +1 @@
+5
diff --git a/profiles/default/linux/loong/22.0/la64v100/lp64d/desktop/systemd/parent b/profiles/default/linux/loong/22.0/la64v100/lp64d/desktop/systemd/parent
new file mode 100644
index 000000000000..f7739b405877
--- /dev/null
+++ b/profiles/default/linux/loong/22.0/la64v100/lp64d/desktop/systemd/parent
@@ -0,0 +1,2 @@
+..
+../../../../../../../../targets/systemd
diff --git a/profiles/default/linux/loong/22.0/la64v100/lp64d/eapi b/profiles/default/linux/loong/22.0/la64v100/lp64d/eapi
new file mode 100644
index 000000000000..7ed6ff82de6b
--- /dev/null
+++ b/profiles/default/linux/loong/22.0/la64v100/lp64d/eapi
@@ -0,0 +1 @@
+5
diff --git a/profiles/default/linux/loong/22.0/la64v100/lp64d/parent b/profiles/default/linux/loong/22.0/la64v100/lp64d/parent
new file mode 100644
index 000000000000..b4e81a288683
--- /dev/null
+++ b/profiles/default/linux/loong/22.0/la64v100/lp64d/parent
@@ -0,0 +1,2 @@
+..
+../../../../../../arch/loong/la64v100/lp64d
diff --git a/profiles/default/linux/loong/22.0/la64v100/lp64d/systemd/eapi b/profiles/default/linux/loong/22.0/la64v100/lp64d/systemd/eapi
new file mode 100644
index 000000000000..7ed6ff82de6b
--- /dev/null
+++ b/profiles/default/linux/loong/22.0/la64v100/lp64d/systemd/eapi
@@ -0,0 +1 @@
+5
diff --git a/profiles/default/linux/loong/22.0/la64v100/lp64d/systemd/parent b/profiles/default/linux/loong/22.0/la64v100/lp64d/systemd/parent
new file mode 100644
index 000000000000..44f88d3e2df0
--- /dev/null
+++ b/profiles/default/linux/loong/22.0/la64v100/lp64d/systemd/parent
@@ -0,0 +1,2 @@
+..
+../../../../../../../targets/systemd
diff --git a/profiles/default/linux/loong/22.0/la64v100/parent b/profiles/default/linux/loong/22.0/la64v100/parent
new file mode 100644
index 000000000000..b8f5b5cbc9d2
--- /dev/null
+++ b/profiles/default/linux/loong/22.0/la64v100/parent
@@ -0,0 +1,2 @@
+../..
+../../../../../releases/17.0
diff --git a/profiles/default/linux/loong/eapi b/profiles/default/linux/loong/eapi
new file mode 100644
index 000000000000..7ed6ff82de6b
--- /dev/null
+++ b/profiles/default/linux/loong/eapi
@@ -0,0 +1 @@
+5
diff --git a/profiles/default/linux/loong/parent b/profiles/default/linux/loong/parent
new file mode 100644
index 000000000000..d11fc57ec16b
--- /dev/null
+++ b/profiles/default/linux/loong/parent
@@ -0,0 +1,3 @@
+../../../base
+..
+../../../arch/loong
diff --git a/profiles/profiles.desc b/profiles/profiles.desc
index d95666279088..a32340a2f4d3 100644
--- a/profiles/profiles.desc
+++ b/profiles/profiles.desc
@@ -140,6 +140,13 @@ ia64 default/linux/ia64/17.0/desktop/gnome/systemd stable
ia64 default/linux/ia64/17.0/developer exp
ia64 default/linux/ia64/17.0/systemd exp
+# LoongArch Profiles
+# @MAINTAINER: loong@gentoo.org
+loong default/linux/loong/22.0/la64v100/lp64d exp
+loong default/linux/loong/22.0/la64v100/lp64d/desktop exp
+loong default/linux/loong/22.0/la64v100/lp64d/desktop/systemd exp
+loong default/linux/loong/22.0/la64v100/lp64d/systemd exp
+
# M68K Profiles
# @MAINTAINER: m68k@gentoo.org
m68k default/linux/m68k/17.0 exp