From: Jan C. <ja...@in...> - 2007-03-19 09:59:49
|
Hi, I am trying to build gtk2hs on a SunOS 5.10. It reports the following error. ghc-6.4.1: can't find file `gtk/Graphics/UI/Gtk/Embedding/Embedding.hs' make: *** [gtk/libHSgtk_a.deps] Error 1 make: *** Deleting file `gtk/libHSgtk_a.deps' Can anybody give me a hint what's wrong. Regards, Jan |
From: Duncan C. <dun...@wo...> - 2007-03-19 11:48:59
|
On Mon, 2007-03-19 at 10:50 +0100, Jan Christiansen wrote: > Hi, > > I am trying to build gtk2hs on a SunOS 5.10. It reports the following > error. > > ghc-6.4.1: can't find file `gtk/Graphics/UI/Gtk/Embedding/Embedding.hs' > make: *** [gtk/libHSgtk_a.deps] Error 1 > make: *** Deleting file `gtk/libHSgtk_a.deps' > > Can anybody give me a hint what's wrong. This looks like a follow-on error. Something probably went wrong just before this, can you look back in the build log? SonOS 5.10, that's Solaris 10 right? I'm assuming you're using GNU make, not Solaris make. So here's a few random things that might shed some light on the situation: * Did tools/c2hs/c2hsLocal build ok? * did gtk/gtk.precomp build? * If you do '(g)make' again, what's the first error you get? * What happens if you do: make gtk/Graphics/UI/Gtk/Embedding/Embedding.hs ? It should call hsc2hs to generate Embedding.hs from Embedding.hsc, does that give any error message? Duncan |
From: Axel S. <A....@ke...> - 2007-03-19 12:54:18
|
On Mon, 2007-03-19 at 22:48 +1100, Duncan Coutts wrote: > On Mon, 2007-03-19 at 10:50 +0100, Jan Christiansen wrote: > > Hi, > > > > I am trying to build gtk2hs on a SunOS 5.10. It reports the following > > error. > > > > ghc-6.4.1: can't find file `gtk/Graphics/UI/Gtk/Embedding/Embedding.hs' > > make: *** [gtk/libHSgtk_a.deps] Error 1 > > make: *** Deleting file `gtk/libHSgtk_a.deps' > > > > Can anybody give me a hint what's wrong. > > This looks like a follow-on error. Something probably went wrong just > before this, can you look back in the build log? > > SonOS 5.10, that's Solaris 10 right? I'm assuming you're using GNU make, > not Solaris make. > > So here's a few random things that might shed some light on the > situation: > * Did tools/c2hs/c2hsLocal build ok? > * did gtk/gtk.precomp build? > * If you do '(g)make' again, what's the first error you get? > * What happens if you do: make > gtk/Graphics/UI/Gtk/Embedding/Embedding.hs ? It should call > hsc2hs to generate Embedding.hs from Embedding.hsc, does that > give any error message? I tried to build on our Sun with no problems. But it's: SunOS myrtle 5.9 Generic_118558-25 sun4u sparc SUNW,Sun-Fire-480R It might be the OS version or the way Gtk+ is built. Not much help from my side, Axel. |
From: Jan C. <ja...@in...> - 2007-03-19 13:04:57
|
Hi, Am 19.03.2007 um 12:48 schrieb Duncan Coutts: > This looks like a follow-on error. Something probably went wrong just > before this, can you look back in the build log? I have found an error that is probably the reason for the other one /usr/include/gtk-2.0/gtk/gtkversion.h:45: warning: `GTK_CHECK_VERSION' redefined gtk2hs-config.h:126: warning: this is the location of the previous definition cc1: Invalid option `t' make[1]: *** [gtk/Graphics/UI/Gtk/Embedding/Embedding.hs] Error 1 > SonOS 5.10, that's Solaris 10 right? I'm assuming you're using GNU > make, > not Solaris make. Right, I am using GNU make on Solaris 10. > So here's a few random things that might shed some light on the > situation: > * Did tools/c2hs/c2hsLocal build ok? > * did gtk/gtk.precomp build? > * If you do '(g)make' again, what's the first error you get? I get the following: /usr/include/glib-2.0/glib/gutils.h:335: warning: `GLIB_CHECK_VERSION' redefined gtk2hs-config.h:144: warning: this is the location of the previous definition In file included from /usr/include/gtk-2.0/gtk/gtk.h:175, from gtk/Graphics/UI/Gtk/Embedding/ Embedding_hsc_make.c:2: /usr/include/gtk-2.0/gtk/gtkversion.h:45: warning: `GTK_CHECK_VERSION' redefined gtk2hs-config.h:126: warning: this is the location of the previous definition cc1: Invalid option `t' make[1]: *** [gtk/Graphics/UI/Gtk/Embedding/Embedding.hs] Error 1 make[1]: Leaving directory `/home/jac/Vorlesungen/Bomberman/ gtk2hs-0.9.11' ghc-6.4.1: can't find file `gtk/Graphics/UI/Gtk/Embedding/Embedding.hs' make: *** [gtk/libHSgtk_a.deps] Error 1 make: *** Deleting file `gtk/libHSgtk_a.deps' > * What happens if you do: make > gtk/Graphics/UI/Gtk/Embedding/Embedding.hs ? It should call > hsc2hs to generate Embedding.hs from Embedding.hsc, does that > give any error message? make gtk/Graphics/UI/Gtk/Embedding/Embedding.hs yields the following /home/haskell/bin/hsc2hs +RTS -RTS -L-optl-lgobject-2.0 -L-optl- lglib-2.0 -L-optl-mt -L-optl-lgtk-x11-2.0 -L-optl-lgdk-x11-2.0 -L- optl-latk-1.0 -L-optl-lgdk_pixbuf-2.0 -L-optl-lm -L-optl-lmlib -L- optl-lpangoxft-1.0 -L-optl-lpangox-1.0 -L-optl-lpango-1.0 -L-optl- lgmodule-2.0 -L-optl-lgthread-2.0 -C-optc-g -C-optc-O2 -C-optc-mt -C- opta-g -C-opta-O2 -C-opta-mt -I/usr/include/glib-2.0 -I/usr/lib/ glib-2.0/include -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/ usr/lib/glib-2.0/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/ include -I/usr/openwin/include -I/usr/sfw/include -I/usr/sfw/include/ freetype2 -I/usr/include/atk-1.0 -C'-optc-include' -C'-optcgtk2hs- config.h' --include gtk/gtk.h --cc="/home/haskell/bin/ghc" --lflag=- no-hs-main gtk/Graphics/UI/Gtk/Embedding/Embedding.hsc In file included from /usr/include/glib-2.0/glib/gstring.h:32, from /usr/include/glib-2.0/glib/giochannel.h:32, from /usr/include/glib-2.0/glib.h:45, from /usr/include/gtk-2.0/gdk/gdktypes.h:32, from /usr/include/gtk-2.0/gdk/gdkcolor.h:4, from /usr/include/gtk-2.0/gdk/gdk.h:30, from /usr/include/gtk-2.0/gtk/gtk.h:31, from gtk/Graphics/UI/Gtk/Embedding/ Embedding_hsc_make.c:2: /usr/include/glib-2.0/glib/gutils.h:335: warning: `GLIB_CHECK_VERSION' redefined gtk2hs-config.h:144: warning: this is the location of the previous definition In file included from /usr/include/gtk-2.0/gtk/gtk.h:175, from gtk/Graphics/UI/Gtk/Embedding/ Embedding_hsc_make.c:2: /usr/include/gtk-2.0/gtk/gtkversion.h:45: warning: `GTK_CHECK_VERSION' redefined gtk2hs-config.h:126: warning: this is the location of the previous definition cc1: Invalid option `t' make: *** [gtk/Graphics/UI/Gtk/Embedding/Embedding.hs] Error 1 Regards, Jan |
From: Duncan C. <dun...@wo...> - 2007-03-19 22:54:51
|
On Mon, 2007-03-19 at 13:51 +0100, Jan Christiansen wrote: > > * What happens if you do: make > > gtk/Graphics/UI/Gtk/Embedding/Embedding.hs ? It should call > > hsc2hs to generate Embedding.hs from Embedding.hsc, does that > > give any error message? > > make gtk/Graphics/UI/Gtk/Embedding/Embedding.hs yields the > following Yes, great, getting somewhere. > /home/haskell/bin/hsc2hs +RTS -RTS -L-optl-lgobject-2.0 -L-optl- > lglib-2.0 -L-optl-mt -L-optl-lgtk-x11-2.0 -L-optl-lgdk-x11-2.0 -L- > optl-latk-1.0 -L-optl-lgdk_pixbuf-2.0 -L-optl-lm -L-optl-lmlib -L- > optl-lpangoxft-1.0 -L-optl-lpangox-1.0 -L-optl-lpango-1.0 -L-optl- > lgmodule-2.0 -L-optl-lgthread-2.0 -C-optc-g -C-optc-O2 -C-optc-mt -C- > opta-g -C-opta-O2 -C-opta-mt -I/usr/include/glib-2.0 -I/usr/lib/ > glib-2.0/include -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/ > usr/lib/glib-2.0/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/ > include -I/usr/openwin/include -I/usr/sfw/include -I/usr/sfw/include/ > freetype2 -I/usr/include/atk-1.0 -C'-optc-include' -C'-optcgtk2hs- > config.h' --include gtk/gtk.h --cc="/home/haskell/bin/ghc" --lflag=- > no-hs-main gtk/Graphics/UI/Gtk/Embedding/Embedding.hsc {snipped warnings} > cc1: Invalid option `t' > make: *** [gtk/Graphics/UI/Gtk/Embedding/Embedding.hs] Error 1 Ok, so the way hsc2hs works is that it reads the .hsc file, generates a .c program which it then compiles and runs to generate the final .hs output. So it looks like hsc2hs is calling the C compiler with a flag it doesn't recognise. If you run that above command manually and add --verbose it should tell you the full command line it's using to invoke the C compiler. As you can see from the above commandline it's using --cc=ghc as the C compiler. So that's an additional step away from actually calling the real C compiler, so to find out how ghc is calling gcc you need to pass -v to ghc, by adding -C-v to the hsc2hs command line. So yes, find the command hsc2hc is using to call ghc and the command line ghc is finally using when it calls gcc and check what version of gcc it's calling. Duncan |
From: Jan C. <ja...@in...> - 2007-03-20 08:23:10
|
Am 19.03.2007 um 23:54 schrieb Duncan Coutts: > So yes, find the command hsc2hc is using to call ghc and the command > line ghc is finally using when it calls gcc and check what version of > gcc it's calling. GNU C version 2.95.3 20010315 (release) (sparc-sun-solaris2.7) compiled by GNU C version 2.95.3 20010315 (release). -> I guess that the problem are -C-opta-mt and -C-optc-mt which are passed to hsc2hs. /home/haskell/bin/hsc2hs +RTS -RTS -L-optl-lgobject-2.0 -L-optl- lglib-2.0 -L-optl-mt -L-optl-lgtk-x11-2.0 -L-optl-lgdk-x11-2.0 -L- optl-latk-1.0 -L-optl-lgdk_pixbuf-2.0 -L-optl-lm -L-optl-lmlib -L- optl-lpangoxft-1.0 -L-optl-lpangox-1.0 -L-optl-lpango-1.0 -L-optl- lgmodule-2.0 -L-optl-lgthread-2.0 -C-optc-g -C-optc-O2 -C-optc-mt -C- opta-g -C-opta-O2 -C-opta-mt -I/usr/include/glib-2.0 -I/usr/lib/ glib-2.0/include -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/ usr/lib/glib-2.0/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/ include -I/usr/openwin/include -I/usr/sfw/include -I/usr/sfw/include/ freetype2 -I/usr/include/atk-1.0 -C'-optc-include' -C'-optcgtk2hs- config.h' --include gtk/gtk.h --cc="/home/haskell/bin/ghc" --lflag=- no-hs-main gtk/Graphics/UI/Gtk/Embedding/Embedding.hsc --verbose -C-v -> ghc is called with the parameters -opta-mt and -optc-mt. Executing: /home/haskell/bin/ghc -c -optc-g -optc-O2 -optc-mt -opta-g -opta-O2 -opta-mt -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/ include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/ openwin/include -I/usr/sfw/include -I/usr/sfw/include/freetype2 -I/ usr/include/atk-1.0 -optc-include -optcgtk2hs-config.h -v gtk/ Graphics/UI/Gtk/Embedding/Embedding_hsc_make.c -o gtk/Graphics/UI/Gtk/ Embedding/Embedding_hsc_make.o -> gcc is called with a parameter -mt gcc gtk/Graphics/UI/Gtk/Embedding/Embedding_hsc_make.c -o /tmp/jac/ ghc3667.s -v -S -Wimplicit -O -D__GLASGOW_HASKELL__=604 -g -O2 -mt - include gtk2hs-config.h -ffloat-store -I /usr/include/glib-2.0 -I / usr/lib/glib-2.0/include -I /usr/include/pango-1.0 -I /usr/include/ glib-2.0 -I /usr/lib/glib-2.0/include -I /usr/include/gtk-2.0 -I /usr/ lib/gtk-2.0/include -I /usr/openwin/include -I /usr/sfw/include -I / usr/sfw/include/freetype2 -I /usr/include/atk-1.0 -I /home/haskell/ ghc-6.4.1/lib/ghc-6.4.1/include -> cc1 is called with this parameter which causes the error. /opt/gnu/lib/gcc-lib/sparc-sun-solaris2.7/2.95.3/cc1 /tmp/jac/ ccVowzPc.i -quiet -dumpbase Embedding_hsc_make.c -mt -g -O -O2 - Wimplicit -version -ffloat-store -o /tmp/jac/ghc3667.s cc1: Invalid option `t' -> what are these parameters supposed to do? Jan |
From: Axel S. <A....@ke...> - 2007-03-20 10:08:23
|
On Tue, 2007-03-20 at 09:22 +0100, Jan Christiansen wrote: > -> cc1 is called with this parameter which causes the error. > > /opt/gnu/lib/gcc-lib/sparc-sun-solaris2.7/2.95.3/cc1 /tmp/jac/ > ccVowzPc.i -quiet -dumpbase Embedding_hsc_make.c -mt -g -O -O2 - > Wimplicit -version -ffloat-store -o /tmp/jac/ghc3667.s > cc1: Invalid option `t' > > -> what are these parameters supposed to do? We get them from the pkg-config which tells us with what flags we're supposed to link against the various libraries. The -mt option says something about threading. The only package where threading creeps in on my Sun box is gconf: as49@myrtle:~:502$ pkg-config --libs gconf-2.0 -threads -L/usr/local/lib -lgconf-2 -lORBit-2 -lm -lgmodule-2.0 -ldl -lgthread-2.0 -lglib-2.0 -liconv Can you send us your output for the above command? I'm not sure why you should have the -mt flag. The gcc manual says in the section for IA-64: -mt -pthread Add support for multithreading using the POSIX threads library. This option sets flags for both the preprocessor and linker. It does not affect the thread safety of object code produced by the compiler or that of libraries supplied with it. These are HP-UX specific flags. Well, -pthread is certainly not HP_UX IA-64 specific, as it's used on my Linux box. But our Solaris machine certainly understands a different option, namely -threads. So could you send us your output of pkg-config --libs gconf-2.0 ? If it includes -mt then you the package registers incorrect flags for Solaris. You might be able to work around by configuring gtk2hs, and then do a search and replace of -mt to -thread in "Makefile". The build as usual. Axel. |
From: Duncan C. <dun...@wo...> - 2007-03-20 11:37:13
|
On Tue, 2007-03-20 at 10:07 +0000, Axel Simon wrote: > On Tue, 2007-03-20 at 09:22 +0100, Jan Christiansen wrote: > > -> what are these parameters supposed to do? > > We get them from the pkg-config which tells us with what flags we're > supposed to link against the various libraries. > > The -mt option says something about threading. The only package where > threading creeps in on my Sun box is gconf: But this was compiling something in the gtk package, so we want to look for what pkg-config says about gtk: pkg-config --cflags --libs gtk+-2.0 Jan, could you send the output of the above command? My suspicion is that this flag is actually coming in via the gthread package which we now use. So try this one too: pkg-config --cflags --libs gthread-2.0 So in summary probably what is going on is that one of these pkg-config files contains flags that your current gcc doesn't grok. So there'd be several ways to fix that: * use a later gcc, some 3.x version would probably do * fix the pkg-config .pc file (that'd need write access which probably means you'd have to be root) * override the flags we get from pkg-config by setting the GTK_LIBS environment variable before running ./configure. See ./configure --help for the full list of vars you can override. Duncan |
From: Jan C. <ja...@in...> - 2007-03-20 13:12:01
|
Am 20.03.2007 um 11:46 schrieb Duncan Coutts: > On Tue, 2007-03-20 at 10:07 +0000, Axel Simon wrote: >> On Tue, 2007-03-20 at 09:22 +0100, Jan Christiansen wrote: > >>> -> what are these parameters supposed to do? >> >> We get them from the pkg-config which tells us with what flags we're >> supposed to link against the various libraries. >> >> The -mt option says something about threading. The only package where >> threading creeps in on my Sun box is gconf: >> >> So could you send us your output of pkg-config --libs gconf-2.0 ? -mt -lgconf-2 -lORBit-2 -lgobject-2.0 -lresolv -lnsl -lsocket -lm - lgmodule-2.0 -lgthread-2.0 -lglib-2.0 I have replaced all occurrences of -mt in the Makefile by -threads. I still get ghc-6.4.1: can't find file `gtk/Graphics/UI/Gtk/Embedding/Embedding.hs' although the "invalid option" error vanished. It looks like the call of /home/haskell/bin/hsc2hs works properly but generates no .hs file??? > But this was compiling something in the gtk package, so we want to > look > for what pkg-config says about gtk: > > pkg-config --cflags --libs gtk+-2.0 -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/ atk-1.0 -I/usr/include/pango-1.0 -I/usr/openwin/include -I/usr/sfw/ include -I/usr/sfw/include/freetype2 -I/usr/include/glib-2.0 -I/usr/ lib/glib-2.0/include -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 - lgdk_pixbuf-2.0 -lm -lmlib -lpangoxft-1.0 -lpangox-1.0 -lpango-1.0 - lgobject-2.0 -lgmodule-2.0 -lglib-2.0 > Jan, could you send the output of the above command? My suspicion is > that this flag is actually coming in via the gthread package which we > now use. So try this one too: > > pkg-config --cflags --libs gthread-2.0 -mt -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -mt - lgthread-2.0 -lglib-2.0 It looks like you are correct. > So in summary probably what is going on is that one of these pkg- > config > files contains flags that your current gcc doesn't grok. So there'd be > several ways to fix that: > * use a later gcc, some 3.x version would probably do I would like to try to avoid this. > * fix the pkg-config .pc file (that'd need write access which > probably means you'd have to be root) I could ask for this. > * override the flags we get from pkg-config by setting the > GTK_LIBS environment variable before running ./configure. > See ./configure --help for the full list of vars you can > override. Does this have the same affect as my search and replace in the Makefile? |
From: Axel S. <A....@ke...> - 2007-03-20 14:18:44
|
On Tue, 2007-03-20 at 14:11 +0100, Jan Christiansen wrote: > I have replaced all occurrences of -mt in the Makefile by -threads. > I still get > ghc-6.4.1: can't find file > `gtk/Graphics/UI/Gtk/Embedding/Embedding.hs' > > although the "invalid option" error vanished. It looks like the call > of /home/haskell/bin/hsc2hs works properly but generates no .hs > file??? Try 'make clean'. > Am 20.03.2007 um 11:46 schrieb Duncan Coutts: > > Jan, could you send the output of the above command? My suspicion is > > that this flag is actually coming in via the gthread package which we > > now use. So try this one too: > > > > pkg-config --cflags --libs gthread-2.0 > > -mt -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -mt - > lgthread-2.0 -lglib-2.0 > > It looks like you are correct. Makes sense :-) > > So in summary probably what is going on is that one of these pkg- > > config > > files contains flags that your current gcc doesn't grok. So there'd be > > several ways to fix that: > > * use a later gcc, some 3.x version would probably do > > I would like to try to avoid this. And it might not even help. These options seem to be platform-specific. There's no -mt option on our Sun box, but -threads is used instead. > > * fix the pkg-config .pc file (that'd need write access which > > probably means you'd have to be root) > > I could ask for this. This would be the easiest in the long run. > > * override the flags we get from pkg-config by setting the > > GTK_LIBS environment variable before running ./configure. > > See ./configure --help for the full list of vars you can > > override. > > Does this have the same affect as my search and replace in the Makefile? Yes, you would have to override every _LIBS and _CFLAGS option that mentions -mt and set them to the same string in which -mt is replaced by -threads. Axel. |
From: Jan C. <ja...@in...> - 2007-03-20 14:49:44
|
Am 20.03.2007 um 15:17 schrieb Axel Simon: > On Tue, 2007-03-20 at 14:11 +0100, Jan Christiansen wrote: > > Try 'make clean'. I have called make clean before the make. Oh ... I just realized that the call of hsc2hs does not work properly. It reports a lot of undefined symbols which I did not realize. I am very sorry for that. /home/haskell/bin/hsc2hs +RTS -RTS -L-optl-lgobject-2.0 -L-optl- lglib-2.0 -L-optl-threads -L-optl-lgtk-x11-2.0 -L-optl-lgdk-x11-2.0 - L-optl-latk-1.0 -L-optl-lgdk_pixbuf-2.0 -L-optl-lm -L-optl-lmlib -L- optl-lpangoxft-1.0 -L-optl-lpangox-1.0 -L-optl-lpango-1.0 -L-optl- lgmodule-2.0 -L-optl-lgthread-2.0 -C-optc-g -C-optc-O2 -C-optc- threads -C-opta-g -C-opta-O2 -C-opta-threads -I/usr/include/glib-2.0 - I/usr/lib/glib-2.0/include -I/usr/include/pango-1.0 -I/usr/include/ glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/gtk-2.0 -I/usr/ lib/gtk-2.0/include -I/usr/openwin/include -I/usr/sfw/include -I/usr/ sfw/include/freetype2 -I/usr/include/atk-1.0 -C'-optc-include' -C'- optcgtk2hs-config.h' --include gtk/gtk.h --cc="/home/haskell/bin/ghc" --lflag=-no-hs-main gtk/Graphics/UI/Gtk/Embedding/Embedding.hsc In file included from /usr/include/glib-2.0/glib/gstring.h:32, from /usr/include/glib-2.0/glib/giochannel.h:32, from /usr/include/glib-2.0/glib.h:45, from /usr/include/gtk-2.0/gdk/gdktypes.h:32, from /usr/include/gtk-2.0/gdk/gdkcolor.h:4, from /usr/include/gtk-2.0/gdk/gdk.h:30, from /usr/include/gtk-2.0/gtk/gtk.h:31, from gtk/Graphics/UI/Gtk/Embedding/ Embedding_hsc_make.c:2: /usr/include/glib-2.0/glib/gutils.h:335: warning: `GLIB_CHECK_VERSION' redefined gtk2hs-config.h:144: warning: this is the location of the previous definition In file included from /usr/include/gtk-2.0/gtk/gtk.h:175, from gtk/Graphics/UI/Gtk/Embedding/ Embedding_hsc_make.c:2: /usr/include/gtk-2.0/gtk/gtkversion.h:45: warning: `GTK_CHECK_VERSION' redefined gtk2hs-config.h:126: warning: this is the location of the previous definition Undefined first referenced symbol in file gdk_drawable_get_display /opt/gnu/lib/libgtk-x11-2.0.so gdk_window_set_geometry_hints /opt/gnu/lib/libgtk-x11-2.0.so gdk_colormap_query_color /opt/gnu/lib/libgtk-x11-2.0.so gdk_draw_rgb_image_dithalign /opt/gnu/lib/libgtk-x11-2.0.so gdk_window_destroy /opt/gnu/lib/libgtk-x11-2.0.so gdk_display_get_core_pointer /opt/gnu/lib/libgtk-x11-2.0.so gdk_gc_set_clip_rectangle /opt/gnu/lib/libgtk-x11-2.0.so gdk_input_set_extension_events /opt/gnu/lib/libgtk-x11-2.0.so gdk_x11_xatom_to_atom_for_display /opt/gnu/lib/libgtk-x11-2.0.so gdk_region_get_clipbox /opt/gnu/lib/libgtk-x11-2.0.so gdk_keymap_translate_keyboard_state /opt/gnu/lib/libgtk-x11-2.0.so gdk_display_set_double_click_time /opt/gnu/lib/libgtk-x11-2.0.so gdk_flush /opt/gnu/lib/libgtk-x11-2.0.so gdk_display_get_pointer /opt/gnu/lib/libgtk-x11-2.0.so gdk_notify_startup_complete /opt/gnu/lib/libgtk-x11-2.0.so gdk_screen_get_monitor_at_point /opt/gnu/lib/libgtk-x11-2.0.so gdk_window_set_keep_above /opt/gnu/lib/libgtk-x11-2.0.so gdk_window_set_keep_below /opt/gnu/lib/libgtk-x11-2.0.so gdk_display_supports_clipboard_persistence /opt/gnu/lib/libgtk- x11-2.0.so gdk_window_maximize /opt/gnu/lib/libgtk-x11-2.0.so gdk_region_union_with_rect /opt/gnu/lib/libgtk-x11-2.0.so gdk_window_get_parent /opt/gnu/lib/libgtk-x11-2.0.so gdk_window_destroy_notify /opt/gnu/lib/libgtk-x11-2.0.so gdk_window_register_dnd /opt/gnu/lib/libgtk-x11-2.0.so gdk_font_get_type /opt/gnu/lib/libgtk-x11-2.0.so gdk_window_set_cursor /opt/gnu/lib/libgtk-x11-2.0.so gdk_selection_owner_set_for_display /opt/gnu/lib/libgtk-x11-2.0.so gdk_selection_owner_get_for_display /opt/gnu/lib/libgtk-x11-2.0.so gdk_text_property_to_utf8_list_for_display /opt/gnu/lib/libgtk- x11-2.0.so gdk_window_get_events /opt/gnu/lib/libgtk-x11-2.0.so gdk_window_set_events /opt/gnu/lib/libgtk-x11-2.0.so gdk_window_add_filter /opt/gnu/lib/libgtk-x11-2.0.so gdk_window_new /opt/gnu/lib/libgtk-x11-2.0.so gdk_x11_drawable_get_xid /opt/gnu/lib/libgtk-x11-2.0.so gdk_gc_set_clip_mask /opt/gnu/lib/libgtk-x11-2.0.so gdk_display_get_type /opt/gnu/lib/libgtk-x11-2.0.so gdk_window_unstick /opt/gnu/lib/libgtk-x11-2.0.so gdk_x11_display_get_user_time_libgtk_only /opt/gnu/lib/libgtk-x11-2.0.so gdk_unicode_to_keyval /opt/gnu/lib/libgtk-x11-2.0.so gdk_window_set_skip_taskbar_hint /opt/gnu/lib/libgtk-x11-2.0.so gdk_window_peek_children /opt/gnu/lib/libgtk-x11-2.0.so gdk_display_pointer_is_grabbed /opt/gnu/lib/libgtk-x11-2.0.so gdk_device_set_axis_use /opt/gnu/lib/libgtk-x11-2.0.so gdk_font_from_description_for_display /opt/gnu/lib/libgtk-x11-2.0.so gdk_font_equal /opt/gnu/lib/libgtk-x11-2.0.so gdk_window_begin_move_drag /opt/gnu/lib/libgtk-x11-2.0.so gdk_screen_get_monitor_geometry /opt/gnu/lib/libgtk-x11-2.0.so gdk_window_constrain_size /opt/gnu/lib/libgtk-x11-2.0.so gdk_selection_send_notify_for_display /opt/gnu/lib/libgtk-x11-2.0.so gdk_draw_drawable /opt/gnu/lib/libgtk-x11-2.0.so gdk_keyval_from_name /opt/gnu/lib/libgtk-x11-2.0.so gdk_cursor_new /opt/gnu/lib/libgtk-x11-2.0.so gdk_text_width /opt/gnu/lib/libgtk-x11-2.0.so gdk_font_unref /opt/gnu/lib/libgtk-x11-2.0.so gdk_display_get_n_screens /opt/gnu/lib/libgtk-x11-2.0.so gdk_selection_convert /opt/gnu/lib/libgtk-x11-2.0.so gdk_cursor_unref /opt/gnu/lib/libgtk-x11-2.0.so gdk_event_mask_get_type /opt/gnu/lib/libgtk-x11-2.0.so gdk_pango_renderer_set_drawable /opt/gnu/lib/libgtk-x11-2.0.so gdk_window_get_origin /opt/gnu/lib/libgtk-x11-2.0.so gdk_device_set_key /opt/gnu/lib/libgtk-x11-2.0.so gdk_window_set_modal_hint /opt/gnu/lib/libgtk-x11-2.0.so gdk_rgb_find_color /opt/gnu/lib/libgtk-x11-2.0.so gdk_image_get_pixel /opt/gnu/lib/libgtk-x11-2.0.so gdk_display_open_default_libgtk_only /opt/gnu/lib/libgtk-x11-2.0.so gdk_extension_mode_get_type /opt/gnu/lib/libgtk-x11-2.0.so gdk_window_fullscreen /opt/gnu/lib/libgtk-x11-2.0.so gdk_x11_screen_get_screen_number /opt/gnu/lib/libgtk-x11-2.0.so gdk_pango_renderer_set_stipple /opt/gnu/lib/libgtk-x11-2.0.so gdk_window_set_background /opt/gnu/lib/libgtk-x11-2.0.so gdk_window_foreign_new_for_display /opt/gnu/lib/libgtk-x11-2.0.so gdk_window_is_viewable /opt/gnu/lib/libgtk-x11-2.0.so gdk_pixmap_colormap_create_from_xpm make[1]: *** [gtk/Graphics/UI/Gtk/ Embedding/Embedding.hs] Error 1 make[1]: Leaving directory `/home/jac/Vorlesungen/Bomberman/ gtk2hs-0.9.11' ghc-6.4.1: can't find file `gtk/Graphics/UI/Gtk/Embedding/Embedding.hs' make: *** [gtk/libHSgtk_a.deps] Error 1 make: *** Deleting file `gtk/libHSgtk_a.deps' Jan |
From: Axel S. <A....@ke...> - 2007-03-20 15:09:13
|
Jan, On Tue, 2007-03-20 at 15:49 +0100, Jan Christiansen wrote: > Am 20.03.2007 um 15:17 schrieb Axel Simon: > > > On Tue, 2007-03-20 at 14:11 +0100, Jan Christiansen wrote: > > > > Try 'make clean'. > > I have called make clean before the make. Oh ... I just realized that > the call of hsc2hs does not work properly. It reports a lot of > undefined symbols which I did not realize. I am very sorry for that. > > /home/haskell/bin/hsc2hs +RTS -RTS -L-optl-lgobject-2.0 -L-optl- > lglib-2.0 -L-optl-threads -L-optl-lgtk-x11-2.0 -L-optl-lgdk-x11-2.0 - > L-optl-latk-1.0 -L-optl-lgdk_pixbuf-2.0 -L-optl-lm -L-optl-lmlib -L- > optl-lpangoxft-1.0 -L-optl-lpangox-1.0 -L-optl-lpango-1.0 -L-optl- > lgmodule-2.0 -L-optl-lgthread-2.0 -C-optc-g -C-optc-O2 -C-optc- > threads -C-opta-g -C-opta-O2 -C-opta-threads -I/usr/include/glib-2.0 - > I/usr/lib/glib-2.0/include -I/usr/include/pango-1.0 -I/usr/include/ > glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/gtk-2.0 -I/usr/ > lib/gtk-2.0/include -I/usr/openwin/include -I/usr/sfw/include -I/usr/ > sfw/include/freetype2 -I/usr/include/atk-1.0 -C'-optc-include' -C'- > optcgtk2hs-config.h' --include gtk/gtk.h --cc="/home/haskell/bin/ghc" > --lflag=-no-hs-main gtk/Graphics/UI/Gtk/Embedding/Embedding.hsc > In file included from /usr/include/glib-2.0/glib/gstring.h:32, > from /usr/include/glib-2.0/glib/giochannel.h:32, > from /usr/include/glib-2.0/glib.h:45, > from /usr/include/gtk-2.0/gdk/gdktypes.h:32, > from /usr/include/gtk-2.0/gdk/gdkcolor.h:4, > from /usr/include/gtk-2.0/gdk/gdk.h:30, > from /usr/include/gtk-2.0/gtk/gtk.h:31, > from gtk/Graphics/UI/Gtk/Embedding/ > Embedding_hsc_make.c:2: > /usr/include/glib-2.0/glib/gutils.h:335: warning: > `GLIB_CHECK_VERSION' redefined > gtk2hs-config.h:144: warning: this is the location of the previous > definition > In file included from /usr/include/gtk-2.0/gtk/gtk.h:175, > from gtk/Graphics/UI/Gtk/Embedding/ > Embedding_hsc_make.c:2: > /usr/include/gtk-2.0/gtk/gtkversion.h:45: warning: > `GTK_CHECK_VERSION' redefined > gtk2hs-config.h:126: warning: this is the location of the previous > definition > Undefined first referenced > symbol in file > gdk_drawable_get_display /opt/gnu/lib/libgtk-x11-2.0.so > gdk_window_set_geometry_hints /opt/gnu/lib/libgtk-x11-2.0.so > gdk_colormap_query_color /opt/gnu/lib/libgtk-x11-2.0.so > gdk_draw_rgb_image_dithalign /opt/gnu/lib/libgtk-x11-2.0.so > gdk_window_destroy /opt/gnu/lib/libgtk-x11-2.0.so > gdk_display_get_core_pointer /opt/gnu/lib/libgtk-x11-2.0.so > gdk_gc_set_clip_rectangle /opt/gnu/lib/libgtk-x11-2.0.so > gdk_input_set_extension_events /opt/gnu/lib/libgtk-x11-2.0.so > gdk_x11_xatom_to_atom_for_display /opt/gnu/lib/libgtk-x11-2.0.so > gdk_region_get_clipbox /opt/gnu/lib/libgtk-x11-2.0.so > gdk_keymap_translate_keyboard_state /opt/gnu/lib/libgtk-x11-2.0.so > gdk_display_set_double_click_time /opt/gnu/lib/libgtk-x11-2.0.so > gdk_flush /opt/gnu/lib/libgtk-x11-2.0.so > gdk_display_get_pointer /opt/gnu/lib/libgtk-x11-2.0.so > gdk_notify_startup_complete /opt/gnu/lib/libgtk-x11-2.0.so > gdk_screen_get_monitor_at_point /opt/gnu/lib/libgtk-x11-2.0.so > gdk_window_set_keep_above /opt/gnu/lib/libgtk-x11-2.0.so > gdk_window_set_keep_below /opt/gnu/lib/libgtk-x11-2.0.so > gdk_display_supports_clipboard_persistence /opt/gnu/lib/libgtk- > x11-2.0.so > gdk_window_maximize /opt/gnu/lib/libgtk-x11-2.0.so > gdk_region_union_with_rect /opt/gnu/lib/libgtk-x11-2.0.so > gdk_window_get_parent /opt/gnu/lib/libgtk-x11-2.0.so > gdk_window_destroy_notify /opt/gnu/lib/libgtk-x11-2.0.so > gdk_window_register_dnd /opt/gnu/lib/libgtk-x11-2.0.so > gdk_font_get_type /opt/gnu/lib/libgtk-x11-2.0.so > gdk_window_set_cursor /opt/gnu/lib/libgtk-x11-2.0.so > gdk_selection_owner_set_for_display /opt/gnu/lib/libgtk-x11-2.0.so > gdk_selection_owner_get_for_display /opt/gnu/lib/libgtk-x11-2.0.so > gdk_text_property_to_utf8_list_for_display /opt/gnu/lib/libgtk- > x11-2.0.so > gdk_window_get_events /opt/gnu/lib/libgtk-x11-2.0.so > gdk_window_set_events /opt/gnu/lib/libgtk-x11-2.0.so > gdk_window_add_filter /opt/gnu/lib/libgtk-x11-2.0.so > gdk_window_new /opt/gnu/lib/libgtk-x11-2.0.so > gdk_x11_drawable_get_xid /opt/gnu/lib/libgtk-x11-2.0.so > gdk_gc_set_clip_mask /opt/gnu/lib/libgtk-x11-2.0.so > gdk_display_get_type /opt/gnu/lib/libgtk-x11-2.0.so > gdk_window_unstick /opt/gnu/lib/libgtk-x11-2.0.so > gdk_x11_display_get_user_time_libgtk_only /opt/gnu/lib/libgtk-x11-2.0.so > gdk_unicode_to_keyval /opt/gnu/lib/libgtk-x11-2.0.so > gdk_window_set_skip_taskbar_hint /opt/gnu/lib/libgtk-x11-2.0.so > gdk_window_peek_children /opt/gnu/lib/libgtk-x11-2.0.so > gdk_display_pointer_is_grabbed /opt/gnu/lib/libgtk-x11-2.0.so > gdk_device_set_axis_use /opt/gnu/lib/libgtk-x11-2.0.so > gdk_font_from_description_for_display /opt/gnu/lib/libgtk-x11-2.0.so > gdk_font_equal /opt/gnu/lib/libgtk-x11-2.0.so > gdk_window_begin_move_drag /opt/gnu/lib/libgtk-x11-2.0.so > gdk_screen_get_monitor_geometry /opt/gnu/lib/libgtk-x11-2.0.so > gdk_window_constrain_size /opt/gnu/lib/libgtk-x11-2.0.so > gdk_selection_send_notify_for_display /opt/gnu/lib/libgtk-x11-2.0.so > gdk_draw_drawable /opt/gnu/lib/libgtk-x11-2.0.so > gdk_keyval_from_name /opt/gnu/lib/libgtk-x11-2.0.so > gdk_cursor_new /opt/gnu/lib/libgtk-x11-2.0.so > gdk_text_width /opt/gnu/lib/libgtk-x11-2.0.so > gdk_font_unref /opt/gnu/lib/libgtk-x11-2.0.so > gdk_display_get_n_screens /opt/gnu/lib/libgtk-x11-2.0.so > gdk_selection_convert /opt/gnu/lib/libgtk-x11-2.0.so > gdk_cursor_unref /opt/gnu/lib/libgtk-x11-2.0.so > gdk_event_mask_get_type /opt/gnu/lib/libgtk-x11-2.0.so > gdk_pango_renderer_set_drawable /opt/gnu/lib/libgtk-x11-2.0.so > gdk_window_get_origin /opt/gnu/lib/libgtk-x11-2.0.so > gdk_device_set_key /opt/gnu/lib/libgtk-x11-2.0.so > gdk_window_set_modal_hint /opt/gnu/lib/libgtk-x11-2.0.so > gdk_rgb_find_color /opt/gnu/lib/libgtk-x11-2.0.so > gdk_image_get_pixel /opt/gnu/lib/libgtk-x11-2.0.so > gdk_display_open_default_libgtk_only /opt/gnu/lib/libgtk-x11-2.0.so > gdk_extension_mode_get_type /opt/gnu/lib/libgtk-x11-2.0.so > gdk_window_fullscreen /opt/gnu/lib/libgtk-x11-2.0.so > gdk_x11_screen_get_screen_number /opt/gnu/lib/libgtk-x11-2.0.so > gdk_pango_renderer_set_stipple /opt/gnu/lib/libgtk-x11-2.0.so > gdk_window_set_background /opt/gnu/lib/libgtk-x11-2.0.so > gdk_window_foreign_new_for_display /opt/gnu/lib/libgtk-x11-2.0.so > gdk_window_is_viewable /opt/gnu/lib/libgtk-x11-2.0.so This is weird. Can you try to build a C gtk application at all? Can you run gtk-demo on your machine? Try to build: http://www.gtk.org/tutorial/c39.html#SEC-HELLOWORLD using: gcc `pkg-config --cflags --libs gtk+-2.0` hello.c -o hello If this all works, then we might have a bug in our configuration system. Axel. |
From: Jan C. <ja...@in...> - 2007-03-20 15:41:42
|
Am 20.03.2007 um 16:07 schrieb Axel Simon: > This is weird. Can you try to build a C gtk application at all? Can > you > run gtk-demo on your machine? The gtk-demo works. > Try to build: > http://www.gtk.org/tutorial/c39.html#SEC-HELLOWORLD > > using: > > gcc `pkg-config --cflags --libs gtk+-2.0` hello.c -o hello This reports the same undefined symbols as the compilation of gtk2hs. Am I right that there is something basically wrong? Jan |
From: Axel S. <A....@ke...> - 2007-03-20 15:57:19
|
On Tue, 2007-03-20 at 16:41 +0100, Jan Christiansen wrote: > Am 20.03.2007 um 16:07 schrieb Axel Simon: > > > This is weird. Can you try to build a C gtk application at all? Can > > you > > run gtk-demo on your machine? > > The gtk-demo works. > > > Try to build: > > http://www.gtk.org/tutorial/c39.html#SEC-HELLOWORLD > > > > using: > > > > gcc `pkg-config --cflags --libs gtk+-2.0` hello.c -o hello > > This reports the same undefined symbols as the compilation of gtk2hs. > Am I right that there is something basically wrong? Yes, definitely. This must work. Check if you have several versions of Gtk/Gdk installed and ensure that pkg-config looks in the right path (which you can override with PKG_CONFIG_PATH). pkg-config lives under /usr/local/bin on our Sun and it's package database are files stored under /usr/local/lib/pkgconfig/. If there are several versions, you might pick up the wrong dynamic libraries at runtime. Check you LD_LIBRARY_PATH variable. Maybe your sysadmins can help... Good luck, Axel. |
From: Jan C. <ja...@in...> - 2007-03-20 16:04:52
|
Am 20.03.2007 um 16:56 schrieb Axel Simon: > Yes, definitely. This must work. Check if you have several versions of > Gtk/Gdk installed and ensure that pkg-config looks in the right path > (which you can override with PKG_CONFIG_PATH). pkg-config lives > under /usr/local/bin on our Sun and it's package database are files > stored under /usr/local/lib/pkgconfig/. If there are several versions, > you might pick up the wrong dynamic libraries at runtime. Check you > LD_LIBRARY_PATH variable. Thanks very much for the great support to both of you. |
From: Jan C. <ja...@in...> - 2007-03-22 10:49:46
|
Am 20.03.2007 um 16:56 schrieb Axel Simon: > Maybe your sysadmins can help... The admin advised me to use a new version of gcc (3.4.3). Now it reports an linker error. The admin advised me to "ask the people who wrote the software". But I am not sure whether you can be of any help in this case. ./gtk2hs-config.h:122:1: warning: this is the location of the previous definition ld: fatal: relocation error: R_SPARC_32: file gtk/Graphics/UI/Gtk/ Embedding/Embedding_hsc_make.o: symbol <unknown>: offset 0xfae4e56a is non-aligned ld: fatal: relocation error: R_SPARC_32: file gtk/Graphics/UI/Gtk/ Embedding/Embedding_hsc_make.o: symbol <unknown>: offset 0xfae4e56e is non-aligned ld: fatal: relocation error: R_SPARC_32: file gtk/Graphics/UI/Gtk/ Embedding/Embedding_hsc_make.o: symbol <unknown>: offset 0xfae4e572 is non-aligned ld: fatal: relocation error: R_SPARC_32: file gtk/Graphics/UI/Gtk/ Embedding/Embedding_hsc_make.o: symbol <unknown>: offset 0xfae4fceb is non-aligned ld: fatal: relocation error: R_SPARC_32: file gtk/Graphics/UI/Gtk/ Embedding/Embedding_hsc_make.o: symbol <unknown>: offset 0xfae5033e is non-aligned collect2: ld returned 1 exit status Jan |
From: Axel S. <A....@ke...> - 2007-03-22 12:34:01
|
Jan, On Thu, 2007-03-22 at 11:49 +0100, Jan Christiansen wrote: > Am 20.03.2007 um 16:56 schrieb Axel Simon: > > > Maybe your sysadmins can help... > > The admin advised me to use a new version of gcc (3.4.3). Now it > reports an linker error. The admin advised me to "ask the people who > wrote the software". But I am not sure whether you can be of any help > in this case. > > ./gtk2hs-config.h:122:1: warning: this is the location of the > previous definition > ld: fatal: relocation error: R_SPARC_32: file gtk/Graphics/UI/Gtk/ > Embedding/Embedding_hsc_make.o: symbol <unknown>: offset 0xfae4e56a > is non-aligned > ld: fatal: relocation error: R_SPARC_32: file gtk/Graphics/UI/Gtk/ > Embedding/Embedding_hsc_make.o: symbol <unknown>: offset 0xfae4e56e > is non-aligned > ld: fatal: relocation error: R_SPARC_32: file gtk/Graphics/UI/Gtk/ > Embedding/Embedding_hsc_make.o: symbol <unknown>: offset 0xfae4e572 > is non-aligned > ld: fatal: relocation error: R_SPARC_32: file gtk/Graphics/UI/Gtk/ > Embedding/Embedding_hsc_make.o: symbol <unknown>: offset 0xfae4fceb > is non-aligned > ld: fatal: relocation error: R_SPARC_32: file gtk/Graphics/UI/Gtk/ > Embedding/Embedding_hsc_make.o: symbol <unknown>: offset 0xfae5033e > is non-aligned > collect2: ld returned 1 exit status Blimey. This looks awful. You did make clean, I suppose? A. |
From: Jan C. <ja...@in...> - 2007-03-22 14:49:14
|
Am 22.03.2007 um 13:32 schrieb Axel Simon: > Blimey. This looks awful. You did make clean, I suppose? Yes, I did. I will probably abandon the installation on the SUN cause I have no idea what to do. |
From: Axel S. <A....@ke...> - 2007-03-22 16:00:20
|
On Thu, 2007-03-22 at 15:48 +0100, Jan Christiansen wrote: > Am 22.03.2007 um 13:32 schrieb Axel Simon: > > > Blimey. This looks awful. You did make clean, I suppose? > > Yes, I did. I will probably abandon the installation on the SUN cause > I have no idea what to do. I can imagine that you're probably rather frustrated at the moment. But could you try to compile the hello world program with the new gcc? What this error looks like is that the C program that hsc2hs produces cannot be compiled. This C program, however, does nothing else than write a Haskell file to a file. The trouble is, that it links against Gtk+ which seems to not work. So, if the C hello world does not work, then the fault is somewhere in your (sysadmin's) installation of Gtk+, not with us. Axel. |
From: Jan C. <ja...@in...> - 2007-03-22 16:38:56
|
Am 22.03.2007 um 16:58 schrieb Axel Simon: > I can imagine that you're probably rather frustrated at the moment. > But > could you try to compile the hello world program with the new gcc? > What > this error looks like is that the C program that hsc2hs produces > cannot > be compiled. This C program, however, does nothing else than write a > Haskell file to a file. The trouble is, that it links against Gtk+ > which > seems to not work. So, if the C hello world does not work, then the > fault is somewhere in your (sysadmin's) installation of Gtk+, not with > us. It is less frustrated and more pessimistic to get this to work. But I am very grateful for your help. The new gcc compiles the hello world program properly. This is strange, isn't it. I suspected the gtk+ installation in the first place. Jan |
From: Axel S. <A....@ke...> - 2007-03-22 17:11:25
|
On Thu, 2007-03-22 at 17:38 +0100, Jan Christiansen wrote: > Am 22.03.2007 um 16:58 schrieb Axel Simon: > > > I can imagine that you're probably rather frustrated at the moment. > > But > > could you try to compile the hello world program with the new gcc? > > What > > this error looks like is that the C program that hsc2hs produces > > cannot > > be compiled. This C program, however, does nothing else than write a > > Haskell file to a file. The trouble is, that it links against Gtk+ > > which > > seems to not work. So, if the C hello world does not work, then the > > fault is somewhere in your (sysadmin's) installation of Gtk+, not with > > us. > > It is less frustrated and more pessimistic to get this to work. But I > am very grateful for your help. > > The new gcc compiles the hello world program properly. This is > strange, isn't it. I suspected the gtk+ installation in the first place. Ok, could you then do rm <path>/Embedded.hs make <path>/Embedded.hs copy and paste the hsc2hs command line and add --no-compile to the command line. rename the _hsc_make.c file to blah.c past the hsc2hs command line and add --verbose and copy the gcc command line run the gcc command line by itself to compile blah.c, maybe add -v2 cat blah.c send us the whole output. I don't have a clue what's wrong, but this would be a start. Thanks, Axel. |
From: Axel S. <A....@ke...> - 2007-03-23 09:28:45
|
On Fri, 2007-03-23 at 10:16 +0100, Jan Christiansen wrote: > > > run the gcc command line by itself to compile blah.c, maybe add -v2 > > I get the relocation error. The gcc complains about the -v2 option > because it is unknown. Ok, I made that up. Could you send us the command line which calls gcc and run it after adding a verbose flag (which I thought was -v). I'd like to see how gcc calls the linker (and if it is the Sun or the GNU linker). Axel. > > cat blah.c > > #include "/home/haskell/ghc-6.4.1/lib/ghc-6.4.1/template-hsc.h" > #include "gtk/gtk.h" > #line 33 "Embedding.hsc" > #if !defined(WIN32) || GTK_CHECK_VERSION(2,8,0) > #line 36 "Embedding.hsc" > #endif > #line 44 "Embedding.hsc" > #include <gtk/gtk.h> > #line 46 "Embedding.hsc" > #if !defined(WIN32) || GTK_CHECK_VERSION(2,8,0) > #line 59 "Embedding.hsc" > #endif > > int main (int argc, char *argv []) > { > #if __GLASGOW_HASKELL__ && __GLASGOW_HASKELL__ < 409 > printf ("{-# OPTIONS -optc-D__GLASGOW_HASKELL__=%d #-}\n", > __GLASGOW_HASKELL > __); > #endif > #if __GLASGOW_HASKELL__ && __GLASGOW_HASKELL__ < 603 > printf ("{-# OPTIONS -#include %s #-}\n", "\"gtk/gtk.h\""); > #else > printf ("{-# INCLUDE %s #-}\n", "\"gtk/gtk.h\""); > #endif > #line 33 "Embedding.hsc" > #if !defined(WIN32) || GTK_CHECK_VERSION(2,8,0) > #line 36 "Embedding.hsc" > #endif > #if __GLASGOW_HASKELL__ && __GLASGOW_HASKELL__ < 603 > printf ("{-# OPTIONS -#include %s #-}\n", "<gtk/gtk.h>"); > #else > printf ("{-# INCLUDE %s #-}\n", "<gtk/gtk.h>"); > #endif > #line 46 "Embedding.hsc" > #if !defined(WIN32) || GTK_CHECK_VERSION(2,8,0) > #line 59 "Embedding.hsc" > #endif > hsc_line (1, "Embedding.hsc"); > fputs ("-- -*-haskell-*-\n" > "", stdout); > hsc_line (2, "Embedding.hsc"); > fputs ("-- GIMP Toolkit (GTK) Widget Socket\n" > "--\n" > "-- Author : Axel Simon\n" > "--\n" > "-- Created: 20 January 2003\n" > "--\n" > "-- Version $Revision: 1.4 $ from $Date: 2005/11/11 > 23:01:08 $\n" > "--\n" > "-- Copyright (C) 1999-2005 Axel Simon\n" > "--\n" > "-- This library is free software; you can redistribute > it and/or\n" > "-- modify it under the terms of the GNU Lesser General > Public\n" > "-- License as published by the Free Software > Foundation; either\n" > "-- version 2.1 of the License, or (at your option) any > later versio > n.\n" > "--\n" > "-- This library is distributed in the hope that it will > be useful,\ > n" > "-- but WITHOUT ANY WARRANTY; without even the implied > warranty of\n > " > "-- MERCHANTABILITY or FITNESS FOR A PARTICULAR > PURPOSE. See the GN > U\n" > "-- Lesser General Public License for more details.\n" > "--\n" > "-- |\n" > "-- Maintainer : gtk...@li...\n" > "-- Stability : provisional\n" > "-- Portability : portable (depends on GHC)\n" > "--\n" > "-- TODO\n" > "--\n" > "-- * NativeWindowId is a CUInt for c2hs and a Word32 for > hsc2hs. I u > sed\n" > "-- fromIntegral to make it work, but it doesn\'t feel > right.\n" > "--\n" > "module Graphics.UI.Gtk.Embedding.Embedding (\n" > "", stdout); > #line 33 "Embedding.hsc" > #if !defined(WIN32) || GTK_CHECK_VERSION(2,8,0) > fputs ("\n" > "", stdout); > hsc_line (34, "Embedding.hsc"); > fputs (" socketHasPlug,\n" > " NativeWindowId\n" > "", stdout); > #line 36 "Embedding.hsc" > #endif > fputs ("\n" > "", stdout); > hsc_line (37, "Embedding.hsc"); > fputs (" ) where\n" > "\n" > "import Control.Exception\n" > "\n" > "import System.Glib.FFI\n" > "import Graphics.UI.Gtk.Types\n" > "\n" > "", stdout); > fputs ("\n" > "", stdout); > hsc_line (45, "Embedding.hsc"); > fputs ("\n" > "", stdout); > #line 46 "Embedding.hsc" > #if !defined(WIN32) || GTK_CHECK_VERSION(2,8,0) > fputs ("\n" > "", stdout); > hsc_line (47, "Embedding.hsc"); > fputs ("-- | The identifer of a window to be embedded.\n" > "--\n" > "type NativeWindowId = ", stdout); > #line 49 "Embedding.hsc" > hsc_type (GdkNativeWindow); > fputs ("\n" > "", stdout); > hsc_line (50, "Embedding.hsc"); > fputs ("\n" > "-- | Test if a Plug is connected to the socket.\n" > "-- \n" > "socketHasPlug :: SocketClass s => s -> IO Bool\n" > "socketHasPlug socket = do\n" > " plugPtr <- withForeignPtr (unSocket (toSocket socket))\n" > "\t ", stdout); > #line 56 "Embedding.hsc" > hsc_peek (GtkSocket, plug_window); > fputs ("\n" > "", stdout); > hsc_line (57, "Embedding.hsc"); > fputs (" return (plugPtr/=nullPtr)\n" > "\n" > "", stdout); > #line 59 "Embedding.hsc" > #endif > fputs ("\n" > "", stdout); > hsc_line (60, "Embedding.hsc"); > fputs ("", stdout); > return 0; > } > > Jan |
From: Axel S. <A....@ke...> - 2007-03-27 09:09:02
|
Jan, On Mar 23, 2007, at 9:42, Jan Christiansen wrote: > fatal: relocation error: R_SPARC_32: file gtk/Graphics/UI/Gtk/ > Embedding/Embedding_hsc_make.o: symbol <unknown>: offset 0xfae4e56a > is non-aligned This seems to be a gcc 3.4.0 compiler bug (or rather: assembler bug). See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15267 Workaround: force the build system to use the GNU linker (it's faster anyway). You could modify the mk/common.mk file by forcing a different linker when using hsc2hs. Specifically you can: - change the rule for .hsc.hs - by adding -l <path/to/your/gnu/linker> - do 'make' You might run into the same problems later in the build. We could then add another flag somewhere. You should have a GNU linker somewhere, but it might be called gld, gnuld or the like. Maybe it just lives in a directory that isn't on the path. Hope it helps, Axel. |
From: Jan C. <ja...@in...> - 2007-04-02 07:49:53
|
Hi, Am 27.03.2007 um 11:08 schrieb Axel Simon: > You should have a GNU linker somewhere, but it might be called gld, > gnuld or the like. Maybe it just lives in a directory that isn't on > the path. I have make the changes you suggested and even made a link to make all programs use the gnu linker. This all ends up in the following error. /home/haskell/bin/ghc -o tools/c2hs/c2hsLocal -O -package base - package haskell98 tools/c2hs/base/admin/BaseVersion.o tools/c2hs/base/ admin/Common.o tools/c2hs/base/admin/Config.o tools/c2hs/base/errors/ Errors.o tools/c2hs/base/general/DLists.o tools/c2hs/base/general/ FileOps.o tools/c2hs/base/general/FNameOps.o tools/c2hs/base/general/ GetOpt.o tools/c2hs/base/general/Map.o tools/c2hs/base/general/Set.o tools/c2hs/base/general/UNames.o tools/c2hs/base/general/Utils.o tools/c2hs/base/general/Binary.o tools/c2hs/base/general/FastMutInt.o tools/c2hs/base/graphs/Marks.o tools/c2hs/base/state/CIO.o tools/c2hs/ base/state/DynArrays.o tools/c2hs/base/state/StateBase.o tools/c2hs/ base/state/State.o tools/c2hs/base/state/StateTrans.o tools/c2hs/base/ syms/Attributes.o tools/c2hs/base/syms/Idents.o tools/c2hs/base/syms/ NameSpaces.o tools/c2hs/base/syntax/Lexers.o tools/c2hs/base/syntax/ ParserMonad.o tools/c2hs/base/syntax/Parsers.o tools/c2hs/base/syntax/ Pretty.o tools/c2hs/base/sysdep/SysDep.o tools/c2hs/base/sysdep/ SysDepPosix.o tools/c2hs/c/CAST.o tools/c2hs/c/CAttrs.o tools/c2hs/c/ CBuiltin.o tools/c2hs/c/C.o tools/c2hs/c/CLexer.o tools/c2hs/c/ CNames.o tools/c2hs/c/CParser.o tools/c2hs/c/CPretty.o tools/c2hs/c/ CTrav.o tools/c2hs/chs/CHS.o tools/c2hs/chs/CHSLexer.o tools/c2hs/gen/ CInfo.o tools/c2hs/gen/GBMonad.o tools/c2hs/gen/GenBind.o tools/c2hs/ gen/GenHeader.o tools/c2hs/state/C2HSState.o tools/c2hs/state/ Switches.o tools/c2hs/toplevel/Main.o tools/c2hs/toplevel/Version.o tools/c2hs/toplevel/c2hs_config.o tools/c2hs/toplevel/C2HSConfig.o ld: fatal: relocation error: R_SPARC_32: file tools/c2hs/toplevel/ c2hs_config.o: symbol <unknown>: offset 0xfbc61f22 is non-aligned ld: fatal: relocation error: R_SPARC_32: file tools/c2hs/toplevel/ c2hs_config.o: symbol <unknown>: offset 0xfbc6364e is non-aligned collect2: ld returned 1 exit status make[2]: *** [tools/c2hs/c2hsLocal] Error 1 make[2]: Leaving directory `/home/jac/Vorlesungen/Bomberman/ gtk2hs-0.9.11' make[1]: *** [glib/System/Glib/Types.hs] Error 2 make[1]: Leaving directory `/home/jac/Vorlesungen/Bomberman/ gtk2hs-0.9.11' ghc-6.4.1: can't find file `glib/System/Glib/Types.hs' make: *** [glib/libHSglib_a.deps] Error 1 make: *** Deleting file `glib/libHSglib_a.deps' My system admin said that people on the solaris mailing badly advise against the gnu linker. Thanks very much for your efforts to make this work but please don't waste all your time to help me. Jan |
From: Axel S. <A....@ke...> - 2007-04-02 08:48:41
|
On Apr 2, 2007, at 8:49, Jan Christiansen wrote: > Hi, > > Am 27.03.2007 um 11:08 schrieb Axel Simon: > >> You should have a GNU linker somewhere, but it might be called gld, >> gnuld or the like. Maybe it just lives in a directory that isn't on >> the path. [..] > My system admin said that people on the solaris mailing badly advise > against the gnu linker. I don't have any bad experience with the GNU linker, in particular, I think it was significantly faster. > Thanks very much for your efforts to make this work but please don't > waste all your time to help me. Ok, so I suppose we leave it at that. Note that it works very well on our Solaris machine here which has as49@myrtle:~:501$ uname -a SunOS myrtle 5.9 Generic_118558-25 sun4u sparc SUNW,Sun-Fire-480R as49@myrtle:~:502$ gcc --version gcc (GCC) 3.3.6 Copyright (C) 2003 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Maybe you can try again when your sysadmins have upgraded (downgraded?) the gcc so that it doesn't produce these annoying unaligned symbols. Thanks for the patience, Axel. |