From deb72d3a8b4e6f37c9191a229bbe19affa597492 Mon Sep 17 00:00:00 2001 From: "Anthony G. Basile" Date: Sat, 27 Jan 2018 15:39:00 -0500 Subject: [PATCH] profiles: restructure amd64, arm and x86 musl profiles This restructuring brings the musl profiles into conformity with the glibc profiles for amd64, arm and x86. Yet to be done are the profiles for ppc and mips. Signed-off-by: Anthony G. Basile --- profiles/default/linux/amd64/17.0/musl/eapi | 1 + .../linux/amd64/17.0/musl/hardened/eapi | 1 + .../linux/amd64/17.0/musl/hardened/parent | 2 ++ .../linux/amd64/17.0/musl/make.defaults | 10 +++++++ profiles/default/linux/amd64/17.0/musl/parent | 3 +++ .../default/linux/arm/17.0/musl/armv7a/eapi | 1 + .../linux/arm/17.0/musl/armv7a/hardened/eapi | 1 + .../arm/17.0/musl/armv7a/hardened/parent | 2 ++ .../linux/arm/17.0/musl/armv7a/make.defaults | 8 ++++++ .../default/linux/arm/17.0/musl/armv7a/parent | 1 + profiles/default/linux/arm/17.0/musl/eapi | 1 + .../default/linux/arm/17.0/musl/make.defaults | 5 ++++ profiles/default/linux/arm/17.0/musl/parent | 3 +++ profiles/default/linux/x86/17.0/musl/eapi | 1 + .../default/linux/x86/17.0/musl/make.defaults | 5 ++++ profiles/default/linux/x86/17.0/musl/parent | 3 +++ profiles/default/linux/x86/17.0/musl/use.mask | 5 ++++ profiles/features/musl/eapi | 1 + profiles/features/musl/make.defaults | 18 +++++++++++++ profiles/features/musl/package.mask | 26 +++++++++++++++++++ profiles/features/musl/package.use | 7 +++++ profiles/features/musl/package.use.force | 9 +++++++ profiles/features/musl/package.use.mask | 19 ++++++++++++++ profiles/features/musl/packages | 6 +++++ profiles/features/musl/packages.build | 10 +++++++ profiles/features/musl/use.force | 6 +++++ profiles/features/musl/use.mask | 7 +++++ profiles/profiles.desc | 5 ++++ 28 files changed, 167 insertions(+) create mode 100644 profiles/default/linux/amd64/17.0/musl/eapi create mode 100644 profiles/default/linux/amd64/17.0/musl/hardened/eapi create mode 100644 profiles/default/linux/amd64/17.0/musl/hardened/parent create mode 100644 profiles/default/linux/amd64/17.0/musl/make.defaults create mode 100644 profiles/default/linux/amd64/17.0/musl/parent create mode 100644 profiles/default/linux/arm/17.0/musl/armv7a/eapi create mode 100644 profiles/default/linux/arm/17.0/musl/armv7a/hardened/eapi create mode 100644 profiles/default/linux/arm/17.0/musl/armv7a/hardened/parent create mode 100644 profiles/default/linux/arm/17.0/musl/armv7a/make.defaults create mode 100644 profiles/default/linux/arm/17.0/musl/armv7a/parent create mode 100644 profiles/default/linux/arm/17.0/musl/eapi create mode 100644 profiles/default/linux/arm/17.0/musl/make.defaults create mode 100644 profiles/default/linux/arm/17.0/musl/parent create mode 100644 profiles/default/linux/x86/17.0/musl/eapi create mode 100644 profiles/default/linux/x86/17.0/musl/make.defaults create mode 100644 profiles/default/linux/x86/17.0/musl/parent create mode 100644 profiles/default/linux/x86/17.0/musl/use.mask create mode 100644 profiles/features/musl/eapi create mode 100644 profiles/features/musl/make.defaults create mode 100644 profiles/features/musl/package.mask create mode 100644 profiles/features/musl/package.use create mode 100644 profiles/features/musl/package.use.force create mode 100644 profiles/features/musl/package.use.mask create mode 100644 profiles/features/musl/packages create mode 100644 profiles/features/musl/packages.build create mode 100644 profiles/features/musl/use.force create mode 100644 profiles/features/musl/use.mask diff --git a/profiles/default/linux/amd64/17.0/musl/eapi b/profiles/default/linux/amd64/17.0/musl/eapi new file mode 100644 index 000000000000..7ed6ff82de6b --- /dev/null +++ b/profiles/default/linux/amd64/17.0/musl/eapi @@ -0,0 +1 @@ +5 diff --git a/profiles/default/linux/amd64/17.0/musl/hardened/eapi b/profiles/default/linux/amd64/17.0/musl/hardened/eapi new file mode 100644 index 000000000000..7ed6ff82de6b --- /dev/null +++ b/profiles/default/linux/amd64/17.0/musl/hardened/eapi @@ -0,0 +1 @@ +5 diff --git a/profiles/default/linux/amd64/17.0/musl/hardened/parent b/profiles/default/linux/amd64/17.0/musl/hardened/parent new file mode 100644 index 000000000000..45a355b0beba --- /dev/null +++ b/profiles/default/linux/amd64/17.0/musl/hardened/parent @@ -0,0 +1,2 @@ +.. +../../../../../../features/hardened/amd64 diff --git a/profiles/default/linux/amd64/17.0/musl/make.defaults b/profiles/default/linux/amd64/17.0/musl/make.defaults new file mode 100644 index 000000000000..d09a4c218030 --- /dev/null +++ b/profiles/default/linux/amd64/17.0/musl/make.defaults @@ -0,0 +1,10 @@ +# Copyright 1999-2018 Gentoo Foundation. +# Distributed under the terms of the GNU General Public License v2 + +CHOST="x86_64-gentoo-linux-musl" + +# Anthony G. Basile (01 Jul 2014) +# Multilib-related setup, bug #515130 +MULTILIB_ABIS="amd64" +CHOST_amd64="${CHOST}" +LIBDIR_amd64="lib" diff --git a/profiles/default/linux/amd64/17.0/musl/parent b/profiles/default/linux/amd64/17.0/musl/parent new file mode 100644 index 000000000000..8b660ec6dcac --- /dev/null +++ b/profiles/default/linux/amd64/17.0/musl/parent @@ -0,0 +1,3 @@ +.. +../../../../../arch/amd64/no-multilib +../../../../../features/musl/ diff --git a/profiles/default/linux/arm/17.0/musl/armv7a/eapi b/profiles/default/linux/arm/17.0/musl/armv7a/eapi new file mode 100644 index 000000000000..7ed6ff82de6b --- /dev/null +++ b/profiles/default/linux/arm/17.0/musl/armv7a/eapi @@ -0,0 +1 @@ +5 diff --git a/profiles/default/linux/arm/17.0/musl/armv7a/hardened/eapi b/profiles/default/linux/arm/17.0/musl/armv7a/hardened/eapi new file mode 100644 index 000000000000..7ed6ff82de6b --- /dev/null +++ b/profiles/default/linux/arm/17.0/musl/armv7a/hardened/eapi @@ -0,0 +1 @@ +5 diff --git a/profiles/default/linux/arm/17.0/musl/armv7a/hardened/parent b/profiles/default/linux/arm/17.0/musl/armv7a/hardened/parent new file mode 100644 index 000000000000..3e3d7782bae7 --- /dev/null +++ b/profiles/default/linux/arm/17.0/musl/armv7a/hardened/parent @@ -0,0 +1,2 @@ +.. +../../../../../../../features/hardened diff --git a/profiles/default/linux/arm/17.0/musl/armv7a/make.defaults b/profiles/default/linux/arm/17.0/musl/armv7a/make.defaults new file mode 100644 index 000000000000..c0cb6c11748f --- /dev/null +++ b/profiles/default/linux/arm/17.0/musl/armv7a/make.defaults @@ -0,0 +1,8 @@ +# Copyright 1999-2018 Gentoo Foundation. +# Distributed under the terms of the GNU General Public License v2 + +CHOST="armv7a-hardfloat-linux-musleabi" +CFLAGS="-O2 -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard" +CXXFLAGS="${CFLAGS}" +FFLAGS="${CFLAGS}" +FCFLAGS="${CFLAGS}" diff --git a/profiles/default/linux/arm/17.0/musl/armv7a/parent b/profiles/default/linux/arm/17.0/musl/armv7a/parent new file mode 100644 index 000000000000..f3229c5b9876 --- /dev/null +++ b/profiles/default/linux/arm/17.0/musl/armv7a/parent @@ -0,0 +1 @@ +.. diff --git a/profiles/default/linux/arm/17.0/musl/eapi b/profiles/default/linux/arm/17.0/musl/eapi new file mode 100644 index 000000000000..7ed6ff82de6b --- /dev/null +++ b/profiles/default/linux/arm/17.0/musl/eapi @@ -0,0 +1 @@ +5 diff --git a/profiles/default/linux/arm/17.0/musl/make.defaults b/profiles/default/linux/arm/17.0/musl/make.defaults new file mode 100644 index 000000000000..52e98be4833e --- /dev/null +++ b/profiles/default/linux/arm/17.0/musl/make.defaults @@ -0,0 +1,5 @@ +# Copyright 1999-2018 Gentoo Foundation. +# Distributed under the terms of the GNU General Public License v2 + +CHOST="arm-unknown-linux-musleabi" +CHOST_arm="${CHOST}" diff --git a/profiles/default/linux/arm/17.0/musl/parent b/profiles/default/linux/arm/17.0/musl/parent new file mode 100644 index 000000000000..f381f1758c6e --- /dev/null +++ b/profiles/default/linux/arm/17.0/musl/parent @@ -0,0 +1,3 @@ +.. +../../../../../arch/arm +../../../../../features/musl/ diff --git a/profiles/default/linux/x86/17.0/musl/eapi b/profiles/default/linux/x86/17.0/musl/eapi new file mode 100644 index 000000000000..7ed6ff82de6b --- /dev/null +++ b/profiles/default/linux/x86/17.0/musl/eapi @@ -0,0 +1 @@ +5 diff --git a/profiles/default/linux/x86/17.0/musl/make.defaults b/profiles/default/linux/x86/17.0/musl/make.defaults new file mode 100644 index 000000000000..80515e7c892d --- /dev/null +++ b/profiles/default/linux/x86/17.0/musl/make.defaults @@ -0,0 +1,5 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +CHOST="i686-gentoo-linux-musl" +CHOST_x86="${CHOST}" diff --git a/profiles/default/linux/x86/17.0/musl/parent b/profiles/default/linux/x86/17.0/musl/parent new file mode 100644 index 000000000000..8b660ec6dcac --- /dev/null +++ b/profiles/default/linux/x86/17.0/musl/parent @@ -0,0 +1,3 @@ +.. +../../../../../arch/amd64/no-multilib +../../../../../features/musl/ diff --git a/profiles/default/linux/x86/17.0/musl/use.mask b/profiles/default/linux/x86/17.0/musl/use.mask new file mode 100644 index 000000000000..057f0d454f09 --- /dev/null +++ b/profiles/default/linux/x86/17.0/musl/use.mask @@ -0,0 +1,5 @@ +# Copyright 1999-2018 Gentoo Foundation. +# Distributed under the terms of the GNU General Public License, v2 + +# ssp is broken on x86 musl. This is critical for gcc-6. +ssp diff --git a/profiles/features/musl/eapi b/profiles/features/musl/eapi new file mode 100644 index 000000000000..7ed6ff82de6b --- /dev/null +++ b/profiles/features/musl/eapi @@ -0,0 +1 @@ +5 diff --git a/profiles/features/musl/make.defaults b/profiles/features/musl/make.defaults new file mode 100644 index 000000000000..e2dbf5d8a4b7 --- /dev/null +++ b/profiles/features/musl/make.defaults @@ -0,0 +1,18 @@ +# Copyright 1999-2018 Gentoo Foundation. +# Distributed under the terms of the GNU General Public License v2 + +PORTAGE_LIBC="musl" +ELIBC="musl" + +FEATURES="sandbox sfperms strict" + +USE="nptl unicode -berkdb -gdbm" +BOOTSTRAP_USE="${BOOTSTRAP_USE} nptl -berkdb -gdbm" + +# All libraries are in /lib or /usr/lib +SYMLINK_LIB="no" +FEATURES="-multilib-strict" + +# TODO: fix so musl doesn't generate this for all packages +# that use a charset, it causes package collisons. +INSTALL_MASK="charset.alias" diff --git a/profiles/features/musl/package.mask b/profiles/features/musl/package.mask new file mode 100644 index 000000000000..cb795facd556 --- /dev/null +++ b/profiles/features/musl/package.mask @@ -0,0 +1,26 @@ +# Copyright 1999-2018 Gentoo Foundation. +# Distributed under the terms of the GNU General Public License v2 + +sys-libs/uclibc +sys-libs/uclibc-ng +sys-libs/glibc + +# Older versions of net-mail/mailutils fail on musl, bug #604212 +virtual/libelf-2 + +# packages that unconditionally depend on dev-libs/elfutils +=www-client/firefox-54.0 diff --git a/profiles/features/musl/package.use b/profiles/features/musl/package.use new file mode 100644 index 000000000000..87d13cec246e --- /dev/null +++ b/profiles/features/musl/package.use @@ -0,0 +1,7 @@ +# Copyright 1999-2018 Gentoo Foundation. +# Distributed under the terms of the GNU General Public License v2 + +# Anthony G. Basile (14 Jul 2016) +# We need this to break a circular dependency with +# 'sys-libs/libcap pam' in stage3 catalyst builds +sys-libs/pam -filecaps diff --git a/profiles/features/musl/package.use.force b/profiles/features/musl/package.use.force new file mode 100644 index 000000000000..c26a7ba83f24 --- /dev/null +++ b/profiles/features/musl/package.use.force @@ -0,0 +1,9 @@ +# Copyright 1999-2018 Gentoo Foundation. +# Distributed under the terms of the GNU General Public License v2 + +# Force system-libevent use flag on mozilla packages, since the building of +# bundled libevent cannot accomodate a system without sysctl.h +# See bug 574830 for more info. +>=www-client/firefox-45.0 system-libevent +>=www-client/seamonkey-2.40 system-libevent +>=mail-client/thunderbird-45.0 system-libevent diff --git a/profiles/features/musl/package.use.mask b/profiles/features/musl/package.use.mask new file mode 100644 index 000000000000..2c0a91e428ed --- /dev/null +++ b/profiles/features/musl/package.use.mask @@ -0,0 +1,19 @@ +# Copyright 1999-2018 Gentoo Foundation. +# Distributed under the terms of the GNU General Public License v2 + +# See bug #604542 +net-misc/iputils idn + +# See bug #504200 +sys-devel/gcc sanitize vtv + +# llvm's sanitizers are also incompatible with musl +sys-devel/llvm sanitize + +# These cause collisions with +# even with --without-included-gettext +sys-devel/gettext nls +sys-fs/e2fsprogs nls + +# See bug #576928 +media-libs/mesa nptl diff --git a/profiles/features/musl/packages b/profiles/features/musl/packages new file mode 100644 index 000000000000..4bbf9c32099c --- /dev/null +++ b/profiles/features/musl/packages @@ -0,0 +1,6 @@ +# Copyright 1999-2018 Gentoo Foundation. +# Distributed under the terms of the GNU General Public License v2 + +*app-misc/pax-utils +*sys-apps/sandbox +-*sys-apps/man-pages diff --git a/profiles/features/musl/packages.build b/profiles/features/musl/packages.build new file mode 100644 index 000000000000..38ed7d274207 --- /dev/null +++ b/profiles/features/musl/packages.build @@ -0,0 +1,10 @@ +# Copyright 1999-2018 Gentoo Foundation. +# Distributed under the terms of the GNU General Public License v2 + +# This file lists extra packages needed to build for +# a stage 1 based on this profile. + +dev-util/pkgconf +sys-apps/attr +sys-apps/sandbox +dev-python/pyxattr diff --git a/profiles/features/musl/use.force b/profiles/features/musl/use.force new file mode 100644 index 000000000000..bfe77a581d70 --- /dev/null +++ b/profiles/features/musl/use.force @@ -0,0 +1,6 @@ +# Copyright 1999-2018 Gentoo Foundation. +# Distributed under the terms of the GNU General Public License v2 + +# Select the correct ELIBC +elibc_musl + diff --git a/profiles/features/musl/use.mask b/profiles/features/musl/use.mask new file mode 100644 index 000000000000..46c03330afb4 --- /dev/null +++ b/profiles/features/musl/use.mask @@ -0,0 +1,7 @@ +# Copyright 1999-2018 Gentoo Foundation. +# Distributed under the terms of the GNU General Public License v2 + +# Select the correct ELIBC +-elibc_musl +elibc_uclibc +elibc_glibc diff --git a/profiles/profiles.desc b/profiles/profiles.desc index d323534ffc42..e6fe238b8a6b 100644 --- a/profiles/profiles.desc +++ b/profiles/profiles.desc @@ -295,8 +295,12 @@ amd64 default/linux/musl/amd64 exp amd64 hardened/linux/musl/amd64 exp amd64 default/linux/musl/amd64/x32 exp amd64 hardened/linux/musl/amd64/x32 exp +amd64 default/linux/amd64/17.0/musl exp +amd64 default/linux/amd64/17.0/musl/hardened exp arm default/linux/musl/arm/armv7a exp arm hardened/linux/musl/arm/armv7a exp +arm default/linux/arm/17.0/musl/armv7a exp +arm default/linux/arm/17.0/musl/armv7a/hardened exp arm64 default/linux/musl/arm64 exp arm64 hardened/linux/musl/arm64 exp mips default/linux/musl/mips exp @@ -307,6 +311,7 @@ ppc default/linux/musl/ppc exp ppc hardened/linux/musl/ppc exp x86 default/linux/musl/x86 exp x86 hardened/linux/musl/x86 exp +x86 default/linux/x86/17.0/musl exp # Non-embedded uclibc profiles # @MAINTAINER: uclibc@gentoo.org -- 2.26.2