Closed Bug 237487 Opened 21 years ago Closed 21 years ago

SVG-enabled FireFox fails to build due missing |alloca()| symbol

Categories

(Core :: SVG, defect)

Sun
Solaris
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: roland.mainz, Assigned: alex)

Details

Attachments

(1 file, 1 obsolete file)

An attempt to build a SVG-enabled FireFox fails due missing |alloca()| symbol on Solaris2.8/SPARC with Sun Workshop 8. The failure occurs at the final link: -- snip -- /opt/SUNWspro/bin/CC -o firefox-bin -I/usr/openwin/include -features=tmplife -xbuiltin=%all -mt -DNDEBUG -DTRIMMED -xO2 nsBrowserApp.o nsStaticComponents.o -xildoff -zlazyload -zcombreloc -L../../dist/bin -L../../dist/lib -L../../dist/lib/components -lxpcom_compat_c -lxpconnect -luconv -lucvmath -li18n -lctl -loji -lnecko -lnecko2 -lpref -lcaps -lrdf -lhtmlpars -lgfxxprint -lgfx_gtk -limglib2 -lgkplugin -lwidget_gtk -lxremote_client -lgklayout -lmork -ldocshell -lprofile -lnsprefm -lembedcomponents -lwebbrwsr -leditor -ltxmgr -lcomposer -lnsappshell -lchrome -laccessibility -lpipboot -lpipnss -lpippki -lfileview -lmozfind -lxremoteservice -lappcomps -ltoolkitcomps -lcookie -lxmlextras -lautoconfig -ltransformiix -luniversalchardet -ltypeaheadfind -lwebsrvcs -lnkfinger -lnkdatetime -lbrowsercomps -lunicharutil_s -lucvutil_s -lmozpango -ljsj -lgtksuperwin -lgtkxtbin -lgfxshared_s -lxlibrgb -lxprintutil -lgkgfx -lxulapp_s ../../dist/lib/libxulapp_s.a -L../../dist/bin -lmozjs -L../../dist/bin -lxpcom -L/shared/bigtmp/mozilla/nightlybuilds/north/objdir_gtk1/dist/lib -lplds4 -lplc4 -lnspr4 -lpthread -ldl -lrt -L/usr/local/lib -L/usr/openwin/lib -R/usr/openwin/lib -lgtk -lgdk -lgmodule -lglib -ldl -lXext -lX11 -lsocket -lnsl -lm -lsocket -ldl -lm -L../../dist/lib/components -L../../dist/lib -lmozpng -L../../dist/lib -lmozjpeg -L../../dist/lib -lmozz -L../../dist/bin -L../../dist/lib ../../dist/lib/libcrmf.a -lsmime3 -lssl3 -lnss3 -lsoftokn3 -lmoz_art_lgpl -lm -L/usr/openwin/lib -R/usr/openwin/lib -lXt -L/usr/openwin/lib -R/usr/openwin/lib -lXp -lXext -lX11 -L../../dist/lib -lxpcom_compat Undefined first referenced symbol in file alloca ../../dist/bin/libmoz_art_lgpl.so ld: fatal: Symbol referencing errors. No output written to firefox-bin gmake[3]: *** [firefox-bin] Error 1 gmake[3]: Leaving directory `/shared/bigtmp/mozilla/nightlybuilds/north/objdir_gtk1/browser/app' gmake[2]: *** [libs] Error 2 gmake[2]: Leaving directory `/shared/bigtmp/mozilla/nightlybuilds/north/objdir_gtk1/browser' gmake[1]: *** [tier_99] Error 2 gmake[1]: Leaving directory `/shared/bigtmp/mozilla/nightlybuilds/north/objdir_gtk1' gmake: *** [default] Error 2 -- snip --
Note that the alloca manpage has the following to say: CONFORMING TO There is evidence that the alloca function appeared in 32v, pwb, pwb.2, 3bsd, and 4bsd. There is a man page for it in BSD 4.3. Linux uses the GNU version. This function is not in POSIX or SUSv3. BUGS The alloca function is machine and compiler dependent. On many systems its implementation is buggy. Its use is discouraged. It looks like the problem is that the code at http://lxr.mozilla.org/mozilla/source/other-licenses/libart_lgpl/art_render_gradient.c#35 will declare the function on your platform (which presumably does not define HAS_ALLOCA_H) but will not implement it....
Talking myself... I have a fix for that...
Assignee: alex → roland.mainz
Status: NEW → ASSIGNED
Attached patch Patch for 2004-03-14-trunk (obsolete) — Splinter Review
Comment on attachment 143919 [details] [diff] [review] Patch for 2004-03-14-trunk Requesting r= and checkin (pacth not part of default build).
Attachment #143919 - Flags: review?(alex)
shouldn't we have a configure test for alloca.h? Something like http://lxr.mozilla.org/mozilla/source/js2/configure#3180 ?
Comment on attachment 143919 [details] [diff] [review] Patch for 2004-03-14-trunk Boris is right. Rather than patching libart, we need 'AC_FUNC_ALLOCA' in configure.in so that HAVE_ALLOCA_H is set correctly.
Attachment #143919 - Flags: review?(alex) → review-
(In reply to comment #6) > (From update of attachment 143919 [details] [diff] [review]) > Boris is right. Rather than patching libart, we need > 'AC_FUNC_ALLOCA' in configure.in so that HAVE_ALLOCA_H is set correctly. Why has AIX then extra rules ? Or HP-UX ? Reassining bug back to default over... better I don't touch configure.in, I always cause bustage when I touch the build system.
Assignee: roland.mainz → alex
Status: ASSIGNED → NEW
(In reply to comment #7) > Why has AIX then extra rules ? Or HP-UX ? From the autoconf manual: Source files that use `alloca' should start with a piece of code like the following, to declare it properly. In some versions of AIX, the declaration of `alloca' must precede everything else except for comments and preprocessor directives. The `#pragma' directive is indented so that pre-ANSI C compilers will ignore it, rather than choke on it. /* AIX requires this to be the first thing in the file. */ #ifndef __GNUC__ # if HAVE_ALLOCA_H # include <alloca.h> # else # ifdef _AIX #pragma alloca # else # ifndef alloca /* predefined by HP cc +Olibcalls */ char *alloca (); # endif # endif # endif #endif
Roland, Try if this works.
Attachment #143919 - Attachment is obsolete: true
Attachment #144027 - Flags: review+
Attachment #144027 - Flags: superreview?(tor)
Attachment #144027 - Flags: approval1.7b?
Attachment #144027 - Flags: superreview?(tor) → superreview+
Attachment #144027 - Flags: approval1.7b? → approval1.7?
(In reply to comment #9) > Roland, > Try if this works. I don't have autoconf installed on Solaris but it looks that the patch should catch the issue...
Comment on attachment 144027 [details] [diff] [review] configure.in patch a=mkaply
Attachment #144027 - Flags: approval1.7? → approval1.7+
checked in
Status: NEW → RESOLVED
Closed: 21 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: