Superuser

Autor Thema: Sunstudio-Compiler spuckt merkwürdige Fehler aus  (Gelesen 10460 mal)

töfte

  • Gast
Sunstudio-Compiler spuckt merkwürdige Fehler aus
« am: 18. August 2007, 17:54:11 »
Ich möchte gerade auf eigene Faust auf Solaris 9/x86 Fluxbox zusammenzimmern und stoße auf foglende Probleme:


        CC -DHAVE_CONFIG_H -I. -I../..     -g  -I/usr/openwin/include -DSHAPE  -I/usr/openwin/include   -c -o Font.o Font.cc
"XFontImp.hh", line 85: Warning: FbTk::XFontImp::rotate hides the virtual function FbTk::FontImp::rotate(int).
"/usr/local/SUNWspro/prod/include/CC/Cstd/rw/tree", line 96: Error: The name std is ambiguous as a result of an unnamed namespace.
"/usr/local/SUNWspro/prod/include/CC/Cstd/./map", line 112:     Where: While specializing "__rwstd::__rb_tree<std::string, std::pair<const std::string, std::string>, __rwstd::__select1st<std::pair<const std::string, std::string>, std::string>, std::less<std::string>, std::allocator<std::pair<const std::string, std::string>>>".
"/usr/local/SUNWspro/prod/include/CC/Cstd/./map", line 112:     Where: Specialized in std::map<std::string,std::string>.
"Font.cc", line 87:     Where: Specialized in non-template code.


Als $CC habe ich /opt/SUNWspro/bin/cc verlinkt, ein triviales C-Programm kann er auch einwandfrei (mit berechtigten Warnungen ) übersetzen.
Irgendein C++ oder Solaris-Guru hier, der mir auf die Sprünge helfen könnte ?

sonnenblen.de - Das unabhängige Sun User Forum

Sunstudio-Compiler spuckt merkwürdige Fehler aus
« am: 18. August 2007, 17:54:11 »

Offline Ten Little Indyans

  • Sobl Bachelor
  • ***
  • Beiträge: 218
Re: Sunstudio-Compiler spuckt merkwürdige Fehler aus
« Antwort #1 am: 18. August 2007, 19:23:20 »
Welche Version des Compilers hast Du? Und welche Version von Fluxbox versuchst Du zu übersetzen? Ich kenne Fluxbox noch gar nicht, werde mir aber jezt mal die Quellen zu 1.0rc3 runterladen.

Die Fehlermeldungen deuten erstmal darauf hin das da einiges an Schweinkram mit C++-Templates gemacht wird.

Bei meiner (ziemlich kurzen) Suche im Netz habe ich keinerlei Anzeichen dafür gefunden das Fluxbox jemals mit etwas anderem als dem gcc übersetzt worden ist. Es gibt demnach zwei mögliche Ursachen für Dein Problem:

1. Der Fluxbox C++-Code ist standardkonform aber SunStudio nicht (zumindest für ein bestimmtes Merkmal was Dir jetzt Probleme macht).

2. Der Fluxbox-Code ist nicht standardkonform, sondern auf kompilierfähigkeit durch den gcc hin "optimiert".

C++ ist leider eine Sprache die alles andere als portabel ist. Soweit ich weiss gibt es bis heute noch keinen Compiler der vollständig den ISO-Standard abdeckt. >:(

Die Warnung bezüglich der rotate-Methode deutet für mich eher auf Ursache 2 - sie ist wahrscheinlich ungefährlich aber zeugt von Schlamperei... ::)

Andrew.

töfte

  • Gast
Re: Sunstudio-Compiler spuckt merkwürdige Fehler aus
« Antwort #2 am: 18. August 2007, 19:59:04 »
Hi,
ich habe heute frisch die Sunstudio12 Suite installiert.
Die Fluxboxversion die ich kompilieren will ist auch heute runtergeladen worden, das dürfte also dieselbe Version sein.
In C++ bin ich leider nicht so bewandert, aber ich glaube uch eher daß da ein "Optimierungsproblem" vorliegt.
Ansonsten kann ich mal versuchen auf c99 zu linken und dann ein Compile zu wagen, es kost' ja nischt  ;)

Offline escimo

  • Sobl Moderator
  • Sobl Guru
  • *****
  • Beiträge: 1674
  • SPARCstation 2
    • Youtube-Kanal opensparcbox.org
Re: Sunstudio-Compiler spuckt merkwürdige Fehler aus
« Antwort #3 am: 19. August 2007, 13:32:36 »
Aus dem "Sun Studio 12: C++ User's Guide"
Zitat
1.2 Standards Conformance
The C++ compiler (CC) supports the ISO International Standard for C++, ISO IS 14882:1998, Programming Language—C++. The readme file that accompanies the current release describes any departures from requirements in the standard.

C++ ist leider eine Sprache die alles andere als portabel ist. Soweit ich weiss gibt es bis heute noch keinen Compiler der vollständig den ISO-Standard abdeckt. >:(
C++ Quellcode ist portabel. Wenn man sich allerdings nicht an Vorgaben des ISO-Standards hält, muss man halt "Code-Nachbesserungen" durchführen.

Könnte jemand den Inhalt der readme-Datei bitte als Code-Block posten? Ich komme an das Studio 12 nur "spärlich" ran mit meiner lahmen Internetverbindung.  :-\

Gruß
escimo

PS: Könnt ja mal das Kompilat von mir testen;D
« Letzte Änderung: 19. August 2007, 13:37:42 von escimo »

Offline Ten Little Indyans

  • Sobl Bachelor
  • ***
  • Beiträge: 218
Re: Sunstudio-Compiler spuckt merkwürdige Fehler aus
« Antwort #4 am: 19. August 2007, 16:01:29 »
Aus dem "Sun Studio 12: C++ User's Guide"
Zitat
1.2 Standards Conformance
The C++ compiler (CC) supports the ISO International Standard for C++, ISO IS 14882:1998, Programming Language—C++. The readme file that accompanies the current release describes any departures from requirements in the standard.

C++ ist leider eine Sprache die alles andere als portabel ist. Soweit ich weiss gibt es bis heute noch keinen Compiler der vollständig den ISO-Standard abdeckt. >:(
C++ Quellcode ist portabel. Wenn man sich allerdings nicht an Vorgaben des ISO-Standards hält, muss man halt "Code-Nachbesserungen" durchführen.

Könnte jemand den Inhalt der readme-Datei bitte als Code-Block posten? Ich komme an das Studio 12 nur "spärlich" ran mit meiner lahmen Internetverbindung.  :-\

Habe gerade festgestellt das ich selbst nur Sun Studio 11 installiert habe. ::)
Ich nehme an diese readme-Datei ist gemeint? (Zum Posten etwas viel, sollte man sich aber auch bei lahmer Verbindung anschauen können.)

Das Problem ist ja nicht sich als Entwickler an den Standard zu halten, sondern das wirklich jeder Compiler irgendein Feature des Standards nicht unterstützt(*). Wenn Du nun in deinem Code genau das eine Feature verwendest welches Compiler X nicht unterstützt dann wirst Du Probleme haben Deine Anwendung auf Platformen zu portieren die gerade diesen Compiler verwenden.

(*) Zum Glück sind es heutzutage - 9 Jahre nach Verabschiedung des Standards - größtenteils nur noch die eher obskuren Features die nicht richtig laufen.

Laut o.g. Readme unterstützt Sun Studio 12 z.B. noch keine Universal Character Names und auch keine Exported Templates. Wer die benutzen will muss sich also einen anderen Compiler suchen...

Andrew.
« Letzte Änderung: 19. August 2007, 16:03:27 von Ten Little Indyans »

Offline escimo

  • Sobl Moderator
  • Sobl Guru
  • *****
  • Beiträge: 1674
  • SPARCstation 2
    • Youtube-Kanal opensparcbox.org
Re: Sunstudio-Compiler spuckt merkwürdige Fehler aus
« Antwort #5 am: 19. August 2007, 16:45:57 »
Hi Andrew,

danke für den Link. Aber soviel ist es doch gar nicht: ;)

Zitat
I. Standards Not Implemented
  • The C++ compiler supports the ISO standard for C++, ISO IS 14882:1998, Programming Language C++. The following list describes requirements in the standard that are not supported in this release:
    • Universal character names
    • The export model of template compilation
  • Some functionality of the C++ library is not implemented in the default libCstd to preserve binary compatibility between the current and earlier releases of the C++ compiler. For more information, check the C++ FAQ link at file:/opt/SUNWspro/docs/index.html. The default installation directory for the Solaris platforms is /opt. If your Sun Studio 12 software is not installed in the default /opt directory, ask your system administrator for the equivalent path on your system.

Gruß
escimo