Closed Bug 236836 Opened 20 years ago Closed 20 years ago

AIX GTK2 build fails to link after landing Bug 235188

Categories

(SeaMonkey :: Build Config, defect)

Other
AIX
defect
Not set
critical

Tracking

(Not tracked)

RESOLVED FIXED
mozilla1.7beta

People

(Reporter: pkwarren, Assigned: pkwarren)

Details

Attachments

(1 file)

Bug 235188 added a dependency on libX11.a for mozilla-bin which causes the GTK2
build of Mozilla to not link properly on AIX. This is the error message while
building Mozilla:

xlC_r -o mozilla-bin    -DNDEBUG -DTRIMMED -O2 -qmaxmem=-1 -qalias=noansi
-DWIDGET_DLL=\"libwidget_gtk2.so\" -DGFXWIN_DLL=\"libgfx_gtk2.so\"
-I/opt/freeware/include/gtk-2.0 -I/opt/freeware/lib/gtk-2.0/include
-I/opt/freeware/include/atk-1.0 -I/opt/freeware/include/pango-1.0
-I/opt/freeware/include/glib-2.0 -I/opt/freeware/lib/glib-2.0/include   
nsAppRunner.o nsWindowCreator.o showOSAlert.o nsSigHandlers.o nsStackFrameUnix.o
nsNativeAppSupportGtk.o nsNativeAppSupportBase.o  -brtl -bso -bh:5 -Wl,-brtl
-blibpath:/usr/lib:/lib   -L../../dist/bin -L../../dist/lib   
../../dist/lib/libstring_s.a ../../dist/lib/libxpcomglue.a  -L../../dist/bin
-lmozjs -L/home/daily/sb/mozilla/obj-opt/dist/lib -lplds4 -lplc4 -lnspr4
-lpthreads -ldl   -L/opt/freeware/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0
-lgdk_pixbuf-2.0 -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -lglib-2.0
-lintl -liconv -lm   -lC_r -ldl -lm -lc_r      
ld: 0711-317 ERROR: Undefined symbol: .XInitThreads

We need to add -lX11 to the link line in xpfe/bootstrap/Makefile.in to fix this
issue.
Assignee: nobody → pkw
Here is a little more information. For GTK1 builds, mozilla-bin is linked with
MOZ_GTK_LDFLAGS, which is set to the output of gtk-config --libs:

pkw@ut:~$ gtk-config --libs
-L/opt/freeware/lib -Wl,-brtl -lgtk -lgdk -lgmodule -lglib -lintl -lXext -lX11 -lm

For GTK2 builds, mozilla-bin is linked against MOZ_GTK2_LIBS, which is the
output of pkg-config --libs gtk+-2.0:

pkw@ut:~$ pkg-config --libs gtk+-2.0
-L/opt/freeware/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0
-lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lintl -liconv -lm

Note that -lX11 is not included in the pkg-config output for GTK2.
Status: NEW → ASSIGNED
Almost sounds like you want an "if" statement in xpfe/bootstrap/Makefile.in 
for MOZ_X11

ifdef MOZ_X11
LIBS += -lX11
endif

Since now there is a specific dependency (XInitThreads) in 
xpfe/bootstrap/nsAppRunner.cpp
Attached patch v1.0Splinter Review
Unfortunately, we don't export MOZ_X11 to the makefiles.  For now, we can just
use the check we use for chrome and clean it up when the tree reopens.
Attachment #143365 - Flags: review?(blizzard)
Attachment #143365 - Flags: review?(blizzard) → review+
Patch has been checked in.
Status: ASSIGNED → RESOLVED
Closed: 20 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla1.7beta
The real problem here seems to be that the .pc file for gtk2 doesn't include all
the libraries required.  At least on Linux, you don't need to link against the
X11 libs because they are already pulled in when you link against gtk2.
Product: Browser → Seamonkey
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: