building core gtk

9 views
Skip to first unread message

deadpickle

unread,
Apr 5, 2009, 3:10:21 AM4/5/09
to camelbox
Did I miss something?

C:\Users\deadpickle\Desktop\NewFolder\Gtk2-1.220>perl Makefile.PL
*** This build of Glib was compiled with glib 2.20.0, but is currently
running w
ith 2.18.2, which is too old. We'll continue, but expect problems!
Can't locate Pango.pm in @INC (@INC contains: C:/camelbox/lib C:/
camelbox/site/l
ib .) at (eval 14) line 1.
BEGIN failed--compilation aborted at (eval 14) line 1.

Checking if your kit is complete...
Looks good
MakeMaker FATAL: prerequisites not found.
Pango not installed

Please install these modules first and rerun 'perl Makefile.PL'.

C:\Users\deadpickle\Desktop\NewFolder\Gtk2-1.220>

Brian Manning

unread,
Apr 5, 2009, 3:40:01 AM4/5/09
to came...@googlegroups.com
On Sun, Apr 5, 2009 at 12:10 AM, deadpickle <deadp...@gmail.com> wrote:
>
> Did I miss something?

Did you install the Pango module? It's a new requirement for the
version of Gtk2 that you're trying to install.
Message has been deleted

deadpickle

unread,
Apr 5, 2009, 10:56:06 AM4/5/09
to camelbox
Ok added these to the Makefile LIBS:
C:\camelbox\bin\libpango-1.0-0.dll
C:\camelbox\bin\libgobject-2.0-0.dll
C:\camelbox\bin\libgmodule-2.0-0.dll
C:\camelbox\bin\libglib-2.0-0.dll
C:\camelbox\bin\intl.dll
C:\camelbox\bin\libpangocairo-1.0-0.dll
C:\camelbox\bin\libcairo-2.dll
C:\camelbox\bin\libgthread-2.0-0.dll

And added this:
dlltool --input-def Pango.def --dllname Pango.dll \
--output-lib libPango.a
$(CP) libPango.a C:/camelbox/lib


did dmake and got a very long train of undefined references (example
bellow):
xs/PangoLayout.o:PangoLayout.c:(.text+0x4285): undefined reference to
`gperl_new
_boxed'


On Apr 5, 2:40 am, Brian Manning <elspicyj...@gmail.com> wrote:

Brian Manning

unread,
Apr 6, 2009, 2:31:03 AM4/6/09
to came...@googlegroups.com
On Sun, Apr 5, 2009 at 7:56 AM, deadpickle <deadp...@gmail.com> wrote:
> did dmake and got a very long train of undefined references (example
> bellow):
> xs/PangoLayout.o:PangoLayout.c:(.text+0x4285): undefined reference to
> `gperl_new
> _boxed'

grep for the referenced string above in the files located in C:\camelbox\lib

add the file that is returned to LDLOADLIBS/EXTRALIBS in the Makefile

repeat as needed until your compile is successful

Thanks,

Brian

deadpickle

unread,
Apr 6, 2009, 2:49:04 AM4/6/09
to camelbox
searched using:
grep -i -r some_string C:\camelbox\lib

Added files to LIBS:
C:\camelbox\lib\libGlibPerl.a
C:\camelbox\lib\libCairoPerl.a

That got through the Pango install. Thank you much as usual.


On Apr 6, 1:31 am, Brian Manning <elspicyj...@gmail.com> wrote:

deadpickle

unread,
Apr 6, 2009, 3:09:59 AM4/6/09
to camelbox
I have hit mor e reference errors:
xs/Gtk2.o:Gtk2.c:(.text+0x5752): undefined reference to
`gperl_register_boxed_al
ias'
xs/Gtk2.o:Gtk2.c:(.text+0x5768): undefined reference to
`gperl_register_object_a
lias'
xs/Gtk2.o:Gtk2.c:(.text+0x577e): undefined reference to
`gperl_register_fundamen
tal_alias'
xs/Gtk2.o:Gtk2.c:(.text+0x5794): undefined reference to
`gperl_register_fundamen
tal_alias'

I tried grepping like above and did not get anything. I would guess
that I'm missing the gtk C 'parts' that you mentioned above. I
downloaded the gtk+ bundle but I'm not sure if thats all thats needed.
Do I need to get the gtk source? and if so were should I put it in
camelbox?

Brian Manning

unread,
Apr 6, 2009, 3:17:12 AM4/6/09
to came...@googlegroups.com
On Mon, Apr 6, 2009 at 12:09 AM, deadpickle <deadp...@gmail.com> wrote:
>
> I have hit mor e reference errors:
> xs/Gtk2.o:Gtk2.c:(.text+0x5752): undefined reference to
> `gperl_register_boxed_al
> ias'

> I tried grepping like above and did not get anything. I would guess


> that I'm missing the gtk C 'parts' that you mentioned above. I
> downloaded the gtk+ bundle but I'm not sure if thats all thats needed.
> Do I need to get the gtk source? and if so were should I put it in
> camelbox?

I'm not seeing in this e-mail thread where I mentioned anything about
GTK C 'parts', so I'm sort of at a loss as to what you're referring
to.

In any case, since the error has the word 'perl' in it, I would say
it's a problem with a Gtk2-Perl library somewhere, not a GTK C
library.

I grepped for the above string 'gperl_register_boxed' and found a
match in libGlibPerl.a in C:\camelbox\lib.

Thanks,

Brian

deadpickle

unread,
Apr 6, 2009, 11:18:12 AM4/6/09
to camelbox
I'm using the wiki on the camelbox page. Also this is on a completely
new camelbox install, other got messed up somehow. Those are just a
few, at the end of the train it shows that the pango dll did not
create using dlltool shown above. I ran dlltool to make sure
libPango.a was made then moved it to the camelbox\lib directory.

Added to LIBS:
C:\camelbox\lib\libPango.a

still got the chain of errors (complete this time):
Running Mkbootstrap for Gtk2 ()
C:\camelbox\bin\perl.exe -MExtUtils::Command -e chmod 644 Gtk2.bs
dlltool --def Gtk2.def --output-exp dll.exp
[ LD blib\arch\auto\Gtk2\Gtk2.dll ]
xs/Gtk2.o:Gtk2.c:(.text+0xe66): undefined reference to
`gperl_option_group_get_t
ype'
xs/Gtk2.o:Gtk2.c:(.text+0x54be): undefined reference to
`gperl_register_fundamen
tal_alias'
xs/Gtk2.o:Gtk2.c:(.text+0x54d4): undefined reference to
`gperl_register_boxed_al
ias'
xs/Gtk2.o:Gtk2.c:(.text+0x54ea): undefined reference to
`gperl_register_fundamen
tal_alias'
xs/Gtk2.o:Gtk2.c:(.text+0x5500): undefined reference to
`gperl_register_boxed_al
ias'
xs/Gtk2.o:Gtk2.c:(.text+0x5516): undefined reference to
`gperl_register_object_a
lias'
xs/Gtk2.o:Gtk2.c:(.text+0x552c): undefined reference to
`gperl_register_fundamen
tal_alias'
xs/Gtk2.o:Gtk2.c:(.text+0x5542): undefined reference to
`gperl_register_fundamen
tal_alias'
xs/Gtk2.o:Gtk2.c:(.text+0x5558): undefined reference to
`gperl_register_boxed_al
ias'
xs/Gtk2.o:Gtk2.c:(.text+0x556e): undefined reference to
`gperl_register_object_a
lias'
xs/Gtk2.o:Gtk2.c:(.text+0x5584): undefined reference to
`gperl_register_object_a
lias'
xs/Gtk2.o:Gtk2.c:(.text+0x559a): undefined reference to
`gperl_register_object_a
lias'
xs/Gtk2.o:Gtk2.c:(.text+0x55b0): undefined reference to
`gperl_register_fundamen
tal_alias'
xs/Gtk2.o:Gtk2.c:(.text+0x55c6): undefined reference to
`gperl_register_boxed_al
ias'
xs/Gtk2.o:Gtk2.c:(.text+0x55dc): undefined reference to
`gperl_register_object_a
lias'
xs/Gtk2.o:Gtk2.c:(.text+0x55f2): undefined reference to
`gperl_register_object_a
lias'
xs/Gtk2.o:Gtk2.c:(.text+0x5608): undefined reference to
`gperl_register_boxed_al
ias'
xs/Gtk2.o:Gtk2.c:(.text+0x561e): undefined reference to
`gperl_register_boxed_al
ias'
xs/Gtk2.o:Gtk2.c:(.text+0x5634): undefined reference to
`gperl_register_object_a
lias'
xs/Gtk2.o:Gtk2.c:(.text+0x564a): undefined reference to
`gperl_register_fundamen
tal_alias'
xs/Gtk2.o:Gtk2.c:(.text+0x5660): undefined reference to
`gperl_register_fundamen
tal_alias'
xs/Gtk2.o:Gtk2.c:(.text+0x5676): undefined reference to
`gperl_register_fundamen
tal_alias'
xs/Gtk2.o:Gtk2.c:(.text+0x568c): undefined reference to
`gperl_register_fundamen
tal_alias'
xs/Gtk2.o:Gtk2.c:(.text+0x56a2): undefined reference to
`gperl_register_boxed_al
ias'
xs/Gtk2.o:Gtk2.c:(.text+0x56b8): undefined reference to
`gperl_register_fundamen
tal_alias'
xs/Gtk2.o:Gtk2.c:(.text+0x56ce): undefined reference to
`gperl_register_fundamen
tal_alias'
xs/Gtk2.o:Gtk2.c:(.text+0x56e4): undefined reference to
`gperl_register_fundamen
tal_alias'
xs/Gtk2.o:Gtk2.c:(.text+0x56fa): undefined reference to
`gperl_register_fundamen
tal_alias'
xs/Gtk2.o:Gtk2.c:(.text+0x56ff): undefined reference to
`gtk2perl_pango_attribut
e_get_type'
xs/Gtk2.o:Gtk2.c:(.text+0x5710): undefined reference to
`gperl_register_boxed_al
ias'
xs/Gtk2.o:Gtk2.c:(.text+0x5715): undefined reference to
`gtk2perl_pango_attr_ite
rator_get_type'
xs/Gtk2.o:Gtk2.c:(.text+0x5726): undefined reference to
`gperl_register_boxed_al
ias'
xs/Gtk2.o:Gtk2.c:(.text+0x573c): undefined reference to
`gperl_register_boxed_al
ias'
xs/Gtk2.o:Gtk2.c:(.text+0x5752): undefined reference to
`gperl_register_boxed_al
ias'
xs/Gtk2.o:Gtk2.c:(.text+0x5768): undefined reference to
`gperl_register_object_a
lias'
xs/Gtk2.o:Gtk2.c:(.text+0x577e): undefined reference to
`gperl_register_fundamen
tal_alias'
xs/Gtk2.o:Gtk2.c:(.text+0x5794): undefined reference to
`gperl_register_fundamen
tal_alias'
xs/Gtk2.o:Gtk2.c:(.text+0x57aa): undefined reference to
`gperl_register_object_a
lias'
xs/Gtk2.o:Gtk2.c:(.text+0x57af): undefined reference to
`gtk2perl_pango_script_i
ter_get_type'
xs/Gtk2.o:Gtk2.c:(.text+0x57c0): undefined reference to
`gperl_register_boxed_al
ias'
xs/Gtk2.o:Gtk2.c:(.text+0x57d6): undefined reference to
`gperl_register_boxed_al
ias'
xs/Gtk2.o:Gtk2.c:(.text+0x57ec): undefined reference to
`gperl_register_fundamen
tal_alias'
xs/Gtk2.o:Gtk2.c:(.text+0x5802): undefined reference to
`gperl_register_object_a
lias'
xs/Gtk2.o:Gtk2.c:(.text+0x5818): undefined reference to
`gperl_register_fundamen
tal_alias'
xs/GdkPango.o:GdkPango.c:(.text+0x817): undefined reference to
`gtk2perl_pango_a
ttribute_get_type'
xs/GdkPango.o:GdkPango.c:(.text+0x8f1): undefined reference to
`gtk2perl_pango_a
ttribute_register_custom_type'
xs/GdkPango.o:GdkPango.c:(.text+0xa5f): undefined reference to
`gtk2perl_pango_a
ttribute_get_type'
xs/GdkPango.o:GdkPango.c:(.text+0xc1f): undefined reference to
`gtk2perl_pango_a
ttribute_get_type'
xs/GdkPango.o:GdkPango.c:(.text+0xd26): undefined reference to
`gtk2perl_pango_a
ttribute_register_custom_type'
xs/GdkPango.o:GdkPango.c:(.text+0xf7f): undefined reference to
`gtk2perl_pango_a
ttribute_get_type'
xs/GdkPango.o:GdkPango.c:(.text+0x1238): undefined reference to
`gtk2perl_pango_
attribute_get_type'
xs/GdkPango.o:GdkPango.c:(.text+0x12cc): undefined reference to
`gtk2perl_pango_
attribute_register_custom_type'
xs/GdkPango.o:GdkPango.c:(.text+0x1438): undefined reference to
`gtk2perl_pango_
attribute_get_type'
dll.exp:fake:(.edata+0x50): undefined reference to `SvPangoRectangle'
dll.exp:fake:(.edata+0x70): undefined reference to `SvPangoRectangle'
dll.exp:fake:(.edata+0xa4): undefined reference to
`newSVPangoRectangle'
dll.exp:fake:(.edata+0xd8): undefined reference to
`newSVPangoRectangle'




On Apr 6, 2:17 am, Brian Manning <elspicyj...@gmail.com> wrote:

Brian Manning

unread,
Apr 6, 2009, 1:05:16 PM4/6/09
to came...@googlegroups.com
On Mon, Apr 6, 2009 at 8:18 AM, deadpickle <deadp...@gmail.com> wrote:
> Added to LIBS:

LIBS or LDLOADLIBS/EXTRALIBS? It does make a difference.

>  C:\camelbox\lib\libPango.a
>
> still got the chain of errors (complete this time):

All of thse gperl_register* errors are telling me you're not including
libGlibPerl.a from C:\camelbox\lib in EXTRALIBS/LDLOADLIBS;

XP-GTK-BUILDER# strings libGlibPerl.a | grep register | grep -v "^_"
gperl_register_sink_func
gperl_register_object
gperl_register_fundamental
gperl_register_error_domain
gperl_register_boxed

> xs/GdkPango.o:GdkPango.c:(.text+0x817): undefined reference to
> `gtk2perl_pango_a
> ttribute_get_type'

These are probably coming from not having your new libPango.a module
in EXTRALIBS/LDLOADLIBS. I don't have that import library built, so I
can't check what symbols it's exporting.

> dll.exp:fake:(.edata+0x50): undefined reference to `SvPangoRectangle'
> dll.exp:fake:(.edata+0x70): undefined reference to `SvPangoRectangle'
> dll.exp:fake:(.edata+0xa4): undefined reference to
> `newSVPangoRectangle'
> dll.exp:fake:(.edata+0xd8): undefined reference to
> `newSVPangoRectangle'

Run strings | grep on your libPango.a file and see if these symbols
are present. They were moved out of libGtk2Perl.a in Gtk2 version
1.220 I think.

Thanks,

Brian

deadpickle

unread,
Apr 6, 2009, 4:03:25 PM4/6/09
to camelbox


On Apr 6, 12:05 pm, Brian Manning <elspicyj...@gmail.com> wrote:
> On Mon, Apr 6, 2009 at 8:18 AM, deadpickle <deadpic...@gmail.com> wrote:
> > Added to LIBS:
>
> LIBS or LDLOADLIBS/EXTRALIBS?  It does make a difference.

sorry I was just trying to shorten the time of typing, i mean the
EXTRALIBS AND LDLOADLIBS.

>
> >  C:\camelbox\lib\libPango.a
>
> > still got the chain of errors (complete this time):
>
> All of thse gperl_register* errors are telling me you're not including
> libGlibPerl.a from C:\camelbox\lib in EXTRALIBS/LDLOADLIBS;
>
> XP-GTK-BUILDER# strings libGlibPerl.a | grep register | grep -v "^_"
> gperl_register_sink_func
> gperl_register_object
> gperl_register_fundamental
> gperl_register_error_domain
> gperl_register_boxed
>
> > xs/GdkPango.o:GdkPango.c:(.text+0x817): undefined reference to
> > `gtk2perl_pango_a
> > ttribute_get_type'
>
> These are probably coming from not having your new libPango.a module
> in EXTRALIBS/LDLOADLIBS.  I don't have that import library built, so I
> can't check what symbols it's exporting.

