ifeq ($(BR2_TARGET_GRUB2_I386_PC),y)
 define GRUB2_IMAGE_INSTALL_ELTORITO
-       cat $(HOST_DIR)/usr/lib/grub/$(GRUB2_TUPLE)/cdboot.img $(GRUB2_IMAGE) > \
+       cat $(HOST_DIR)/lib/grub/$(GRUB2_TUPLE)/cdboot.img $(GRUB2_IMAGE) > \
                $(BINARIES_DIR)/grub-eltorito.img
 endef
 endif
 define GRUB2_IMAGE_INSTALLATION
        mkdir -p $(dir $(GRUB2_IMAGE))
        $(HOST_DIR)/bin/grub-mkimage \
-               -d $(HOST_DIR)/usr/lib/grub/$(GRUB2_TUPLE) \
+               -d $(HOST_DIR)/lib/grub/$(GRUB2_TUPLE) \
                -O $(GRUB2_TUPLE) \
                -o $(GRUB2_IMAGE) \
                -p "$(GRUB2_PREFIX)" \
 
 
 define HOST_4TH_INSTALL_CMDS
        mkdir -p $(HOST_DIR)/bin
-       mkdir -p $(HOST_DIR)/usr/lib
+       mkdir -p $(HOST_DIR)/lib
        $(HOST_MAKE_ENV) $(MAKE) -C $(@D)/sources mostlyinstall \
                BINARIES=$(HOST_DIR)/bin \
-               LIBRARIES=$(HOST_DIR)/usr/lib
+               LIBRARIES=$(HOST_DIR)/lib
 endef
 
 $(eval $(generic-package))
 
 export PERL=$(shell which perl)
 
 # host-intltool needs libxml-parser-perl, which Buildroot installs in
-# $(HOST_DIR)/usr/lib/perl, so we must make sure that the system perl
+# $(HOST_DIR)/lib/perl, so we must make sure that the system perl
 # finds this perl module by exporting the proper value for PERL5LIB.
-export PERL5LIB=$(HOST_DIR)/usr/lib/perl
+export PERL5LIB=$(HOST_DIR)/lib/perl
 
 TARGET_MAKE_ENV = PATH=$(BR_PATH)
 
        PKG_CONFIG_SYSROOT_DIR="/" \
        PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 \
        PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 \
-       PKG_CONFIG_LIBDIR="$(HOST_DIR)/usr/lib/pkgconfig:$(HOST_DIR)/usr/share/pkgconfig"
+       PKG_CONFIG_LIBDIR="$(HOST_DIR)/lib/pkgconfig:$(HOST_DIR)/usr/share/pkgconfig"
 
 HOST_CONFIGURE_OPTS = \
        $(HOST_MAKE_ENV) \
 
 HOST_ACL_INSTALL_OPTS = \
        prefix=$(HOST_DIR) \
        exec_prefix=$(HOST_DIR) \
-       PKG_DEVLIB_DIR=$(HOST_DIR)/usr/lib \
+       PKG_DEVLIB_DIR=$(HOST_DIR)/lib \
        install-dev install-lib
 # For the host, libacl.la is correct, no fixup needed.
 
 
 # system bus which is non-existent and does not contain
 # any upower service in it.
 define HOST_EFL_HOOK_REMOVE_UPOWER
-       rm -fr $(HOST_DIR)/usr/lib/ecore/system/upower
+       rm -fr $(HOST_DIR)/lib/ecore/system/upower
 endef
 HOST_EFL_POST_INSTALL_HOOKS = HOST_EFL_HOOK_REMOVE_UPOWER
 
 
 # Guess answers for these tests, configure will bail out otherwise
 # saying error: cannot run test program while cross compiling.
 EJABBERD_CONF_ENV = \
-       ac_cv_erlang_root_dir="$(HOST_DIR)/usr/lib/erlang" \
+       ac_cv_erlang_root_dir="$(HOST_DIR)/lib/erlang" \
        $(foreach lib,$(EJABBERD_ERLANG_LIBS), \
                ac_cv_erlang_lib_dir_$(lib)="`package/ejabberd/check-erlang-lib $(lib)`")
 
 
 HOST_EXECLINE_CONF_OPTS = \
        --prefix=$(HOST_DIR) \
        --shebangdir=/usr/bin \
-       --with-sysdeps=$(HOST_DIR)/usr/lib/skalibs/sysdeps \
+       --with-sysdeps=$(HOST_DIR)/lib/skalibs/sysdeps \
        --with-include=$(HOST_DIR)/usr/include \
-       --with-dynlib=$(HOST_DIR)/usr/lib \
+       --with-dynlib=$(HOST_DIR)/lib \
        --disable-static \
        --enable-shared \
        --disable-allstatic
 
 # need to sanitize (strip) them.
 ifeq ($(BR2_STATIC_LIBS),)
 define GDK_PIXBUF_UPDATE_CACHE
-       GDK_PIXBUF_MODULEDIR=$(HOST_DIR)/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders \
+       GDK_PIXBUF_MODULEDIR=$(HOST_DIR)/lib/gdk-pixbuf-2.0/2.10.0/loaders \
                $(HOST_DIR)/bin/gdk-pixbuf-query-loaders \
                > $(TARGET_DIR)/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache
        $(SED) "s,$(HOST_DIR),,g" \
 # thumbnailer. Use the host-built since it matches the target options
 # regarding mime types (which is the used information).
 define GDK_PIXBUF_COPY_LOADERS_CACHE
-       cp -f $(HOST_DIR)/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache \
+       cp -f $(HOST_DIR)/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache \
                $(@D)/gdk-pixbuf
 endef
 GDK_PIXBUF_PRE_BUILD_HOOKS += GDK_PIXBUF_COPY_LOADERS_CACHE
 
 # host-go-bootstrap.
 HOST_GO_BOOTSTRAP_DEPENDENCIES = toolchain
 
-HOST_GO_BOOTSTRAP_ROOT = $(HOST_DIR)/usr/lib/go-$(GO_BOOTSTRAP_VERSION)
+HOST_GO_BOOTSTRAP_ROOT = $(HOST_DIR)/lib/go-$(GO_BOOTSTRAP_VERSION)
 
 # The go build system is not compatable with ccache, so use HOSTCC_NOCCACHE
 # here.  See https://github.com/golang/go/issues/11685.
 
 endif
 
 HOST_GO_DEPENDENCIES = host-go-bootstrap
-HOST_GO_ROOT = $(HOST_DIR)/usr/lib/go
+HOST_GO_ROOT = $(HOST_DIR)/lib/go
 
 # For the convienience of target packages.
 HOST_GO_TOOLDIR = $(HOST_GO_ROOT)/pkg/tool/linux_$(GO_GOARCH)
 
 endif
 
 HOST_GTEST_GMOCK_PYTHONPATH = \
-       $(HOST_DIR)/usr/lib/python$(HOST_GTEST_PYTHON_VERSION)/site-packages
+       $(HOST_DIR)/lib/python$(HOST_GTEST_PYTHON_VERSION)/site-packages
 
 # While it is possible to build gtest as shared library, using this gtest shared
 # library requires to set some special configure option in the project using
 
 
 # We need asn1_compile in the PATH for samba4
 define HOST_HEIMDAL_MAKE_SYMLINK
-       ln -sf $(HOST_DIR)/usr/libexec/heimdal/asn1_compile \
+       ln -sf $(HOST_DIR)/libexec/heimdal/asn1_compile \
                $(HOST_DIR)/bin/asn1_compile
        ln -sf $(HOST_DIR)/bin/compile_et \
-               $(HOST_DIR)/usr/libexec/heimdal/compile_et
+               $(HOST_DIR)/libexec/heimdal/compile_et
 endef
 
 HOST_HEIMDAL_POST_INSTALL_HOOKS += HOST_HEIMDAL_MAKE_SYMLINK
 
        $(HOSTCC) $(HOST_CFLAGS) -o b_sortnl_host \
                arc4random.c mergesort.c b_sortnl.c critmem_malloc.c \
                critmem_realloc.c -DHAVE_CONFIG_H -I$(HOST_DIR)/usr/include \
