Closed Bug 225511 Opened 22 years ago Closed 20 years ago

compilation error: Undefined symbol invoke_count_words

Categories

(Core :: XPConnect, defect)

Sun
Solaris
defect
Not set
blocker

Tracking

()

RESOLVED EXPIRED

People

(Reporter: kron, Assigned: dbradley)

Details

User-Agent: Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1) Build Identifier: ftp://ftp.mozilla.org/pub/mozilla.org/firebird/releases/0.7/MozillaFirebird-source-0.7.tar.gz Compiling FireBird 0.7 on Solaris8, using gcc 3.3.1 with the -m64 (64-bit) compilation option. The problem is due to using gcc with the -m64 option, the Makefile in xpcom/reflect/xptcall/src/md/unix does not allow for this combination. Excerpt below from Makefile: ============================ Begin ================================ # # Solaris/SPARC # ifeq ($(OS_ARCH),SunOS) ifneq (86,$(findstring 86,$(OS_TEST))) ifdef HAVE_64BIT_OS CPPSRCS := xptcinvoke_sparcv9_solaris.cpp xptcstubs_sparcv9_solaris.cpp else CPPSRCS := xptcinvoke_sparc_solaris.cpp xptcstubs_sparc_solaris.cpp endif ifeq ($(GNU_CC),1) ifdef HAVE_GCC3_ABI ASFILES := xptcinvoke_asm_sparc_solaris_GCC3.s xptcstubs_asm_sparc_solaris.s else ASFILES := xptcinvoke_asm_sparc_solaris_GCC.s xptcstubs_asm_sparc_solaris.s endif else ifdef HAVE_64BIT_OS ASFILES := xptcinvoke_asm_sparcv9_solaris_SUNW.s xptcstubs_asm_sparcv9_solaris.s else ASFILES := xptcinvoke_asm_sparc_solaris_SUNW.s xptcstubs_asm_sparc_solaris.s endif endif endif endif ###################################################################### # S/390 ============================ End ================================ The result of the above segment ends up with the variables as follows: CPPSRCS=xptcinvoke_sparcv9_solaris.cpp xptcstubs_sparcv9_solaris.cpp ASFILES=xptcinvoke_asm_sparc_solaris_GCC3.s xptcstubs_asm_sparc_solaris.s (ifdef HAVE_64BIT_OS is true and ifeq ($(GNU_CC),1) is true and ifdef HAVE_GCC3_ABI is true) which ends up using 64-bit cpp files with 32-bit .s files, which just doesn't work. =============== config.site =============== CC=gcc LD=/usr/ccs/bin/ld CFLAGS="-m64 -O2 -I/usr/local/sparcv9/include" OS_CFLAGS="-m64 -O2" NATIVE_FLAGS="-m64 -O2" LDFLAGS="-R/usr/local/lib/gcc3/lib/sparcv9 -R/usr/local/sparcv9/lib" CPPFLAGS="-I/usr/local/gcc3/include -I/usr/local/sparcv9/include" =============== end config.site =============== configure --prefix=/usr/local/sparcv9 --disable-ldap --disable-mailnews --enable-extensions=cookie,xml-rpc,xmlextras,p3p ,pref,transformiix,universalchardet,typeaheadfind,webservices --enable-crypto --disable-composer --disable-profilesharing --disable-installer I have a wrapper around c++ to force it to always use the -m64 flag: ../gcc3/bin/c++ -m64 $@ Reproducible: Always Steps to Reproduce: 1. config.site as above 2. configure --prefix=/usr/local/sparcv9 --disable-ldap --disable-mailnews --enable-extensions=cookie,xml-rpc,xmlextras,p3p ,pref,transformiix,universalchardet,typeaheadfind,webservices --enable-crypto --disable-composer --disable-profilesharing --disable-installer 3. make Actual Results: c++ -I/usr/local/gcc3/include -I/usr/local/sparcv9/include -I/usr/openwin/include -fno-rtti -fno-exceptions -Wno-long-long -pedantic -fshort-wchar -pthreads -DNDEBUG -DTRIMMED -o xpcshell xpcshell.o -R/usr/local/lib/gcc3/lib/sparcv9 -R/usr/local/sparcv9/lib -L../../../../dist/bin -L../../../../dist/lib -L../../../../dist/bin -lmozjs -L../../../../dist/bin -lxpcom -L/data/jkg/src/bak/mozilla/dist/lib -lplds4 -lplc4 -lnspr4 -ldl -lrt -lsocket -ldl -lm Undefined first referenced symbol in file invoke_count_words ../../../../dist/bin/libxpcom.so ld: fatal: Symbol referencing errors. No output written to xpcshell collect2: ld returned 1 exit status make[3]: *** [xpcshell] Error 1 make[3]: Leaving directory `/data/jkg/src/bak/mozilla/js/src/xpconnect/shell' make[2]: *** [libs] Error 2 make[2]: Leaving directory `/data/jkg/src/bak/mozilla/js/src/xpconnect' make[1]: *** [tier_9] Error 2 make[1]: Leaving directory `/data/jkg/src/bak/mozilla' make: *** [default] Error 2 Expected Results: compiled without errors :) It looks like there is a 64-bit .s file for use with the native sun compiler, but no .s file for 64-bit compilation with gcc3.
OS: other → Solaris
Hardware: Other → Sun
Assignee: bryner → BradleyJunk
Component: build-config → XPConnect
Product: Firefox → Browser
QA Contact: asa → pschwartau
Version: unspecified → Trunk
This bug is still present in all Mozilla versions. Somebody needs to provide support for invoke_count_words for sparcv9 for GCC3. Its strange that the product doesn't build in an environment and this bug is not being looked into. Can we have an update on this bug please? Justin, were you able to workaround/fix this issue?
thank you for volunteering, please click the create a new attachment link with your gcc friendly 64bit .s file. i hope to see it soon.
Assignee: BradleyJunk → funtoos
that response is both funny and arrogant...I wish I knew sparc assembly enough to write that file....thanks for your great HELP!!
Assignee: funtoos → BradleyJunk
Seriously, for this to get addressed we need someone who has access to and knowledge of sparcv9. Or if someone knows of a sparcv9 emulator that might get it more attention. Until someone steps up, this bug will sit idle.
This issue appears to still be present in an attempt to compile Mozilla 1.7.2 on Solaris 8 w/ a sparcv9 processor (using GCC3) Here's my output: <CENSORED>/mozilla/config/nsinstall -R -m 755 regxpcom ../../../dist/sdk/bin gmake[4]: Leaving directory `<CENSORED>/mozilla/xpcom/tools/registry' gmake[3]: Leaving directory `<CENSORED>/mozilla/xpcom/tools' gmake[3]: Entering directory `<CENSORED>/mozilla/xpcom/tests' nsIFileEnumerator.cpp g++ -o nsIFileEnumerator.o -c -DOSTYPE=\"SunOS5\" -DOSARCH=\"SunOS\" -I./../ds -I./services -I../../dist/include/string -I../../dist/include/xpcom -I../../dist/include -I<CENSORED>/mozilla/dist/include/nspr -fPIC -fno-rtti -fno-exceptions -Wno-long-long -pedantic -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -m64 -fshort-wchar -pthreads -DDEBUG -D_DEBUG -DDEBUG_ -DTRACING -g -DMOZILLA_CLIENT -include ../../mozilla-config.h -Wp,-MD,.deps/nsIFileEnumerator.pp nsIFileEnumerator.cpp g++ -fno-rtti -fno-exceptions -Wno-long-long -pedantic -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -m64 -fshort-wchar -pthreads -DDEBUG -D_DEBUG -DDEBUG_ -DTRACING -g -o nsIFileEnumerator nsIFileEnumerator.o -m64 -L<CENSORED>/libgettext/0.14.1/lib/ -L../../dist/bin -L../../dist/lib -L../../dist/bin -lxpcom -L<CENSORED>/mozilla/dist/lib -lplds4 -lplc4 -lnspr4 -L<CENSORED>/libgettext/0.14.1/lib/ -ldl -lrt -lsocket -ldl -lm Undefined first referenced symbol in file invoke_count_words ../../dist/bin/libxpcom.so
This is an automated message, with ID "auto-resolve01". This bug has had no comments for a long time. Statistically, we have found that bug reports that have not been confirmed by a second user after three months are highly unlikely to be the source of a fix to the code. While your input is very important to us, our resources are limited and so we are asking for your help in focussing our efforts. If you can still reproduce this problem in the latest version of the product (see below for how to obtain a copy) or, for feature requests, if it's not present in the latest version and you still believe we should implement it, please visit the URL of this bug (given at the top of this mail) and add a comment to that effect, giving more reproduction information if you have it. If it is not a problem any longer, you need take no action. If this bug is not changed in any way in the next two weeks, it will be automatically resolved. Thank you for your help in this matter. The latest beta releases can be obtained from: Firefox: http://www.mozilla.org/projects/firefox/ Thunderbird: http://www.mozilla.org/products/thunderbird/releases/1.5beta1.html Seamonkey: http://www.mozilla.org/projects/seamonkey/
This bug has been automatically resolved after a period of inactivity (see above comment). If anyone thinks this is incorrect, they should feel free to reopen it.
Status: UNCONFIRMED → RESOLVED
Closed: 20 years ago
Resolution: --- → EXPIRED
You need to log in before you can comment on or make changes to this bug.