Portál AbcLinuxu, 6. května 2025 00:30

Dotaz: kompilace gcc4.9

28.8.2019 13:30 pou | skóre: 18
kompilace gcc4.9
Přečteno: 231×
Odpovědět | Admin
Ahoj, potřeboval bych zkompilovat gcc4.6, postup který jsem zkoušel nefunguje, můžete mi prosím poradit?
0) export TARGET=x86_64-elf; export PREFIX=/tmp/gcc
1) stahnul jsem binutil - stejný rok vydání jako gcc4.6.4 --tedy binutils-2.25
2)../binutils/configure --target=$TARGET --prefix="$PREFIX" --with-sysroot --disable-nls --disable-werror && make && make install
3)stahnul jsem si gcc4.6.4
4)./contrib/download_prerequisites
5)  aplikovan patch
5)export PATH="$PREFIX/bin:$PATH"
5)../gcc-4.6.4/configure --target=$TARGET --prefix="$PREFIX" --disable-nls --enable-languages=c,c++ --without-headers  --disable-multiarch && make
Chyba při kompilaci:
gcc   -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE  -W -Wall -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -Wold-style-definition -Wc++-compat   -DHAVE_CONFIG_H  -o lto1 \
	lto/lto-lang.o lto/lto.o lto/lto-object.o attribs.o main.o  libbackend.a ../libcpp/libcpp.a ../libdecnumber/libdecnumber.a   -L/media/data/gcc/build_gcc/./gmp/.libs -L/media/data/gcc/build_gcc/./mpfr/.libs -L/media/data/gcc/build_gcc/./mpc/src/.libs -lmpc -lmpfr -lgmp -rdynamic -ldl  -L../zlib -lz ../libcpp/libcpp.a   ../libiberty/libiberty.a ../libdecnumber/libdecnumber.a 
(echo "@set version-GCC 4.6.4"; \
 if [ "" = "experimental" ]; \
 then echo "@set DEVELOPMENT"; \
 else echo "@clear DEVELOPMENT"; \
 fi) > gcc-vers.texiT
echo @set srcdir /media/data/gcc/build_gcc/gcc/../../gcc-4.6.4/gcc >> gcc-vers.texiT
if [ -n "(GCC) " ]; then \
  echo "@set VERSION_PACKAGE (GCC) " >> gcc-vers.texiT; \
fi
echo "@set BUGURL @uref{http://gcc.gnu.org/bugs.html}" >> gcc-vers.texiT; \
mv -f gcc-vers.texiT gcc-vers.texi
if [ xinfo = xinfo ]; then \
	makeinfo --split-size=5000000 --no-split -I . -I ../../gcc-4.6.4/gcc/doc \
		-I ../../gcc-4.6.4/gcc/doc/include -o doc/cpp.info ../../gcc-4.6.4/gcc/doc/cpp.texi; \
fi
if [ xinfo = xinfo ]; then \
	makeinfo --split-size=5000000 --no-split -I . -I ../../gcc-4.6.4/gcc/doc \
		-I ../../gcc-4.6.4/gcc/doc/include -o doc/gcc.info ../../gcc-4.6.4/gcc/doc/gcc.texi; \
fi
../../gcc-4.6.4/gcc/doc/gcc.texi:89: warning: @tex by se mělo pouze objevit na začátku řádku
../../gcc-4.6.4/gcc/doc/gcc.texi:209: chybí odpovídající „@end tex“
../../gcc-4.6.4/gcc/doc/gcc.texi:209: chybí odpovídající „@end multitable“
../../gcc-4.6.4/gcc/doc/gcc.texi:209: chybí odpovídající „@end titlepage“
make[1]: *** [Makefile:4286: doc/gcc.info] Chyba 1
make[1]: Opouští se adresář „/media/pou/data/gcc/build_gcc/gcc“
make: *** [Makefile:5273: all-gcc] Chyba 2

Ano googlit jsem zkoušel a další patche moc nefungovaly.

