Closed
Bug 288995
Opened 20 years ago
Closed 14 years ago
Support XPTCALL for Solaris x86 for AMD64 (x86-64)
Categories
(Core :: XPCOM, enhancement)
Tracking
()
RESOLVED
DUPLICATE
of bug 537071
People
(Reporter: balbertson, Unassigned)
References
Details
User-Agent: Mozilla/5.0 (X11; U; SunOS i86pc; en-US; rv:1.7.6) Gecko/20050301 Firefox/1.0.1 Build Identifier: Mozilla/5.0 (X11; U; SunOS i86pc; en-US; rv:1.7.6) Gecko/20050301 Firefox/1.0.1 I am running Solaris 10 x86 on a Sun W1100z workstation. This is an AMD64 based system. It is running in 64bit mode. When I compile any of the Mozilla Suite or Firefox, it gives me the following: configure:4972: checking for 64-bit OS configure:4982: gcc -o conftest -I/usr/openwin/include conftest.c 1>&5 configure: failed program was: #line 4977 "configure" #include "confdefs.h" int main () { if (sizeof(long) == 8) { return 0; } return 1; } and HAVE_64BIT_OS=1 is never set. Here's the output of isainfo -v: dev-zero:{root}# isainfo -v 64-bit amd64 applications sse2 sse fxsr amd_3dnowx amd_3dnow amd_mmx mmx cmov amd_sysc cx8 tsc fpu 32-bit i386 applications sse2 sse fxsr amd_3dnowx amd_3dnow amd_mmx mmx cmov amd_sysc cx8 tsc fpu Reproducible: Always Steps to Reproduce: 1. run ./configure 2. watch it not detect your system as 64 bit Actual Results: Did not enable 64 bit compile. Expected Results: Should have set HAVE_64BIT_OS=1
What mode does gcc use by default for your machine? If it uses 32bit mode by default, then you may need to explicitly pass '-m64' to gcc to get it to pass that test. And easy way to check is to build a simple hello world program and run 'file' on it.
OS: SunOS → Solaris
Reporter | ||
Comment 2•19 years ago
|
||
(In reply to comment #1) > What mode does gcc use by default for your machine? If it uses 32bit mode by > default, then you may need to explicitly pass '-m64' to gcc to get it to pass > that test. And easy way to check is to build a simple hello world program and > run 'file' on it. My system does compile 32 bit by default. I tried to use the flag --enable-64bit. That fails because nsprpub is still built in 32 bit mode. So, I set CFLAGS and CXXFLAGS to "-m64". This fails when compiling xptcinvoke_x86_solaris.cpp with this error: gmake[7]: Entering directory `/var/tmp/mozilla_cvs/mozilla/xpcom/reflect/xptcall/src/md/unix' xptcinvoke_x86_solaris.cpp c++ -o xptcinvoke_x86_solaris.o -c -DOSTYPE=\"SunOS5\" -DOSARCH=\"SunOS\" -DBUILD_ID=0000000000 -DEXPORT_XPTC_API -I../../../../../../dist/include/xpcom -I../../../../../../dist/include -I../../../../../../dist/include/nspr -I../../../../../../dist/sdk/include -I./../.. -I/usr/openwin/include -fPIC -I/usr/openwin/include -fno-rtti -fno-exceptions -Wno-long-long -m64 -fshort-wchar -pthreads -pipe -DNDEBUG -DTRIMMED -O3 -I/usr/openwin/include -DMOZILLA_CLIENT -include ../../../../../../mozilla-config.h -Wp,-MD,.deps/xptcinvoke_x86_solaris.pp xptcinvoke_x86_solaris.cpp {standard input}: Assembler messages: {standard input}:56: Error: suffix or operands invalid for `push' {standard input}:57: Error: suffix or operands invalid for `push' {standard input}:58: Error: suffix or operands invalid for `push' {standard input}:61: Error: suffix or operands invalid for `mov' {standard input}:62: Error: suffix or operands invalid for `push' {standard input}:63: Error: `(%ecx)' is not a valid 64 bit base/index expression{standard input}:65: Error: `(%edx,%eax,4)' is not a valid 64 bit base/index expression {standard input}:66: Error: `*(%edx)' is not a valid 64 bit base/index expression gmake[7]: *** [xptcinvoke_x86_solaris.o] Error 1 gmake[7]: Leaving directory `/var/tmp/mozilla_cvs/mozilla/xpcom/reflect/xptcall/src/md/unix' gmake[6]: *** [libs] Error 2 gmake[6]: Leaving directory `/var/tmp/mozilla_cvs/mozilla/xpcom/reflect/xptcall/src/md' gmake[5]: *** [libs] Error 2 gmake[5]: Leaving directory `/var/tmp/mozilla_cvs/mozilla/xpcom/reflect/xptcall/src' gmake[4]: *** [libs] Error 2 gmake[4]: Leaving directory `/var/tmp/mozilla_cvs/mozilla/xpcom/reflect/xptcall'gmake[3]: *** [libs] Error 2 gmake[3]: Leaving directory `/var/tmp/mozilla_cvs/mozilla/xpcom/reflect' gmake[2]: *** [libs] Error 2 gmake[2]: Leaving directory `/var/tmp/mozilla_cvs/mozilla/xpcom' gmake[1]: *** [tier_2] Error 2 gmake[1]: Leaving directory `/var/tmp/mozilla_cvs/mozilla' gmake: *** [default] Error 2 So, how do I tell mozilla to compile a 64 bit binary??? Brett
To compile in 64bit mode, you have to pass in the proper 64bit flags for your compiler via CFLAGS/CXXFLAGS. Mozilla's configure should automatically set --enable-64bit when configuring NSPR when it detects that you're targetting a 64bit build. As far as xptcinvoke goes, it looks as though it the x86 solaris port doesn't support 64bit builds. See http://lxr.mozilla.org/seamonkey/source/xpcom/reflect/xptcall/status.html . Someone will have to implement xptcall for solaris x86_64. You might be able to piggy back on the linux x86_64 port but I'm not certain.
Assignee: nobody → dougt
Severity: major → enhancement
Status: UNCONFIRMED → NEW
Component: Build Config → XPCOM
Ever confirmed: true
QA Contact: build-config
Summary: configure does not correctly identify my system as 64bit → Support XPTCALL for Solaris x86 for AMD64 (x86-64)
Updated•18 years ago
|
Assignee: dougt → nobody
QA Contact: xpcom
Updated•14 years ago
|
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → DUPLICATE
You need to log in
before you can comment on or make changes to this bug.
Description
•