2021-05-05 20:37:17 +08:00
< package-info :package = "package" showsbu > < / package-info >
< script >
new Vue({
el: '#main',
2021-07-03 14:06:31 +08:00
data: { package: {}, mpc: {}, mpfr: {}, gmp : {}, isl: {}, patch: {} },
2021-05-05 20:37:17 +08:00
mounted: function () {
this.getPackage('gcc');
this.getMpc();
this.getMpfr();
this.getGmp();
this.getIsl();
2021-07-03 14:06:31 +08:00
this.getPatch();
2021-05-05 20:37:17 +08:00
},
methods: {
getPackage: function(name) {
getPackage(name)
.then(response => this.package = response);
},
getMpc: function() {
getPackage('mpc')
.then(response => this.mpc = response);
},
getMpfr: function() {
getPackage('mpfr')
.then(response => this.mpfr = response);
},
getGmp: function() {
getPackage('gmp')
.then(response => this.gmp = response);
},
getIsl: function() {
getPackage('isl')
.then(response => this.isl = response);
},
2021-07-03 14:06:31 +08:00
getPatch: function() {
getPackage('gcc-patch')
.then(response => this.patch = response);
},
2021-05-05 20:37:17 +08:00
}
})
< / script >
2021-07-03 15:00:38 +08:00
## Подготовка
2021-05-05 20:37:17 +08:00
### Дополнительные необходимые файлы
< a :href = "mpc.url" > {{ mpc.url}}< / a >
< a :href = "gmp.url" > {{ gmp.url}}< / a >
< a :href = "mpfr.url" > {{ mpfr.url}}< / a >
< a :href = "isl.url" > {{ isl.url}}< / a >
2021-07-03 14:06:31 +08:00
< a :href = "patch.url" >
{{ patch.url }}
< / a >
2021-06-10 21:28:16 +08:00
Распакуйте дополнительные пакеты:
2021-05-05 20:37:17 +08:00
!> Обратите внимание, что распаковка указанных пакетов должна производится из каталога пакета GCC.
< pre >
tar -xf ../{{ mpfr.fileName }}
mv -v {{ mpfr.name }}-{{ mpfr.version }} {{ mpfr.name }}
tar -xf ../{{ gmp.fileName }}
mv -v {{ gmp.name }}-{{ gmp.version }} {{ gmp.name }}
tar -xf ../{{ mpc.fileName }}
mv -v {{ mpc.name }}-{{ mpc.version }} {{ mpc.name }}
tar -xf ../{{ isl.fileName }}
mv -v {{ isl.name }}-{{ isl.version }} {{ isl.name }}
< / pre >
Смените пути установки библиотек:
```bash
sed -e '/m64=/s/lib64/lib/' \
-e '/m32=/s/m32=.*/m32=..\/lib32$(call if_multiarch,:i386-linux-gnu)/' \
-i.orig gcc/config/i386/t-linux64
```
2021-07-03 15:00:38 +08:00
Пакет {{package.name}} требует использовать отдельную директорию для сборки. Создайте её:
2021-05-05 20:37:17 +08:00
```bash
2021-07-22 00:31:55 +08:00
mkdir -v build
cd build
2021-05-05 20:37:17 +08:00
```
2021-06-26 20:02:42 +08:00
Разрешим сборку `libgcc` с поддержкой многопоточности:
2021-05-05 20:37:17 +08:00
```bash
mkdir -pv $LIN_TGT/libgcc
ln -s ../../../libgcc/gthr-posix.h $LIN_TGT/libgcc/gthr-default.h
```
2021-07-03 15:00:38 +08:00
Настройка:
2021-06-26 20:02:42 +08:00
2021-05-05 20:37:17 +08:00
```bash
2021-06-27 15:52:41 +08:00
../configure \
--build=$(../config.guess) \
--host=$LIN_TGT \
--prefix=/usr \
CC_FOR_TARGET=$LIN_TGT-gcc \
--with-build-sysroot=$LIN \
--enable-initfini-array \
--disable-nls \
--disable-decimal-float \
--disable-libatomic \
--disable-libgomp \
--disable-libquadmath \
--disable-libssp \
--disable-libvtv \
--disable-libstdcxx \
--enable-languages=c,c++ \
2021-06-27 15:58:09 +08:00
--disable-multilib
2021-05-05 20:37:17 +08:00
```
2021-06-26 20:02:42 +08:00
### Для multilib
2021-05-05 20:37:17 +08:00
замените параметр `--disable-multilib` на `--enable-multilib --with-multilib-list=m64,m32`
2021-06-26 20:02:42 +08:00
### Значения параметров
2021-05-05 20:37:17 +08:00
2021-07-20 15:37:42 +08:00
`--enable-initfini-array` - параметр заставляет использовать некоторые внутренние структуры данных, которые необходимы, но не могут быть обнаружены при построении кросс-компилятора.
2021-05-05 20:37:17 +08:00
2021-07-20 15:37:42 +08:00
`--disable-decimal-float, --disable-threads, --disable-libatomic, --disable-libgomp, --disable-libquadmath, --disable-libssp, --disable-libvtv, --disable-libstdcxx` - параметр отключают поддержку десятичных расширений с плавающей запятой, потоковой передачи, libatomic, libgomp, libquadmath, libssp, libvtv и стандартной библиотеки C++ соответственно. Эти функции не будут скомпилированы при сборке кросс-компилятора и не являются необходимыми для кросс-компиляции временной libc.
2021-05-05 20:37:17 +08:00
2021-07-20 15:37:42 +08:00
`--enable-languages =c,c++` - опция включает поддержку компиляторов C и C++. Это единственные языки, которые нужны сейчас.
2021-05-05 20:37:17 +08:00
2021-06-26 20:02:42 +08:00
## Сборка
2021-05-05 20:37:17 +08:00
```bash
make
```
## Установка
2021-06-26 20:02:42 +08:00
2021-05-05 20:37:17 +08:00
```bash
2021-06-26 20:02:42 +08:00
make DESTDIR=$LIN install
2021-05-05 20:37:17 +08:00
```
2021-06-26 20:02:42 +08:00
Некоторые программы используют команду `cc` , а не `gcc` . Создайте символическую ссылку на `gcc` :
2021-05-05 20:37:17 +08:00
```bash
ln -sv gcc $LIN/usr/bin/cc
```