В Ubuntu Trusty есть пакет с исходным кодом для gcc-3.3, который собирает только libstdc++5.

Есть ли способ собрать соответствующие deb-файлы gcc и g++ для совместного использования или установки dpkg -i ?

1 ответ1

0

Да, вы можете использовать фрагмент кода и патч ниже. Он был протестирован с использованием trusty на amd64, но может работать и с более поздними версиями ubuntu. Он успешно скомпилировал устаревшую версию qemu 0.9 от 2007 года здесь.

НКУ-3.3_3.3.6ds1_reenable_full_deb_pkgs_build.patch

# decode gcc-3.3_3.3.6ds1_reenable_full_deb_pkgs_build.patch
# (contains hard tabs which are unsupported by markdown)
cat <<EOF | uudecode
begin-base64-encoded 664 Z2NjLTMuM18zLjMuNmRzMV9yZWVuYWJsZV9mdWxsX2RlYl9wa2dzX2J1aWxkLnBhdGNo
VGhpcyBwYXRjaCByZWVuYWJsZXMgZGViIHBrZyBidWlsZGluZyBvZiBnY2Mg
YW5kIGcrKyBhbmQgb3RoZXJzCmluIGdjYy0zLjMtMy4zLjZkczEtMTZ1YnVu
dHUqIChhbmQgbGF0ZXIpIHNvdXJjZSBwYWNrYWdlcy4KCiMgZmV0Y2ggZ2Nj
IHNvdXJjZSB1c2luZyB3Z2V0IGFuZCB1bnBhY2sgLi4KREVCU1JDPWh0dHA6
Ly9hcmNoaXZlLnVidW50dS5jb20vdWJ1bnR1L3Bvb2wvdW5pdmVyc2UvClZC
PWdjYy0zLjNfMy4zLjZkczEKVlA9MjV1YnVudHU0CndnZXQgLS1uby1jaGVj
ay1jZXJ0aWZpY2F0ZSAkREVCU1JDL2cvZ2NjLTMuMy8kVkIub3JpZy50YXIu
Z3oKd2dldCAtLW5vLWNoZWNrLWNlcnRpZmljYXRlICRERUJTUkMvZy9nY2Mt
My4zLyRWQi0kVlAuZGlmZi5negp3Z2V0IC0tbm8tY2hlY2stY2VydGlmaWNh
dGUgJERFQlNSQy9nL2djYy0zLjMvJFZCLSRWUC5kc2MKZHBrZy1zb3VyY2Ug
LXggJFZCLSRWUC5kc2MKCiMgYWx0ZXJuYXRpdmVseSwgaWYgeW91IGhhdmUg
ZGViLXNyYyBzZXQgdXAgaW4gc291cmNlcy5saXN0CiNhcHQtZ2V0IHNvdXJj
ZSBnY2MtMy4zCgojIHJlZW5hYmxlIGRlYiBwa2cgYnVpbGRpbmcKY2QgZ2Nj
LTMuMyovCnBhdGNoIC1wMSA8IC4uL2djYy0zLjNfMy4zLjZkczFfcmVlbmFi
bGVfZnVsbF9kZWJfcGtnc19idWlsZC5wYXRjaAoKIyBmaXggZGhfbW92ZWZp
bGVzIHdpbGRjYXJkIGdsb2JiaW5nCiMgKGNtZGxpbmUgcGFyYW0gZ2xvYiB3
b3JrcyBvbmx5IHdpdGggREhfQ09NUEFUPTIpCmZvciBmIGluIGRlYmlhbi9y
dWxlcy5kL2JpbmFyeS0qLm1rCmRvIHNlZCAtaSAtZSAncy9kaF9tb3ZlZmls
ZXMvREhfQ09NUEFUPTIgXDAvJyAkZgpkb25lCgojIGNvbXBpbGUgYW5kIGJ1
aWxkIGRlYiBwYWNrYWdlcwpkZWJpYW4vcnVsZXMgY29udHJvbApkZWJ1aWxk
IGNsZWFuCmRlYnVpbGQgLXVjIC11cwpjZCAuLgoKLS0tIGdjYy0zLjMtMy4z
LjZkczEvZGViaWFuL2NvbnRyb2wubTQKKysrIGdjYy0zLjMtMy4zLjZkczEv
ZGViaWFuL2NvbnRyb2wubTQKQEAgLTM4LDcgKzM4LDYgQEAKICcpZG5sCiAK
IGlmZGVmKGBUQVJHRVQnLCBgJywgYAotaWZlbmFibGVkKGBkaXNhYmxlZCcs
YAogUGFja2FnZTogZ2NjYCdQVi1iYXNlCiBBcmNoaXRlY3R1cmU6IGFtZDY0
IGkzODYKIFNlY3Rpb246IGRldmVsCkBAIC01MSw3ICs1MCw2IEBACiAgVGhp
cyB2ZXJzaW9uIG9mIEdDQyBpcyBub3QgeWV0IGF2YWlsYWJsZSBmb3IgdGhp
cyBhcmNoaXRlY3R1cmUuCiAgUGxlYXNlIHVzZSB0aGUgY29tcGlsZXJzIGZy
b20gdGhlIGdjYy1zbmFwc2hvdCBwYWNrYWdlIGZvciB0ZXN0aW5nLgogJylg
J2RubAotJylgJ2RubCBkaXNhYmxlZAogJylgJ2RubCBuYXRpdmUKIAogaWZl
bmFibGVkKGBsaWJnY2MnLGAKQEAgLTU2LDkgKzU0LDkgQEAKIAogaWZlbmFi
bGVkKGBsaWJnY2MnLGAKIFBhY2thZ2U6IGxpYmdjY2AnR0NDX1NPYCdMUwot
QXJjaGl0ZWN0dXJlOiBpZmRlZihgVEFSR0VUJyxgYWxsJyxgaHBwYSBtNjhr
JykKK0FyY2hpdGVjdHVyZTogaWZkZWYoYFRBUkdFVCcsYGFsbCcsYGFueScp
CiBTZWN0aW9uOiBpZmRlZihgVEFSR0VUJyxgZGV2ZWwnLGBsaWJzJykKLVBy
aW9yaXR5OiBpZmRlZihgVEFSR0VUJyxgZXh0cmEnLHJlcXVpcmVkKQorUHJp
b3JpdHk6IGlmZGVmKGBUQVJHRVQnLGBleHRyYScsUFJJKG9wdGlvbmFsKSkK
IERlcGVuZHM6ICR7c2hsaWJzOkRlcGVuZHN9CiBpZmRlZihgVEFSR0VUJyxg
UHJvdmlkZXM6IGxpYmdjY2AnR0NDX1NPYCctVEFSR0VULWRjdjEKICcsYCcp
YCdkbmwKLS0tIGdjYy0zLjMtMy4zLjZkczEvZGViaWFuL3J1bGVzLmNvbmYK
KysrIGdjYy0zLjMtMy4zLjZkczEvZGViaWFuL3J1bGVzLmNvbmYKQEAgLTE2
OCw3ICsxNjgsNyBAQAogICBhZGRvbnMgPSBsaWJnY2MgbGliNjRnY2MgbGli
Y3h4IGxpYjY0Y3h4IGNkZXYgYysrZGV2CiBlbHNlCiAgIGxhbmd1YWdlcyA9
IGMgYysrCi0gIGFkZG9ucyA9IGxpYmN4eCAjbGliZ2NjIGNkZXYgYysrZGV2
IGxpYm5vZiBsaWJzIGxpYjY0Y3h4IGxpYm5vZiAKKyAgYWRkb25zID0gbGli
Y3h4IGxpYmdjYyBjZGV2IGMrK2RldiBsaWJub2YgbGlicyBsaWI2NGN4eCBs
aWJub2YgCiAgICNsYW5ndWFnZXMgKz0gYWRhIGY3NyBqYXZhIG9iamMgcGFz
Y2FsIHRyZWVsYW5nCiAgICNhZGRvbnMgKz0gZmFzdGphciBmZGV2IGZpeGlu
Y2wgamF2YWRldiBsaWJnMmMgbGliZmZpIGxpYmdjaiBsaWJvYmpjIFwKICAg
IwkgICBsaWI2NGZmaSBsaWI2NGdjaiBsaWI2NG9iamMgbGliNjRnMmMgb2Jq
Y2RldiBwcm90byBsaWJnbmF0IFwKLS0tIGdjYy0zLjMtMy4zLjZkczEvZGVi
aWFuL3J1bGVzLmRlZnMKKysrIGdjYy0zLjMtMy4zLjZkczEvZGViaWFuL3J1
bGVzLmRlZnMKQEAgLTE0MSwxMCArMTQxLDEwIEBACiAjIGxpYm9iamMxKS4K
IHdpdGhfY29tbW9uX2xpYnMgOj0geWVzCiAKLXdpdGhfZGV2IDo9IG5vCit3
aXRoX2RldiA6PSB5ZXMKIAogIyBtdWx0aWFyY2ggLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLXdpdGhfbXVsdGlhcmNoIDo9IG5vCit3aXRoX211bHRpYXJjaCA6
PSB5ZXMKIAogIyBDIC0tLS0tLS0tLS0tLS0tLS0tLS0tCiBlbmFibGVkX2xh
bmd1YWdlcyA6PSBjCkBAIC00NzcsOSArNDc3LDkgQEAKICMgU2hhcmVkIGxp
YmdjYyAtLS0tLS0tLS0tLS0tLS0tLS0tLQogd2l0aF9zaGFyZWRfbGliZ2Nj
IDo9IHllcwogCi0jaWZlcSAoJCh3aXRoX2NvbW1vbl9saWJzKSx5ZXMpCi0j
ICB3aXRoX2xpYmdjYyA6PSB5ZXMKLSNlbHNlCitpZmVxICgkKHdpdGhfY29t
bW9uX2xpYnMpLHllcykKKyAgd2l0aF9saWJnY2MgOj0geWVzCitlbHNlCiBp
ZmRlZiBERUJfQ1JPU1MKICAgd2l0aF9saWJnY2MgOj0geWVzCiBlbHNlCkBA
IC00OTUsMTAgKzQ5NSwxMCBAQAogICAgICAgd2l0aF9zaGFyZWRfbGliZ2Nj
IDo9IG5vCiAgICAgZW5kaWYKICAgZW5kaWYKLSAgd2l0aF9saWJnY2MgOj0g
bm8KLSAgd2l0aF9zaGFyZWRfbGliZ2NjIDo9IG5vCisgICN3aXRoX2xpYmdj
YyA6PSBubworICAjd2l0aF9zaGFyZWRfbGliZ2NjIDo9IG5vCitlbmRpZgog
ZW5kaWYKLSNlbmRpZgogCiAjIHJ1biB0ZXN0c3VpdGUgLS0tLS0tLS0tLS0t
LS0tLS0tLS0KIHdpdGhfY2hlY2sgOj0geWVzCkBAIC01MDMsNyArNTAzLDcg
QEAKICMgcnVuIHRlc3RzdWl0ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLQogd2l0
aF9jaGVjayA6PSB5ZXMKICMgSWYgeW91IGRvbid0IHdhbnQgdG8gcnVuIHRo
ZSBnY2MgdGVzdHN1aXRlLCBzZXQgYHdpdGhfY2hlY2snIHRvIGBubycKLSN3
aXRoX2NoZWNrIDo9IGRpc2FibGVkIGJ5IGhhbmQKK3dpdGhfY2hlY2sgOj0g
bm8KIGlmZXEgKCQod2l0aF9iYXNlX29ubHkpLHllcykKICAgd2l0aF9jaGVj
ayA6PSBubwogZW5kaWYKLS0tIGdjYy0zLjMtMy4zLjZkczEvZGViaWFuL3J1
bGVzMgorKysgZ2NjLTMuMy0zLjMuNmRzMS9kZWJpYW4vcnVsZXMyCkBAIC02
Nyw4ICs2Nyw4IEBACiAgIGxpYmRpciAgICAgID0gbGliCiBlbmRpZgogYnVp
bGRsaWJkaXIJPSAkKGJ1aWxkZGlyKS8kKFRBUkdFVF9BTElBUykKLWdjY19s
aWJfZGlyCT0gJChQRikvJChsaWJkaXIpL2djYy1saWIvJChUQVJHRVRfQUxJ
QVMpLyQoVkVSKQotZ2NjX2xleGVjX2Rpcgk9ICQoUEYpLyQobGliZGlyKS9n
Y2MtbGliLyQoVEFSR0VUX0FMSUFTKS8kKFZFUikKK2djY19saWJfZGlyCT0g
JChQRikvbGliL2djYy1saWIvJChUQVJHRVRfQUxJQVMpLyQoVkVSKQorZ2Nj
X2xleGVjX2Rpcgk9ICQoUEYpL2xpYi9nY2MtbGliLyQoVEFSR0VUX0FMSUFT
KS8kKFZFUikKICNnY2NfbGliX2Rpcgk9ICQoUEYpLyQobGliZGlyKS9nY2Mv
JChUQVJHRVRfQUxJQVMpLyQoVkVSKQogI2djY19sZXhlY19kaXIJPSAkKFBG
KS9saWJleGVjL2djYy8kKFRBUkdFVF9BTElBUykvJChWRVIpCiAKLS0tIGdj
Yy0zLjMtMy4zLjZkczEvZGViaWFuL3J1bGVzLmQvYmluYXJ5LWJhc2UubWsK
KysrIGdjYy0zLjMtMy4zLjZkczEvZGViaWFuL3J1bGVzLmQvYmluYXJ5LWJh
c2UubWsKQEAgLTEsNCArMSw0IEBACi0jYXJjaF9iaW5hcmllcyA6PSBiYXNl
ICQoYXJjaF9iaW5hcmllcykKK2FyY2hfYmluYXJpZXMgOj0gYmFzZSAkKGFy
Y2hfYmluYXJpZXMpCiAKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCiAjIGdjYy1iYXNlCi0tLSBnY2MtMy4zLTMuMy42ZHMxL2RlYmlhbi9y
dWxlcy5kL2JpbmFyeS1nY2MubWsKKysrIGdjYy0zLjMtMy4zLjZkczEvZGVi
aWFuL3J1bGVzLmQvYmluYXJ5LWdjYy5tawpAQCAtODUsNiArODUsOSBAQAog
CiAJcm0gLWYgJChkKS8kKFBGKS8kKGxpYmRpcikvbGliZ2NjX3Muc28KIAls
biAtc2YgLyQobGliZGlyKS9saWJnY2Nfcy5zby4kKEdDQ19TT05BTUUpICQo
ZCkvJChnY2NfbGliX2RpcikvbGliZ2NjX3Muc28KKwlsbiAtc2YgL3Vzci8k
KGxpYmRpcikvY3J0MS5vICQoZCkvJChnY2NfbGliX2RpcikvY3J0MS5vCisJ
bG4gLXNmIC91c3IvJChsaWJkaXIpL2NydGkubyAkKGQpLyQoZ2NjX2xpYl9k
aXIpL2NydGkubworCWxuIC1zZiAvdXNyLyQobGliZGlyKS9jcnRuLm8gJChk
KS8kKGdjY19saWJfZGlyKS9jcnRuLm8KIGlmZXEgKCQoYmlhcmNoKSx5ZXMp
CiAJcm0gLWYgJChkKS8kKFBGKS8kKGxpYjY0KS9saWJnY2Nfcy5zbwogCWxu
IC1zZiAvJChsaWI2NCkvbGliZ2NjX3Muc28uJChHQ0NfU09OQU1FKSAkKGQp
LyQoZ2NjX2xpYl9kaXIpL2xpYmdjY19zXzY0LnNvCg==
====
EOF

фрагмент кода

# fetch gcc source using wget and unpack ..
DEBSRC=http://archive.ubuntu.com/ubuntu/pool/universe/
VB=gcc-3.3_3.3.6ds1
VP=24ubuntu5
wget --no-check-certificate $DEBSRC/g/gcc-3.3/$VB.orig.tar.gz
wget --no-check-certificate $DEBSRC/g/gcc-3.3/$VB-$VP.diff.gz
wget --no-check-certificate $DEBSRC/g/gcc-3.3/$VB-$VP.dsc
dpkg-source -x $VB-$VP.dsc

# .. alternatively, if you have deb-src set up in sources.list
#apt-get source gcc-3.3

# reenable deb pkg building
cd gcc-3.3*/
patch -p1 < ../gcc-3.3_3.3.6ds1_reenable_full_deb_pkgs_build.patch

# fix dh_movefiles wildcard globbing
# (cmdline param glob works only with DH_COMPAT=2)
for f in debian/rules.d/binary-*.mk
do sed -i -e 's/dh_movefiles/DH_COMPAT=2 \0/' $f
done

# compile and build deb packages
debian/rules control
debuild clean
debuild -uc -us
cd ..

# install results
sudo dpkg -i {cpp,gcc,g++}-3.3*.deb libstdc++5{_3.3.6,-3.3-dev}*.deb

Не устанавливайте libgcc1_3.3.6*deb Он может конфликтовать с версией, уже установленной на вашем хосте, и он не нужен для работы gcc-3.3, потому что libgcc_s.so присутствующий на хосте, символически связан с. То же самое верно для crtn.o crti.o и crt1.o gcc-3.3 нуждается в них при связывании встроенных объектов, т.е. когда вызывается ld . Они являются частью пакета libc6 (здесь). Процесс сборки установит ссылки ниже /usr/lib/gcc-lib/x86_64-linux-gnu/3.3.6/ (триплет хоста x86_64-linux-gnu может отличаться в вашей системе), чтобы ld мог обнаружить установленные версии libc6.

Вам не нужно ничего менять, но если вам нужно настроить эти ссылки по своему вкусу, вы можете изменить их до сборки пакетов deb. Посмотрите на конец прилагаемого файла патча. Соответствующий файл для таких изменений - debian/rules.d/binary-gcc.mk .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .