Toon posts:

[Gentoo 2005.1] Linux --> emerge gcc --> compile error.

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik heb een nieuwe Stage3 (Athlon-xp) Gentoo installatie gedaan. versie 2005.1. (op een oud AMD Thunderbird 1000Mhz systeempie met 512Mb ram) Dit is allemaal goed verlopen. Het enige wat toe nu toe mis gaat is het volgende: Na een emerge --sync is er een update voor gcc beschikbaar:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<servername> ~ # emerge --update --deep --newuse world --pretend

These are the packages that I would merge, in order:

Calculating world dependencies ...done!
[ebuild   R   ] sys-devel/gcc-3.3.5.20050130-r1
[ebuild     U ] sys-libs/glibc-2.3.5-r1 [2.3.4.20041102-r1]
[ebuild     U ] sys-apps/man-1.6-r1 [1.6]
[ebuild     U ] sys-apps/man-pages-2.07 [2.02]
[ebuild     U ] sys-apps/grep-2.5.1-r8 [2.5.1-r7]
[ebuild     U ] sys-devel/flex-2.5.4a-r6 [2.5.4a-r5]
[ebuild     U ] sys-apps/sandbox-1.2.12 [1.2.11]
[ebuild     U ] sys-apps/debianutils-2.14.1-r1 [2.13.1-r1]
[ebuild     U ] sys-libs/com_err-1.38 [1.37]
[ebuild     U ] sys-libs/ss-1.38 [1.37]
[ebuild     U ] sys-fs/e2fsprogs-1.38 [1.37-r1]
[ebuild     U ] sys-apps/baselayout-1.11.13 [1.11.12-r4]
[ebuild     U ] sys-process/psmisc-21.6 [21.5]
[ebuild     U ] sys-apps/file-4.13 [4.12]
[ebuild     U ] app-arch/bzip2-1.0.3-r5 [1.0.3-r4]
[ebuild     U ] net-misc/rsync-2.6.0-r6 [2.6.0-r5]
[ebuild     U ] sys-devel/make-3.80-r2 [3.80-r1]
<servername> ~ #
<servername> ~ #


maar na een emerge gcc krijg ik de volgende melding:


-c /var/tmp/portage/gcc-3.3.5.20050130-r1/work/gcc-3.3.5/gcc/crtstuff.c -DCRT _BEGIN \
-o crtbegin.o
In file included from /var/tmp/portage/gcc-3.3.5.20050130-r1/work/gcc-3.3.5/gcc/ crtstuff.c:61:
tconfig.h:7: internal compiler error: Illegal instruction
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://bugs.gentoo.org/> for instructions.
Preprocessed source stored into /var/tmp/portage/gcc-3.3.5.20050130-r1/temp/ccgM nDgT.out file, please attach this to your bugreport.
make[2]: *** [crtbegin.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory `/var/tmp/portage/gcc-3.3.5.20050130-r1/work/build/gc c'
make[1]: *** [stage2_build] Error 2
make[1]: Leaving directory `/var/tmp/portage/gcc-3.3.5.20050130-r1/work/build/gc c'
make: *** [bootstrap-lean] Error 2

!!! ERROR: sys-devel/gcc-3.3.5.20050130-r1 failed.
!!! Function gcc_do_make, Line 1214, Exitcode 2
!!! emake failed with bootstrap-lean
!!! If you need support, post the topmost build error, NOT this status message.


Ik vind het prima als ik zo'n bug-report moet doen... maar hoe nu verder? Gewoon negeren zolang er wel een werkende versie is? En zolang met de oudere versie van gcc draaien? Wat is nu gangbaar binnen het Linux-wereldje? Ik heb zoiets als dit nog nooit gehad....

[ Voor 4% gewijzigd door Verwijderd op 22-08-2005 10:44 ]


  • Tony Vroon
  • Registratie: Juni 1999
  • Laatst online: 13-06-2020

Tony Vroon

Werkt nu ergens anders

Illegal instruction geeft aan dat je CPU de instructie niet kan uitvoeren. Dat geeft aan dat je een optimalisatie hebt ingeschakeld die niet wordt ondersteund. Bijvoorbeeld SSE1 op een ouderwetse Athlon Thunderbird. Wat zijn je CFLAGS in /etc/make.conf, en zou je je /proc/cpuinfo eens kunnen posten?

"Wie is deesen figuur, hier ten topic aangheduidt als 'hij', wiens mededelinghe soo eenen consternatie weet te ontluycken :? " -- dion_b


  • grizzlybear
  • Registratie: Oktober 2001
  • Laatst online: 17-03 10:01
Uhhm, een AMD Thunderbird is GEEN athlon-xp. Je moet dus een i686 stage3 uitvoeren.

Verwijderd

Topicstarter
grizzlybear schreef op maandag 22 augustus 2005 @ 11:03:
Uhhm, een AMD Thunderbird is GEEN athlon-xp. Je moet dus een i686 stage3 uitvoeren.
verrek... dat meen je niet.... eh... ik weet wel dat wat jij zegt klopt.... maar ik las athlon-xp altijd als AMD athlon / XP dus "of of" en niet alleen maar als type AMD Athlon XP.

ok, helemaal mee eens, ik geloof je gelijk dat ik het fout gedaan heb, maar waarom gaat het voor de rest wel allemaal goed dan? Waarom heb ik dan geen problemen met booten, en andere programma's die ik al geemerged heb enzo? Is dat dan omdat die programma's allemaal instructies gebruiken die voor beide proccesoren geldig zijn en dat ik dus toevallig geluk heb gehad? En omdat GCC een compiler programma is en ik neem dus aan zo goed als alle instructies in zich heeft die er zijn kom ik het dus daarbij pas tegen, klopt dat?

  • Straphka
  • Registratie: Augustus 2002
  • Niet online
Ja, volgens mij klopt dat. De instructies zoals SSE1 worden gedefieneerd in de gcc-libs. Als je dus geen progs hebt die die instructies aanroepen, is er ook niks aan de hand.
Maar als je die libs opnieuw moet compilen, gaat ie dus over zijn nek.

Dit is tenminste zoals ik het begrijp, correct me if im wrong

  • grizzlybear
  • Registratie: Oktober 2001
  • Laatst online: 17-03 10:01
Wat Straphka zegt klopt inderdaad. De installatie tot waar m_x hem heeft gedaan is maar erg basis. Uitpakken van een stage3 gebruikt alleen maar tar en gunzip. Ook het mounten en eventueel chroot-en gaat via de liveCD en die is i386. Pas op het moment dat je gechroot bent en je probeert iets te doen, wat SSE gebruikt gaat het mis. Gebruik voor de Athlon dus geen sse of mmx2, maar wel 3dNow.

Verwijderd

Topicstarter
grizzlybear schreef op maandag 22 augustus 2005 @ 11:42:
Wat Straphka zegt klopt inderdaad. De installatie tot waar m_x hem heeft gedaan is maar erg basis. Uitpakken van een stage3 gebruikt alleen maar tar en gunzip. Ook het mounten en eventueel chroot-en gaat via de liveCD en die is i386. Pas op het moment dat je gechroot bent en je probeert iets te doen, wat SSE gebruikt gaat het mis. Gebruik voor de Athlon dus geen sse of mmx2, maar wel 3dNow.
Maar wat jij zei klopte ook?

de Athlon-xp stage is niet voor Athlon T-bird processoren? Ik heb dus ook sowieso de verkeerde stage gebruikt?

  • Surfer
  • Registratie: December 2001
  • Laatst online: 06-03 23:19

Surfer

~

Verwijderd schreef op maandag 22 augustus 2005 @ 12:28:
[...]
Maar wat jij zei klopte ook?

de Athlon-xp stage is niet voor Athlon T-bird processoren? Ik heb dus ook sowieso de verkeerde stage gebruikt?
Ik ben bang van wel. Je zal je systeem opnieuw op moeten zetten, maar dan met de i686 stage3 tarball.
Oh ja, voor de volledigheid hier de Safe CFlags voor je processor:

code:
1
2
3
4
5
 Athlon-tbird, aka K7 (AMD)

CHOST="i686-pc-linux-gnu"
CFLAGS="-march=athlon-tbird -O2 -pipe -fomit-frame-pointer"
CXXFLAGS="-march=athlon-tbird -O2 -pipe -fomit-frame-pointer"


Kun je hier vinden

“I'd give an arm to be ambidextrous!"


  • deepbass909
  • Registratie: April 2001
  • Laatst online: 00:13

deepbass909

[☼☼] [:::][:::] [☼☼]

bij CXXFLAGS kun je beter "$CFLAGS" invullen. Deze twee zijn in 99% van de gevallen namelijk gelijk.

Waarschuwing, opperprutser aan het werk... en als je een opmerking van mij niet snapt, klik dan hier


  • Surfer
  • Registratie: December 2001
  • Laatst online: 06-03 23:19

Surfer

~

deepbass909 schreef op dinsdag 23 augustus 2005 @ 09:43:
bij CXXFLAGS kun je beter "$CFLAGS" invullen. Deze twee zijn in 99% van de gevallen namelijk gelijk.
Doe ik inderdaad ook eigenlijk altijd, maar ik heb in dit geval gewoon de inhoud van de Safe CFlags wikipagina overgenomen :)
Het is trouwens "${CFLAGS}" ...
Dan wordt het dus:
code:
1
2
3
CHOST="i686-pc-linux-gnu"
CFLAGS="-march=athlon-tbird -O2 -pipe -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"


Let er wel op dat als je een stage3 installatie doet, dat je dan nooit de CHOST instelling wijzigt. Dit kan alleen als je een stage1 installatie doet.

“I'd give an arm to be ambidextrous!"


  • Straphka
  • Registratie: Augustus 2002
  • Niet online
[muggezift modus]

$CFLAGS en ${CFLAGS} zijn hetzelfde. De {} zijn om aan te geven waar de variabele start en stop, dus je kan er ook spaties (en $'s?) in gebruiken.
In dit geval is het dus gelijk.

/muggeziftmodus

  • Surfer
  • Registratie: December 2001
  • Laatst online: 06-03 23:19

Surfer

~

Straphka schreef op dinsdag 23 augustus 2005 @ 11:20:
[muggezift modus]

$CFLAGS en ${CFLAGS} zijn hetzelfde. De {} zijn om aan te geven waar de variabele start en stop, dus je kan er ook spaties (en $'s?) in gebruiken.
In dit geval is het dus gelijk.

/muggeziftmodus
Wist ik niet. Weer iets geleerd :P

“I'd give an arm to be ambidextrous!"

Pagina: 1