Difference between revisions of "Create Debian sysroots"

From Aram's Wiki
Jump to: navigation, search
(Run debootstrap)
(Run debootstrap)
Line 23: Line 23:
 
cd /tmp/sysroots
 
cd /tmp/sysroots
 
arches="amd64,x86_64-linux-gnu arm64,aarch64-linux-gnu mips,mips-linux-gnu mips64el,mips64el-linux-gnuabi64 ppc64el,powerpc64le-linux-gnu"
 
arches="amd64,x86_64-linux-gnu arm64,aarch64-linux-gnu mips,mips-linux-gnu mips64el,mips64el-linux-gnuabi64 ppc64el,powerpc64le-linux-gnu"
for arch in $arches; do IFS=","; debootstrap --arch $1 --variant=buildd stable $2 http://deb.debian.org/debian; done</nowiki>
+
for arch in $arches; do IFS=","; debootstrap --arch $1 --variant=buildd stable $2 http://deb.debian.org/debian; unset IFS; done</nowiki>
  
 
== Fix symlinks ==
 
== Fix symlinks ==

Revision as of 14:04, 24 November 2019


Introduction

We'll create Debian sysroots suitable for a GCC cross compiler.

Prerequisites

Debian or Ubuntu or any system that can run debootstrap.

Everything below runs as root:

sudo -i

Install debootstrap

apt install -y debootstrap

Run debootstrap

mkdir -p /tmp/sysroots
cd /tmp/sysroots
arches="amd64,x86_64-linux-gnu arm64,aarch64-linux-gnu mips,mips-linux-gnu mips64el,mips64el-linux-gnuabi64 ppc64el,powerpc64le-linux-gnu"
for arch in $arches; do IFS=","; debootstrap --arch $1 --variant=buildd stable $2 http://deb.debian.org/debian; unset IFS; done

Fix symlinks

Debootstrap will create absolute symlinks, fix absolute symlinks to refer to the sysroot dir by changing them into relative symlinks.

for arch in amd64 arm64 mips mips64el ppc64el; do find debian-$arch -type l -lname '/*' -exec sh -c 'file="$0"; dir=$(dirname "$file"); target=$(readlink "$0"); prefix=$(dirname "$dir" | sed 's@[^/]*@\.\.@g'); newtarget="$prefix$target"; ln -snf $newtarget $file' {} \; ; done

See also