# Failing to install atk from gem

**URL:** <https://www.ruby-forum.com/t/failing-to-install-atk-from-gem/202525>\
**Category:** Ruby-Gnome 2\
**Created:** [January 31, 2011, 9:30pm UTC](https://www.ruby-forum.com/t/failing-to-install-atk-from-gem/202525 "2011-01-31T21:30:33Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![luislavena](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/0ea827/32.png) [@luislavena](https://www.ruby-forum.com/u/luislavena)\
**Post date:** [January 31, 2011, 9:30pm UTC](https://www.ruby-forum.com/t/failing-to-install-atk-from-gem/202525/1 "2011-01-31T21:30:33Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![SSDobai-Pataky\_BSSl](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/a9a28c/32.png) [@SSDobai-Pataky\_BSSl](https://www.ruby-forum.com/u/SSDobai-Pataky_BSSl)\
**Post date:** [January 31, 2011, 11:56pm UTC](https://www.ruby-forum.com/t/failing-to-install-atk-from-gem/202525/2 "2011-01-31T23:56:43Z")

</div>

Hi,

2011/2/1 Dobai-Pataky B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> 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

---

<div class="post-metadata">

**Author:** ![SSDobai-Pataky\_BSSl](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/a9a28c/32.png) [@SSDobai-Pataky\_BSSl](https://www.ruby-forum.com/u/SSDobai-Pataky_BSSl)\
**Post date:** [February 1, 2011, 6:46am UTC](https://www.ruby-forum.com/t/failing-to-install-atk-from-gem/202525/3 "2011-02-01T06:46:04Z")

</div>

Kouhei S. 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

---

<div class="post-metadata">

**Author:** ![SSDobai-Pataky\_BSSl](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/a9a28c/32.png) [@SSDobai-Pataky\_BSSl](https://www.ruby-forum.com/u/SSDobai-Pataky_BSSl)\
**Post date:** [February 1, 2011, 7:17am UTC](https://www.ruby-forum.com/t/failing-to-install-atk-from-gem/202525/4 "2011-02-01T07:17:28Z")

</div>

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?

---

<div class="post-metadata">

**Author:** ![SSDobai-Pataky\_BSSl](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/a9a28c/32.png) [@SSDobai-Pataky\_BSSl](https://www.ruby-forum.com/u/SSDobai-Pataky_BSSl)\
**Post date:** [February 1, 2011, 7:25am UTC](https://www.ruby-forum.com/t/failing-to-install-atk-from-gem/202525/5 "2011-02-01T07:25:37Z")

</div>

Or it might be this one you asked for.

---

<div class="post-metadata">

**Author:** ![SSDobai-Pataky\_BSSl](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/a9a28c/32.png) [@SSDobai-Pataky\_BSSl](https://www.ruby-forum.com/u/SSDobai-Pataky_BSSl)\
**Post date:** [February 1, 2011, 8:22am UTC](https://www.ruby-forum.com/t/failing-to-install-atk-from-gem/202525/6 "2011-02-01T08:22:06Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![SSDobai-Pataky\_BSSl](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/a9a28c/32.png) [@SSDobai-Pataky\_BSSl](https://www.ruby-forum.com/u/SSDobai-Pataky_BSSl)\
**Post date:** [February 1, 2011, 7:38am UTC](https://www.ruby-forum.com/t/failing-to-install-atk-from-gem/202525/7 "2011-02-01T07:38:10Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![SSDobai-Pataky\_BSSl](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/a9a28c/32.png) [@SSDobai-Pataky\_BSSl](https://www.ruby-forum.com/u/SSDobai-Pataky_BSSl)\
**Post date:** [February 2, 2011, 1:09pm UTC](https://www.ruby-forum.com/t/failing-to-install-atk-from-gem/202525/8 "2011-02-02T13:09:24Z")

</div>

Hi,

In [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
“Re: [ruby-gnome2-devel-en] failing to install atk from gem” on Tue,  
01 Feb 2011 14:18:36 +0900,  
Mamoru T. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) 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

---

<div class="post-metadata">

**Author:** ![SSDobai-Pataky\_BSSl](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/a9a28c/32.png) [@SSDobai-Pataky\_BSSl](https://www.ruby-forum.com/u/SSDobai-Pataky_BSSl)\
**Post date:** [February 2, 2011, 1:07pm UTC](https://www.ruby-forum.com/t/failing-to-install-atk-from-gem/202525/9 "2011-02-02T13:07:31Z")

</div>

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 [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
“Re: [ruby-gnome2-devel-en] failing to install atk from gem” on Tue,  
01 Feb 2011 08:25:02 +0200,

---

<div class="post-metadata">

**Author:** ![SSDobai-Pataky\_BSSl](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/a9a28c/32.png) [@SSDobai-Pataky\_BSSl](https://www.ruby-forum.com/u/SSDobai-Pataky_BSSl)\
**Post date:** [February 3, 2011, 4:39pm UTC](https://www.ruby-forum.com/t/failing-to-install-atk-from-gem/202525/10 "2011-02-03T16:39:41Z")

</div>

You’re fast,  
Thank you  
Balint
