Superuser

Autor Thema: gcc 3.3 auf OCTANE (6.5.01) - Segemtation Failt  (Gelesen 21343 mal)

christophl

  • Gast
gcc 3.3 auf OCTANE (6.5.01) - Segemtation Failt
« am: 01. Januar 2015, 20:50:33 »
Hallo liebe Mooder,

habe nach langer Zeit mal wieder meine Octane angeworfen und um die Feiertage zu nutzen um mir C lernen. Ich hatte seinerzeit nie Zeit und keinen gcc auf der Madschine installiert.

Habe mir heute von freeware.sgi.com den die gcc 3.3-tar herunter geladen und auch soweit problemlos installiert.

Testweise habe ich dan versucht folgendes Programm (Eins)

#include <stdio.h>
int main()
{
char me[20];

printf("Was ist Dein Name?");
scanf("%s",&me);
prinf("Schön Dich zu sehen, %s!\n",me);

return(0);
}


mit

gcc /home/krixx/C/Eins -o /home/krixx/C/Eins.c zu kompilieren. Der Vorgang bricht mit einem Segementation Fault ab. Habt Ihr eine Idee woran das liegen kann? Habe auf meiner Maschine nur Irix 6.5.01080747 laufen.

Da  diese Version insgesamt ja schon älter ist meine Vermutung, dass es möglicherweise daran liegen kann. Vor dem Hintergrund die Anschlussfrage, ob es noch eine Quelle gibt, wo ich Updates bekommen kann.

Herzliche Grüße und ein erfolgreiches Jahr 2015  :)

Christoph


 




mood-indigo.org - Das unabhängige Silicon Graphics User Forum

gcc 3.3 auf OCTANE (6.5.01) - Segemtation Failt
« am: 01. Januar 2015, 20:50:33 »

proxima

  • Gast
Re: gcc 3.3 auf OCTANE (6.5.01) - Segemtation Failt
« Antwort #1 am: 02. Januar 2015, 14:51:21 »
seg faults beim gcc kann viele Gründe haben  ;) . Zum ersten weiss ich nich,gegen welche libc der freeware 3.3 gelinkt ist,das könnte ein Grund sein. Zum zweiten wäre ein Upgrade deiner Octane schon angebracht, dh. die libs und header sind way TOO OOOLD. Drittens kann der gcc selber ein weghaben, wenn er mit komischen Optimierungen läuft. Viertens könnte der Ram ein Problem haben. (Wobei da eher Segfault 11 kommt)

Zum Upgrade: es gab mal im Supportfolio von sgi.com die ISOs von IRIX 6.5.22m. Ob das noch so ist, weiss ich nicht, weil ich zu faul bin, meine Serials dort zu registrieren. Offenbar wollen die unbedingt Support-Verträge verkaufen  :D. Ansonsten findet sich bestimmt ein ftp oder sonstwas,wo man die files mit patch5086 hinschieben kann. (Der ist ZWINGEND notwendig, sonst macht sich der swmgr bzw. inst in die Hose beim Upgrade).

Zum gcc selber (getestet mit 6.5.22m): falls du den cc auf dem System hast (also development header und libs installiert) kannste den auch selber bootstrappen. Mit dem mipspro in /usr/local gnu-make (3.82), gnu-sed (4.2.2), gnu-m4 (1.4.17), gnu-bison(1.875 reicht für den gcc-3.4.6) und gawk bauen,eventuell auch noch libiconv. (gibbet alles auf ftp.gnu.org). dann den gcc-3.4.6 holen und selber bauen  ;D Der gcc mag es sehr,wenn er in einem separaten ObjDIR gebaut wird. Also mkdir gccbuild,  cd gccbuild , ../gcc-3.4.6/configure --disable-nls --enable-weitere-optionen
Für Anpassungen auf gcc.gnu.org in den Manuals lesen.
/usr/local/bin noch in den PATH aufnehmen und freuen.

wenn du auf 6.5.22m updatest, kannst aber auch die nekoware nutzen (was ich persönlich nich tue), da is auch der gcc dabei.
« Letzte Änderung: 02. Januar 2015, 14:52:52 von proxima »

Offline foetz

  • Mood Bachelor
  • ***
  • Beiträge: 119
    • Profil anzeigen
    • R-A-C
