summaryrefslogtreecommitdiff
path: root/corebinutils
diff options
context:
space:
mode:
authorMehmet Samet Duman <yongdohyun@projecttick.org>2026-04-02 18:15:07 +0300
committerMehmet Samet Duman <yongdohyun@projecttick.org>2026-04-02 18:15:07 +0300
commit5ab813b50e77e95e6386902ca335736a27d5dbf5 (patch)
tree7af02732ec6b36532928c4c52e3aafe063f252a6 /corebinutils
parentc8b01af44b73442bfa3b48a6b39d69c06cf9b610 (diff)
parentcb6cd63bf02abaf17c0ed443840bc7f5bfe82ffc (diff)
downloadProject-Tick-5ab813b50e77e95e6386902ca335736a27d5dbf5.tar.gz
Project-Tick-5ab813b50e77e95e6386902ca335736a27d5dbf5.zip
Add 'corebinutils/' from commit 'cb6cd63bf02abaf17c0ed443840bc7f5bfe82ffc'
git-subtree-dir: corebinutils git-subtree-mainline: c8b01af44b73442bfa3b48a6b39d69c06cf9b610 git-subtree-split: cb6cd63bf02abaf17c0ed443840bc7f5bfe82ffc
Diffstat (limited to 'corebinutils')
-rw-r--r--corebinutils/.gitignore27
-rw-r--r--corebinutils/.gitmodules117
-rw-r--r--corebinutils/README.md58
m---------corebinutils/cat15
m---------corebinutils/chflags15
m---------corebinutils/chmod15
-rwxr-xr-xcorebinutils/configure892
m---------corebinutils/cp15
m---------corebinutils/cpuset15
m---------corebinutils/csh15
m---------corebinutils/date15
m---------corebinutils/dd15
m---------corebinutils/df15
m---------corebinutils/domainname15
m---------corebinutils/echo15
m---------corebinutils/ed15
m---------corebinutils/expr15
m---------corebinutils/freebsd-version15
m---------corebinutils/getfacl15
m---------corebinutils/hostname14
m---------corebinutils/kill26
m---------corebinutils/ln14
m---------corebinutils/ls14
m---------corebinutils/mkdir14
m---------corebinutils/mv14
m---------corebinutils/nproc15
m---------corebinutils/pax15
m---------corebinutils/pkill15
m---------corebinutils/ps15
m---------corebinutils/pwait15
m---------corebinutils/pwd14
m---------corebinutils/realpath14
m---------corebinutils/rm14
m---------corebinutils/rmail14
m---------corebinutils/rmdir14
m---------corebinutils/setfacl15
m---------corebinutils/sh15
m---------corebinutils/sleep15
m---------corebinutils/stty15
m---------corebinutils/sync14
m---------corebinutils/test21
m---------corebinutils/timeout14
m---------corebinutils/uuidgen16
43 files changed, 1685 insertions, 0 deletions
diff --git a/corebinutils/.gitignore b/corebinutils/.gitignore
new file mode 100644
index 0000000000..58ad8e3fbe
--- /dev/null
+++ b/corebinutils/.gitignore
@@ -0,0 +1,27 @@
+*.a
+*.core
+*.lo
+*.nossppico
+*.o
+*.orig
+*.pico
+*.pieo
+*.po
+*.rej
+*.so
+*.so.[0-9]*
+*.sw[nop]
+*~
+.*DS_Store
+.cache
+.clangd
+.ccls-cache
+.depend*
+compile_commands.json
+compile_commands.events.json
+tags
+build/
+out/
+.linux-obj/
+/GNUmakefile
+/config.mk
diff --git a/corebinutils/.gitmodules b/corebinutils/.gitmodules
new file mode 100644
index 0000000000..aab7403f07
--- /dev/null
+++ b/corebinutils/.gitmodules
@@ -0,0 +1,117 @@
+[submodule "cat"]
+ path = cat
+ url = https://gitlab.com/project-tick/distro/bin/cat
+[submodule "chflags"]
+ path = chflags
+ url = https://gitlab.com/project-tick/distro/bin/chflags
+[submodule "chmod"]
+ path = chmod
+ url = https://gitlab.com/project-tick/distro/bin/chmod
+[submodule "cp"]
+ path = cp
+ url = https://gitlab.com/project-tick/distro/bin/cp
+[submodule "cpuset"]
+ path = cpuset
+ url = https://gitlab.com/project-tick/distro/bin/cpuset
+[submodule "csh"]
+ path = csh
+ url = https://gitlab.com/project-tick/distro/bin/csh
+[submodule "date"]
+ path = date
+ url = https://gitlab.com/project-tick/distro/bin/date
+[submodule "dd"]
+ path = dd
+ url = https://gitlab.com/project-tick/distro/bin/dd
+[submodule "df"]
+ path = df
+ url = https://gitlab.com/project-tick/distro/bin/df
+[submodule "domainname"]
+ path = domainname
+ url = https://gitlab.com/project-tick/distro/bin/domainname
+[submodule "echo"]
+ path = echo
+ url = https://gitlab.com/project-tick/distro/bin/echo
+[submodule "ed"]
+ path = ed
+ url = https://gitlab.com/project-tick/distro/bin/ed
+[submodule "expr"]
+ path = expr
+ url = https://gitlab.com/project-tick/distro/bin/expr
+[submodule "freebsd-version"]
+ path = freebsd-version
+ url = https://gitlab.com/project-tick/distro/bin/linux-version
+[submodule "getfacl"]
+ path = getfacl
+ url = https://gitlab.com/project-tick/distro/bin/getfacl
+[submodule "hostname"]
+ path = hostname
+ url = https://gitlab.com/project-tick/distro/bin/hostname
+[submodule "kill"]
+ path = kill
+ url = https://gitlab.com/project-tick/distro/bin/kill
+[submodule "ln"]
+ path = ln
+ url = https://gitlab.com/project-tick/distro/bin/ln
+[submodule "ls"]
+ path = ls
+ url = https://gitlab.com/project-tick/distro/bin/ls
+[submodule "mkdir"]
+ path = mkdir
+ url = https://gitlab.com/project-tick/distro/bin/mkdir
+[submodule "mv"]
+ path = mv
+ url = https://gitlab.com/project-tick/distro/bin/mv
+[submodule "nproc"]
+ path = nproc
+ url = https://gitlab.com/project-tick/distro/bin/nproc
+[submodule "pax"]
+ path = pax
+ url = https://gitlab.com/project-tick/distro/bin/pax
+[submodule "pkill"]
+ path = pkill
+ url = https://gitlab.com/project-tick/distro/bin/pkill
+[submodule "ps"]
+ path = ps
+ url = https://gitlab.com/project-tick/distro/bin/ps
+[submodule "pwait"]
+ path = pwait
+ url = https://gitlab.com/project-tick/distro/bin/pwait
+[submodule "pwd"]
+ path = pwd
+ url = https://gitlab.com/project-tick/distro/bin/pwd
+[submodule "realpath"]
+ path = realpath
+ url = https://gitlab.com/project-tick/distro/bin/realpath
+[submodule "rm"]
+ path = rm
+ url = https://gitlab.com/project-tick/distro/bin/rm
+[submodule "rmail"]
+ path = rmail
+ url = https://gitlab.com/project-tick/distro/bin/rmail
+[submodule "rmdir"]
+ path = rmdir
+ url = https://gitlab.com/project-tick/distro/bin/rmdir
+[submodule "setfacl"]
+ path = setfacl
+ url = https://gitlab.com/project-tick/distro/bin/setfacl
+[submodule "sh"]
+ path = sh
+ url = https://gitlab.com/project-tick/distro/bin/sh
+[submodule "sleep"]
+ path = sleep
+ url = https://gitlab.com/project-tick/distro/bin/sleep
+[submodule "stty"]
+ path = stty
+ url = https://gitlab.com/project-tick/distro/bin/stty
+[submodule "sync"]
+ path = sync
+ url = https://gitlab.com/project-tick/distro/bin/sync
+[submodule "test"]
+ path = test
+ url = https://gitlab.com/project-tick/distro/bin/test
+[submodule "timeout"]
+ path = timeout
+ url = https://gitlab.com/project-tick/distro/bin/timeout
+[submodule "uuidgen"]
+ path = uuidgen
+ url = https://gitlab.com/project-tick/distro/bin/uuidgen
diff --git a/corebinutils/README.md b/corebinutils/README.md
new file mode 100644
index 0000000000..e7931f95ae
--- /dev/null
+++ b/corebinutils/README.md
@@ -0,0 +1,58 @@
+# bin
+
+Top-level monolithic build entrypoint for Project Tick BSD/Linux `bin` ports.
+
+This directory provides a `./configure && make` workflow that orchestrates all
+ported subcommands while keeping each subdirectory's own `GNUmakefile` as the
+build source of truth.
+
+## Build
+
+```sh
+./configure
+make -f GNUmakefile -j"$(nproc)" all
+```
+
+Default behavior is musl-first toolchain selection (`musl-gcc`/musl-capable
+clang candidates), with generated top-level overrides for common variables
+(`CC`, `AR`, `RANLIB`, `CPPFLAGS`, `CFLAGS`, `LDFLAGS`, etc.).
+
+## Test
+
+```sh
+make -f GNUmakefile test
+```
+
+This runs each subdirectory test target through the top-level orchestrator.
+Environment-limited tests may print `SKIP` and continue.
+
+## Outputs
+
+All generated artifacts are centralized under:
+
+```text
+build/ # object and generated intermediate files
+out/ # final binaries and test helper outputs
+```
+
+Subdirectories are prepared to use these shared roots during top-level builds.
+
+## Maintenance Targets
+
+```sh
+make -f GNUmakefile clean
+make -f GNUmakefile distclean
+make -f GNUmakefile reconfigure
+```
+
+- `clean`: removes shared `build/` and `out/`
+- `distclean`: also removes generated top-level `GNUmakefile` and `config.mk`
+- `reconfigure`: regenerates top-level build files
+
+## Notes
+
+- Subdirectory `GNUmakefile` files are not replaced; the top-level file only
+ drives and overrides invocation context.
+- `GNUmakefile` and `config.mk` are generated artifacts from `./configure`.
+- For command-specific behavior, limitations, and port notes, see each
+ subdirectory `README.md`.
diff --git a/corebinutils/cat b/corebinutils/cat
new file mode 160000
+Subproject 7f792c1c56a38c0d39a7e0b99d1636b642d78ef
diff --git a/corebinutils/chflags b/corebinutils/chflags
new file mode 160000
+Subproject e9b78def2f086a356ec092a7f9af1e1613749ef
diff --git a/corebinutils/chmod b/corebinutils/chmod
new file mode 160000
+Subproject abd723dd0477f5009c8e77bc85412ca8917bf66
diff --git a/corebinutils/configure b/corebinutils/configure
new file mode 100755
index 0000000000..822f420b70
--- /dev/null
+++ b/corebinutils/configure
@@ -0,0 +1,892 @@
+#!/bin/sh
+
+set -eu
+umask 022
+
+SELF_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
+cd "$SELF_DIR"
+
+TMP_DIR="$SELF_DIR/build/configure"
+LOG_FILE="$TMP_DIR/config.log"
+CONFIG_MK="$SELF_DIR/config.mk"
+GNUMAKEFILE="$SELF_DIR/GNUmakefile"
+
+mkdir -p "$TMP_DIR"
+: >"$LOG_FILE"
+
+PREFIX="/usr/local"
+BINDIR=""
+BINDIR_SET=0
+LOCAL_DIR="/usr/local"
+ALLOW_GLIBC=0
+FAIL_IF_MISSING=0
+USER_CC=""
+HOST=""
+BUILD=""
+EXTRA_CPPFLAGS=""
+EXTRA_CFLAGS=""
+EXTRA_LDFLAGS=""
+
+ENV_CC=${CC-}
+ENV_CPPFLAGS=${CPPFLAGS-}
+ENV_CFLAGS=${CFLAGS-}
+ENV_LDFLAGS=${LDFLAGS-}
+
+usage() {
+ cat <<'USAGE'
+Usage: ./configure [options]
+
+General:
+ --help show this help
+ --prefix=PATH install prefix (default: /usr/local)
+ --bindir=PATH install bindir (default: <prefix>/bin)
+ --host=TRIPLE target host triple
+ --build=TRIPLE build triple
+
+Toolchain:
+ --cc=COMMAND force compiler command
+ --allow-glibc allow glibc toolchain fallback
+
+Flags:
+ --extra-cppflags=FLAGS extra CPPFLAGS
+ --extra-cflags=FLAGS extra CFLAGS
+ --extra-ldflags=FLAGS extra LDFLAGS
+
+Local paths:
+ --with-local-dir=PATH add PATH/include and PATH/lib when present
+ --without-local-dir disable local include/lib probing
+
+Policy:
+ --enable-fail-if-missing fail when optional probes are missing
+USAGE
+}
+
+msg_checking() {
+ printf 'checking %s... ' "$1"
+}
+
+msg_result() {
+ printf '%s\n' "$1"
+}
+
+warn() {
+ printf 'configure: warning: %s\n' "$*" >&2
+}
+
+die() {
+ printf 'configure: error: %s\n' "$*" >&2
+ exit 1
+}
+
+normalize_ws() {
+ printf '%s' "$1" | sed 's/[[:space:]][[:space:]]*/ /g; s/^ //; s/ $//'
+}
+
+escape_make() {
+ printf '%s' "$1" | sed 's/\$/$$/g'
+}
+
+escape_sed() {
+ printf '%s' "$1" | sed 's/[\\/&]/\\&/g'
+}
+
+to_macro() {
+ printf '%s' "$1" | tr '/.-' '___' | tr '[:lower:]' '[:upper:]'
+}
+
+choose_tool() {
+ tool_var=$1
+ shift
+ for candidate in "$@"; do
+ if [ -n "$candidate" ] && command -v "$candidate" >/dev/null 2>&1; then
+ eval "$tool_var=\$candidate"
+ return 0
+ fi
+ done
+ return 1
+}
+
+can_compile_with() {
+ cc_try=$1
+ cat >"$TMP_DIR/conftest.c" <<'SRC'
+int main(void) { return 0; }
+SRC
+ printf '$ %s\n' "$cc_try -x c $TMP_DIR/conftest.c -o $TMP_DIR/conftest" >>"$LOG_FILE"
+ if sh -c "$cc_try -x c '$TMP_DIR/conftest.c' -o '$TMP_DIR/conftest'" >>"$LOG_FILE" 2>&1; then
+ return 0
+ fi
+ return 1
+}
+
+can_run_with() {
+ cc_try=$1
+ cat >"$TMP_DIR/conftest.c" <<'SRC'
+#include <stdio.h>
+#include <stdlib.h>
+int main(void) {
+ char *ep = NULL;
+ long v = strtol("1", &ep, 10);
+ char buf[8];
+ (void)snprintf(buf, sizeof(buf), "%ld", v);
+ return (ep == NULL || buf[0] != '1');
+}
+SRC
+ printf '$ %s\n' "$cc_try -D_GNU_SOURCE -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=700 -x c $TMP_DIR/conftest.c -o $TMP_DIR/conftest" >>"$LOG_FILE"
+ if ! sh -c "$cc_try -D_GNU_SOURCE -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=700 -x c '$TMP_DIR/conftest.c' -o '$TMP_DIR/conftest'" >>"$LOG_FILE" 2>&1; then
+ return 1
+ fi
+ printf '$ %s\n' "$TMP_DIR/conftest" >>"$LOG_FILE"
+ if "$TMP_DIR/conftest" >>"$LOG_FILE" 2>&1; then
+ return 0
+ fi
+ return 1
+}
+
+can_compile_stdatomic_with() {
+ cc_try=$1
+ cat >"$TMP_DIR/conftest.c" <<'SRC'
+#include <stdatomic.h>
+int main(void) {
+ _Atomic int x = 1;
+ return (int)x - 1;
+}
+SRC
+ printf '$ %s\n' "$cc_try -x c $TMP_DIR/conftest.c -o $TMP_DIR/conftest" >>"$LOG_FILE"
+ if sh -c "$cc_try -x c '$TMP_DIR/conftest.c' -o '$TMP_DIR/conftest'" >>"$LOG_FILE" 2>&1; then
+ return 0
+ fi
+ return 1
+}
+
+pick_compiler() {
+ cc_try=$1
+ [ -n "$cc_try" ] || return 1
+ set -- $cc_try
+ cc_prog=$1
+ command -v "$cc_prog" >/dev/null 2>&1 || return 1
+ if can_compile_with "$cc_try"; then
+ if [ "$REQUIRE_RUNNABLE_CC" -eq 1 ] && ! can_run_with "$cc_try"; then
+ return 1
+ fi
+ if ! can_compile_stdatomic_with "$cc_try"; then
+ return 1
+ fi
+ CC_SELECTED=$cc_try
+ return 0
+ fi
+ return 1
+}
+
+try_cc() {
+ code=$1
+ extra_cppflags=${2-}
+ extra_ldflags=${3-}
+ cat >"$TMP_DIR/conftest.c" <<SRC
+$code
+SRC
+ printf '$ %s\n' "$CC_SELECTED $CFG_CPPFLAGS $extra_cppflags $CFG_CFLAGS $CFG_LDFLAGS $extra_ldflags $TMP_DIR/conftest.c -o $TMP_DIR/conftest" >>"$LOG_FILE"
+ if sh -c "$CC_SELECTED $CFG_CPPFLAGS $extra_cppflags $CFG_CFLAGS $CFG_LDFLAGS $extra_ldflags '$TMP_DIR/conftest.c' -o '$TMP_DIR/conftest'" >>"$LOG_FILE" 2>&1; then
+ return 0
+ fi
+ return 1
+}
+
+record_cpp_define() {
+ name=$1
+ value=$2
+ printf '%s := %s\n' "$name" "$value" >>"$CONFIG_MK_TMP"
+ if [ "$value" = "1" ]; then
+ CONF_CPPFLAGS="$CONF_CPPFLAGS -D${name}=1"
+ fi
+}
+
+check_header() {
+ hdr=$1
+ macro="HAVE_$(to_macro "$hdr")"
+ msg_checking "for $hdr"
+ if try_cc "#include <$hdr>
+int main(void) { return 0; }" "" ""; then
+ msg_result yes
+ record_cpp_define "$macro" 1
+ else
+ msg_result no
+ record_cpp_define "$macro" 0
+ fi
+}
+
+check_func() {
+ func=$1
+ includes=$2
+ macro="HAVE_$(to_macro "$func")"
+ msg_checking "for $func"
+ if try_cc "$includes
+#include <stdint.h>
+int main(void) { void *p = (void *)(uintptr_t)&$func; return p == 0; }" "" ""; then
+ msg_result yes
+ record_cpp_define "$macro" 1
+ else
+ msg_result no
+ record_cpp_define "$macro" 0
+ fi
+}
+
+check_lib_symbol() {
+ lib=$1
+ sym=$2
+ msg_checking "for $sym in -l$lib"
+ if try_cc "char $sym();
+int main(void) { return $sym() == 0; }" "" "-l$lib"; then
+ msg_result yes
+ return 0
+ fi
+ msg_result no
+ return 1
+}
+
+for arg in "$@"; do
+ case "$arg" in
+ --help)
+ usage
+ exit 0
+ ;;
+ --prefix=*)
+ PREFIX=${arg#*=}
+ ;;
+ --bindir=*)
+ BINDIR=${arg#*=}
+ BINDIR_SET=1
+ ;;
+ --host=*)
+ HOST=${arg#*=}
+ ;;
+ --build=*)
+ BUILD=${arg#*=}
+ ;;
+ --cc=*)
+ USER_CC=${arg#*=}
+ ;;
+ --allow-glibc)
+ ALLOW_GLIBC=1
+ ;;
+ --enable-fail-if-missing)
+ FAIL_IF_MISSING=1
+ ;;
+ --with-local-dir=*)
+ LOCAL_DIR=${arg#*=}
+ ;;
+ --without-local-dir)
+ LOCAL_DIR=no
+ ;;
+ --extra-cppflags=*)
+ EXTRA_CPPFLAGS=${arg#*=}
+ ;;
+ --extra-cflags=*)
+ EXTRA_CFLAGS=${arg#*=}
+ ;;
+ --extra-ldflags=*)
+ EXTRA_LDFLAGS=${arg#*=}
+ ;;
+ *)
+ die "unknown option: $arg"
+ ;;
+ esac
+done
+
+if [ "$BINDIR_SET" -ne 1 ]; then
+ BINDIR="$PREFIX/bin"
+fi
+
+HOST_OS=$(uname -s 2>/dev/null || echo unknown)
+HOST_ARCH=$(uname -m 2>/dev/null || echo unknown)
+DEFAULT_TRIPLE="${HOST_ARCH}-unknown-${HOST_OS}"
+[ -n "$HOST" ] || HOST="$DEFAULT_TRIPLE"
+[ -n "$BUILD" ] || BUILD="$DEFAULT_TRIPLE"
+REQUIRE_RUNNABLE_CC=0
+if [ "$HOST" = "$BUILD" ]; then
+ REQUIRE_RUNNABLE_CC=1
+fi
+
+msg_checking "for C compiler"
+CC_SELECTED=""
+if [ -n "$USER_CC" ]; then
+ pick_compiler "$USER_CC" || die "requested compiler is not usable: $USER_CC"
+elif [ -n "$ENV_CC" ]; then
+ if ! pick_compiler "$ENV_CC"; then
+ warn "environment CC unusable or disallowed: $ENV_CC"
+ fi
+fi
+if [ -z "$CC_SELECTED" ]; then
+ pick_compiler "musl-clang" || true
+fi
+if [ -z "$CC_SELECTED" ]; then
+ pick_compiler "clang --target=${HOST_ARCH}-linux-musl" || true
+fi
+if [ -z "$CC_SELECTED" ]; then
+ pick_compiler "clang --target=${HOST_ARCH}-unknown-linux-musl" || true
+fi
+if [ -z "$CC_SELECTED" ]; then
+ pick_compiler "musl-gcc" || true
+fi
+if [ -z "$CC_SELECTED" ]; then
+ pick_compiler "clang" || true
+fi
+if [ -z "$CC_SELECTED" ]; then
+ pick_compiler "cc" || true
+fi
+if [ -z "$CC_SELECTED" ]; then
+ pick_compiler "gcc" || true
+fi
+[ -n "$CC_SELECTED" ] || die "no usable compiler found"
+msg_result "$CC_SELECTED"
+
+msg_checking "for C preprocessor"
+if sh -c "$CC_SELECTED -E '$TMP_DIR/conftest.c'" >/dev/null 2>&1; then
+ CPP_SELECTED="$CC_SELECTED -E"
+ msg_result "$CPP_SELECTED"
+else
+ die "no working preprocessor via selected compiler"
+fi
+
+msg_checking "for make"
+if choose_tool MAKE gmake make; then
+ msg_result "$MAKE"
+else
+ die "no make tool found"
+fi
+
+msg_checking "for archiver"
+if choose_tool AR llvm-ar ar; then
+ msg_result "$AR"
+else
+ die "no archiver found"
+fi
+
+msg_checking "for ranlib"
+if choose_tool RANLIB llvm-ranlib ranlib; then
+ msg_result "$RANLIB"
+else
+ die "no ranlib found"
+fi
+
+msg_checking "for nm"
+if choose_tool NM llvm-nm nm; then
+ msg_result "$NM"
+else
+ msg_result no
+ NM=:
+fi
+
+msg_checking "for awk"
+if choose_tool AWK gawk mawk awk; then
+ msg_result "$AWK"
+else
+ die "no awk found"
+fi
+
+msg_checking "for shell"
+if choose_tool SH sh; then
+ msg_result "$SH"
+else
+ die "no POSIX shell found"
+fi
+
+msg_checking "for pkg-config"
+PKG_CONFIG=""
+if choose_tool PKG_CONFIG pkgconf pkg-config; then
+ msg_result "$PKG_CONFIG"
+else
+ msg_result no
+fi
+
+CC_MACHINE=$(sh -c "$CC_SELECTED -dumpmachine" 2>/dev/null || echo unknown)
+msg_checking "target compiler triplet"
+msg_result "$CC_MACHINE"
+
+LIBC_KIND=unknown
+
+if command -v file >/dev/null 2>&1; then
+ cat >"$TMP_DIR/conftest.c" <<'SRC'
+int main(void) { return 0; }
+SRC
+ printf '$ %s\n' "$CC_SELECTED -x c $TMP_DIR/conftest.c -o $TMP_DIR/conftest" >>"$LOG_FILE"
+ if sh -c "$CC_SELECTED -x c '$TMP_DIR/conftest.c' -o '$TMP_DIR/conftest'" >>"$LOG_FILE" 2>&1; then
+ FILE_TEXT=$(file "$TMP_DIR/conftest" 2>/dev/null || true)
+ case "$FILE_TEXT" in
+ *ld-musl*|*musl*)
+ LIBC_KIND=musl
+ ;;
+ *ld-linux*|*GNU/Linux*)
+ LIBC_KIND=glibc
+ ;;
+ esac
+ fi
+fi
+
+if [ "$LIBC_KIND" = "unknown" ]; then
+ CC_MACROS=$(printf '\n' | sh -c "$CC_SELECTED -dM -E -x c -" 2>/dev/null || true)
+ case "$CC_MACROS" in
+ *"__GLIBC__"*) LIBC_KIND=glibc ;;
+ *"__MUSL__"*) LIBC_KIND=musl ;;
+ esac
+fi
+if [ "$LIBC_KIND" = "unknown" ]; then
+ case "$CC_MACHINE" in
+ *musl*)
+ LIBC_KIND=musl
+ ;;
+ *gnu*|*glibc*)
+ LIBC_KIND=glibc
+ ;;
+ esac
+fi
+
+msg_checking "for libc type"
+msg_result "$LIBC_KIND"
+
+if [ "$LIBC_KIND" = "glibc" ] && [ "$ALLOW_GLIBC" -ne 1 ]; then
+ die "glibc toolchain detected; refusing by default (use --allow-glibc to override)"
+fi
+
+IS_MUSL=0
+if [ "$LIBC_KIND" = "musl" ]; then
+ IS_MUSL=1
+fi
+
+CFG_CPPFLAGS=$(normalize_ws "-D_DEFAULT_SOURCE -D_XOPEN_SOURCE=700 $ENV_CPPFLAGS $EXTRA_CPPFLAGS")
+CFG_CFLAGS=$(normalize_ws "-O2 -g -pipe $ENV_CFLAGS $EXTRA_CFLAGS")
+CFG_LDFLAGS=$(normalize_ws "$ENV_LDFLAGS $EXTRA_LDFLAGS")
+
+if [ "$LOCAL_DIR" != "no" ] && [ -n "$LOCAL_DIR" ]; then
+ msg_checking "for local include directory"
+ if [ -d "$LOCAL_DIR/include" ]; then
+ CFG_CPPFLAGS=$(normalize_ws "$CFG_CPPFLAGS -I$LOCAL_DIR/include")
+ msg_result "$LOCAL_DIR/include"
+ else
+ msg_result no
+ fi
+
+ msg_checking "for local library directory"
+ if [ -d "$LOCAL_DIR/lib" ]; then
+ CFG_LDFLAGS=$(normalize_ws "$CFG_LDFLAGS -L$LOCAL_DIR/lib")
+ msg_result "$LOCAL_DIR/lib"
+ else
+ msg_result no
+ fi
+fi
+
+msg_checking "whether we are cross compiling"
+CROSS_COMPILING=0
+if try_cc "int main(void) { return 0; }" "" ""; then
+ if "$TMP_DIR/conftest" >/dev/null 2>&1; then
+ msg_result no
+ else
+ CROSS_COMPILING=1
+ msg_result yes
+ fi
+else
+ CROSS_COMPILING=1
+ msg_result yes
+fi
+
+EXEEXT=""
+msg_checking "for executable suffix"
+if [ -x "$TMP_DIR/conftest.exe" ]; then
+ EXEEXT=.exe
+fi
+msg_result "${EXEEXT:-none}"
+
+JOBS_HINT=$(getconf _NPROCESSORS_ONLN 2>/dev/null || true)
+if [ -z "$JOBS_HINT" ] && command -v nproc >/dev/null 2>&1; then
+ JOBS_HINT=$(nproc 2>/dev/null || true)
+fi
+case "$JOBS_HINT" in
+''|*[!0-9]*) JOBS_HINT=1 ;;
+esac
+
+CONFIG_MK_TMP="$TMP_DIR/config.mk.$$"
+: >"$CONFIG_MK_TMP"
+
+TIMESTAMP=$(date -u '+%Y-%m-%dT%H:%M:%SZ')
+printf '# Auto-generated by ./configure on %s\n' "$TIMESTAMP" >>"$CONFIG_MK_TMP"
+printf 'CONF_CPPFLAGS :=\n' >>"$CONFIG_MK_TMP"
+printf 'CONF_LDFLAGS :=\n' >>"$CONFIG_MK_TMP"
+printf 'CONF_LIBS :=\n' >>"$CONFIG_MK_TMP"
+printf 'CONFIGURE_TIMESTAMP := %s\n' "$TIMESTAMP" >>"$CONFIG_MK_TMP"
+printf 'CONFIGURE_HOST := %s\n' "$(escape_make "$HOST")" >>"$CONFIG_MK_TMP"
+printf 'CONFIGURE_BUILD := %s\n' "$(escape_make "$BUILD")" >>"$CONFIG_MK_TMP"
+printf 'CONFIGURE_CC_MACHINE := %s\n' "$(escape_make "$CC_MACHINE")" >>"$CONFIG_MK_TMP"
+printf 'CONFIGURE_LIBC := %s\n' "$(escape_make "$LIBC_KIND")" >>"$CONFIG_MK_TMP"
+printf 'CROSS_COMPILING := %s\n' "$CROSS_COMPILING" >>"$CONFIG_MK_TMP"
+printf 'EXEEXT := %s\n' "$(escape_make "$EXEEXT")" >>"$CONFIG_MK_TMP"
+
+CONF_CPPFLAGS=""
+
+msg_checking "for common system headers"
+msg_result "(probing)"
+for hdr in \
+ stdlib.h stdio.h stdint.h inttypes.h stdbool.h stddef.h \
+ string.h strings.h unistd.h errno.h fcntl.h signal.h \
+ sys/types.h sys/stat.h sys/time.h sys/resource.h sys/wait.h \
+ sys/select.h sys/ioctl.h sys/param.h sys/socket.h netdb.h \
+ poll.h sys/poll.h termios.h stropts.h pthread.h \
+ sys/event.h sys/timerfd.h sys/acl.h attr/xattr.h linux/xattr.h \
+ dlfcn.h langinfo.h locale.h wchar.h wctype.h; do
+ check_header "$hdr"
+done
+
+msg_checking "for common C library functions"
+msg_result "(probing)"
+check_func getcwd '#include <unistd.h>'
+check_func realpath '#include <stdlib.h>'
+check_func fchdir '#include <unistd.h>'
+check_func fstatat '#include <sys/stat.h>'
+check_func openat '#include <fcntl.h>'
+check_func copy_file_range '#include <unistd.h>'
+check_func memmove '#include <string.h>'
+check_func strlcpy '#include <string.h>'
+check_func strlcat '#include <string.h>'
+check_func explicit_bzero '#include <string.h>'
+check_func getline '#include <stdio.h>'
+check_func getentropy '#include <unistd.h>'
+check_func posix_spawn '#include <spawn.h>'
+check_func clock_gettime '#include <time.h>'
+check_func poll '#include <poll.h>'
+check_func kqueue '#include <sys/event.h>'
+check_func timerfd_create '#include <sys/timerfd.h>'
+check_func pipe2 '#include <unistd.h>'
+check_func closefrom '#include <unistd.h>'
+check_func getrandom '#include <sys/random.h>'
+
+msg_checking "for optional system libraries"
+msg_result "(probing)"
+CONF_LIBS=""
+if check_lib_symbol crypt crypt; then
+ CONF_LIBS="$CONF_LIBS -lcrypt"
+ CRYPTO_LIBS='-lcrypt'
+else
+ CRYPTO_LIBS=''
+ if [ "$FAIL_IF_MISSING" -eq 1 ]; then
+ die "libcrypt not found and --enable-fail-if-missing was requested"
+ fi
+fi
+if check_lib_symbol dl dlopen; then
+ CONF_LIBS="$CONF_LIBS -ldl"
+fi
+if check_lib_symbol pthread pthread_create; then
+ CONF_LIBS="$CONF_LIBS -lpthread"
+fi
+if check_lib_symbol rt clock_gettime; then
+ CONF_LIBS="$CONF_LIBS -lrt"
+fi
+if check_lib_symbol util openpty; then
+ CONF_LIBS="$CONF_LIBS -lutil"
+fi
+if check_lib_symbol attr setxattr; then
+ CONF_LIBS="$CONF_LIBS -lattr"
+fi
+if check_lib_symbol selinux is_selinux_enabled; then
+ CONF_LIBS="$CONF_LIBS -lselinux"
+fi
+
+EDITLINE_CPPFLAGS=""
+EDITLINE_LIBS=""
+msg_checking "for libedit via pkg-config"
+if [ -n "$PKG_CONFIG" ] && "$PKG_CONFIG" --exists libedit >/dev/null 2>&1; then
+ EDITLINE_CPPFLAGS=$($PKG_CONFIG --cflags libedit 2>/dev/null || true)
+ EDITLINE_LIBS=$($PKG_CONFIG --libs libedit 2>/dev/null || true)
+ msg_result yes
+else
+ msg_result no
+fi
+if [ -n "$EDITLINE_CPPFLAGS$EDITLINE_LIBS" ]; then
+ msg_checking "whether libedit pkg-config flags are usable"
+ if try_cc "int main(void) { return 0; }" "$EDITLINE_CPPFLAGS" "$EDITLINE_LIBS"; then
+ msg_result yes
+ else
+ msg_result no
+ EDITLINE_CPPFLAGS=""
+ EDITLINE_LIBS=""
+ fi
+fi
+
+printf 'CONF_CPPFLAGS += %s\n' "$(escape_make "$(normalize_ws "$CONF_CPPFLAGS")")" >>"$CONFIG_MK_TMP"
+printf 'CONF_LDFLAGS +=\n' >>"$CONFIG_MK_TMP"
+printf 'CONF_LIBS += %s\n' "$(escape_make "$(normalize_ws "$CONF_LIBS")")" >>"$CONFIG_MK_TMP"
+
+mv "$CONFIG_MK_TMP" "$CONFIG_MK"
+
+SUBDIR_LIST=$(
+ for mk in ./*/GNUmakefile; do
+ [ -f "$mk" ] || continue
+ d=${mk#./}
+ d=${d%/GNUmakefile}
+ printf '%s\n' "$d"
+ done | LC_ALL=C sort
+)
+[ -n "$SUBDIR_LIST" ] || die "no subdirectories with GNUmakefile found"
+SUBDIRS_ONE_LINE=$(printf '%s\n' "$SUBDIR_LIST" | tr '\n' ' ' | sed 's/ $//')
+
+CC_MAKE=$(escape_make "$CC_SELECTED")
+AR_MAKE=$(escape_make "$AR")
+RANLIB_MAKE=$(escape_make "$RANLIB")
+NM_MAKE=$(escape_make "$NM")
+AWK_MAKE=$(escape_make "$AWK")
+SH_MAKE=$(escape_make "$SH")
+CPPFLAGS_MAKE=$(escape_make "$CFG_CPPFLAGS")
+CFLAGS_MAKE=$(escape_make "$CFG_CFLAGS")
+LDFLAGS_MAKE=$(escape_make "$CFG_LDFLAGS")
+CRYPTO_LIBS_MAKE=$(escape_make "$CRYPTO_LIBS")
+EDITLINE_CPPFLAGS_MAKE=$(escape_make "$EDITLINE_CPPFLAGS")
+EDITLINE_LIBS_MAKE=$(escape_make "$EDITLINE_LIBS")
+PREFIX_MAKE=$(escape_make "$PREFIX")
+BINDIR_MAKE=$(escape_make "$BINDIR")
+SUBDIRS_MAKE=$(escape_make "$SUBDIRS_ONE_LINE")
+
+GNUMAKEFILE_TMP="$TMP_DIR/GNUmakefile.$$"
+cat >"$GNUMAKEFILE_TMP" <<'EOF_MK'
+# Auto-generated by ./configure on @TIMESTAMP@.
+# Regenerate with ./configure.
+
+.DEFAULT_GOAL := all
+
+-include $(CURDIR)/config.mk
+
+CONFIGURE_HOST := @HOST@
+CONFIGURE_BUILD := @BUILD@
+CONFIGURE_CC_MACHINE := @CC_MACHINE@
+CONFIGURE_LIBC := @LIBC@
+CONFIGURE_MUSL := @IS_MUSL@
+JOBS_HINT := @JOBS_HINT@
+
+ifeq ($(origin CC), default)
+CC := @CC@
+endif
+ifeq ($(origin CC), environment)
+CC := @CC@
+endif
+
+AR ?= @AR@
+ifeq ($(origin AR), default)
+AR := @AR@
+endif
+ifeq ($(origin AR), environment)
+AR := @AR@
+endif
+
+RANLIB ?= @RANLIB@
+ifeq ($(origin RANLIB), default)
+RANLIB := @RANLIB@
+endif
+ifeq ($(origin RANLIB), environment)
+RANLIB := @RANLIB@
+endif
+
+NM ?= @NM@
+AWK ?= @AWK@
+SH ?= @SH@
+
+CPPFLAGS += @CPPFLAGS@
+CPPFLAGS += $(CONF_CPPFLAGS)
+CFLAGS ?= @CFLAGS@
+LDFLAGS += @LDFLAGS@
+LDFLAGS += $(CONF_LDFLAGS)
+
+CRYPTO_LIBS ?= @CRYPTO_LIBS@
+EDITLINE_CPPFLAGS ?= @EDITLINE_CPPFLAGS@
+EDITLINE_LIBS ?= @EDITLINE_LIBS@
+
+PREFIX ?= @PREFIX@
+BINDIR ?= @BINDIR@
+DESTDIR ?=
+
+MONO_BUILDDIR ?= $(CURDIR)/build
+MONO_OUTDIR ?= $(CURDIR)/out
+MONO_BINDIR := $(MONO_OUTDIR)/bin
+
+SUBDIRS := @SUBDIRS@
+SUBDIR_ALIASES := $(filter-out test,$(SUBDIRS))
+
+SUBMAKE_OVERRIDES = \
+ CC="$(CC)" \
+ AR="$(AR)" \
+ AWK="$(AWK)" \
+ RANLIB="$(RANLIB)" \
+ NM="$(NM)" \
+ SH="$(SH)" \
+ CRYPTO_LIBS="$(CRYPTO_LIBS)" \
+ EDITLINE_CPPFLAGS="$(EDITLINE_CPPFLAGS)" \
+ EDITLINE_LIBS="$(EDITLINE_LIBS)" \
+ PREFIX="$(PREFIX)" \
+ BINDIR="$(BINDIR)" \
+ DESTDIR="$(DESTDIR)" \
+ CROSS_COMPILING="$(CROSS_COMPILING)" \
+ EXEEXT="$(EXEEXT)"
+
+.PHONY: all clean clean-% distclean maintainer-clean rebuild reconfigure \
+ check check-% test status stage install list print-config print-subdirs \
+ help prepare prepare-% unprepare
+
+all: $(addprefix build-,$(SUBDIRS))
+
+$(SUBDIR_ALIASES): %: build-%
+
+prepare: $(addprefix prepare-,$(SUBDIRS))
+
+prepare-%:
+ @mkdir -p "$(MONO_BUILDDIR)/$*" "$(MONO_OUTDIR)"
+ @if [ -e "$*/build" ] && [ ! -L "$*/build" ]; then rm -rf "$*/build"; fi
+ @ln -sfn "../build/$*" "$*/build"
+ @if [ -e "$*/out" ] && [ ! -L "$*/out" ]; then rm -rf "$*/out"; fi
+ @ln -sfn "../out" "$*/out"
+
+unprepare:
+ @set -e; \
+ for d in $(SUBDIRS); do \
+ if [ -L "$$d/build" ]; then rm -f "$$d/build"; fi; \
+ if [ -L "$$d/out" ]; then rm -f "$$d/out"; fi; \
+ done
+
+build-%: prepare-%
+ +env CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
+ $(MAKE) -C "$*" -f GNUmakefile $(SUBMAKE_OVERRIDES) all
+
+clean: $(addprefix clean-,$(SUBDIRS))
+ @rm -rf "$(MONO_BUILDDIR)" "$(MONO_OUTDIR)"
+
+distclean: clean unprepare
+ @rm -f "$(CURDIR)/config.mk" "$(CURDIR)/GNUmakefile" "$(CURDIR)/GNUMakeFile"
+
+maintainer-clean: distclean
+
+rebuild: clean all
+
+reconfigure:
+ @$(SH) "$(CURDIR)/configure"
+
+clean-%:
+ +env CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
+ $(MAKE) -C "$*" -f GNUmakefile $(SUBMAKE_OVERRIDES) clean
+
+check: $(addprefix check-,$(SUBDIRS))
+
+check-%: prepare-%
+ +env CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
+ $(MAKE) -C "$*" -f GNUmakefile $(SUBMAKE_OVERRIDES) test
+
+test: check
+
+status:
+ @printf 'build root: %s\n' "$(MONO_BUILDDIR)"
+ @printf 'out root: %s\n' "$(MONO_OUTDIR)"
+ @ls -1 "$(MONO_OUTDIR)" 2>/dev/null || true
+
+stage: all
+ @mkdir -p "$(MONO_BINDIR)"
+ @set -e; \
+ for f in "$(MONO_OUTDIR)"/*; do \
+ [ -f "$$f" ] || continue; \
+ [ -x "$$f" ] || continue; \
+ case "$$f" in \
+ *.a|*.o|*.lo) continue ;; \
+ esac; \
+ cp -f "$$f" "$(MONO_BINDIR)/"; \
+ done
+
+install: stage
+ @mkdir -p "$(DESTDIR)$(BINDIR)"
+ @set -e; \
+ for f in "$(MONO_BINDIR)"/*; do \
+ [ -f "$$f" ] || continue; \
+ [ -x "$$f" ] || continue; \
+ cp -f "$$f" "$(DESTDIR)$(BINDIR)/"; \
+ done
+
+list:
+ @printf '%s\n' $(SUBDIRS)
+
+print-subdirs:
+ @printf '%s\n' $(SUBDIRS)
+
+print-config:
+ @printf 'CC=%s\n' "$(CC)"
+ @printf 'AR=%s\n' "$(AR)"
+ @printf 'RANLIB=%s\n' "$(RANLIB)"
+ @printf 'NM=%s\n' "$(NM)"
+ @printf 'CPPFLAGS=%s\n' "$(CPPFLAGS)"
+ @printf 'CFLAGS=%s\n' "$(CFLAGS)"
+ @printf 'LDFLAGS=%s\n' "$(LDFLAGS)"
+ @printf 'LDLIBS=%s\n' "$(CONF_LIBS)"
+ @printf 'MONO_BUILDDIR=%s\n' "$(MONO_BUILDDIR)"
+ @printf 'MONO_OUTDIR=%s\n' "$(MONO_OUTDIR)"
+ @printf 'CONFIGURE_LIBC=%s\n' "$(CONFIGURE_LIBC)"
+ @printf 'CONFIGURE_CC_MACHINE=%s\n' "$(CONFIGURE_CC_MACHINE)"
+
+help:
+ @printf '%s\n' 'Targets:'
+ @printf '%s\n' ' all prepare clean distclean maintainer-clean rebuild reconfigure'
+ @printf '%s\n' ' check test status stage install list print-subdirs print-config help'
+ @printf '%s\n' 'Suggested: make -f GNUmakefile -j$(JOBS_HINT) all'
+EOF_MK
+
+sed \
+ -e "s|@TIMESTAMP@|$(escape_sed "$TIMESTAMP")|g" \
+ -e "s|@HOST@|$(escape_sed "$HOST")|g" \
+ -e "s|@BUILD@|$(escape_sed "$BUILD")|g" \
+ -e "s|@CC_MACHINE@|$(escape_sed "$CC_MACHINE")|g" \
+ -e "s|@LIBC@|$(escape_sed "$LIBC_KIND")|g" \
+ -e "s|@IS_MUSL@|$(escape_sed "$IS_MUSL")|g" \
+ -e "s|@JOBS_HINT@|$(escape_sed "$JOBS_HINT")|g" \
+ -e "s|@CC@|$(escape_sed "$CC_MAKE")|g" \
+ -e "s|@AR@|$(escape_sed "$AR_MAKE")|g" \
+ -e "s|@RANLIB@|$(escape_sed "$RANLIB_MAKE")|g" \
+ -e "s|@NM@|$(escape_sed "$NM_MAKE")|g" \
+ -e "s|@AWK@|$(escape_sed "$AWK_MAKE")|g" \
+ -e "s|@SH@|$(escape_sed "$SH_MAKE")|g" \
+ -e "s|@CPPFLAGS@|$(escape_sed "$CPPFLAGS_MAKE")|g" \
+ -e "s|@CFLAGS@|$(escape_sed "$CFLAGS_MAKE")|g" \
+ -e "s|@LDFLAGS@|$(escape_sed "$LDFLAGS_MAKE")|g" \
+ -e "s|@CRYPTO_LIBS@|$(escape_sed "$CRYPTO_LIBS_MAKE")|g" \
+ -e "s|@EDITLINE_CPPFLAGS@|$(escape_sed "$EDITLINE_CPPFLAGS_MAKE")|g" \
+ -e "s|@EDITLINE_LIBS@|$(escape_sed "$EDITLINE_LIBS_MAKE")|g" \
+ -e "s|@PREFIX@|$(escape_sed "$PREFIX_MAKE")|g" \
+ -e "s|@BINDIR@|$(escape_sed "$BINDIR_MAKE")|g" \
+ -e "s|@SUBDIRS@|$(escape_sed "$SUBDIRS_MAKE")|g" \
+ "$GNUMAKEFILE_TMP" >"$GNUMAKEFILE"
+rm -f "$GNUMAKEFILE_TMP"
+rm -f "$SELF_DIR/GNUMakeFile"
+
+cat >>"$LOG_FILE" <<EOF_LOG
+--- configure summary ---
+configure timestamp: $TIMESTAMP
+host: $HOST
+build: $BUILD
+compiler: $CC_SELECTED
+compiler machine: $CC_MACHINE
+libc: $LIBC_KIND
+is musl: $IS_MUSL
+ar: $AR
+ranlib: $RANLIB
+nm: $NM
+awk: $AWK
+sh: $SH
+make: $MAKE
+pkg-config: ${PKG_CONFIG:-none}
+cppflags: ${CFG_CPPFLAGS:-<none>}
+cflags: ${CFG_CFLAGS:-<none>}
+ldflags: ${CFG_LDFLAGS:-<none>}
+conf_cppflags: ${CONF_CPPFLAGS:-<none>}
+conf_libs: ${CONF_LIBS:-<none>}
+crypto libs: ${CRYPTO_LIBS:-<none>}
+editline cppflags: ${EDITLINE_CPPFLAGS:-<none>}
+editline libs: ${EDITLINE_LIBS:-<none>}
+prefix: $PREFIX
+bindir: $BINDIR
+cross compiling: $CROSS_COMPILING
+subdirs: $SUBDIRS_ONE_LINE
+EOF_LOG
+
+msg_result ""
+printf 'configure: created %s\n' "$GNUMAKEFILE"
+printf 'configure: created %s\n' "$CONFIG_MK"
+printf 'configure: libc=%s compiler=%s subdirs=%s\n' "$LIBC_KIND" "$CC_SELECTED" "$(printf '%s\n' "$SUBDIR_LIST" | wc -l | tr -d ' ')"
+printf 'configure: run %s\n' "make -f GNUmakefile -j$JOBS_HINT all"
diff --git a/corebinutils/cp b/corebinutils/cp
new file mode 160000
+Subproject 07152ace4e0e484f31e08030227a3d91bc80333
diff --git a/corebinutils/cpuset b/corebinutils/cpuset
new file mode 160000
+Subproject c41b67bfa876d63ab4511bdd89fae4c2b66331e
diff --git a/corebinutils/csh b/corebinutils/csh
new file mode 160000
+Subproject 9fcd5aad4bbd6e9e4e0791b193168db0bd861cb
diff --git a/corebinutils/date b/corebinutils/date
new file mode 160000
+Subproject ae4c58645a13317bb8540d47f8f7cfa768f17eb
diff --git a/corebinutils/dd b/corebinutils/dd
new file mode 160000
+Subproject 54a575952b5661c61d14538277d3548ca939b34
diff --git a/corebinutils/df b/corebinutils/df
new file mode 160000
+Subproject 04298aa63d4ae1546bed105cb8cb0245b3646ee
diff --git a/corebinutils/domainname b/corebinutils/domainname
new file mode 160000
+Subproject f28fddc2e8208bca202d0074d14d2bb914dcc59
diff --git a/corebinutils/echo b/corebinutils/echo
new file mode 160000
+Subproject 74324d021b4424d2b9b21a8593f4c7680837a27
diff --git a/corebinutils/ed b/corebinutils/ed
new file mode 160000
+Subproject 93528dc40c12704e0f9ca16475e97e68b4317fb
diff --git a/corebinutils/expr b/corebinutils/expr
new file mode 160000
+Subproject 23bf7a79f51567e56bfb4fc657e3dc66c36b41d
diff --git a/corebinutils/freebsd-version b/corebinutils/freebsd-version
new file mode 160000
+Subproject d768fb6b2c853a5658f5e671056e0dc48897f35
diff --git a/corebinutils/getfacl b/corebinutils/getfacl
new file mode 160000
+Subproject 550119fbc3fe5fb6677c00484944354aa98f4b3
diff --git a/corebinutils/hostname b/corebinutils/hostname
new file mode 160000
+Subproject b19672b599d80bb29d054b7bd39abb3f146037e
diff --git a/corebinutils/kill b/corebinutils/kill
new file mode 160000
+Subproject 4888cfe1b3ad8e83935dc7b061bdbdade5d3ebf
diff --git a/corebinutils/ln b/corebinutils/ln
new file mode 160000
+Subproject b972052b8d6d2339bc27f924db78cfd35df73c3
diff --git a/corebinutils/ls b/corebinutils/ls
new file mode 160000
+Subproject 06b170dd48138a26fdfe1b822ba9846a26a2fa0
diff --git a/corebinutils/mkdir b/corebinutils/mkdir
new file mode 160000
+Subproject 4360cafc082b73ed9578911ed2dd8e022f4a592
diff --git a/corebinutils/mv b/corebinutils/mv
new file mode 160000
+Subproject eef48ae3a05a5829217d2b6a8e74c0cb5f978cf
diff --git a/corebinutils/nproc b/corebinutils/nproc
new file mode 160000
+Subproject b02e14aacf37412ca3632719075c9c42967e23b
diff --git a/corebinutils/pax b/corebinutils/pax
new file mode 160000
+Subproject 9b3dc150a69468a36aa956d4e5d3beaa1c05b65
diff --git a/corebinutils/pkill b/corebinutils/pkill
new file mode 160000
+Subproject c07449c1ae05a076b9e554267513c794c86e3ba
diff --git a/corebinutils/ps b/corebinutils/ps
new file mode 160000
+Subproject 29b985290c171926c765c571e8711276c4d9aae
diff --git a/corebinutils/pwait b/corebinutils/pwait
new file mode 160000
+Subproject 2dea7718929906912270d2d02cc19fbbf284857
diff --git a/corebinutils/pwd b/corebinutils/pwd
new file mode 160000
+Subproject e19ed3fe0f247b74692c23b07d02ee3779ab5fc
diff --git a/corebinutils/realpath b/corebinutils/realpath
new file mode 160000
+Subproject 2dcbe84cc3ca1a0c737aa8a46710ad0abcd83ff
diff --git a/corebinutils/rm b/corebinutils/rm
new file mode 160000
+Subproject f17620ba69abf0400ff9043d53539db8cc2fa84
diff --git a/corebinutils/rmail b/corebinutils/rmail
new file mode 160000
+Subproject dfe4433f744e8e68d04dee0eab4eb9ae2a884c3
diff --git a/corebinutils/rmdir b/corebinutils/rmdir
new file mode 160000
+Subproject 3d6a84a5af67021ba95ebe6fd5b28e1e2d97925
diff --git a/corebinutils/setfacl b/corebinutils/setfacl
new file mode 160000
+Subproject a4ca535a68ee1a8f0d906cf633344d67238d133
diff --git a/corebinutils/sh b/corebinutils/sh
new file mode 160000
+Subproject 126b33a9db9b44a56f2c62d18346746ec133076
diff --git a/corebinutils/sleep b/corebinutils/sleep
new file mode 160000
+Subproject 2283ae2924693a1f4370a7dc423ace87b52600c
diff --git a/corebinutils/stty b/corebinutils/stty
new file mode 160000
+Subproject f59550da80c3bd763f1d9782b3b3a06f1682688
diff --git a/corebinutils/sync b/corebinutils/sync
new file mode 160000
+Subproject a304c2b9dd922485b980b94fe635b512d9dce9c
diff --git a/corebinutils/test b/corebinutils/test
new file mode 160000
+Subproject ceefe27a76f3b2075abbf01b0c44375363967af
diff --git a/corebinutils/timeout b/corebinutils/timeout
new file mode 160000
+Subproject f4f5c8986d45eb2db27a9a7c1439e60d3f22260
diff --git a/corebinutils/uuidgen b/corebinutils/uuidgen
new file mode 160000
+Subproject 5cdcecb6c24e931462c92c66ead41a572302b45