diff --git a/boot/grub2/grub2.mk b/boot/grub2/grub2.mk
index d93e383422..955f48ae8d 100644
--- a/boot/grub2/grub2.mk
+++ b/boot/grub2/grub2.mk
@@ -183,7 +183,7 @@ define GRUB2_INSTALL_IMAGES_CMDS
 	$(foreach tuple, $(GRUB2_TUPLES-y), \
 		@$(call MESSAGE,Installing $(tuple) to images directory)
 		mkdir -p $(dir $(GRUB2_IMAGE_$(tuple)))
-		$(HOST_DIR)/usr/bin/grub-mkimage \
+		$(HOST_DIR)/bin/grub-mkimage \
 			-d $(@D)/build-$(tuple)/grub-core/ \
 			-O $(tuple) \
 			-o $(GRUB2_IMAGE_$(tuple)) \
diff --git a/package/abootimg/abootimg.mk b/package/abootimg/abootimg.mk
index a07100df5a..ca09e94f16 100644
--- a/package/abootimg/abootimg.mk
+++ b/package/abootimg/abootimg.mk
@@ -27,7 +27,7 @@ define HOST_ABOOTIMG_BUILD_CMDS
 endef
 
 define HOST_ABOOTIMG_INSTALL_CMDS
-	$(INSTALL) -m 0755 $(@D)/abootimg $(HOST_DIR)/usr/bin/abootimg
+	$(INSTALL) -m 0755 $(@D)/abootimg $(HOST_DIR)/bin/abootimg
 endef
 
 $(eval $(generic-package))
diff --git a/package/bind/bind.mk b/package/bind/bind.mk
index 5164001ab5..d18d84bbaf 100644
--- a/package/bind/bind.mk
+++ b/package/bind/bind.mk
@@ -83,7 +83,7 @@ endif
 # Used by dnssec-keymgr
 ifeq ($(BR2_PACKAGE_PYTHON_PLY),y)
 BIND_DEPENDENCIES += host-python-ply
-BIND_CONF_OPTS += --with-python=$(HOST_DIR)/usr/bin/python
+BIND_CONF_OPTS += --with-python=$(HOST_DIR)/bin/python
 else
 BIND_CONF_OPTS += --with-python=no
 endif
diff --git a/package/compiler-rt/compiler-rt.mk b/package/compiler-rt/compiler-rt.mk
index 57f9c26854..c8ea86e899 100644
--- a/package/compiler-rt/compiler-rt.mk
+++ b/package/compiler-rt/compiler-rt.mk
@@ -19,7 +19,7 @@ COMPILER_RT_INSTALL_TARGET = NO
 COMPILER_RT_CONF_OPTS=-DCOMPILER_RT_STANDALONE_BUILD=OFF \
 	-DCOMPILER_RT_STANDALONE_BUILD=ON \
 	-DCOMPILER_RT_DEFAULT_TARGET_TRIPLE=$(GNU_TARGET_NAME) \
-	-DLLVM_CONFIG_PATH=$(HOST_DIR)/usr/bin/llvm-config
+	-DLLVM_CONFIG_PATH=$(HOST_DIR)/bin/llvm-config
 
 # The installation of the target runtime libraries defaults to DESTDIR, however
 # host-clang resources directory needs a link so Clang can find the runtime
diff --git a/package/dbus-python/dbus-python.mk b/package/dbus-python/dbus-python.mk
index d9bb30ed67..16b22d4821 100644
--- a/package/dbus-python/dbus-python.mk
+++ b/package/dbus-python/dbus-python.mk
@@ -20,9 +20,9 @@ DBUS_PYTHON_CONF_ENV = \
 
 HOST_DBUS_PYTHON_CONF_ENV = \
 	PYTHON=$(HOST_DIR)/bin/python3 \
-	PYTHON_INCLUDES="`$(HOST_DIR)/usr/bin/python3-config --includes`" \
-	PYTHON_LIBS="`$(HOST_DIR)/usr/bin/python3-config --ldflags`" \
-	PYTHON_EXTRA_LIBS="`$(HOST_DIR)/usr/bin/python3-config --libs --embed`"
+	PYTHON_INCLUDES="`$(HOST_DIR)/bin/python3-config --includes`" \
+	PYTHON_LIBS="`$(HOST_DIR)/bin/python3-config --ldflags`" \
+	PYTHON_EXTRA_LIBS="`$(HOST_DIR)/bin/python3-config --libs --embed`"
 
 $(eval $(autotools-package))
 $(eval $(host-autotools-package))
diff --git a/package/gawk/gawk.mk b/package/gawk/gawk.mk
index b55c74d00a..3a1cec4969 100644
--- a/package/gawk/gawk.mk
+++ b/package/gawk/gawk.mk
@@ -40,7 +40,7 @@ endef
 GAWK_POST_INSTALL_TARGET_HOOKS += GAWK_CREATE_SYMLINK
 
 define HOST_GAWK_CREATE_SYMLINK
-	ln -sf gawk $(HOST_DIR)/usr/bin/awk
+	ln -sf gawk $(HOST_DIR)/bin/awk
 endef
 
 HOST_GAWK_POST_INSTALL_HOOKS += HOST_GAWK_CREATE_SYMLINK
diff --git a/package/gettext-tiny/gettext-tiny.mk b/package/gettext-tiny/gettext-tiny.mk
index c297cb1fe5..e2dc563667 100644
--- a/package/gettext-tiny/gettext-tiny.mk
+++ b/package/gettext-tiny/gettext-tiny.mk
@@ -95,7 +95,7 @@ define HOST_GETTEXT_TINY_INSTALL_CMDS
 	$(Q)touch $(HOST_DIR)/share/gettext-tiny/ABOUT-NLS
 
 	# for gettextize
-	ln -sf $(HOST_DIR)/usr/share/gettext-tiny $(HOST_DIR)/usr/share/gettext
+	ln -sf $(HOST_DIR)/share/gettext-tiny $(HOST_DIR)/share/gettext
 endef
 
 # Install simple echo wrapper for gettext tool
diff --git a/package/go/go.mk b/package/go/go.mk
index 6767b1481d..172bf16b6f 100644
--- a/package/go/go.mk
+++ b/package/go/go.mk
@@ -13,10 +13,10 @@ GO_LICENSE_FILES = LICENSE
 GO_CPE_ID_VENDOR = golang
 
 HOST_GO_DEPENDENCIES = host-go-bootstrap
-HOST_GO_GOPATH = $(HOST_DIR)/usr/share/go-path
-HOST_GO_HOST_CACHE = $(HOST_DIR)/usr/share/host-go-cache
+HOST_GO_GOPATH = $(HOST_DIR)/share/go-path
+HOST_GO_HOST_CACHE = $(HOST_DIR)/share/host-go-cache
 HOST_GO_ROOT = $(HOST_DIR)/lib/go
-HOST_GO_TARGET_CACHE = $(HOST_DIR)/usr/share/go-cache
+HOST_GO_TARGET_CACHE = $(HOST_DIR)/share/go-cache
 
 # We pass an empty GOBIN, otherwise "go install: cannot install
 # cross-compiled binaries when GOBIN is set"
diff --git a/package/jimtcl/jimtcl.mk b/package/jimtcl/jimtcl.mk
index 2f8e0e6c69..3d68ca8f64 100644
--- a/package/jimtcl/jimtcl.mk
+++ b/package/jimtcl/jimtcl.mk
@@ -92,11 +92,11 @@ endef
 
 define HOST_JIMTCL_INSTALL_CMDS
 	for i in $(JIMTCL_HEADERS_TO_INSTALL); do \
-		cp -a $(@D)/$$i $(HOST_DIR)/usr/include/ || exit 1 ; \
+		cp -a $(@D)/$$i $(HOST_DIR)/include/ || exit 1 ; \
 	done;
 	$(INSTALL) -m 0755 -D $(@D)/libjim.so.$(JIMTCL_VERSION) \
-		$(HOST_DIR)/usr/lib/libjim.so.$(JIMTCL_VERSION)
-	ln -sf libjim.so.$(JIMTCL_VERSION) $(HOST_DIR)/usr/lib/libjim.so
+		$(HOST_DIR)/lib/libjim.so.$(JIMTCL_VERSION)
+	ln -sf libjim.so.$(JIMTCL_VERSION) $(HOST_DIR)/lib/libjim.so
 endef
 
 $(eval $(generic-package))
diff --git a/package/libapparmor/libapparmor.mk b/package/libapparmor/libapparmor.mk
index fcd3a4389b..af59335933 100644
--- a/package/libapparmor/libapparmor.mk
+++ b/package/libapparmor/libapparmor.mk
@@ -31,7 +31,7 @@ ifeq ($(BR2_PACKAGE_PYTHON3),y)
 LIBAPPARMOR_DEPENDENCIES += host-python3 host-python-setuptools host-swig python3
 LIBAPPARMOR_CONF_OPTS += \
 	--with-python \
-	PYTHON=$(HOST_DIR)/usr/bin/python3 \
+	PYTHON=$(HOST_DIR)/bin/python3 \
 	PYTHON_CONFIG=$(STAGING_DIR)/usr/bin/python3-config \
 	SWIG=$(SWIG)
 else
diff --git a/package/libva/libva.mk b/package/libva/libva.mk
index f89dac335f..4138daf8b4 100644
--- a/package/libva/libva.mk
+++ b/package/libva/libva.mk
@@ -30,7 +30,7 @@ endif
 
 ifeq ($(BR2_PACKAGE_WAYLAND),y)
 LIBVA_DEPENDENCIES += wayland
-LIBVA_CONF_ENV += ac_cv_path_WAYLAND_SCANNER=$(HOST_DIR)/usr/bin/wayland-scanner
+LIBVA_CONF_ENV += ac_cv_path_WAYLAND_SCANNER=$(HOST_DIR)/bin/wayland-scanner
 LIBVA_CONF_OPTS += --enable-wayland
 else
 LIBVA_CONF_OPTS += --disable-wayland
diff --git a/package/lua/lua.mk b/package/lua/lua.mk
index 09e7b34f7d..01b554eb6b 100644
--- a/package/lua/lua.mk
+++ b/package/lua/lua.mk
@@ -60,7 +60,7 @@ LUA_POST_PATCH_HOOKS += LUA_32BITS_LUACONF
 endif
 
 define HOST_LUA_LUACONF
-	$(SED) 's|#define LUA_ROOT.*|#define LUA_ROOT "$(HOST_DIR)/usr/"|' $(@D)/src/luaconf.h
+	$(SED) 's|#define LUA_ROOT.*|#define LUA_ROOT "$(HOST_DIR)/"|' $(@D)/src/luaconf.h
 endef
 HOST_LUA_POST_PATCH_HOOKS += HOST_LUA_LUACONF
 
diff --git a/package/ola/ola.mk b/package/ola/ola.mk
index 6600de797e..82615e8155 100644
--- a/package/ola/ola.mk
+++ b/package/ola/ola.mk
@@ -24,7 +24,7 @@ OLA_CONF_OPTS = \
 	--disable-root-check \
 	--disable-tcmalloc \
 	--disable-unittests \
-	--with-ola-protoc-plugin=$(HOST_DIR)/usr/bin/ola_protoc_plugin
+	--with-ola-protoc-plugin=$(HOST_DIR)/bin/ola_protoc_plugin
 
 HOST_OLA_DEPENDENCIES = host-util-linux host-protobuf host-bison host-flex
 
@@ -47,7 +47,7 @@ HOST_OLA_CONF_OPTS = \
 # only.
 HOST_OLA_MAKE_OPTS = protoc/ola_protoc_plugin
 define HOST_OLA_INSTALL_CMDS
-	$(INSTALL) -D -m 0755 $(@D)/protoc/ola_protoc_plugin $(HOST_DIR)/usr/bin/ola_protoc_plugin
+	$(INSTALL) -D -m 0755 $(@D)/protoc/ola_protoc_plugin $(HOST_DIR)/bin/ola_protoc_plugin
 endef
 
 # sets where to find python libs built for target and required by ola
diff --git a/package/openjdk-bin/openjdk-bin.mk b/package/openjdk-bin/openjdk-bin.mk
index 5cb6e3ba6a..608a0bc3ac 100644
--- a/package/openjdk-bin/openjdk-bin.mk
+++ b/package/openjdk-bin/openjdk-bin.mk
@@ -26,7 +26,7 @@ HOST_OPENJDK_BIN_SITE = https://github.com/adoptium/temurin$(HOST_OPENJDK_BIN_VE
 HOST_OPENJDK_BIN_LICENSE = GPL-2.0+ with exception
 HOST_OPENJDK_BIN_LICENSE_FILES = legal/java.prefs/LICENSE legal/java.prefs/ASSEMBLY_EXCEPTION
 
-HOST_OPENJDK_BIN_ROOT_DIR = $(HOST_DIR)/usr/lib/jvm
+HOST_OPENJDK_BIN_ROOT_DIR = $(HOST_DIR)/lib/jvm
 
 # unpack200 has an invalid RPATH and relies on libzlib. When
 # host-libzlib is installed on the system, the error "ERROR: package
diff --git a/package/php-apcu/php-apcu.mk b/package/php-apcu/php-apcu.mk
index 3ac062e772..d381c9054f 100644
--- a/package/php-apcu/php-apcu.mk
+++ b/package/php-apcu/php-apcu.mk
@@ -16,8 +16,8 @@ PHP_APCU_CONF_OPTS = \
 
 define PHP_APCU_PHPIZE
 	(cd $(@D); \
-		PHP_AUTOCONF=$(HOST_DIR)/usr/bin/autoconf \
-		PHP_AUTOHEADER=$(HOST_DIR)/usr/bin/autoheader \
+		PHP_AUTOCONF=$(HOST_DIR)/bin/autoconf \
+		PHP_AUTOHEADER=$(HOST_DIR)/bin/autoheader \
 		$(STAGING_DIR)/usr/bin/phpize)
 endef
 PHP_APCU_PRE_CONFIGURE_HOOKS += PHP_APCU_PHPIZE
diff --git a/package/php-lua/php-lua.mk b/package/php-lua/php-lua.mk
index 529b347e42..559bd59209 100644
--- a/package/php-lua/php-lua.mk
+++ b/package/php-lua/php-lua.mk
@@ -30,8 +30,8 @@ endif
 
 define PHP_LUA_PHPIZE
 	(cd $(@D); \
-		PHP_AUTOCONF=$(HOST_DIR)/usr/bin/autoconf \
-		PHP_AUTOHEADER=$(HOST_DIR)/usr/bin/autoheader \
+		PHP_AUTOCONF=$(HOST_DIR)/bin/autoconf \
+		PHP_AUTOHEADER=$(HOST_DIR)/bin/autoheader \
 		$(STAGING_DIR)/usr/bin/phpize)
 endef
 PHP_LUA_PRE_CONFIGURE_HOOKS += PHP_LUA_PHPIZE
diff --git a/package/php-pam/php-pam.mk b/package/php-pam/php-pam.mk
index 8e20095d86..c35ad4f5d0 100644
--- a/package/php-pam/php-pam.mk
+++ b/package/php-pam/php-pam.mk
@@ -17,8 +17,8 @@ PHP_PAM_CONF_OPTS = \
 
 define PHP_PAM_PHPIZE
 	(cd $(@D); \
-		PHP_AUTOCONF=$(HOST_DIR)/usr/bin/autoconf \
-		PHP_AUTOHEADER=$(HOST_DIR)/usr/bin/autoheader \
+		PHP_AUTOCONF=$(HOST_DIR)/bin/autoconf \
+		PHP_AUTOHEADER=$(HOST_DIR)/bin/autoheader \
 		$(STAGING_DIR)/usr/bin/phpize)
 endef
 PHP_PAM_PRE_CONFIGURE_HOOKS += PHP_PAM_PHPIZE
diff --git a/package/php-pecl-dbus/php-pecl-dbus.mk b/package/php-pecl-dbus/php-pecl-dbus.mk
index 456d662554..a70a2e7ae1 100644
--- a/package/php-pecl-dbus/php-pecl-dbus.mk
+++ b/package/php-pecl-dbus/php-pecl-dbus.mk
@@ -15,8 +15,8 @@ PHP_PECL_DBUS_CONF_OPTS = \
 
 define PHP_PECL_DBUS_PHPIZE
 	(cd $(@D); \
-		PHP_AUTOCONF=$(HOST_DIR)/usr/bin/autoconf \
-		PHP_AUTOHEADER=$(HOST_DIR)/usr/bin/autoheader \
+		PHP_AUTOCONF=$(HOST_DIR)/bin/autoconf \
+		PHP_AUTOHEADER=$(HOST_DIR)/bin/autoheader \
 		$(STAGING_DIR)/usr/bin/phpize)
 endef
 PHP_PECL_DBUS_PRE_CONFIGURE_HOOKS += PHP_PECL_DBUS_PHPIZE
diff --git a/package/python-cryptography/python-cryptography.mk b/package/python-cryptography/python-cryptography.mk
index 99eba3eeab..582a7f7891 100644
--- a/package/python-cryptography/python-cryptography.mk
+++ b/package/python-cryptography/python-cryptography.mk
@@ -27,7 +27,7 @@ PYTHON_CRYPTOGRAPHY_ENV = \
 	PYO3_CROSS_LIB_DIR="$(STAGING_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)"
 HOST_PYTHON_CRYPTOGRAPHY_ENV = \
 	$(HOST_PKG_CARGO_ENV) \
-	PYO3_CROSS_LIB_DIR="$(HOST_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)"
+	PYO3_CROSS_LIB_DIR="$(HOST_DIR)/lib/python$(PYTHON3_VERSION_MAJOR)"
 # We need to vendor the Cargo crates at download time
 PYTHON_CRYPTOGRAPHY_DOWNLOAD_POST_PROCESS = cargo
 PYTHON_CRYPTOGRAPHY_DOWNLOAD_DEPENDENCIES = host-rustc
diff --git a/package/python-pybind/python-pybind.mk b/package/python-pybind/python-pybind.mk
index 7448d246b2..05fc593346 100644
--- a/package/python-pybind/python-pybind.mk
+++ b/package/python-pybind/python-pybind.mk
@@ -17,7 +17,7 @@ PYTHON_PYBIND_CONF_OPTS = \
 	-DPYBIND11_TEST=OFF \
 	-DPYBIND11_NOPYTHON=ON
 
-PYTHON_PYBIND_INSTALL_PATH = $(HOST_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/pybind11
+PYTHON_PYBIND_INSTALL_PATH = $(HOST_DIR)/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/pybind11
 
 define PYTHON_PYBIND_INSTALL_MODULE
 	mkdir -p $(PYTHON_PYBIND_INSTALL_PATH)
diff --git a/package/refpolicy/refpolicy.mk b/package/refpolicy/refpolicy.mk
index 44c50af278..f11b72755a 100644
--- a/package/refpolicy/refpolicy.mk
+++ b/package/refpolicy/refpolicy.mk
@@ -30,7 +30,7 @@ endif
 
 # Cannot use multiple threads to build the reference policy
 REFPOLICY_MAKE = \
-	PYTHON=$(HOST_DIR)/usr/bin/python3 \
+	PYTHON=$(HOST_DIR)/bin/python3 \
 	XMLLINT=$(LIBXML2_HOST_BINARY) \
 	TEST_TOOLCHAIN=$(HOST_DIR) \
 	$(TARGET_MAKE_ENV) \
diff --git a/package/zfs/zfs.mk b/package/zfs/zfs.mk
index 07ce3295ec..3f5b39cc4e 100644
--- a/package/zfs/zfs.mk
+++ b/package/zfs/zfs.mk
@@ -40,7 +40,7 @@ endif
 ifeq ($(BR2_PACKAGE_PYTHON3),y)
 ZFS_DEPENDENCIES += python3 python-setuptools host-python-cffi host-python-packaging
 ZFS_CONF_ENV += \
-	PYTHON=$(HOST_DIR)/usr/bin/python3 \
+	PYTHON=$(HOST_DIR)/bin/python3 \
 	PYTHON_CPPFLAGS="`$(STAGING_DIR)/usr/bin/python3-config --includes`" \
 	PYTHON_LIBS="`$(STAGING_DIR)/usr/bin/python3-config --ldflags`" \
 	PYTHON_EXTRA_LIBS="`$(STAGING_DIR)/usr/bin/python3-config --libs --embed`" \
diff --git a/support/testing/tests/package/br2-external/python-pybind/package/python-pybind-example/python-pybind-example.mk b/support/testing/tests/package/br2-external/python-pybind/package/python-pybind-example/python-pybind-example.mk
index a6d7e0daaf..6620e70410 100644
--- a/support/testing/tests/package/br2-external/python-pybind/package/python-pybind-example/python-pybind-example.mk
+++ b/support/testing/tests/package/br2-external/python-pybind/package/python-pybind-example/python-pybind-example.mk
@@ -10,7 +10,7 @@
 PYTHON_PYBIND_EXAMPLE_DEPENDENCIES = python-pybind
 
 PYTHON_PYBIND_EXAMPLE_PYBIND_INCLUDE = \
-	$(shell $(HOST_DIR)/usr/bin/python3 -c 'import pybind11; print(pybind11.get_include())')
+	$(shell $(HOST_DIR)/bin/python3 -c 'import pybind11; print(pybind11.get_include())')
 
 PYTHON_PYBIND_EXAMPLE_CXX_FLAGS = \
 	$(TARGET_CXXFLAGS) \
