diff --git a/recipes/gcc/recipe.sh b/recipes/gcc/recipe.sh
index d3e47ea7c951602bec2a6802e13403704a8b45ab..b12404587927d933606eaef19e1e3af8af208685 100644
--- a/recipes/gcc/recipe.sh
+++ b/recipes/gcc/recipe.sh
@@ -1,6 +1,7 @@
 GIT=https://gitlab.redox-os.org/redox-os/gcc.git
 BRANCH=redox
-DEPENDS="gnu-binutils newlib"
+BUILD_DEPENDS=(relibc)
+DEPENDS="gnu-binutils relibc"
 
 function recipe_version {
     printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
@@ -19,8 +20,12 @@ function recipe_build {
     cp config.sub mpfr/config.sub
     cp -f config.sub mpc/config.sub
 
-    ./configure --host=${HOST} --target=${HOST} --prefix=/ --enable-static --disable-shared --disable-dlopen --disable-nls --enable-languages=c,c++
-    make all-gcc all-target-libgcc all-target-libstdc++-v3
+    sysroot="${PWD}/../sysroot"
+    mkdir -p "$sysroot/usr"
+    ln -sf "$sysroot/include" "$sysroot/usr/include"
+    ln -sf "$sysroot/lib" "$sysroot/usr/lib"
+    ./configure --host=${HOST} --target=${HOST} --prefix=/ --with-sysroot=/ --with-build-sysroot="$sysroot" --enable-static --disable-shared --disable-dlopen --disable-nls --enable-languages=c,c++
+    make -j "$(nproc)" all-gcc all-target-libgcc all-target-libstdc++-v3
     skip=1
 }
 
diff --git a/recipes/gnu-binutils/recipe.sh b/recipes/gnu-binutils/recipe.sh
index 6e7f7131d4b4aebacf69e87251cfc1cbb6a66b79..868fe0082927611e78c39b25a4e67dbf214947f8 100644
--- a/recipes/gnu-binutils/recipe.sh
+++ b/recipes/gnu-binutils/recipe.sh
@@ -1,4 +1,5 @@
 GIT=https://gitlab.redox-os.org/redox-os/binutils-gdb.git
+BUILD_DEPENDS=(relibc)
 
 function recipe_version {
     printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
@@ -11,7 +12,11 @@ function recipe_update {
 }
 
 function recipe_build {
-    ./configure --host=${HOST} --target=${HOST} --prefix=/ --with-sysroot=/usr/$HOST --disable-gdb --disable-nls --disable-werror
+    sysroot="${PWD}/../sysroot"
+    mkdir -p "$sysroot/usr"
+    ln -sf "$sysroot/include" "$sysroot/usr/include"
+    ln -sf "$sysroot/lib" "$sysroot/usr/lib"
+    ./configure --host=${HOST} --target=${HOST} --prefix=/ --with-sysroot=/ --with-build-sysroot="$sysroot" --disable-gdb --disable-nls --disable-werror
     make
     skip=1
 }