-               -L $(HOST_DIR)/usr/lib -Wl,-rpath,$(HOST_DIR)/usr/lib -lpcre
+               -L $(HOST_DIR)/lib -Wl,-rpath,$(HOST_DIR)/lib -lpcre
 endef
 
 LEAFNODE2_PRE_BUILD_HOOKS += LEAFNODE2_BUILD_SORTNL_TOOL
 
        $(HOST_CONFIGURE_OPTS) \
        LDFLAGS="$(HOST_LDFLAGS) -lpcre -lpthread" \
        PYINC="$(HOST_LIBSELINUX_PYINC)" \
-       PYSITEDIR="$(HOST_DIR)/usr/lib/$(HOST_LIBSELINUX_PYLIBVER)/site-packages" \
+       PYSITEDIR="$(HOST_DIR)/lib/$(HOST_LIBSELINUX_PYLIBVER)/site-packages" \
        SWIG_LIB="$(HOST_DIR)/usr/share/swig/$(SWIG_VERSION)/"
 
 define HOST_LIBSELINUX_BUILD_CMDS
        # header paths.
        $(HOST_MAKE_ENV) $(MAKE1) -C $(@D) \
                $(HOST_LIBSELINUX_MAKE_OPTS) DESTDIR=$(HOST_DIR) \
-               SHLIBDIR=$(HOST_DIR)/usr/lib all
+               SHLIBDIR=$(HOST_DIR)/lib all
        # Generate python interface wrapper
        $(HOST_MAKE_ENV) $(MAKE1) -C $(@D) \
                $(HOST_LIBSELINUX_MAKE_OPTS) DESTDIR=$(HOST_DIR) swigify pywrap
 define HOST_LIBSELINUX_INSTALL_CMDS
        $(HOST_MAKE_ENV) $(MAKE) -C $(@D) \
                $(HOST_LIBSELINUX_MAKE_OPTS) DESTDIR=$(HOST_DIR) \
-               SHLIBDIR=$(HOST_DIR)/usr/lib SBINDIR=$(HOST_DIR)/sbin install
-       (cd $(HOST_DIR)/usr/lib; $(HOSTLN) -sf libselinux.so.1 libselinux.so)
+               SHLIBDIR=$(HOST_DIR)/lib SBINDIR=$(HOST_DIR)/sbin install
+       (cd $(HOST_DIR)/lib; $(HOSTLN) -sf libselinux.so.1 libselinux.so)
        # Install python interface wrapper
        $(HOST_MAKE_ENV) $(MAKE) -C $(@D) \
                $(HOST_LIBSELINUX_MAKE_OPTS) DESTDIR=$(HOST_DIR) install-pywrap
 
 HOST_LIBSEMANAGE_DEPENDENCIES += host-python3
 HOST_LIBSEMANAGE_MAKE_OPTS += \
        PYINC="-I$(HOST_DIR)/usr/include/python$(PYTHON3_VERSION_MAJOR)m/" \
-       PYTHONLIBDIR="-L$(HOST_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/" \
+       PYTHONLIBDIR="-L$(HOST_DIR)/lib/python$(PYTHON3_VERSION_MAJOR)/" \
        PYLIBVER="python$(PYTHON3_VERSION_MAJOR)"
 else
 HOST_LIBSEMANAGE_DEPENDENCIES += host-python
 HOST_LIBSEMANAGE_MAKE_OPTS += \
        PYINC="-I$(HOST_DIR)/usr/include/python$(PYTHON_VERSION_MAJOR)/" \
-       PYTHONLIBDIR="-L$(HOST_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/" \
+       PYTHONLIBDIR="-L$(HOST_DIR)/lib/python$(PYTHON_VERSION_MAJOR)/" \
        PYLIBVER="python$(PYTHON_VERSION_MAJOR)"
 endif
 
 
 
 define HOST_LIBSEPOL_INSTALL_CMDS
        $(HOST_LIBSEPOL_MAKE_ENV) $(MAKE) -C $(@D) install $(HOST_CONFIGURE_OPTS)
-       ln -sf libsepol.so.1 $(HOST_DIR)/usr/lib/libsepol.so
+       ln -sf libsepol.so.1 $(HOST_DIR)/lib/libsepol.so
 endef
 
 $(eval $(generic-package))
 
        (cd $(@D) ; \
                $(HOST_CONFIGURE_OPTS) $(LIBXML_PARSER_PERL_RUN_PERL) Makefile.PL \
                        PREFIX=$(HOST_DIR) \
-                       EXPATLIBPATH=$(HOST_DIR)/usr/lib \
+                       EXPATLIBPATH=$(HOST_DIR)/lib \
                        EXPATINCPATH=$(HOST_DIR)/usr/include \
                        INSTALLDIRS=site \
-                       INSTALLSITELIB=$(HOST_DIR)/usr/lib/perl \
-                       INSTALLSITEARCH=$(HOST_DIR)/usr/lib/perl \
+                       INSTALLSITELIB=$(HOST_DIR)/lib/perl \
+                       INSTALLSITEARCH=$(HOST_DIR)/lib/perl \
        )
 endef
 
 
 define HOST_LUA_INSTALL_CMDS
        $(HOST_MAKE_ENV) $(MAKE) INSTALL_TOP="$(HOST_DIR)/usr" -C $(@D) install
        $(INSTALL) -m 0644 -D $(@D)/etc/lua.pc \
-               $(HOST_DIR)/usr/lib/pkgconfig/lua.pc
+               $(HOST_DIR)/lib/pkgconfig/lua.pc
 endef
 
 $(eval $(generic-package))
 
 
 define HOST_MFGTOOLS_INSTALL_CMDS
        $(INSTALL) -D -m 755 $(@D)/MfgToolLib/libMfgToolLib.so \
-               $(HOST_DIR)/usr/lib/libMfgToolLib.so
+               $(HOST_DIR)/lib/libMfgToolLib.so
        $(INSTALL) -D -m 755 $(@D)/TestPrgm/mfgtoolcli \
                $(HOST_DIR)/bin/mfgtoolcli
 endef
 
 # architecture-independent, we simply copy them to the target.
 define MONO_INSTALL_LIBS
        rsync -av --exclude=*.so --exclude=*.mdb \
-               $(HOST_DIR)/usr/lib/mono $(TARGET_DIR)/usr/lib/
+               $(HOST_DIR)/lib/mono $(TARGET_DIR)/usr/lib/
 endef
 
 MONO_POST_INSTALL_TARGET_HOOKS += MONO_INSTALL_LIBS
 
 define HOST_MONO_SETUP_MONOLITE
        rm -rf $(@D)/mcs/class/lib/monolite
-       (cd $(@D)/mcs/class/lib; ln -s $(HOST_DIR)/usr/lib/monolite monolite)
+       (cd $(@D)/mcs/class/lib; ln -s $(HOST_DIR)/lib/monolite monolite)
 endef
 
 HOST_MONO_POST_CONFIGURE_HOOKS += HOST_MONO_SETUP_MONOLITE
 
 MONOLITE_LICENSE = LGPL-2.0 or commercial
 
 define HOST_MONOLITE_INSTALL_CMDS
