Closed Bug 188156 Opened 22 years ago Closed 22 years ago

gtk2 build is broken on Solaris (@embedding\browser\gtk\tests)

Categories

(Core Graveyard :: Embedding: GTK Widget, defect)

Sun
Solaris
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: yuanyi21, Assigned: yuanyi21)

References

Details

Attachments

(1 file, 1 obsolete file)

917 bytes, patch
yuanyi21
: review+
blizzard
: superreview+
Details | Diff | Splinter Review
1. while compiling TestGtkEmbedChild.cpp, we got
"TestGtkEmbedChild.cpp", line 44: Error: resourceid is not defined.

the g_warning is defined in gmessages.h as
#define g_warning(...)  g_log (G_LOG_DOMAIN,         \
                               G_LOG_LEVEL_WARNING,  \
                               __VA_ARGS__)
maybe the workshop compiler can't deal with this syntax.

2. If fixed above problem, I got:
Undefined                       first referenced
 symbol                             in file
XSetErrorHandler                    TestGtkEmbedChild.o  (symbol belongs to impl
icit dependency /usr/openwin/lib/libX11.so.4)

it means we have to *explicitly* refer to the X11 libs.
Attached patch patch (obsolete) — Splinter Review
changes TestGtkEmbedChild.cpp for the problem 1;
changes Makefile.in for the problem 2.
Attachment #110928 - Flags: review?(Roland.Mainz)
Comment on attachment 110928 [details] [diff] [review]
patch

Looks reasonable... :)

r=Roland.Mainz@informatik.med.uni-giessen.de

You still need r=cls for the Makefile.in change...
Attachment #110928 - Flags: review?(Roland.Mainz) → review+
What is TK_LIBS set to?  I would have expected gtk2-config to have -lX11 in the
link list.
cls, for gtk2 build, we are using pkg-config (there is not a script called
gtk2-config), and pkg-config says:

~$ pkg-config --libs gtk+-2.0
 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangoxft-1.0
-lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0

for Linux, the linker can find X11 libs by itself, but Sun workshop can't.

For gtk2 build, the TK_LIBS set to MOZ_GTK2_LIBS that equals to "pkg-config
--libs gtk+-2.0"
That's weird. I thought that the -config script would be smart enough to add all
of the library dependencies for platforms that required all symbols to be
resolved at link time.  Even gtk(1)-config explicitly added the X libs.  Oh
well. r=cls
Attachment #110928 - Flags: superreview?(blizzard)
Comment on attachment 110928 [details] [diff] [review]
patch

Wait, are we using the correct linker on solaris?  This _should_ get picked up
as a library dependency automatically.
we are using solaris native linker - /usr/ccs/bin/ld:
ld: Software Generation Utilities - Solaris Link Editors: 5.9-1.343

the gnu ld hasn't this problem.
Shouldn't you be using the compiler to link?  That's what you do with gcc, anyway.
Yes, we are also using solaris native compiler - Forte 6 update 2. 
embedding\browser\gtk\tests call some Xlib functions directly, so we should 
specify the X11 library explicitly, at least it's true for sun compiler.

I see the gtk-config --libs contains -lX11, but pkg-config --libs gtk+-2.0 
doesn't.
Attached patch new patchSplinter Review
Since bug 188527 was fixed, we don't need the changes for Makefile.in any more.
Only correct the g_warning things.
Attachment #110928 - Attachment is obsolete: true
Attachment #110928 - Flags: superreview?(blizzard)
Comment on attachment 112015 [details] [diff] [review]
new patch

carrying Roland's r=
Attachment #112015 - Flags: superreview?(blizzard)
Attachment #112015 - Flags: review+
Comment on attachment 112015 [details] [diff] [review]
new patch

sr=blizzard
Attachment #112015 - Flags: superreview?(blizzard) → superreview+
checked in.
Status: NEW → RESOLVED
Closed: 22 years ago
Resolution: --- → FIXED
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: