Autor Thema: fluxbox compile error  (Gelesen 9820 mal)

cutoff

  • Gast
fluxbox compile error
« am: 16. Januar 2005, 20:36:57 »
hi,
da ich jetzt alles mir moegliche probiert und gegoogelt habe, bleibt mir nur noch  die frage ans forum:
also, die stats: sol10 s10_72, gcc3.3.2 paket von sunfreeware.com

trotz aller flags und env aenderungen der INSTALL empfehlung komme ich beim make ueber folgenden punkt nicht hinaus:

g++ -g -O2 -I/usr/openwin/include -DSHAPE -I/usr/openwin/include -I/usr/sfw/include -I/usr/sfw/include/freetype2 -o fluxbox ArrowButton.o FbAtoms.o FbWinFrame.o FbWinFrameTheme.o fluxbox.o Keys.o main.o Netizen.o RootTheme.o FbRootWindow.o Screen.o ScreenResources.o Slit.o SlitTheme.o SlitClient.o WinButton.o WinButtonTheme.o Window.o Workspace.o FbCommands.o IntResMenuItem.o FbMenu.o WinClient.o Xutil.o CurrentWindowCmd.o WorkspaceCmd.o CommandParser.o FbCommandFactory.o Shape.o MenuTheme.o Container.o TextTheme.o BorderTheme.o CommandDialog.o SendToMenu.o Parser.o FbMenuParser.o StyleMenuItem.o RootCmdMenuItem.o MenuCreator.o IconMenu.o WorkspaceMenu.o HeadArea.o Resources.o Ewmh.o Gnome.o Remember.o RegExp.o ClientPattern.o Toolbar.o ToolbarTheme.o ToolbarItem.o ClockTool.o WorkspaceNameTool.o IconbarTool.o IconbarTheme.o ToolTheme.o IconButton.o SystemTray.o GenericTool.o ButtonTool.o ButtonTheme.o ToolFactory.o  -L/usr/openwin/lib -lSM -lICE FbTk/libFbTk.a -lnsl -lsocket -lX11 -lXext -L/usr/sfw/lib -L/usr/openwin/sfw/lib -lXft -lfreetype -lfontconfig -lXrender -lXpm -Wl,-R -Wl,/usr/openwin/lib -Wl,-R -Wl,/usr/sfw/lib -Wl,-R -Wl,/usr/openwin/lib:/usr/openwin/sfw/lib
Undefiniertes                   erstmals referenziert
Symbol                             in Datei
libiconv_close                      FbTk/libFbTk.a(Font.o)
libiconv_open                       FbTk/libFbTk.a(Font.o)
libiconv                            FbTk/libFbTk.a(Font.o)
ld: Schwerer Fehler: Symbolreferenzierungsfehler. Keine Ausgabe in fluxbox geschrieben
collect2: ld returned 1 exit status

weiss jemand, was man hier noch machen kann? es handelt sich um die fluxbox-0.9.11 tarball sources von fluxbox.org.

libiconv paket ist installiert:
-bash-2.05b# pkginfo | grep libiconv
application SMCliconv                        libiconv

wenn ich dann noch, wie in dem doc zu libiconv geschrieben, folgende variable festlege:
-bash-2.05b# echo $LD_PRELOAD
/usr/local/lib/libiconv_plug.so

... dann hauts bereits beim configure folgendes raus:

ld.so.1: sort: fatal: /usr/local/lib/libiconv_plug.so: wrong ELF class: ELFCLASS32
./configure: line 70: 28849 Broken Pipe             for ac_var in $ac_subst_vars;
do
   eval ac_val=$`echo $ac_var`; echo "$ac_var='$ac_val'";
done
    28852 Killed                  | sort
ld.so.1: sort: fatal: /usr/local/lib/libiconv_plug.so: wrong ELF class: ELFCLASS32
./configure: line 70: 28855 Done                    sed "/^$/d" confdefs.h
    28856 Killed          

nun weiss ich garnet mehr was phase ist.

bin fuer jede hilfe dankbar.

gruss
cutoff

sonnenblen.de - Das unabhängige Sun User Forum

fluxbox compile error
« am: 16. Januar 2005, 20:36:57 »

Offline erisch

  • Sobl Moderator
  • Sobl Guru
  • *****
  • Beiträge: 758
  • TurboSPAAAAAG
    • erisch.homeunix.net
Re: fluxbox compile error
« Antwort #1 am: 17. Januar 2005, 01:54:27 »
Hi

Zitat
Undefiniertes                   erstmals referenziert
Symbol                             in Datei
libiconv_close                      FbTk/libFbTk.a(Font.o)
libiconv_open                       FbTk/libFbTk.a(Font.o)
libiconv                            FbTk/libFbTk.a(Font.o)
ld: Schwerer Fehler: Symbolreferenzierungsfehler. Keine Ausgabe in fluxbox geschrieben
collect2: ld returned 1 exit status


Das heißt, er findet die libiconv nicht, weil sie nicht im library-pfad ist.
Versuch folgendes:

export LDFLAGS="$LDFLAGS -L/usr/local/lib"
bevor du make eingibst.

Wenn das nicht reicht, musst du noch den Library Run Path um /usr/local/lib erweitern. Anfänger oder welche die keinen root Zugriff haben, nutzen dafür die LD_LIBRARY_PATH Variable (nicht wahr Smelly ;D), eleganter ist es, den Run Path mit crle zu konfigurieren.
crle -u -s /usr/local/lib
Ganz wichtig, nicht das -u vergessen, sonst überschreibst du den Originalpfad.

Was du dann noch mit dem libiconv_plug anstellst weiß ich nicht, is aber meines Erachtens nicht nötig, er findet einfach die libiconv nicht.

Mfg. Erisch
« Letzte Änderung: 17. Januar 2005, 01:57:29 von erisch »

cutoff

  • Gast
Re: fluxbox compile error
« Antwort #2 am: 17. Januar 2005, 17:13:21 »
hat leider nicht geklappt mit dem definieren/exportieren der LD_FLAGS vor dem make.

die LD_LIBRARY_PATH beinhaltet bereits den pfad zu /usr/local/lib.
die libiconv.so's liegen da auch drin.

noch ne idee?

gruss
cutoff

Offline erisch

  • Sobl Moderator
  • Sobl Guru
  • *****
  • Beiträge: 758
  • TurboSPAAAAAG
    • erisch.homeunix.net
Re: fluxbox compile error
« Antwort #3 am: 17. Januar 2005, 22:53:11 »
LDFLAGS nicht LD_FLAGS

cutoff

  • Gast
Re: fluxbox compile error
« Antwort #4 am: 18. Januar 2005, 05:02:28 »
war nur ein verschreiber, habe es direkt per c&p definiert, also LDFLAGS war gemeint.
LD_LIBRARY_PATH ist aber auch gesetzt.

hmmm ...

Offline erisch

  • Sobl Moderator
  • Sobl Guru
  • *****
  • Beiträge: 758
  • TurboSPAAAAAG
    • erisch.homeunix.net
Re: fluxbox compile error
« Antwort #5 am: 18. Januar 2005, 13:06:33 »
achso, jetzt fällt es mir erst auf: die libiconv steht doch garnicht mit bei den einzubindenden Libraries mit drin.

Wenn er nur bei diesem g++ libiconv nicht findet, dann gehste in das Verzeichnis wo er das g++ ausgeführt hatte (er zeigt dir das ja an, wo er war, da steht irgendwas von "leaving /bla/blu/blo")
dann pastest du das gesamte g++ Konstrukt was den Fehler erzeugt und hängst ein "-liconv" dran.

Falls es bei mehreren Kompilierungen fehlt, kannste entweder "-liconv" mit in die Makefile (an entsprechnder Stelle) einfügen oder du änderst wieder die LDFLAGS:
export LDFLAGS="$LDFLAGS -liconv"


Jetzt sollte es aber klappen ;)

Falls immernoch nicht, dann versuch mal die libiconv selbst zu kompilieren. Sollte ohne Anstalten funktionieren.
Das mit den Wrong ELF Class Fehler hat was damit zu tun, dass du ein 64 Bit Object mit einer 32 Bit Library linken willst (oder andersrum). Im Allgemeinen würde ich empfehlen, immer 32 Bit zu kompilieren. Ist zu 99% schneller als 64Bit Binaries.

Mfg. Erisch

cutoff

  • Gast
Re: fluxbox compile error
« Antwort #6 am: 18. Januar 2005, 19:58:20 »
damn, genau das gleiche problem.
ich geb's bald auf ...

fast immer der gleiche mist beim compilen auf den sun buechsen.
bis auf xchat und aterm treten staendig probleme beim compilieren der applikationen auf, welche ich installieren moechte.
und der mensch, der immer die sparc packages fuer fluxbox baute, ist nicht mehr aktiv in der richtung. *grrr*

erisch, mach ma 'nen deal: du compilierst das ding, baust nen package draus und machst es mir dann zugaenglich.
und wenn du dann mal in muenchen bist, gebe ich dir ein bier aus   ;D

make clean & done
« Letzte Änderung: 18. Januar 2005, 20:00:26 von cutoff »

Offline erisch

  • Sobl Moderator
  • Sobl Guru
  • *****
  • Beiträge: 758
  • TurboSPAAAAAG
    • erisch.homeunix.net
Re: fluxbox compile error
« Antwort #7 am: 19. Januar 2005, 02:05:17 »
hab im moment keine sun mit gcc drauf. Aber werd ich wohl mal wieder was machen müssen ;)

Auf jeden Fall kriegt man fast alles auf Sun kompiliert. Vor allem ist es ja noch einfach, wenn man nur den GCC verwendet, fang mal mit dem SunC Pro an ...

Mal sehen was sich machen lässt

Mfg. Erisch

erisch (als gast)

  • Gast
Re: fluxbox compile error
« Antwort #8 am: 19. Januar 2005, 13:31:46 »
So

Wie ich sehe, hast du ja Sol10 drauf. Da kommen wir zu Problem Nr. 1:
Ich hab im Moment keine Ultra und seit Sol10 hat sich doch einiges bei kompilieren geändert.
Ich kann es natürlich mit Sol9 versuchen, aber es muss dann nicht funktionieren.
Das beste wäre also, wenn ich ssh Zugriff auf die Maschine hätte. Dann kann ich das Zeugs gleich auf deiner Kiste kompilieren.

Aber vielleicht kriegste das auch noch selbst hin, nur nicht so schnell aufgeben. Wir wollen mal ganz logisch vorgehen.
Du hast also die libiconv drauf, dann schau zuerst mal ob du eine "libiconv.so" in deinem /usr/locla/lib Verzeichnis hast.
Dann müssen die Symbole  libiconv_close, libiconv_open und libiconv darin definiert sein. Um das herauszufinden kann man "nm" benutzen:
nm /usr/local/lib/libiconv.so
Jetzt listet er die gesamten Symbole der libiconv auf, das könnten viele sein, deswegen das Ergebnis filtern:
nm /usr/local/lib/libiconv.so |grep libiconv_close
Wenn du jetzt garnix erhälst, fehlt das Symbol in der libiconv, ansonsten kriegst du ne Zeile mit Infos, die in etwa so aussieht: (das ist jetzt eine andere Library, nicht wundern)
[193]   |   167450144|            |Proc    |                  |Undefined| __ull_rshift
Aber auch das ist nix gutes, weil das Symbol in dieser Library nicht definiert ist. Das sagt dir das "Undefined" in der vorletzten Spalte. Wenn dort "Text" oder "Common" oder sonstwas steht, ist (wahrscheinlich) alles in Ordnung und du kannst die anderen 2 Symbole noch checken.

Falls aber das Symbol nicht vorhanden oder undefined ist, muss es in einer anderen Library stehen. Soweit ich weiß ist libiconv aber ein Basisprogramm, was keine weiteren Abhängigkeiten hat. Das sunfreeware-Paket ist eigentlich auch in Ordnung, hab ich glaubich selbst schon verwendet. Deswegen dürfte der Fall des "undefined" oder dass er gar nix ausgibt eher unwahrscheinlich sein.

Also sollte bis hier alles in Ordnung sein, wenn nicht, dann müssen wir woanders ansetzen.

Dann versuchen wir es noch mal mit dem kompilieren:

Versuch mal folgendes:
g++ -g -O2 -I/usr/openwin/include -DSHAPE -I/usr/openwin/include -I/usr/sfw/include -I/usr/sfw/include/freetype2 -o fluxbox ArrowButton.o FbAtoms.o FbWinFrame.o FbWinFrameTheme.o fluxbox.o Keys.o main.o Netizen.o RootTheme.o FbRootWindow.o Screen.o ScreenResources.o Slit.o SlitTheme.o SlitClient.o WinButton.o WinButtonTheme.o Window.o Workspace.o FbCommands.o IntResMenuItem.o FbMenu.o WinClient.o Xutil.o CurrentWindowCmd.o WorkspaceCmd.o CommandParser.o FbCommandFactory.o Shape.o MenuTheme.o Container.o TextTheme.o BorderTheme.o CommandDialog.o SendToMenu.o Parser.o FbMenuParser.o StyleMenuItem.o RootCmdMenuItem.o MenuCreator.o IconMenu.o WorkspaceMenu.o HeadArea.o Resources.o Ewmh.o Gnome.o Remember.o RegExp.o ClientPattern.o Toolbar.o ToolbarTheme.o ToolbarItem.o ClockTool.o WorkspaceNameTool.o IconbarTool.o IconbarTheme.o ToolTheme.o IconButton.o SystemTray.o GenericTool.o ButtonTool.o ButtonTheme.o ToolFactory.o  -L/usr/openwin/lib -lSM -lICE FbTk/libFbTk.a -lnsl -lsocket -lX11 -lXext -L/usr/local/lib -liconv -L/usr/sfw/lib -L/usr/openwin/sfw/lib -lXft -lfreetype -lfontconfig -lXrender -lXpm -Wl,-R -Wl,/usr/openwin/lib -Wl,-R -Wl,/usr/sfw/lib -Wl,-R -Wl,/usr/openwin/lib:/usr/openwin/sfw/lib

Die Änderungen die ich gemacht habe ist eine Kombination von den Hinweisen der vorherigen Posts.
Den Befehl musst du natürlich im richtigen Verzeichnis ausführen, wie vorher schon gesagt.

Wenn es jetzt den den selben Fehler wieder bringt, obwohl du vorher in der libiconv.so alle Symbole gefunden hast, dann wirds echt eng mit weiteren Lösungsvorschlägen.
Was ich noch vorschlagen würde, vor alledem mal den LD_LIBRARY_PATH zu entrümpeln, möglichst ganz leermachen. Der macht nämlich schnell mal Probleme. Wie gesagt, ich empfehle crle zu verwenden. Den LIBRARY_PATH solltest du wirklich nur dann verwenden, wenn du keinen root-Zugriff hast oder wenn du in Startskripten von Programmen zusätzliche Bibliotheken brauchst (Mozilla macht das z.B. so)

Es gibt noch eine weitere Möglichkeit:

Die Solaris libc hat ein eingebautes iconv, das wird aber nur benutzt wenn configure keine libiconv findet oder das configure einen Schalter besitzt, um es nicht zu benutzen. ./configure --help gibt darüber auskunft.

So, versuch das alles erstmal.

Mfg. Erisch

cutoff

  • Gast
Re: fluxbox compile error
« Antwort #9 am: 21. Januar 2005, 22:23:37 »
jo, die objeckte sind der lib zwar bekannt, aber UNDEF :(

-bash-2.05b$ nm /usr/local/lib/libiconv.so | grep close
[793]   |         0|       0|FUNC |GLOB |0    |UNDEF  |fclose
[806]   |    115364|      20|FUNC |GLOB |0    |8      |libiconv_close
-bash-2.05b$ nm /usr/local/lib/libiconv.so | grep open
[792]   |         0|       0|FUNC |GLOB |0    |UNDEF  |fopen
[817]   |    114036|    1248|FUNC |GLOB |0    |8      |libiconv_open
-bash-2.05b$ nm /usr/local/lib/libiconv.so | grep libiconv
/usr/local/lib/libiconv.so:
[1]     |         0|       0|FILE |LOCL |0    |ABS    |.libs/libiconv.so.2.1.0
[805]   |    976564|       4|OBJT |GLOB |0    |14     |_libiconv_version
[810]   |    115284|      80|FUNC |GLOB |0    |8      |libiconv
[806]   |    115364|      20|FUNC |GLOB |0    |8      |libiconv_close
[817]   |    114036|    1248|FUNC |GLOB |0    |8      |libiconv_open
[796]   |    115384|     276|FUNC |GLOB |0    |8      |libiconvctl
[800]   |    115836|     412|FUNC |GLOB |0    |8      |libiconvlist

sonnenblen.de - Das unabhängige Sun User Forum

Re: fluxbox compile error
« Antwort #9 am: 21. Januar 2005, 22:23:37 »

Offline erisch

  • Sobl Moderator
  • Sobl Guru
  • *****
  • Beiträge: 758
  • TurboSPAAAAAG
    • erisch.homeunix.net
Re: fluxbox compile error
« Antwort #10 am: 22. Januar 2005, 04:40:42 »
nö, wieso

fopen und fclose stehen nicht in der libiconv, es geht doch aber um libiconv_close und libiconv_open und die stehen doch drin.

mit der libiconv.so ist somit alles in Ordnung.

Mfg. Erisch

cutoff

  • Gast
Re: fluxbox compile error
« Antwort #11 am: 27. Januar 2005, 18:43:37 »
also mit der kompletten g++ .... anweisung (-liconv eingebunden) hat er es dann doch durchgezogen.
obwohl alle run path's /library path's wie beschrieben gesetzt wurden musste man es trotzdem fuer 4 solcher *.o dateibloecke haendisch nachreichen.
soweit erstmal vielen dank erisch.
nun macht mir bloss der Xserver noch zu schaffen, der die Xsession dateien einfach nicht lesen will, der lump   :)
aber das ist jetzt offtopic.

nie wieder ne pre-release version!

gruss
cutoff

Offline erisch

  • Sobl Moderator
  • Sobl Guru
  • *****
  • Beiträge: 758
  • TurboSPAAAAAG
    • erisch.homeunix.net
Re: fluxbox compile error
« Antwort #12 am: 28. Januar 2005, 15:49:20 »
Auf jeden Fall geht das mit den Xsessions.

Ich hatte auch Gnome 2.6 und fvwm (selbstkompiliert) auf Sol10 am laufen. Hab aber die Files nicht mehr da. Ich hab aber damals einfach die von Blastwave Gnome genommen und umgebastelt.

Mfg. Erisch

Offline erisch

  • Sobl Moderator
  • Sobl Guru
  • *****
  • Beiträge: 758
  • TurboSPAAAAAG
    • erisch.homeunix.net
Re: fluxbox compile error
« Antwort #13 am: 30. April 2005, 02:38:10 »
Also ich hab mir heute mal die Sourcen von fluxbox besorgt und kompiliert.

Bis auf einen Fehler (der ein offizieller Bug zu sein scheint und noch 5min googeln behoben ist) läuft die Kompilation bei mir fehlerfrei durch.

Ich hab einfach nur mal schnell so zum testen

./configure
gmake

eingegeben und alles lief wunderbar durch.

Ich werde morgen mal testen, ob das Teil auch wirklich funktioniert.

Mfg. Erisch