Я создаю свой собственный Linux с нуля. У меня есть основы, такие как binutils, glibc и bash;
Я собирался установить gcc в свой корень, и у него есть зависимости, такие как gmp, mpfr и mpc.
Я установил gmp и mpfr и их зависимости (m4, binutils и т. д.)
Мне нужно было установить только mpc, но когда я пытаюсь установить (mpc/configure + make) mpc (из операционной системы Ubuntu Live) выдает следующую ошибку:
> ubuntu@ubuntu:/mnt/OSWorkspace/Builds/mpc-1.3.1$ "$WORK/Sources/mpc-1.3.1"*/configure --prefix=/usr --with-gmp="$ROOT/usr" --with-mpfr="$ROOT/usr"
> make
...
libtool: warning: library '/mnt/OSRoot/usr/lib/libmpfr.la' was moved.
/mnt/OSRoot/usr/bin/grep: /usr/lib/libgmp.la: No such file or directory
/mnt/OSRoot/usr/bin/sed: can't read /usr/lib/libgmp.la: No such file or directory
libtool: error: '/usr/lib/libgmp.la' is not a valid libtool archive
make[2]: *** [Makefile:476: libmpc.la] Error 1
make[2]: Leaving directory '/mnt/OSWorkspace/Builds/mpc-1.3.1/src'
make[1]: *** [Makefile:473: all-recursive] Error 1
make[1]: Leaving directory '/mnt/OSWorkspace/Builds/mpc-1.3.1'
make: *** [Makefile:384: all] Error 2
Но /mnt/OSRoot/usr/lib/libmpfr.la существует,
Тогда я пытаюсь собрать MPC внутри системы, выполнив:
#!/bin/bash
set -e
ROOT="/mnt/OSRoot"
WORK="/mnt/OSWorkspace"
echo "Creating mountpoints..."
sudo mkdir -p "$ROOT"/{dev,proc,sys,mnt}
echo "Mounting virtual filesystems..."
sudo mount --bind /dev "$ROOT/dev"
sudo mount --bind /proc "$ROOT/proc"
sudo mount --bind /sys "$ROOT/sys"
echo "Mounting workspace..."
sudo mount --bind "$WORK" "$ROOT/mnt"
echo "Entering chroot..."
sudo chroot "$ROOT" /usr/bin/bash --login
Но поскольку у меня нет gcc внутри корня, это тоже не работает
Это двоичные файлы, которые я установил (плюс: gmp, mpfr, linux-6.19.5):
ubuntu@ubuntu:/mnt/OSWorkspace/DONE/Sources$ ls
bash-5.3 diffutils-3.12 glibc-2.43 make-4.4.1 xz-5.8.2
binutils-2.46.0 findutils-4.10.0 grep-3.12 sed-4.9 zlib-1.3.2
coreutils-9.10 gawk-5.4.0 gzip-1.14 tar-1.35
Большую часть времени используются эти команды:
cd $WORK/Builds/$pkg$
"$WORK/Sources/$pkg$/configure" --prefix=/usr
make -j"$(nproc)"
make install DESTDIR="$ROOT"
Подробнее здесь: https://stackoverflow.com/questions/798 ... to-build-g