the end of my EXTRALIBS/LDLOADLIBS include:
C:\camelbox\lib\libGlibPerl.a C:\camelbox\lib\libPango.a

strings libPango.a |grep gtk2perl | grep -v "^_" returned nothing
unfortunately.

>
> > dll.exp:fake:(.edata+0x50): undefined reference to `SvPangoRectangle'
> > dll.exp:fake:(.edata+0x70): undefined reference to `SvPangoRectangle'
> > dll.exp:fake:(.edata+0xa4): undefined reference to
> > `newSVPangoRectangle'
> > dll.exp:fake:(.edata+0xd8): undefined reference to
> > `newSVPangoRectangle'
>
> Run strings | grep on your libPango.a file and see if these symbols
> are present.  They were moved out of libGtk2Perl.a in Gtk2 version
> 1.220 I think.

C:\camelbox\lib>strings libPango.a | grep SvPangoRectangle
__SvPangoRectangle
__imp___SvPangoRectangle
(snip)

C:\camelbox\lib>strings libPango.a | grep newSVPangoRectangle
_newSVPangoRectangle
__imp__newSVPangoRectangle
(snip)

So libPango.a contains them but not reading them.


>
> Thanks,
>
> Brian

Brian Manning

unread,
May 12, 2009, 3:00:33 AM5/12/09
to came...@googlegroups.com
If you're still having trouble building this, I found a bug on
gnome.org [1] with patches that fixes this problem.

You will need to apply the patches to *clean* source, i.e. 'dmake
clean' prior to patching, or unpacking from tarballs downloaded from
CPAN. You will need to reapply changes to Makefiles of both Pango and
Gtk2 as documented in the BuildCoreGTK Camelbox wiki page[2].

I've rebuilt Gtk2 with the patches, and I'm starting the process of
building the other pieces (applications, libraries and Perl modules)
and needed to make a new release.

Please let me know if you have any questions about the patches or the
build process after you apply the patches.

Thanks,

Brian

[1] http://bugzilla.gnome.org/show_bug.cgi?id=576373
[2] http://code.google.com/p/camelbox/wiki/BuildCoreGtk
Reply all
Reply to author
Forward
0 new messages