Hi, I tried to install ruby-gtk2 from gem, but got an error building atk (attached) Is there something i could do to make it compile? Thanks
on 2011-01-31 21:30
on 2011-01-31 23:56
Hi, 2011/2/1 Dobai-Pataky Blint <dpblnt@gmail.com>: > I tried to install ruby-gtk2 from gem, but got an error building atk > (attached) > Is there something i could do to make it compile? Could you try without "-Wl,--no-undefined" link option? And could you show us your Makefile? Thanks, -- kou
on 2011-02-01 06:46
Kouhei Sutou wrote, at 02/01/2011 07:56 AM +9:00: > And could you show us your Makefile? > > > Thanks, > -- > kou > I see build error on glib2 0.90.6 gem (and perhaps also on other 0.90.6 gems) like: make gcc -I. -I. -I/usr/lib/ruby/1.8/i386-linux -I. -I/usr/lib/ruby/site_ruby/1.8/i386-linux -I/usr/lib/ruby/1.8/i386-linux -DHAVE_RB_DEFINE_ALLOC_FUNC -DHAVE_RB_BLOCK_PROC -DHAVE_OBJECT_ALLOCATE -DHAVE_NODE_ATTRASGN -DHAVE_UNISTD_H -DHAVE_G_SPAWN_CLOSE_PID -DHAVE_G_THREAD_INIT -DHAVE_G_MAIN_DEPTH -DHAVE_G_LISTENV -DHAVE_RB_CHECK_ARRAY_TYPE -DHAVE_RB_EXEC_RECURSIVE -DHAVE_RUBY_SET_CURRENT_SOURCE -DHAVE_RB_CURR_THREAD -DRUBY_GLIB2_COMPILATION -D_FILE_OFFSET_BITS=64 -fPIC -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -Wall -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -pthread -c glib-enum-types.c gcc -shared -o glib2.so rbgutil.o rbgobj_param.o rbglib_win32.o rbgobj_boxed.o rbgobj_typeinstance.o rbglib_timer.o rbgobj_enums.o rbglib_pollfd.o rbglib_iochannel.o rbglib_keyfile.o rbglib_threads.o rbglib_maincontext.o rbgobj_type.o rbgobj_valuearray.o rbgobject.o rbgobj_typemodule.o rbgutil_callback.o rbgobj_strv.o rbglib_shell.o rbglib_completion.o rbgobj_typeinterface.o rbglib_error.o rbgobj_object.o rbgobj_paramspecs.o rbglib.o rbglib_int64.o rbgobj_closure.o rbgobj_typeplugin.o rbglib_unicode.o rbglib_spawn.o rbgobj_fundamental.o rbglib_fileutils.o rbglib_i18n.o rbglib_messages.o rbglib_bookmarkfile.o rbglib_convert.o glib-enum-types.o rbgobj_signal.o rbglib_source.o rbglib_utils.o rbgobj_value.o rbglib_mainloop.o rbgobj_valuetypes.o rbgobj_convert.o -L. -L/usr/lib -L. -rdynamic -Wl,-export-dynamic -pthread -pthread -lruby -lgobject-2.0 -lglib-2.0 -lgthread-2.0 -lrt -lgthread-2.0 -lrt -lglib-2.0 -lpthread -lrt -ldl -lcrypt -lm -lc /usr/bin/ld: i386:x86-64 architecture of input file `rbgutil.o' is incompatible with i386 output /usr/bin/ld: i386:x86-64 architecture of input file `rbgobj_param.o' is incompatible with i386 output /usr/bin/ld: i386:x86-64 architecture of input file `rbglib_win32.o' is incompatible with i386 output /usr/bin/ld: i386:x86-64 architecture of input file `rbgobj_boxed.o' is incompatible with i386 output /usr/bin/ld: i386:x86-64 architecture of input file `rbgobj_typeinstance.o' is incompatible with i386 output /usr/bin/ld: i386:x86-64 architecture of input file `rbglib_timer.o' is incompatible with i386 output /usr/bin/ld: i386:x86-64 architecture of input file `rbgobj_enums.o' is incompatible with i386 output .... .... rbgobj_enums.o: In function `flags_initialize': /home/kou/work/ruby/ruby-gnome2/glib2/ext/glib2/rbgobj_enums.c:693: undefined reference to `rb_num2uint' rbgobj_enums.o: In function `flags_coerce': /home/kou/work/ruby/ruby-gnome2/glib2/ext/glib2/rbgobj_enums.c:888: undefined reference to `rb_num2uint' rbgobj_enums.o: In function `rbgobj_get_flags': /home/kou/work/ruby/ruby-gnome2/glib2/ext/glib2/rbgobj_enums.c:551: undefined reference to `rb_num2uint' rbglib_iochannel.o: In function `ioc_set_buffer_size': /home/kou/work/ruby/ruby-gnome2/glib2/ext/glib2/rbglib_iochannel.c:563: undefined reference to `rb_num2uint' rbglib_iochannel.o: In function `ioc_write_unichar': /home/kou/work/ruby/ruby-gnome2/glib2/ext/glib2/rbglib_iochannel.c:435: undefined reference to `rb_num2uint' rbglib_iochannel.o:/home/kou/work/ruby/ruby-gnome2/glib2/ext/glib2/rbglib_iochannel.c:438: more undefined references to `rb_num2uint' follow /usr/bin/ld: rbgutil.o: file class ELFCLASS64 incompatible with ELFCLASS32 /usr/bin/ld: final link failed: File in wrong format collect2: ld returned 1 exit status make: *** [glib2.so] Error 1 This is because glib2 0.90.6 gem contains pre-compiled .o objects and i386 gcc/ld fail to use them. Build failure Dobai may be related to this issue (although I use i686 and Dobai uses x86_64). Would you release "clean" gem again? Regards, Mamoru
on 2011-02-01 07:17
Which Makefile? This is what I did: cd /usr/local/lib64/ruby/gems/1.8/gems/atk-0.90.6/ ruby extconf.rb And that generated a Makefile. I attached it. Is that what you asked for?
on 2011-02-01 07:38
I found the way to remove "-Wl,--no-undefined" , it was in the second Makefile where ldflags options are defined. I removed it and compiled atk with the following result: # make (cd ext/atk && make) make[1]: Entering directory `/usr/local/lib64/ruby/gems/1.8/gems/atk-0.90.6/ext/atk' x86_64-pc-linux-gnu-gcc -shared -o atk.so rbatktable.o rbatkvalue.o rbatkdocument.o rbatkimage.o rbatkstate.o rbatk.o rbatkselection.o rbatktextrectangle.o rbatkcomponent.o rbatkregistry.o rbatkgobjectaccessible.o rbatkimplementor.o rbatknoopobjectfactory.o rbatkobject.o rbatkrelationset.o rbatktext.o rbatkhypertext.o rbatknoopobject.o rbatkinits.o rbatkstateset.o rbatkeditabletext.o rbatkrelation.o rbatkstreamablecontent.o rbatkhyperlink.o rbatkutil.o rbatkobjectfactory.o rbatkaction.o rbatktextrange.o -L. -L/usr/lib64 -Wl,-R/usr/lib64 -L. -Wl,-O1 -Wl,--as-needed -rdynamic -Wl,-export-dynamic -pthread -Wl,-R -Wl,/usr/lib64 -L/usr/lib64 -lruby18 -latk-1.0 -lgobject-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lpthread -lrt -ldl -lcrypt -lm -lc make[1]: Leaving directory `/usr/local/lib64/ruby/gems/1.8/gems/atk-0.90.6/ext/atk' make -f Makefile.lib make[1]: Entering directory `/usr/local/lib64/ruby/gems/1.8/gems/atk-0.90.6' make[1]: Nothing to be done for `all'. make[1]: Leaving directory `/usr/local/lib64/ruby/gems/1.8/gems/atk-0.90.6' Then i ran 'gem install atk' hoping that it'll use the already compiled stuff, but failed again, and the Makefile is regenerated, containing the "-Wl,--no-undefined" option. How can i prevent that option from being regenerated? Thanks Balint
on 2011-02-01 08:22
This is how i was able to install it: gem install gtk2 -- --with-ldflags='-L. -Wl,-O1 -Wl,--as-needed -rdynamic -Wl,-export-dynamic' Thanks
on 2011-02-02 13:07
Hi, The attached Makefile is what I asked for. Thanks!!! I've released 0.90.8 gem. Since the release, you don't need to add --with-ldflags. Thanks, -- kou In <4D47A73E.9020702@gmail.com> "Re: [ruby-gnome2-devel-en] failing to install atk from gem" on Tue, 01 Feb 2011 08:25:02 +0200,
on 2011-02-02 13:09
Hi, In <4D4797AC.7040809@ioa.s.u-tokyo.ac.jp> "Re: [ruby-gnome2-devel-en] failing to install atk from gem" on Tue, 01 Feb 2011 14:18:36 +0900, Mamoru Tasaka <mtasaka@ioa.s.u-tokyo.ac.jp> wrote: > I see build error on glib2 0.90.6 gem (and perhaps also on other 0.90.6 gems) > like: ... > This is because glib2 0.90.6 gem contains pre-compiled .o objects and i386 gcc/ld > fail to use them. Build failure Dobai may be related to this issue (although I use i686 > and Dobai uses x86_64). > > Would you release "clean" gem again? Ahh... I've released 0.90.7 gems. They don't include *.o. :-o Thanks, -- kou
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.