Re: gcc 3.3 auf OCTANE (6.5.01) - Segemtation Failt
« Antwort #2 am: 02. Januar 2015, 23:30:35 »
Testweise habe ich dan versucht folgendes Programm (Eins)

#include <stdio.h>
int main()
{
char me[20];

printf("Was ist Dein Name?");
scanf("%s",&me);
prinf("Schön Dich zu sehen, %s!\n",me);

return(0);
}
deinem zweiten "printf" fehlt das T. davon abgesehen ist es okay.

Zitat
gcc /home/krixx/C/Eins -o /home/krixx/C/Eins.c
du gibst die falschen dateien an.
du sagst dem compiler er soll die datei /home/krixx/C/Eins kompilieren und die resultierende binary soll /home/krixx/C/Eins.c sein. ich gehe mal stark davon aus du moechtest das andersrum haben :P
zudem wenn sich alles im gleichen ordner abspielt ist es sehr viel netter zu nutzen wenn man in selbigem ist. also daher wie folgt:

cd /home/krixx/C
gcc -o Eins Eins.c
./Eins
ein irix 6.5.01 gibt es meines wissens uebrigens nicht. ich denke du meinst 6.5.1.

falls du den cc auf dem System hast (also development header und libs installiert) kannste den auch selber bootstrappen.
nein, dev header und libs sind voraussetzung fuer alle compiler. der cc (mipspro) selbst ist separat und auch entspr. lizensiert.
abgesehen von der spezialversion zum kernel neu kompilieren in den tiefen von /var aber der ist anderweitig nicht brauchbar.


EDIT: noch ein kleiner kommentar zu deinem programm christophl:
wenn jemand einen namen eingibt der laenger ist als 20 zeichen krachts :P du kannst das umgehen indem du z.b. fgets nutzt statt scanf. die funktionen der scanf familie sind eher zum einlesen von daten die man kennt. z.b. lesen von speziell formatiertem text oder auch netzwerksachen. fgets hat allerdings den nachteil dass es das "neue zeile" spezialzeichen mitnimmt. das musst du dann wieder raushauen. z.b. so:
#include <stdio.h>
#include <string.h>

main() {
char me[20], *nl;

printf("Was ist Dein Name?");
fgets(me, 19, stdin);
nl = strchr(me, '\n');

if (nl != NULL)
    *nl = '\0';

printf("Schön Dich zu sehen, %s!\n", me);
}
« Letzte Änderung: 03. Januar 2015, 00:02:46 von foetz »

proxima

  • Gast
Re: gcc 3.3 auf OCTANE (6.5.01) - Segemtation Failt
« Antwort #3 am: 03. Januar 2015, 02:33:22 »
falls du den cc auf dem System hast (also development header und libs installiert) kannste den auch selber bootstrappen.
nein, dev header und libs sind voraussetzung fuer alle compiler. der cc (mipspro) selbst ist separat und auch entspr. lizensiert.
abgesehen von der spezialversion zum kernel neu kompilieren in den tiefen von /var aber der ist anderweitig nicht brauchbar.


hö? wieder was gelernt. dann frag ich mich aber, wie ich auf meinen systemen zu nem funktionierenden 7.2.1 cc gekommen bin *kopfkratz*, obwohl ich nur Installation, Foundation 1&2, Application und die Development CDs besitze... gleich mal die indy plätten und rausfinden

grüße Rico


Offline foetz

  • Mood Bachelor
  • ***
  • Beiträge: 119
    • Profil anzeigen
    • R-A-C
Re: gcc 3.3 auf OCTANE (6.5.01) - Segemtation Failt
« Antwort #4 am: 03. Januar 2015, 04:53:25 »
die Development CDs besitze
welche sind das genau?

proxima

  • Gast
Re: gcc 3.3 auf OCTANE (6.5.01) - Segemtation Failt
« Antwort #5 am: 03. Januar 2015, 16:44:24 »
more .IM

id = "1438"
version = 1
title = "IRIX 6.5 DEVELOPMENT FOUNDATION 1.1"
part_num = "812-0757-002"
sub_id = 0"

more .IM

id = "1402"
version = "1"
title = "IRIX 6.5 DEVELOPMENT LIBRARIES"
part_num = "812-0766-002"
sub_id = "0"

Offline foetz

  • Mood Bachelor
  • ***
  • Beiträge: 119
    • Profil anzeigen
    • R-A-C
Re: gcc 3.3 auf OCTANE (6.5.01) - Segemtation Failt
« Antwort #6 am: 04. Januar 2015, 03:22:21 »
hab die cds nochmal durchgeschaut fuer alle faelle und ein mipspro ist da nicht in sicht. wo auch immer deiner herkommt von den 2 cds ist es keine.

proxima

  • Gast
Re: gcc 3.3 auf OCTANE (6.5.01) - Segemtation Failt
« Antwort #7 am: 04. Januar 2015, 06:14:46 »
auch wenn wir beide diesen fred jetzt bissel gekapert haben...  :D

diese mipspro geschichte hat mich gefuchst (und schlauer bin ich doch nich wirklich)

Also:

Auf meiner Development Foundation gibt es ein Paket BaseCompiler DevelopmentEnviroment 7.2.1. Jetzt hab ich mir die Subs mal angeschaut im swmgr und bin unter BaseCompilerComponents auf /usr/bin/as, /usr/lib/driver, und /usr/lib/driverwrap gestossen. Im System sind in /usr/bin cc, c99, c89,f77 alle auf ../lib/driverwrap gelinkt... Und nun beginnt meine Verwirrung.

Gibt es von einer Development Foundation verschiedene Versionen mit gleicher part_num? Wenn ja, wieso?
Oder lieg ich falsch? (Womit ich kein Problem hätte...)

Im übrigen ziehe ich deine Aussagen nich in Zweifel. Von daher wie gesagt: Verwirrung. Oder einfach Verständnisproblem meinerseits

Offline foetz

  • Mood Bachelor
  • ***
  • Beiträge: 119
    • Profil anzeigen
    • R-A-C
Re: gcc 3.3 auf OCTANE (6.5.01) - Segemtation Failt
« Antwort #8 am: 04. Januar 2015, 07:22:10 »
auch wenn wir beide diesen fred jetzt bissel gekapert haben...  :D
och man wird es uns verzeihen. die gcc sache ist ja schon beantwortet.

Zitat
Auf meiner Development Foundation gibt es ein Paket BaseCompiler DevelopmentEnviroment 7.2.1. Jetzt hab ich mir die Subs mal angeschaut im swmgr und bin unter BaseCompilerComponents auf /usr/bin/as, /usr/lib/driver, und /usr/lib/driverwrap gestossen.
soweit korrekt. das ist das backend.

Zitat
Im System sind in /usr/bin cc, c99, c89,f77 alle auf ../lib/driverwrap gelinkt... Und nun beginnt meine Verwirrung.
Gibt es von einer Development Foundation verschiedene Versionen mit gleicher part_num
wirf doch einfach die 2 cds die du hast rein und grep die idb durch nach c99 usw.
das wird naemlich jetzt noch interessanter weil zum einen sogar wenn du den "normalen" c compiler haettest waere da kein fortran (f77) dabei. und zum anderen hast du den c99 und den gabs erst mit 7.4 :o
um mal etwas mehr klarheit zu bekommen mach mal:
versions -n | fgrep c_dev

Zitat
Im übrigen ziehe ich deine Aussagen nich in Zweifel. Von daher wie gesagt: Verwirrung. Oder einfach Verständnisproblem meinerseits
haette ich auch nicht so aufgefasst, alles bestens meinerseits :)
und die sache ist ja durchaus interessant wenn da so diverses zu tage kommt ;D

proxima

  • Gast
Re: gcc 3.3 auf OCTANE (6.5.01) - Segemtation Failt
« Antwort #9 am: 04. Januar 2015, 15:09:31 »
na, da will ich mal liefern  ;)

RHANIA 1# c99
c99 - Command not found
RHANIA 2# cc -version
MIPSpro Compilers: Version 7.2.1
RHANIA 3# c89
c89 ERROR:  no source or object file given
RHANIA 4# f77 -version
MIPSpro Compilers: Version 7.2.1
RHANIA 5# CC -version
MIPSpro Compilers: Version 7.2.1
RHANIA 6# versions -n |fgrep c_dev
I  c_dev                1274567300  C Headers and Libraries, 7.2.1
I  c_dev.books          1274567300  C IRIS InSight Books
I  c_dev.books.CLanguageRef  1274567300  C Language Reference Manual
I  c_dev.hdr            1274567300  C Headers
I  c_dev.hdr.lib        1274567300  C Library Headers
I  c_dev.man            1274567300  C Manual Pages
I  c_dev.man.c          1274567300  C Compiler Man Pages
I  c_dev.man.relnotes   1274567300  C Release Notes
I  c_dev.man.util       1274567300  C Utility Man Pages
I  c_dev.sw             1274567300  C Software
I  c_dev.sw.c           1274567300  C Driver
I  c_dev.sw.util        1274567300  C Utilities
RHANIA 7#

Also ein c99 is wohl doch nich vorbei. Aber f77 is da...

Offline foetz

  • Mood Bachelor
  • ***
  • Beiträge: 119
    • Profil anzeigen
    • R-A-C
Re: gcc 3.3 auf OCTANE (6.5.01) - Segemtation Failt
« Antwort #10 am: 04. Januar 2015, 22:00:18 »
okay soweit normal. jetzt das entscheidende:
versions -n | fgrep c_fe

proxima

  • Gast
Re: gcc 3.3 auf OCTANE (6.5.01) - Segemtation Failt
« Antwort #11 am: 04. Januar 2015, 23:34:05 »
RHANIA 4# versions -n |fgrep c_fe
I  c_fe                 1274567300  C Front-end, 7.2.1
I  c_fe.man             1274567300  C Front-end Manual Pages
I  c_fe.man.c           1274567300  C Front-end Compiler Man Pages
I  c_fe.man.relnotes    1274567300  C Front-end Release Notes
I  c_fe.sw              1274567300  C Front-end Software
I  c_fe.sw.c            1274567300  C Front-end Compiler
RHANIA 5#

Offline foetz

  • Mood Bachelor
  • ***
  • Beiträge: 119
    • Profil anzeigen
    • R-A-C
Re: gcc 3.3 auf OCTANE (6.5.01) - Segemtation Failt
« Antwort #12 am: 05. Januar 2015, 00:40:32 »
na also da haben wirs ja. ein "stink" normaler mipspro 7.2.1. nur ist der eben nicht teil der cds die mit irix 6.5 kommen.

christophl

  • Gast
Re: gcc 3.3 auf OCTANE (6.5.01) - Segemtation Failt
« Antwort #13 am: 10. Januar 2015, 13:37:47 »
Hallo und vielen Dank für die vielen Beiträge und die intensiven Diskussionen.

Ich habe noch einmal nachvollzogen wie ich auf die Versionsnummer der IRIX Version gekommen bin - Die Angabe habe ich von dem Kommando uname -a, Ausgabe "IRIX64 IRIS 6.5 01080747 IP30".

Nach Eingabe von uname -R bekomme ich die Ausgabe "6.5.6.5.23f". Ich denke, das das immernoch eine vergleichsweise alte Version ist. Sofern das der Fall sein sollte liegt es sicherlich, das ich in der Installation, die ich im Trial and Error Verfahren auf die Maschine gebracht habe, vergessen habe die Patches einzuspielen. Bei meinem Diskset sind noch die 3 Overlay  CDs dabei, die die Versionsnummer 6.5.23 tragen oder bezieht sich die 23f am Ende der -R Ausgabe hierauf?

Einfacher Ausgedrückt - habe ich auf meiner Maschine ein 6.5.6 oder ein 6.5.23?

Je nach dem stellt stellt sich dann die Frage -wie die Overlays einspielen bzw. neu installieren?


Vielen Dank für Eure Unterstützung.

Christoph

Offline foetz

  • Mood Bachelor
  • ***
  • Beiträge: 119
    • Profil anzeigen
    • R-A-C
Re: gcc 3.3 auf OCTANE (6.5.01) - Segemtation Failt
« Antwort #14 am: 10. Januar 2015, 23:51:34 »
Einfacher Ausgedrückt - habe ich auf meiner Maschine ein 6.5.6 oder ein 6.5.23?
du hast 6.5.23f. und das ist voellig in ordnung. es ist sogar eine version ueber dem maximum das man ohne supportvertrag bekommen konnte.
aber wie weiter oben schon ausgefuehrt liegt dein problem mit dem compiler an etwas ganz anderem.