Říkam si, že to přece muselo fungovat, takže postup je špatný, kde tedy dělám chybu? Je potřeba ještě glibc ze stejného data??

Cíl mé snahy, je si udělat cross kompilator na starý debian.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

28.8.2019 13:45 debian+
Rozbalit Rozbalit vše Re: kompilace gcc4.9
Odpovědět | | Sbalit | Link | Blokovat | Admin
Debian Jessie ma gcc 4.9. Co tak si nainstalovat do chroot a mas to naisto iste, ze Ti to pojde.
28.8.2019 14:06 pou | skóre: 18
Rozbalit Rozbalit vše Re: kompilace gcc4.9
Děkuji za odpověď.

Ano to jsem zkoušel nainstalovat balíček gcc4.9 ze staršího debianu, problém je potom ten, že když kompiluji program pomocí "gcc-4.9 --sysroot=/cesta/k/sysrootu", tak vše projde parádně, jen jeden prográmek hází chybu s "libm".

Zjistil jsem, že i když specifikuji, kde má tu knihovnu hledat "-L/cesta/k/sysrootu/lib/x86_64-linux-gnu", tak (nevím proč) to ignoruje a slinkuje to s "/lib/x86_64-linux-gnu/libm.so.6" -potom program nejde spustit kvuli nekompabilite glibc.

Pokud však použiji přímo při linkování absolutní cestu "/cesta/k/sysrootu/lib/x86_64-linux-gnu/libm.so.6" vše funguje.

Nechal jsem si tedy vypsat kde gcc hledá knihovny:
libraries: =/usr/lib/gcc/x86_64-linux-gnu/4.9/:/usr/lib/gcc/x86_64-linux-gnu/4.9/../../../../x86_64-linux-gnu/lib/x86_64-linux-gnu/4.9/:/usr/lib/gcc/x86_64-linux-gnu/4.9/../../../../x86_64-linux-gnu/lib/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.9/../../../../x86_64-linux-gnu/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/4.9/../../../x86_64-linux-gnu/4.9/:/usr/lib/gcc/x86_64-linux-gnu/4.9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.9/../../../../lib/:/opt/sysroot_x86/lib/x86_64-linux-gnu/4.9/:/opt/sysroot_x86/lib/x86_64-linux-gnu/:/opt/sysroot_x86/lib/../lib/:/opt/sysroot_x86/usr/lib/x86_64-linux-gnu/4.9/:/opt/sysroot_x86/usr/lib/x86_64-linux-gnu/:/opt/sysroot_x86/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/4.9/../../../../x86_64-linux-gnu/lib/:/usr/lib/gcc/x86_64-linux-gnu/4.9/../../../:/opt/sysroot_x86/lib/:/opt/sysroot_x86/usr/lib/
a zjistil že "sysroot" cestu hledá až na konci. Toto bych snad mohl změnit právě onou rekompilaci gcc.....

Pokud jdu na to blbě, budu rád, když dostanu radu. Uplný chroot toho systému nechci, protože na kompilaci jsou navázané další věci (croos kompilace na ARMy), proto potřebuju crooss tool pro stary debian (stejně jako mám cross tool pro ARM).

skunkOS avatar 28.8.2019 14:07 skunkOS | skóre: 27 | blog: Tak nějak
Rozbalit Rozbalit vše Re: kompilace gcc4.9
Odpovědět | | Sbalit | Link | Blokovat | Admin
https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=gcc46#n42
http://martinrotter.github.io
28.8.2019 15:44 Trubicoid2
Rozbalit Rozbalit vše Re: kompilace gcc4.9
Odpovědět | | Sbalit | Link | Blokovat | Admin
ta chyba v ../../gcc-4.6.4/gcc/doc/gcc.texi je jen nějaká dokumentace, to asi nevadí, ne?

použij make -k -j4 (jestli máš 4 jádra), ale bych si myslel, že budeš stejně potřebovat starší binutils

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.