Closed
Bug 183894
Opened 23 years ago
Closed 23 years ago
undefined symbol: XineramaIsActive
Categories
(SeaMonkey :: Build Config, defect)
Tracking
(Not tracked)
VERIFIED
FIXED
mozilla1.3beta
People
(Reporter: ervin.nemeth+org.mozilla.bugzilla, Assigned: netscape)
Details
User-Agent: Mozilla/4.79 [en] (X11; U; Linux 2.4.19 i686; Nav)
Build Identifier: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3a) Gecko/20021206 <developer build>
Mozilla won't start:
mozilla-bin: relocation error: /.../libgfx_gtk.so: undefined symbol:
XineramaIsActive
20021204 hadn't got this problem. Where is this symbol defined? libgfx_gtk.so
is also using XineramaQueryScreens but
LD_LIBRARY_PATH=/opt/Mozilla/bin ldd
/usr/src/misc/Mozilla/mozilla/dist/bin/components/libgfx_gtk.so | awk '{ print
$3 }' | xargs fgrep -l Xinerama
returns nothing.
Reproducible: Always
Steps to Reproduce:
1.
2.
3.
same error here, built today, 7 dec 02 on fresh checkout for linux os. only
occurs when
ac_add_options --enable-xinerama
appears in .mozconfig file. does not exhibit this behavior when the option is
commented out (but of course then mozilla isn't xinerama capable, duh)
| Reporter | ||
Comment 2•23 years ago
|
||
Must be a linking problem since XineramaIsActive was added by Blizzard a year ago. Makefile.in was modified on Dec. 3 by bstell%ix.netcom.com.
Comment 3•23 years ago
|
||
if you erase libgfx_gtk.so and rebuild it ("make libs" from gfx/src/gtk), does
it link in Xinerama (-lXinerama)?
| Reporter | ||
Comment 4•23 years ago
|
||
Since the bug occured I was trying to build Mozilla several times after an (rm
config.* ; make clean) This gets rid of the libraries, too, AFAIK.
Every time the same result.
Comment 5•23 years ago
|
||
right, but does it link in Xinerama when it links libgfx_gtk.so?
==> Build Config
Assignee: dougt → seawood
Component: XPCOM → Build Config
QA Contact: scc → granrose
| Assignee | ||
Comment 6•23 years ago
|
||
gtk/src/gfx/Makefile.in looks correct. MOZ_XINERAMA_LIBS (-lXinerama) should be
added to the link line if you configured with --enable-xinerama & the xinerama
header & lib are detected.
After some googling, this looks like a bug with some other library that's being
linked in. According to the post at
http://article.gmane.org/gmane.comp.video.mplayer.user/7144/match=xineramaisactive
, Xinerama's a static lib so that symbol should never show up as undefined in
our library.
What does the complete link line look like? Can you build previous releases now
using the --enable-xinerama option?
| Reporter | ||
Comment 7•23 years ago
|
||
Here is the linker line:
c++ -I/usr/X11R6/include -frtti -fexceptions -Wall -Wconversion -Wpointer-arith
-Wcast-align -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-long-long
-pipe -O3 -march=pentium2 -mmmx -msse -mfpmath=sse,387 -funroll-loops
-maccumulate-outgoing-args -fforce-addr -fprefetch-loop-arrays
-fmove-all-movables -freduce-all-givs -fshort-wchar -pthread -pipe -DNDEBUG
-DTRIMMED -ffunction-sections -w -I/usr/gtk/include/gtk-1.2
-I/usr/gtk/include/glib-1.2 -I/usr/gtk/lib/glib/include -I/usr/X11R6/include
-fPIC -shared -Wl,-h -Wl,libgfx_gtk.so -o libgfx_gtk.so nsPrintdGTK.o
gtkdrawing.o xprintutil.o nsDeviceContextGTK.o nsDeviceContextSpecFactoryG.o
nsDeviceContextSpecG.o nsDrawingSurfaceGTK.o nsGfxFactoryGTK.o
nsGraphicsStateGTK.o nsImageGTK.o nsGCCache.o nsRenderingContextGTK.o
nsScreenGtk.o nsScreenManagerGtk.o nsPrintOptionsGTK.o nsFontMetricsUtils.o
nsAntiAliasedGlyph.o nsFontFreeType.o nsFT2FontNode.o nsFT2FontCatalog.o
nsX11AlphaBlend.o nsXFontAAScaledBitmap.o nsXFontNormal.o nsFontMetricsGTK.o
nsGdkUtils.o nsRegionGTK.o nsNativeThemeGTK.o -Wl,-O1,-z,combreloc
-Wl,--version-script
-Wl,../../../build/unix/gnu-ld-scripts/components-version-script -Wl,-Bsymbolic
-L../../../dist/bin -L../../../dist/lib -lgkgfx -lgfxshared_s -lXinerama
-lgtksuperwin -L../../../dist/bin -lxpcom -L../../../dist/bin
-L/usr/src/misc/Mozilla/mozilla/dist/lib -lplds4 -lplc4 -lnspr4 -lpthread -ldl
-L../../../dist/bin -lmozjs -L/usr/gtk/lib -L/usr/X11R6/lib -lgtk -lgdk
-rdynamic -lgmodule -lglib -ldl -lXext -lX11 -lm -L/usr/X11R6/lib -lXp -lXext
-lX11 -ldl -lm
Lately I was using Mozilla without Xinerama. This line is a result after a
reconfig with Xinerama enabled and only the gfx subdirectory was rebuilt. Now
Mozilla starts correctly, but I will do a full rebuild shortly (takes some time).
| Assignee | ||
Comment 8•23 years ago
|
||
> Lately I was using Mozilla without Xinerama. This line is a result after a
> reconfig with Xinerama enabled and only the gfx subdirectory was rebuilt. Now
You only rebuilt the gfx subdir or only the gfx subdir was rebuilt when you ran
a build? Since xinerama adds a cpp define, I would have expected everything to
rebuild since mozilla-config.h changed.
> Mozilla starts correctly, but I will do a full rebuild shortly (takes some time).
When you rebuild, try touching dist/bin/.autoreg before you try running. It
will cause the new library to be registered and that should trigger the error
you saw before if it still exists.
| Reporter | ||
Comment 9•23 years ago
|
||
Reporting a working Mozilla. Mozilla full-build from CVS with Xinerama just
finished. The result has no problem with missing Xinerama symbols.
| Assignee | ||
Comment 10•23 years ago
|
||
Weird. Afaik, nothing changed on our end. Marking invalid.
Status: UNCONFIRMED → RESOLVED
Closed: 23 years ago
Resolution: --- → INVALID
Comment 11•23 years ago
|
||
I got the error after I built the cvs trunk two hours ago.
I think there is still a problem, but I don't know details.
| Assignee | ||
Comment 12•23 years ago
|
||
Rosenauer, I would suggest that you follow the directions from the link in
comment #6 and verify that none of your system shared libraries are exporting
that symbols erroneously.
Comment 13•23 years ago
|
||
I've checked my build-system and I cannot find a shared object which exports
XineramaIsActive.
There is only /usr/X11R6/lib/libXinerama.a
When I build 1.2.1 in the very same build-system I don't get such an error.
But I found this in the build-log after the link-line:
nsScreenManagerGtk.o: In function `nsScreenManagerGtk::EnsureInit(void)':
nsScreenManagerGtk.o(.nsScreenManagerGtk::text.EnsureInit(void)+0x93): undefined
reference to `XineramaIsActive'
nsScreenManagerGtk.o(.nsScreenManagerGtk::text.EnsureInit(void)+0xac): undefined
reference to `XineramaQueryScreens'
I don't get this, when I build 1.2.1.
Comment 14•23 years ago
|
||
OK, here is further information:
the linking call miss -lXinerama in 1.3a even
if --enable-xinerama is set.
So libXinerama.a is not statically linked in.
I think this bug should be reopened!
some parts of the build-log:
...
./configure --enable-configure --disable-tests --disable-debug '--enable-optim
ize=-O2 -march=i486 -mcpu=i686' --disable-dtd-debug --disable-logging --enable-e
xtensions --disable-short-wchar --enable-crypto --enable-mathml --enable-reorder
--enable-strip --with-default-mozilla-five-home=/opt/mozilla --libdir=/opt/mozi
lla/lib --sysconfdir=/etc --prefix=/opt/mozilla --enable-ldap-experimental --wit
h-system-jpeg --with-system-png --with-system-mng --with-system-zlib --enable-xi
nerama
...
checking for XineramaIsActive in -lXinerama... yes
checking for X11/extensions/Xinerama.h... yes
...
#define MOZ_ENABLE_XINERAMA 1
...
| Assignee | ||
Comment 15•23 years ago
|
||
Which link line is missing the -lXinerama ? And please verify this with a trunk
build.
Comment 16•23 years ago
|
||
the linker line of libgfx_gtk.so. The library which print the error of course.
Verified with a cvs checkout from 2002-12-17 22:42 CET
| Assignee | ||
Comment 17•23 years ago
|
||
As with comment #7, I want to see the actual commands that your build is using
to link libgfx_gtk.so. And check to see if MOZ_ENABLE_XINERAMA is actually set
in config/autoconf.mk .
Comment 18•23 years ago
|
||
c++ -fno-rtti -fno-exceptions -Wall -Wconversion -Wpointer-arith -Wcast-align -
Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -pedantic -Wno-long-long -O2
-march=i486 -mcpu=i686 -pthread -pipe -DNDEBUG -DTRIMMED -ffunction-sections -O
2 -march=i486 -mcpu=i686 -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/l
ib/glib/include -I/usr/X11R6/include -fPIC -shared -Wl,-h -Wl,libgfx_gtk.so -o
libgfx_gtk.so nsPrintdGTK.o gtkdrawing.o xprintutil.o nsDeviceContextGTK.o nsDe
viceContextSpecFactoryG.o nsDeviceContextSpecG.o nsDrawingSurfaceGTK.o nsGfxFact
oryGTK.o nsGraphicsStateGTK.o nsImageGTK.o nsGCCache.o nsRenderingContextGTK.o n
sScreenGtk.o nsScreenManagerGtk.o nsPrintOptionsGTK.o nsFontMetricsUtils.o nsAnt
iAliasedGlyph.o nsFontFreeType.o nsFT2FontNode.o nsFT2FontCatalog.o nsX11AlphaBl
end.o nsXFontAAScaledBitmap.o nsXFontNormal.o nsFontMetricsGTK.o nsGdkUtils.o ns
RegionGTK.o nsNativeThemeGTK.o -Wl,--whole-archive ../../../dist/lib/libgf
xft2_s.a -Wl,--no-whole-archive -Wl,--version-script -Wl,../../../build/unix/gn
u-ld-scripts/components-version-script -Wl,-Bsymbolic -L../../../dist/bin -L../.
./../dist/lib -lgkgfx -lgfxshared_s -lgtksuperwin -L../../../dist/bin -lxpcom
-L../../../dist/bin -L/usr/src/packages/BUILD/mozilla/dist/lib -lplds4 -lplc4 -l
nspr4 -lpthread -ldl -L../../../dist/bin -lmozjs -L/usr/lib -L/usr/X11R6/lib -
lgtk -lgdk -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm -L/usr/X11R6/
lib -lXp -lXext -lX11 -ldl -lm
nsScreenManagerGtk.o: In function `nsScreenManagerGtk::EnsureInit(void)':
nsScreenManagerGtk.o(.nsScreenManagerGtk::text.EnsureInit(void)+0x93): undefined
reference to `XineramaIsActive'
nsScreenManagerGtk.o(.nsScreenManagerGtk::text.EnsureInit(void)+0xac): undefined
reference to `XineramaQueryScreens'
MOZ_ENABLE_XINERAMA = 1
MOZ_XINERAMA_LIBS = -lXinerama
is set in config/autoconf.mk
| Assignee | ||
Comment 19•23 years ago
|
||
What version of GNU make are you using?
| Assignee | ||
Comment 20•23 years ago
|
||
Also, try moving the MOZ_ENABLE_XINERAMA ifdef block to the spot right after the
rules.mk include. EXTRA_DSO_LDOPTS may be getting evaluated immediately instead
of being deferred.
Comment 21•23 years ago
|
||
Hygiea:/# make -v
GNU Make version 3.79.1, by Richard Stallman and Roland McGrath.
Built for i686-pc-linux-gnu
Do you mean the part in gfx/src/gtk/Makefile?
I will check it out.
| Reporter | ||
Comment 22•23 years ago
|
||
If *I* do a make, the linker line does contain the -lXinerama option. Wolfgang,
what happens if you do a "make clean" in the gfx subdirectory then rebuild
Mozilla? Possibly this was the solution in my case.
Comment 23•23 years ago
|
||
OK, using the following patch it seems to be alright:
--- gfx/src/gtk/Makefile.in
+++ gfx/src/gtk/Makefile.in
@@ -135,6 +135,10 @@
include $(topsrcdir)/config/rules.mk
+ifdef MOZ_ENABLE_XINERAMA
+GFX_XINERAMA_LIBS += $(MOZ_XINERAMA_LIBS)
+endif
+
ifdef MOZ_ENABLE_GTK
EXTRA_DSO_LDOPTS += \
$(LIBS_DIR) \
@@ -160,10 +164,6 @@
CXXFLAGS += $(MOZ_GTK_CFLAGS) $(MOZ_GTK2_CFLAGS)
CFLAGS += $(MOZ_GTK_CFLAGS) $(MOZ_GTK2_CFLAGS)
-ifdef MOZ_ENABLE_XINERAMA
-GFX_XINERAMA_LIBS += $(MOZ_XINERAMA_LIBS)
-endif
-
ifeq ($(OS_ARCH), Linux)
DEFINES += -D_BSD_SOURCE
endif
the linker line is now:
c++ -fno-rtti -fno-exceptions -Wall -Wconversion -Wpointer-arith -Wcast-align -
Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -pedantic -Wno-long-long -O2
-march=i486 -mcpu=i686 -pthread -pipe -DNDEBUG -DTRIMMED -ffunction-sections -O
2 -march=i486 -mcpu=i686 -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/l
ib/glib/include -I/usr/X11R6/include -fPIC -shared -Wl,-h -Wl,libgfx_gtk.so -o
libgfx_gtk.so nsPrintdGTK.o gtkdrawing.o xprintutil.o nsDeviceContextGTK.o nsDe
viceContextSpecFactoryG.o nsDeviceContextSpecG.o nsDrawingSurfaceGTK.o nsGfxFact
oryGTK.o nsGraphicsStateGTK.o nsImageGTK.o nsGCCache.o nsRenderingContextGTK.o n
sScreenGtk.o nsScreenManagerGtk.o nsPrintOptionsGTK.o nsFontMetricsUtils.o nsAnt
iAliasedGlyph.o nsFontFreeType.o nsFT2FontNode.o nsFT2FontCatalog.o nsX11AlphaBl
end.o nsXFontAAScaledBitmap.o nsXFontNormal.o nsFontMetricsGTK.o nsGdkUtils.o ns
RegionGTK.o nsNativeThemeGTK.o -Wl,--whole-archive ../../../dist/lib/libgf
xft2_s.a -Wl,--no-whole-archive -Wl,--version-script -Wl,../../../build/unix/gn
u-ld-scripts/components-version-script -Wl,-Bsymbolic -L../../../dist/bin -L../.
./../dist/lib -lgkgfx -lgfxshared_s -lXinerama -lgtksuperwin -L../../../dist/bin
-lxpcom -L../../../dist/bin -L/usr/src/packages/BUILD/mozilla/dist/lib -lplds4
-lplc4 -lnspr4 -lpthread -ldl -L../../../dist/bin -lmozjs -L/usr/lib -L/usr/X
11R6/lib -lgtk -lgdk -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm -L/
usr/X11R6/lib -lXp -lXext -lX11 -ldl -lm
| Assignee | ||
Comment 24•23 years ago
|
||
Reopening since we were only working before due to a make bug.
Status: RESOLVED → UNCONFIRMED
Resolution: INVALID → ---
| Assignee | ||
Comment 25•23 years ago
|
||
The fix has been checked in.
Status: UNCONFIRMED → RESOLVED
Closed: 23 years ago → 23 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla1.3beta
Updated•21 years ago
|
Product: Browser → Seamonkey
You need to log in
before you can comment on or make changes to this bug.
Description
•