# This file controls the @system set for all targets that use this profile.
# The @system set is a collection of packages that are implicitly added as
# dependencies to *every* package. The only packages that should be added to
# the system set are those that are critical for basic build operations and
# therefore must not be rebuilt concurrently with other packages.
# To add a package to the system set include the full package name here with
# leading '*'. Listing a package here without a leading '*' adds the package to
# the @profile set rather than the @system set, which is probably not what you
# want.
#
# See `man portage` > SPECIFIC FILE DESCRIPTIONS > packages for more
# information on this file and the @system set.

*app-shells/bash
# install-xattr provides the `install` binary used by ebuilds in src_install
*sys-apps/install-xattr
*sys-libs/glibc
