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

Irix => Programmieren, Kompilieren => Thema gestartet von: wiel am 30. Juni 2003, 15:15:33

Titel: tcltk mit dem gcc
Beitrag von: wiel am 30. Juni 2003, 15:15:33
Hallo Alle miteinader,

ich habe folgendes Problem auf einer Indy R5000, Irix6.5.19 Standartinstallation, gcc-3.2.2 GNU Compiler Suite von SGI-Freeware installiert,  und als einzige Aenderung folgende Zeilen in die /etc/profile bzw /etc/cshrc aufgenommen:

 /etc/profile
 PATH=/usr/freeware/bin:/usr/local/bin:$PATH
 export PATH MANPATH

 /etc/cshrc
 setenv PATH /usr/freeware/bin:${PATH}


Beim Versuch TCL zu uebersetzen bekomme ich nun folgendes zu sehen:
-bash-2.05b$ cd inst/tcl8.4.3/unix/
-bash-2.05b$ ./configure
creating cache ./config.cache
checking whether to use symlinks for manpages... no
checking compression for manpages... no
checking for gcc... gcc
checking whether the C compiler (gcc  ) works... no
configure: error: installation or configuration problem: C compiler cannot create executables.
-bash-2.05b$ echo $PATH
/usr/freeware/bin:/usr/local/bin:/usr/freeware/bin:/usr/local/bin:/usr/sbin:/usr/bsd:/sbin:/usr/bin:/usr/bin/X11:
-bash-2.05b$ which gcc
/usr/freeware/bin/gcc


Der gcc ist also da und wird auch gefunden wie der which-Befehl zeigt.  Allerdings  habe ich keine Ahnung, wie ich ihn zur Arbeit ueberreden kann.
Titel: Re: tcltk mit dem gcc
Beitrag von: Jasper am 30. Juni 2003, 15:17:35
Hi,

was steht denn in der config.log Datei in der Gegend, wo die Fehlermeldung kommt?
Titel: Re: tcltk mit dem gcc
Beitrag von: wiel am 30. Juni 2003, 15:25:59
-bash-2.05b$ cat config.log
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

configure:575: checking whether to use symlinks for manpages
configure:587: checking compression for manpages
configure:615: checking for gcc
configure:728: checking whether the C compiler (gcc  ) works
configure:744: gcc -o conftest    conftest.c  1>&5
Fatal error: Arg list too long
configure: failed program was:

#line 739 "configure"
#include "confdefs.h"

main(){return(0);}
-bash-2.05b$


und in der benannten zeile des configure-skripts steht von Zeile 735 an:

cat > conftest.$ac_ext << EOF

#line 739 "configure"
#include "confdefs.h"

main(){return(0);}
EOF
if { (eval echo configure:744: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
 ac_cv_prog_cc_works=yes
 # If we can't run a trivial program, we are probably using a cross compiler.
 if (./conftest; exit) 2>/dev/null; then
   ac_cv_prog_cc_cross=no
 else
   ac_cv_prog_cc_cross=yes
 fi
else
 echo "configure: failed program was:" >&5
Titel: Re: tcltk mit dem gcc
Beitrag von: Jasper am 30. Juni 2003, 15:42:39
Strange. Für mich sehen sowohl Compileraufruf wie auch Testprogramm einwandfrei aus. Tut der GCC denn sonst überhaupt? Erstell doch mal eine einzelne Datei mit Inhalt

main(){return(0);}

und nudel die mit gcc -v -o testdatei testdatei.c durch den Compiler. Das sollte Dir Aufschluss drüber geben, was wann wo vom GCC aufgerufen und vielleicht nicht gefunden wird (Vielleicht fehlender as oder cpp???). Ich hab's gerade ausprobiert, läuft bei mir fein (Indy mit R4k, GCC 3.2.2, Irix 6.5.19).
Titel: Re: tcltk mit dem gcc
Beitrag von: wiel am 30. Juni 2003, 16:27:11
Ich habe mich ja vor dem Programmieren bis jetzt erfolgreich ferngehalten.
Also  eine Datei test angelegt (mit dem main Aufruf)

-bash-2.05b$ gcc -v -o test test.c
Fatal error: Arg list too long
-bash-2.05b$
Titel: Re: tcltk mit dem gcc
Beitrag von: Jasper am 30. Juni 2003, 17:25:45
Für mich sieht das so aus, als ob was bei der Compiler-Installation beschädigt wäre. Die Kommandozeile für den gcc ist eigtl. nicht zu lang, und spezielle Libraries braucht das Ding eigentlich auch nicht. Es tauchen zwischendrin beim Compilieren allerdings schon recht lange Aufrufe auf, die hätte man eben mit dem -v Flag sehen können. Tut denn wenigstens "gcc -v" (ohne weitere Optionen)? Ansonsten gib mal
"systune ncargs" ein, vielleicht ist die Länge der Kommandozeile bei Dir ja (warum auch immer) stark beschränkt.

Nachtrag: Hier ist ein Blurb aus dem Usenet, der auch dazu passt:
http://groups.google.de/groups?hl=de&lr=&ie=UTF-8&threadm=9ii2fa%24sed%241%40news.netmar.com&rnum=5&prev=/groups%3Fhl%3Dde%26lr%3D%26ie%3DISO-8859-1%26q%3Dgcc%2Barg%2Blist%2Btoo%2Blong
Vielleicht machst Du das mit dem Path auch mal rückgängig und rufst den Compiler explizit mit /usr/freeware/bin/gcc auf?
Titel: Re: tcltk mit dem gcc
Beitrag von: wiel am 30. Juni 2003, 17:32:51
Danke erstmal fuer die Hilfe, ich habe meinen Pfad des Wissens laengst verlassen und kann nur noch nachtippen.

-bash-2.05b$ cat test
main(){return(0);}
-bash-2.05b$ gcc -v test test.c
Fatal error: Arg list too long
-bash-2.05b$ systune ncargs
       ncargs = 20480 (0x5000)
-bash-2.05b$


Wieland
Titel: Re: tcltk mit dem gcc
Beitrag von: Jasper am 30. Juni 2003, 17:45:08
Systune sieht gut aus, denke ich. Kannst Du mal nur gcc -v (ohne -o test test.c) ausführen? Auch mal ohne PATH in der /etc/profile erweitert? Dein C-Programm ist eigentlich einwandfrei, der Fehler kommt auch nicht vom compilieren.
Titel: Re: tcltk mit dem gcc
Beitrag von: wiel am 30. Juni 2003, 17:58:59
-bash-2.05b$ /usr/freeware/bin/gcc -v test test.c
gcc ERROR:  gcc is not installed in /usr/freeware/bin/../../usr/lib32/cmplrs/gcc

-bash-2.05b$
-bash-2.05b$ ls -l /usr/freeware/bin/ | grep gcc
lrwxr-xr-x    1 root     sys             3 Apr  22 13:29 egcs -> gcc
-rwxr-xr-x    4 root     sys         98676 Mai  15 14:00 gcc
-rwxr-xr-x    1 root     sys         15613 Apr  22 13:29 gccbug
lrwxr-xr-x    1 root     sys             3 Apr  22 13:29 mips-sgi-irix6.5-gcc -> gcc
-bash-2.05b$ ls -l /usr/lib32/cmplrs/ | grep gcc
-rwxr-xr-x    4 root     sys         98676 Mai  15 14:00 gcc
-bash-2.05b$

Der zweite Tipp scheint ein Treffer zu sein. Ich werde wohl die gcc Pakete im Softwaremanager loeschen und komplett neu installieren.  Ich glaube, das waren fast 80 MB, schauen wir mal wie schnell der SGI-FTP-Server heute ist.

Wenn ich den Pfad uebrigens rausnehme, findet er den MIPS cc und muellt den Bildschirm mit Lizenzgesabber voll. Bringt mich also auch nicht unbedingt weiter
Titel: Re: tcltk mit dem gcc
Beitrag von: wiel am 30. Juni 2003, 18:01:04
noch als Nachtrag

-bash-2.05b$ gcc -v
Fatal error: Arg list too long
-bash-2.05b$

Titel: Re: tcltk mit dem gcc
Beitrag von: Jasper am 30. Juni 2003, 18:08:55
Hmpf, in /usr/lib32/cmplrs/ sollte der gcc überhaupt nicht auftauchen. Vielleicht reicht es, wenn Du ihn dort einfach löscht. (Bevor Du das ganze Paket nochmal runterlädst) Hast Du das selbst installiert, oder war der schon vorher drauf? Mein gcc sucht übrigens in folgenden Verzeichnissen:

cc1, cpp, collect2 in /usr/freeware/lib/gcc-lib/mips-sgi-irix6.5/3.2.2/
as, asm (nicht gcc!) in /usr/bin und /usr/lib32/cmplrs/ - würde ich auf jeden Fall schauen, dass die auch da sind!

Titel: Re: tcltk mit dem gcc
Beitrag von: wiel am 30. Juni 2003, 18:31:54
Ich weisz zwar nicht wieso, ich bekomme jetzt bei auskommentierten Pfadangaben folgendes zu sehen:

-bash-2.05b$ echo $PATH
/usr/sbin:/usr/bsd:/sbin:/usr/bin:/usr/bin/X11:
-bash-2.05b$ cd inst/tcl8.4.3/unix/
-bash-2.05b$ ./configure
loading cache ./config.cache
checking whether to use symlinks for manpages... no
checking compression for manpages... no
checking for gcc... gcc
checking whether the C compiler (gcc  ) works... no
configure: error: installation or configuration problem: C compiler cannot create executables.
-bash-2.05b$ gcc -v
Fatal error: Arg list too long

Ansonsten fehlt  einmal der asm  und statt cpp habe ich einmal cpp0 nach Deiner Liste
-bash-2.05b$ ls /usr/bin/ | grep as
as
asa
assign
basename
icrash
passwd
paste
thrash
ypchpass
yppasswd
-bash-2.05b$ ls /usr/lib32/cmplrs/ | grep as
as
asm

-bash-2.05b$ ls /usr/freeware/lib/gcc-lib/mips-sgi-irix6.5/3.2.2/ | grep cc1
cc1
cc1obj
cc1plus
-bash-2.05b$ ls /usr/freeware/lib/gcc-lib/mips-sgi-irix6.5/3.2.2/ | grep cpp
cpp0
tradcpp0
-bash-2.05b$ ls /usr/freeware/lib/gcc-lib/mips-sgi-irix6.5/3.2.2/ | grep coll
collect2


Sollte da ein einfaches Rueberkopieren reichen?
Titel: Re: tcltk mit dem gcc
Beitrag von: Jasper am 30. Juni 2003, 18:40:01
Sorry, nein, muss cpp0 sein, cpp gibt's in /usr/freeware/bin, asm nur in /usr/lib32..., das ist also alles OK. Der Fehler mit auskommentierter Pfadangabe liegt wohl daran, dass der GCC in /usr/lib32/cmplrs und womöglich noch woanders gefunden wird, das darf aber nicht sein (es hätte jetzt m.E. irgendetwas wie gcc not found bzw. der vergebliche Versuch, den MipsPro zu verwenden, kommen müssen). Ich blicke da leider auchnie ganz durch, wo SGI die ganzen Development-Komponenten verteilt.

Wie sieht dein Pfad denn jetzt aus, ist da immer noch /usr7Freeware/bin mit drin (wundert mich, dass das ganz zu Anfang zweimal drin war...)
Titel: Re: tcltk mit dem gcc
Beitrag von: wiel am 30. Juni 2003, 18:58:21
Der letzte Shellmitschnitt entstammt dem Versuch mit auskommentierten Pfadangaben.

Den gcc in /usr/lib32/  habe ich wieder geloescht , glaube den hatte ich selber dorthinkopiert, aufgrund irgendeines Postings in einer anderen Newsgroup.  Andere Veraenderungen im System hatte ich aber nicht vorgenommen.

Bei den Pfadangaben habe mich nach Obsolet... gerichtet, ich glaube die Macher sitzen hier auch irgendwo im Forum, besten Dank dann auch, falls Ihr es lest - ist fuer Einsteiger bei IRIX ein gute Seite.  Ist halt fuer beide Shells, obwohl man heute mit der BASH arbeitet,wenn man sie hat.
Titel: Re: tcltk mit dem gcc
Beitrag von: Jasper am 30. Juni 2003, 19:07:40
Hi, ich denke, dass /usr/freeware/bin noch woanders in deinen Pfad gesetzt wird (weil in deinem ersten Posting
PATH=/usr/freeware/bin:/usr/local/bin:/usr/freeware/bin:/usr/local/bin:/usr/sbin:/usr/bsd:/sbin:/usr/bin:/usr/bin/X11:
aber in /etc/profile nur PATH=/usr/freeware/bin:/usr/local/bin:$PATH
Setz mal explizit
export PATH=/usr/sbin:/usr/bsd:/sbin:/usr/bin:/usr/bin/X11 (sollte die Standard-Einstellungen wieder bringen)
und probier dann nochmal gcc -v. Wenn's dann nicht gefunden wird, mach mal /usr/freeware/bin/gcc -v.

Achso, zwischen zwei configure-Aufrufen löscht Du besser die Datei config.cache. Obsolet ist gut, das ist wahr :-)
Titel: Re: tcltk mit dem gcc
Beitrag von: wiel am 30. Juni 2003, 19:19:08
Also inzwischen sind die erweiterten Pfade wieder drin - nur um sie wieder zu deaktivieren.

-bash-2.05b$ echo $PATH
/usr/freeware/bin:/usr/local/bin:/usr/sbin:/usr/bsd:/sbin:/usr/bin:/usr/bin/X11:
-bash-2.05b$ export PATH=/usr/sbin:/usr/bsd:/sbin:/usr/bin:/usr/bin/X11
-bash-2.05b$ gcc -v
gcc ERROR:  gcc is not installed in /usr/lib32/cmplrs/gcc
-bash-2.05b$ /usr/freeware/bin/gcc -v
gcc ERROR:  gcc is not installed in /usr/freeware/bin/../../usr/lib32/cmplrs/gcc

-bash-2.05b$ cd inst/tcl8.4.3/unix/
-bash-2.05b$ rm config.cache
-bash-2.05b$ ./configure
creating cache ./config.cache
checking whether to use symlinks for manpages... no
checking compression for manpages... no
checking for gcc... gcc
checking whether the C compiler (gcc  ) works... no
configure: error: installation or configuration problem: C compiler cannot create executables.
Titel: Re: tcltk mit dem gcc
Beitrag von: wiel am 30. Juni 2003, 19:25:41
wenn im ersten Posting das /usr/freeware/bin mehrmals aufgetaucht ist, habe ich das wohl falsch rueberkopiert
Titel: Re: tcltk mit dem gcc
Beitrag von: Jasper am 30. Juni 2003, 19:26:29
Sieht ganz so aus, als würde bei dir noch woanders im Pfad eine Version des gcc rumgeistern, statt gcc ERROR:  gcc is not installed in /usr/lib32/cmplrs/gcc müsste jetzt nämlich eigentlich gcc: not found kommen. Schau mal alle Verzeichnisse in verkürzten PATH durch
Titel: Re: tcltk mit dem gcc
Beitrag von: wiel am 30. Juni 2003, 19:57:17
Du hattest Recht , in usr/bin war noch ein gcc versteckt. Habe ich geloescht.

Ohne erweiterten Pfad lauft configure jetzt durch allerdings mit dem cc, das make bricht dann mangels Lizenz ab.

Mit Pfaderweiterung habe ich das alte Problem

-bash-2.05b$ echo $PATH
/usr/freeware/bin:/usr/local/bin:/usr/sbin:/usr/bsd:/sbin:/usr/bin:/usr/bin/X11:
-bash-2.05b$ cd inst/tcl8.4.3/unix/
-bash-2.05b$ ./configure
creating cache ./config.cache
checking whether to use symlinks for manpages... no
checking compression for manpages... no
checking for gcc... gcc
checking whether the C compiler (gcc  ) works... no
configure: error: installation or configuration problem: C compiler cannot create executables.

-bash-2.05b$ gcc -v
gcc ERROR:  gcc is not installed in /usr/lib32/cmplrs/gcc
-bash-2.05b$ su
Password:
# cp /usr/freeware/bin/gcc /usr/lib32/cmplrs/gcc
# exit
exit
-bash-2.05b$ gcc -v
Fatal error: Arg list too long
-bash-2.05b$

./configure
mit gleicher Fehlermeldung wie oben, aber trotzdem Danke Danke fuer Deine Muehe
Titel: Re: tcltk mit dem gcc
Beitrag von: Jasper am 30. Juni 2003, 20:10:15
Naja, ist doch auch schon mal was, ausser in /usr/freeware gibt's jetzt wenigstens keinen gcc mehr. Ich blicke allerdings auch nicht, weshalb Komponenten vom gcc in /usr/lib32 gesucht werden. Jedenfalls, wenn Du den gcc dann noch dahin kopierst, scheint er sich immer wieder selbst aufzurufen, was dann irgendwann zu "arg list too long" fuehrt, das geht also sicher nicht :-( Sieht fuer mich irgendwie so aus, als ob das eine krude Mischung aus MipsPro und gcc waere. Ist vielleicht noch irgendwo cc auf gcc verlinkt (letzte Hoffnung...)?

Uebrigens, selbst wenn ich /usr/freeware/lib/gcc-lib  komplett wegmove und deine Umgebung soweit reproduziere, erhalte ich Deinen Fehler nicht. Ich weiss halt nicht, ob es viel hilft, in die Umgebung das gcc-Paket neu reinzuinstallieren, oder ob's noch schlimmer davon wird :-(
Titel: Re: tcltk mit dem gcc
Beitrag von: wiel am 30. Juni 2003, 20:25:07
-bash-2.05b$ cd /bin
-bash-2.05b$ ls -l | grep cc
-rwxr-xr-x    1 root     sys         81476 Apr  14 16:52 acctcvt
-rwxr-xr-x    3 root     sys         98676 Mai  15 14:00 cc
lrwxr-xr-x    1 root     sys            17 Apr  14 16:24 cc.orginal -> ../lib/driverwrap
-rwxr-xr-x    3 root     sys         98676 Mai  15 14:00 gcc.bak
-rwxr-xr-x    1 root     sys         82528 Apr  14 16:51 yacc
-bash-2.05b$ ls -l | grep gcc
-rwxr-xr-x    3 root     sys         98676 Mai  15 14:00 gcc.bak
bash-2.05b$ ls -l /usr/bin/ | grep cc
-rwxr-xr-x    1 root     sys         81476 Apr  14 16:52 acctcvt
-rwxr-xr-x    3 root     sys         98676 Mai  15 14:00 cc
lrwxr-xr-x    1 root     sys            17 Apr  14 16:24 cc.orginal -> ../lib/driverwrap
-rwxr-xr-x    3 root     sys         98676 Mai  15 14:00 gcc.bak
-rwxr-xr-x    1 root     sys         82528 Apr  14 16:51 yacc
-bash-2.05b$ ls -l /usr/freeware/bin/ | grep cc
lrwxr-xr-x    1 root     sys            14 Apr  23 07:25 disable -> ../sbin/accept
lrwxr-xr-x    1 root     sys             3 Apr  22 13:29 egcs -> gcc
-rwxr-xr-x    1 root     sys         22304 Apr  23 07:57 ellcc
lrwxr-xr-x    1 root     sys            14 Apr  23 07:25 enable -> ../sbin/accept
-rwxr-xr-x    3 root     sys         98676 Mai  15 14:00 gcc
-rwxr-xr-x    1 root     sys         15613 Apr  22 13:29 gccbug
lrwxr-xr-x    1 root     sys             3 Apr  22 13:29 mips-sgi-irix6.5-gcc -> gcc
lrwxr-xr-x    1 root     sys             8 Mai  16 08:46 objc -> .objc.cc
-rwxr-xr-x    1 root     sys         14220 Juni 23 12:08 rleccube


Das scheint ja soweit sauber zu sein.  Meiner Meinung nach kommen andere Verzeichnisse nicht mehr in Frage.

Ich probiere es dann mal mit einem Neueinspielen der Pakete ???
Titel: Re: tcltk mit dem gcc
Beitrag von: Jasper am 30. Juni 2003, 20:34:30
Also was ich ja komisch finde: in /usr/bin hat der cc genau dieselbe Groesse und das Datum wie der gcc, und der cc.orig zeigt auf ../driverwrap, wie sich's eigentlich fuer den MipsPro gehoeren wuerde. Ebenso in /bin. Sieht fuer mich so aus, als haette man versucht, auf die Weise den  MipsPro durch den gcc zu ersetzen. Vermutlich schlaegt dann jetzt naemlich auch irgendwie der Lizenzmanager zu??? Deshalb die komische Fehlermeldung -  das ist jetzt Spekulation, aber das mit dem cc in /usr/bin gehoert bestimmt nicht so (wirst Du dann auch mit Neuinstallation nicht los) Du koenntest die fraglichen Dateien jetzt auch wegmoven, aber moeglicherweise sind noch mehr solche Sachen vorhanden...
Titel: Re: tcltk mit dem gcc
Beitrag von: wiel am 03. Juli 2003, 18:12:27
Um das Thema abzuschlieszen, ich habe den gcc mit dem Softwaremanager entfernt, dann per Hand allles was die gleiche Groesze wie der gcc hatte  und irgendwie cc im Namen trug auf dem Rechner geloescht und nach einem Reboot letztendlich neu installiert.

Und Wunderwelt der Technik - es funktioniert. Danke nochmal!!!