-       mkdir -p $(HOST_DIR)/usr/lib/monolite
-       cp $(@D)/* $(HOST_DIR)/usr/lib/monolite
+       mkdir -p $(HOST_DIR)/lib/monolite
+       cp $(@D)/* $(HOST_DIR)/lib/monolite
 endef
 
 $(eval $(host-generic-package))
 
 OWFS_DEPENDENCIES += python host-swig
 # The configure scripts finds PYSITEDIR as the python_lib directory of
 # host-python, and then prepends DESTDIR in front of it. So we end up
-# installing things in $(TARGET_DIR)/$(HOST_DIR)/usr/lib/python which is
+# installing things in $(TARGET_DIR)/$(HOST_DIR)/lib/python which is
 # clearly wrong.
 # Patching owfs to do the right thing is not trivial, it's much easier to
 # override the PYSITEDIR variable in make.
 
 # a warning at configure time.
 HOST_PSEUDO_CONF_OPTS = \
        --cflags="$(HOSTCFLAGS)" \
-       --with-rpath=$(HOST_DIR)/usr/lib \
+       --with-rpath=$(HOST_DIR)/lib \
        --bits=$(if $(filter %64,$(HOSTARCH)),64,32) \
-       --libdir=$(HOST_DIR)/usr/lib \
+       --libdir=$(HOST_DIR)/lib \
        --with-sqlite=$(HOST_DIR)/usr
 
 $(eval $(host-autotools-package))
 
        PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 \
        PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \
        PKG_CONFIG_SYSROOT_DIR="/" \
-       PKG_CONFIG_LIBDIR="$(HOST_DIR)/usr/lib/pkgconfig:$(HOST_DIR)/usr/share/pkgconfig"
+       PKG_CONFIG_LIBDIR="$(HOST_DIR)/lib/pkgconfig:$(HOST_DIR)/usr/share/pkgconfig"
 HOST_PYTHON_CFFI_DEPENDENCIES = host-pkgconf host-python-pycparser host-libffi
 
 $(eval $(python-package))
 
 HOST_S6_RC_CONF_OPTS = \
        --prefix=$(HOST_DIR) \
        --libexecdir=/usr/libexec \
-       --with-sysdeps=$(HOST_DIR)/usr/lib/skalibs/sysdeps \
+       --with-sysdeps=$(HOST_DIR)/lib/skalibs/sysdeps \
        --with-include=$(HOST_DIR)/usr/include \
-       --with-dynlib=$(HOST_DIR)/usr/lib \
+       --with-dynlib=$(HOST_DIR)/lib \
        --disable-static \
        --enable-shared \
        --disable-allstatic
 
 
 HOST_S6_CONF_OPTS = \
        --prefix=$(HOST_DIR) \
-       --with-sysdeps=$(HOST_DIR)/usr/lib/skalibs/sysdeps \
+       --with-sysdeps=$(HOST_DIR)/lib/skalibs/sysdeps \
        --with-include=$(HOST_DIR)/usr/include \
-       --with-dynlib=$(HOST_DIR)/usr/lib \
+       --with-dynlib=$(HOST_DIR)/lib \
        --disable-static \
        --enable-shared \
        --disable-allstatic
 
 HOST_SCONS_NEEDS_HOST_PYTHON = python2
 
 HOST_SCONS_INSTALL_OPTS = \
-       --install-lib=$(HOST_DIR)/usr/lib/scons-$(SCONS_VERSION)
+       --install-lib=$(HOST_DIR)/lib/scons-$(SCONS_VERSION)
 
 $(eval $(host-python-package))
 
 
 HOST_SETOOLS_CONF_ENV += am_cv_python_version=$(PYTHON_VERSION)
 endif
 
-HOST_SETOOLS_PYTHON_SITE_PACKAGES = $(HOST_DIR)/usr/lib/python$(HOST_SETOOLS_PYTHON_VERSION)/site-packages
+HOST_SETOOLS_PYTHON_SITE_PACKAGES = $(HOST_DIR)/lib/python$(HOST_SETOOLS_PYTHON_VERSION)/site-packages
 HOST_SETOOLS_PYTHON_INCLUDES = $(HOST_DIR)/usr/include/python$(HOST_SETOOLS_PYTHON_VERSION)
 HOST_SETOOLS_PYTHON_LIB = -lpython$(HOST_SETOOLS_PYTHON_VERSION)
 
        --disable-swig-tcl \
        --with-sepol-devel="$(HOST_DIR)/usr" \
        --with-selinux-devel="$(HOST_DIR)/usr" \
-       PYTHON_LDFLAGS="-L$(HOST_DIR)/usr/lib/" \
+       PYTHON_LDFLAGS="-L$(HOST_DIR)/lib/" \
        PYTHON_CPPFLAGS="-I$(HOST_SETOOLS_PYTHON_INCLUDES)" \
        PYTHON_SITE_PKG="$(HOST_SETOOLS_PYTHON_SITE_PACKAGES)" \
        PYTHON_EXTRA_LIBS="-lpthread -ldl -lutil $(HOST_SETOOLS_PYTHON_LIB)"