This is the mail archive of the cygwin-xfree mailing list for the Cygwin XFree86 project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Need some help with linking errors when building latest GTK+


Hi,

I'm simply unable to build latest GTK+ (2.14.5) on cygwin atm.
I have a bit of building experience, though, so it might simply be a
Cygwin-specific thing I don't (yet) know about.
(NOTE: This may be a long post.)

First of all, the GTK+ tree seems to have some bugs:

[0] Preamble: -lintl is always linked in TWICE - this is nonsense.
Commenting out LIBS = -lintl in the Makefile(s) did the trick.

[1] BOTH -export-symbols and -export-symbols-regex were specified.
This lead to a fatal error, since these are mutually exclusive an must
not be specified at the very same time.
#Commenting out the line
LIBTOOL_EXPORT_OPTIONS = -export-symbols-regex "^[^_].*"
let me continue without problems.

[2] On Cygwin environment, I investigated another problem that WINDRES
environment variable in gdk/win32/rc was not
recognized, thus auto-transforming this line in the Makefile:
$(WINDRES) gdk.rc $@
to [pointless]
gdk.rc $@

As a .rc is not an executable script file, This resulted in lots of ugly
errors. When completing the line WINDRES =
/usr/bin/windres in the parent Makefile, everything worked up to ...

[3] ... this point. Lots of coffee breaks later, it breaks off at this
LONG line:

libtool: link: if test "x`/usr/bin/sed 1q ./gdk.def`" = xEXPORTS; then
cp ./gdk.def .libs/cyggdk-win32-2.0-0.dll.def; else echo EXPORTS >
.libs/cyggdk-win32-2.0-0.dll.def; cat ./gdk.def >>
.libs/cyggdk-win32-2.0-0.dll.def; fi
libtool: link:  gcc -shared .libs/cyggdk-win32-2.0-0.dll.def
.libs/gdk.o .libs/gdkapplaunchcontext.o .libs/gdkcairo.o
.libs/gdkcolor.o .libs/gdkcursor.o .libs/gdkdisplay.o
.libs/gdkdisplaymanager.o .libs/gdkdnd.o .libs/gdkdraw.o
.libs/gdkevents.o .libs/gdkfont.o .libs/gdkgc.o .libs/gdkglobals.o
.libs/gdkimage.o .libs/gdkkeys.o .libs/gdkkeyuni.o .libs/gdkpango.o
.libs/gdkpixbuf-drawable.o .libs/gdkpixbuf-render.o .libs/gdkpixmap.o
.libs/gdkpolyreg-generic.o .libs/gdkrectangle.o
.libs/gdkregion-generic.o .libs/gdkrgb.o .libs/gdkscreen.o
.libs/gdkselection.o .libs/gdkvisual.o .libs/gdkwindow.o
.libs/gdkwindowimpl.o .libs/gdkenumtypes.o
libs/gdkkeynames.o  -Wl,--whole-archive
win32/.libs/libgdk-win32.a -Wl,--no-whole-archive  -L/usr/lib -limm32 -l
shell32 -lole32 /usr/lib/libcairo.dll.a -lmsimg32 -lgdi32
/usr/lib/libpixman-1.dll.a -lpng12 /usr/lib/libXrender.dll.a
/usr/lib/libX11.dll.a /usr/lib/libxcb-xlib.dll.a /usr/lib/libxcb.dll.a
/usr/lib/libXau.dll.a /usr/lib/libXdmcp.dll.a
/usr/lib/libfontconfig.dll.a /usr/lib/libexpat.dll.a
/usr/lib/libfreetype.dll.a -lz
../gdk-pixbuf/.libs/libgdk_pixbuf-2.0.dll.a /usr/lib/libgio-2.0.dll.a
/usr/lib/libgobject-2.0.dll.a /usr/lib/libgmodule-2.0.dll.a
/usr/lib/libglib-2.0.dll.a -luser32 -lkernel32 /usr/lib/libintl.dll.a
/usr/lib/libiconv.dll.a  -Wl,win32/rc/gdk-win32-res.o -Wl,-luuid   -o
.libs/cyggdk-win32-2.0-0.dll -Wl,--enable-auto-image-base -Xlinker --out
-implib -Xlinker .libs/libgdk-win32-2.0.dll.a

Creating library file: .libs/libgdk-win32-2.0.dll.a

.libs/gdkcolor.o: In function `gdk_color_to_string':
/home/Administrator/build/gtk+-2.14.5/gdk/gdkcolor.c:376: undefined
reference to `_pango_color_to_string'
.libs/gdkcolor.o: In function `gdk_color_parse':
/home/Administrator/build/gtk+-2.14.5/gdk/gdkcolor.c:340: undefined
reference to `_pango_color_parse'

[BIG SNIP - 50 undefined pango_* references later...]

.libs/gdkpango.o: In function `gdk_pango_renderer_draw_glyphs':
/home/Administrator/build/gtk+-2.14.5/gdk/gdkpango.c:251: undefined
reference to `_pango_cairo_show_glyph_string'
win32/.libs/libgdk-win32.a(gdkfont-win32.o): In function
`gdk_font_from_description_for_display':
/home/Administrator/build/gtk+-2.14.5/gdk/win32/gdkfont-win32.c:1246:
undefined reference to `_pango_font_description_get_size'
collect2: ld returned 1 exit status
make[4]: *** [libgdk-win32-2.0.la] Error 1
make[4]: Leaving directory `/home/Administrator/build/gtk+-2.14.5/gdk'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/home/Administrator/build/gtk+-2.14.5/gdk'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/Administrator/build/gtk+-2.14.5/gdk'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/Administrator/build/gtk+-2.14.5'
make: *** [all] Error 2


I do have a theory, though.
Pango is trunk and has been built without problems, BUT ...
As I could see, although _explicitly_ specifying
--enable-shared --enable-static

the libpango*.dll.a files are still from 2005. But probably the compiler
*does* need this .dll.a badly! Yet I'm unable to build a .dll.a, instead
I get:

Warning: This system can not link to static lib archive
/usr/lib/libpango-w32.1.0.la.
I have the capability to make that library automatically link in where
you link this library.
But I can only do this if you have a shared version of the library,
which you do not appear to have.

Has anyone ever fiddled with this recently?
I'd appreciate any help on this.
Thank you very much in advance

Regards
-Andreas


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://x.cygwin.com/docs/
FAQ:                   http://x.cygwin.com/docs/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]