Closed Bug 290688 Opened 19 years ago Closed 19 years ago

Unable to compile XULRunner with SVG extension

Categories

(Toolkit Graveyard :: XULRunner, defect)

x86
All
defect
Not set
blocker

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: kheo, Assigned: benjamin)

Details

Attachments

(2 files)

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; fr-FR; rv:1.7.6) Gecko/20050318 Firefox/1.0.2
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8b2) Gecko/20050416 Firefox/1.0+

Building XULRunner with the SVG support, make the compilation process fail.
When the compilation process reach the layout/svg/renderer directory,
/usr/bin/ld fail because it can't find some library like -lxpcom
Perhaps the svg renderer is compiled too soon, before the xpcom.

Here is my mozconfig file :

************************************
#
# See http://www.mozilla.org/build/ for build instructions.
#

. /usr/local/src/mozilla/xulrunner/config/mozconfig

# Options for client.mk.

export MOZILLA_OFFICIAL=1
mk_add_options MOZILLA_OFFICIAL=1
ac_add_options --enable-application=xulrunner

ac_add_options --disable-tests
ac_add_options --disable-debug
ac_add_options --enable-optimize

ac_add_options --enable-svg
ac_add_options --enable-svg-renderer-cairo


***************************





Reproducible: Always

Steps to Reproduce:
1.Get the CVS source
2.Set the enviroment MOZCONFIG on my mozconfig file given
3.make -f client.mk build
4.wait a little hour.

Actual Results:  
It breaks the compilation process with this error

c++ -I/usr/X11R6/include -fno-rtti -fno-exceptions -Wall -Wconversion
-Wpointer-arith -Wcast-align -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy
-Wno-non-virtual-dtor -Wno-long-long -pedantic -fshort-wchar -pthread -pipe 
-DNDEBUG -DTRIMMED -O -I../../../../../dist/include/cairo  -DXTHREADS
-I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/X11R6/include
-I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2
-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   -fPIC -shared -Wl,-h
-Wl,libgksvgcairo.so -o libgksvgcairo.so  nsSVGRendererCairo.o
nsSVGCairoCanvas.o nsSVGCairoPathGeometry.o nsSVGCairoPathBuilder.o
nsSVGCairoRegion.o nsSVGCairoGlyphMetrics.o nsSVGCairoGlyphGeometry.o
nsSVGCairoGradient.o nsSVGCairoSurface.o       -Wl,--version-script
-Wl,../../../../../build/unix/gnu-ld-scripts/components-version-script
-Wl,-Bsymbolic -L../../../../../dist/bin -L../../../../../dist/lib -lgkgfx
../../../../../dist/lib/libunicharutil_s.a -lcairo -lpixman -lfreetype
-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  
-L../../../../../dist/bin -Wl,-rpath-link,../../../../../dist/bin -lxpcom -lxul
 -L../../../../../dist/bin -L../../../../../dist/lib -lplds4 -lplc4 -lnspr4
-lpthread -ldl  -ldl -lm
/usr/bin/ld: ne peut trouver -lxpcom
collect2: ld a retourné 1 code d'état d'exécution
make[7]: *** [libgksvgcairo.so] Erreur 1
make[7]: Leaving directory `/usr/local/src/xulrunner/layout/svg/renderer/src/cairo'
make[6]: *** [libs] Erreur 2
make[6]: Leaving directory `/usr/local/src/xulrunner/layout/svg/renderer/src'
make[5]: *** [libs] Erreur 2
make[5]: Leaving directory `/usr/local/src/xulrunner/layout/svg/renderer'
make[4]: *** [libs] Erreur 2
make[4]: Leaving directory `/usr/local/src/xulrunner/layout/svg'
make[3]: *** [libs] Erreur 2
make[3]: Leaving directory `/usr/local/src/xulrunner/layout'
make[2]: *** [tier_9] Erreur 2
make[2]: Leaving directory `/usr/local/src/xulrunner'
make[1]: *** [default] Erreur 2
make[1]: Leaving directory `/usr/local/src/xulrunner'
make: *** [build] Erreur 2
zsh: exit 2     make -f client.mk build

And another time I got the same error but with -lxul

Expected Results:  
Pass through and compile the all XulRunner.

If we start compiling XulRunner without SVG support, and after recompile it with
SVG support it works. So I have to compile XulRunner in a normal mode in order
to have the -lxpcom and the -lxul created to build it with SVG support.
This problem occurs on my debian linux and when a I try to compile it under
cygwin for win32 platforms.
Should the SVG renderers be linked as part of libxul or not? Are there dynamic
linking dependencies (ELF) that need runtime resolution and may not be available?

We either need to move something from DIRS to TOOL_DIRS, or make something
LIBXUL_LIBRARY and add it to the toolkit/library link list.
Status: UNCONFIRMED → NEW
Ever confirmed: true
I believe that the renderers are separate DSOs in order to fail gracefully when
some required system libraries are not available.
Assignee: nobody → benjamin
Status: NEW → ASSIGNED
Attachment #181032 - Flags: second-review?(darin)
Attachment #181032 - Flags: first-review?(tor)
We want xulrunner 1.8b2 to have SVG support.
Assignee: benjamin → nobody
Status: ASSIGNED → NEW
Flags: blocking1.8b2+
Assignee: nobody → benjamin
Attachment #181032 - Flags: second-review?(darin) → second-review+
I think libart needs to be left as DIRS, as it gets built into a static lib and
linked to gklayout.
The cairo svg renderer is about to be moved back to statically linking into
gklayout (bug 290835), so cairo will need to be DIRS too.
What's the status here. Is this critical for 1.8b2 and the Deer Park Alpha?
Yes, and the cairo linking situation might be stable enough that I can actually
prepare a patch. Tor, is gdiplus the only standalone piece now, and all of
gdiplusshim/cairo/libart are linked into gklayout?
Correct, only gdiplus is forced to be a shared library so that we can poke
around for gdi+ before loading it.
Attachment #181898 - Flags: first-review?(tor)
Attachment #181898 - Flags: first-review?(tor) → first-review+
Comment on attachment 181898 [details] [diff] [review]
Build the gdi+ shim after libxul is available, rev. 2

a=asa for landing this. Time is short on 1.8b2 so the sooner the better.
Attachment #181898 - Flags: approval1.8b2+
I landed the "rev 2" patch on the trunk.  Marking FIXED.
Status: NEW → RESOLVED
Closed: 19 years ago
Resolution: --- → FIXED
Attachment #181032 - Flags: first-review?(tor)
Product: Toolkit → Toolkit Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: