Closed
Bug 183894
Opened 22 years ago
Closed 22 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•22 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•22 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•22 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•22 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•22 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•22 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•22 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•22 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•22 years ago
|
||
Weird. Afaik, nothing changed on our end. Marking invalid.
Status: UNCONFIRMED → RESOLVED
Closed: 22 years ago
Resolution: --- → INVALID
Comment 11•22 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•22 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•22 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•22 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•22 years ago
|
||
Which link line is missing the -lXinerama ? And please verify this with a trunk build.
Comment 16•22 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•22 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•22 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•22 years ago
|
||
What version of GNU make are you using?
Assignee | ||
Comment 20•22 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•22 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•22 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•22 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•22 years ago
|
||
Reopening since we were only working before due to a make bug.
Status: RESOLVED → UNCONFIRMED
Resolution: INVALID → ---
Assignee | ||
Comment 25•22 years ago
|
||
The fix has been checked in.
Status: UNCONFIRMED → RESOLVED
Closed: 22 years ago → 22 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla1.3beta
Updated•20 years ago
|
Product: Browser → Seamonkey
You need to log in
before you can comment on or make changes to this bug.
Description
•