]> Projects (at) Tadryanom (dot) Me - AdrOS.git/commit
refactor: reorganize userland into user/cmds/<name>/ with per-program Makefiles
authorTulio A M Mendes <[email protected]>
Sat, 14 Mar 2026 15:40:11 +0000 (12:40 -0300)
committerTulio A M Mendes <[email protected]>
Sat, 14 Mar 2026 15:40:11 +0000 (12:40 -0300)
commit9e0854b0114442014cf80ce3224075ae4ff7c6d2
tree832ddbccba994fa1fed92b740bf821fc2d9ce3f0
parenta316aa824e9164f59b380ed11667bf40c8d95fff
refactor: reorganize userland into user/cmds/<name>/ with per-program Makefiles

- Move 53 user commands from user/<name>.c to user/cmds/<name>/<name>.c
- Add user/cmds/common.mk shared build rules for dynamically-linked commands
- Add per-program Makefiles for all commands (including fulltest, ldso, pie_test)
- Build all .o/.elf into build/user/cmds/<name>/ (out-of-tree)
- Replace [init] test prefix with [test] in fulltest.c, pie_main.c, test scripts
- Fix find.c and which.c: use opendir/readdir/closedir instead of raw getdents
- Fix ulibc glob.c missing stdio.h include
- Fix ulibc -Wno-incompatible-pointer-types for GCC 14+
- Fix test_host_utils.sh which test set -e issue
- Doom rootfs path changed to /usr/games/doom
- make clean now also cleans ulibc and doom in-tree artifacts

Tests: 103/103 smoke, 28/28 unit, 19/19 security, 68/68 host utils, cppcheck clean
179 files changed:
BUILD_GUIDE.md
Makefile
tests/smoke_test.exp
tests/test_battery.exp
tests/test_host_utils.sh
user/awk.c [deleted file]
user/basename.c [deleted file]
user/cat.c [deleted file]
user/chgrp.c [deleted file]
user/chmod.c [deleted file]
user/chown.c [deleted file]
user/clear.c [deleted file]
user/cmds/awk/Makefile [new file with mode: 0644]
user/cmds/awk/awk.c [new file with mode: 0644]
user/cmds/basename/Makefile [new file with mode: 0644]
user/cmds/basename/basename.c [new file with mode: 0644]
user/cmds/cat/Makefile [new file with mode: 0644]
user/cmds/cat/cat.c [new file with mode: 0644]
user/cmds/chgrp/Makefile [new file with mode: 0644]
user/cmds/chgrp/chgrp.c [new file with mode: 0644]
user/cmds/chmod/Makefile [new file with mode: 0644]
user/cmds/chmod/chmod.c [new file with mode: 0644]
user/cmds/chown/Makefile [new file with mode: 0644]
user/cmds/chown/chown.c [new file with mode: 0644]
user/cmds/clear/Makefile [new file with mode: 0644]
user/cmds/clear/clear.c [new file with mode: 0644]
user/cmds/common.mk [new file with mode: 0644]
user/cmds/cp/Makefile [new file with mode: 0644]
user/cmds/cp/cp.c [new file with mode: 0644]
user/cmds/cut/Makefile [new file with mode: 0644]
user/cmds/cut/cut.c [new file with mode: 0644]
user/cmds/date/Makefile [new file with mode: 0644]
user/cmds/date/date.c [new file with mode: 0644]
user/cmds/dd/Makefile [new file with mode: 0644]
user/cmds/dd/dd.c [new file with mode: 0644]
user/cmds/df/Makefile [new file with mode: 0644]
user/cmds/df/df.c [new file with mode: 0644]
user/cmds/dirname/Makefile [new file with mode: 0644]
user/cmds/dirname/dirname.c [new file with mode: 0644]
user/cmds/dmesg/Makefile [new file with mode: 0644]
user/cmds/dmesg/dmesg.c [new file with mode: 0644]
user/cmds/du/Makefile [new file with mode: 0644]
user/cmds/du/du.c [new file with mode: 0644]
user/cmds/echo/Makefile [new file with mode: 0644]
user/cmds/echo/echo.c [new file with mode: 0644]
user/cmds/env/Makefile [new file with mode: 0644]
user/cmds/env/env.c [new file with mode: 0644]
user/cmds/find/Makefile [new file with mode: 0644]
user/cmds/find/find.c [new file with mode: 0644]
user/cmds/free/Makefile [new file with mode: 0644]
user/cmds/free/free.c [new file with mode: 0644]
user/cmds/fulltest/Makefile [new file with mode: 0644]
user/cmds/fulltest/errno.c [new file with mode: 0644]
user/cmds/fulltest/fulltest.c [new file with mode: 0644]
user/cmds/fulltest/user_errno.h [new file with mode: 0644]
user/cmds/grep/Makefile [new file with mode: 0644]
user/cmds/grep/grep.c [new file with mode: 0644]
user/cmds/head/Makefile [new file with mode: 0644]
user/cmds/head/head.c [new file with mode: 0644]
user/cmds/hostname/Makefile [new file with mode: 0644]
user/cmds/hostname/hostname.c [new file with mode: 0644]
user/cmds/id/Makefile [new file with mode: 0644]
user/cmds/id/id.c [new file with mode: 0644]
user/cmds/init/Makefile [new file with mode: 0644]
user/cmds/init/init.c [new file with mode: 0644]
user/cmds/kill/Makefile [new file with mode: 0644]
user/cmds/kill/kill.c [new file with mode: 0644]
user/cmds/ldso/Makefile [new file with mode: 0644]
user/cmds/ldso/ldso.c [new file with mode: 0644]
user/cmds/ln/Makefile [new file with mode: 0644]
user/cmds/ln/ln.c [new file with mode: 0644]
user/cmds/ls/Makefile [new file with mode: 0644]
user/cmds/ls/ls.c [new file with mode: 0644]
user/cmds/mkdir/Makefile [new file with mode: 0644]
user/cmds/mkdir/mkdir.c [new file with mode: 0644]
user/cmds/mount/Makefile [new file with mode: 0644]
user/cmds/mount/mount.c [new file with mode: 0644]
user/cmds/mv/Makefile [new file with mode: 0644]
user/cmds/mv/mv.c [new file with mode: 0644]
user/cmds/pie_test/Makefile [new file with mode: 0644]
user/cmds/pie_test/pie_func.c [new file with mode: 0644]
user/cmds/pie_test/pie_main.c [new file with mode: 0644]
user/cmds/printenv/Makefile [new file with mode: 0644]
user/cmds/printenv/printenv.c [new file with mode: 0644]
user/cmds/ps/Makefile [new file with mode: 0644]
user/cmds/ps/ps.c [new file with mode: 0644]
user/cmds/pwd/Makefile [new file with mode: 0644]
user/cmds/pwd/pwd.c [new file with mode: 0644]
user/cmds/rm/Makefile [new file with mode: 0644]
user/cmds/rm/rm.c [new file with mode: 0644]
user/cmds/rmdir/Makefile [new file with mode: 0644]
user/cmds/rmdir/rmdir.c [new file with mode: 0644]
user/cmds/sed/Makefile [new file with mode: 0644]
user/cmds/sed/sed.c [new file with mode: 0644]
user/cmds/sh/Makefile [new file with mode: 0644]
user/cmds/sh/sh.c [new file with mode: 0644]
user/cmds/sleep/Makefile [new file with mode: 0644]
user/cmds/sleep/sleep.c [new file with mode: 0644]
user/cmds/sort/Makefile [new file with mode: 0644]
user/cmds/sort/sort.c [new file with mode: 0644]
user/cmds/stat/Makefile [new file with mode: 0644]
user/cmds/stat/stat.c [new file with mode: 0644]
user/cmds/tail/Makefile [new file with mode: 0644]
user/cmds/tail/tail.c [new file with mode: 0644]
user/cmds/tee/Makefile [new file with mode: 0644]
user/cmds/tee/tee.c [new file with mode: 0644]
user/cmds/top/Makefile [new file with mode: 0644]
user/cmds/top/top.c [new file with mode: 0644]
user/cmds/touch/Makefile [new file with mode: 0644]
user/cmds/touch/touch.c [new file with mode: 0644]
user/cmds/tr/Makefile [new file with mode: 0644]
user/cmds/tr/tr.c [new file with mode: 0644]
user/cmds/umount/Makefile [new file with mode: 0644]
user/cmds/umount/umount.c [new file with mode: 0644]
user/cmds/uname/Makefile [new file with mode: 0644]
user/cmds/uname/uname.c [new file with mode: 0644]
user/cmds/uniq/Makefile [new file with mode: 0644]
user/cmds/uniq/uniq.c [new file with mode: 0644]
user/cmds/uptime/Makefile [new file with mode: 0644]
user/cmds/uptime/uptime.c [new file with mode: 0644]
user/cmds/wc/Makefile [new file with mode: 0644]
user/cmds/wc/wc.c [new file with mode: 0644]
user/cmds/which/Makefile [new file with mode: 0644]
user/cmds/which/which.c [new file with mode: 0644]
user/cmds/who/Makefile [new file with mode: 0644]
user/cmds/who/who.c [new file with mode: 0644]
user/cp.c [deleted file]
user/cut.c [deleted file]
user/date.c [deleted file]
user/dd.c [deleted file]
user/df.c [deleted file]
user/dirname.c [deleted file]
user/dmesg.c [deleted file]
user/du.c [deleted file]
user/echo.c [deleted file]
user/env.c [deleted file]
user/errno.c [deleted file]
user/find.c [deleted file]
user/free.c [deleted file]
user/fulltest.c [deleted file]
user/grep.c [deleted file]
user/head.c [deleted file]
user/hostname.c [deleted file]
user/id.c [deleted file]
user/init.c [deleted file]
user/kill.c [deleted file]
user/ldso.c [deleted file]
user/ln.c [deleted file]
user/ls.c [deleted file]
user/mkdir.c [deleted file]
user/mount.c [deleted file]
user/mv.c [deleted file]
user/pie_func.c [deleted file]
user/pie_main.c [deleted file]
user/printenv.c [deleted file]
user/ps.c [deleted file]
user/pwd.c [deleted file]
user/rm.c [deleted file]
user/rmdir.c [deleted file]
user/sed.c [deleted file]
user/sh.c [deleted file]
user/sleep.c [deleted file]
user/sort.c [deleted file]
user/stat.c [deleted file]
user/tail.c [deleted file]
user/tee.c [deleted file]
user/top.c [deleted file]
user/touch.c [deleted file]
user/tr.c [deleted file]
user/ulibc/Makefile
user/ulibc/src/glob.c
user/umount.c [deleted file]
user/uname.c [deleted file]
user/uniq.c [deleted file]
user/uptime.c [deleted file]
user/user_errno.h [deleted file]
user/wc.c [deleted file]
user/which.c [deleted file]
user/who.c [deleted file]