Closed Bug 436263 Opened 11 years ago Closed 11 years ago

cannot convert ‘__va_list_tag**’ to ‘__va_list_tag (*)[1] in jsapi.cpp building js shell

Categories

(Core :: JavaScript Engine, defect)

Other Branch
x86
Linux
defect
Not set

Tracking

()

RESOLVED FIXED

People

(Reporter: bc, Unassigned)

References

Details

Attachments

(2 files)

mozilla-central js shell doesn't build on Linux x86_64 with gcc 4.1.2 or 4.2.3

g++ -o Linux_All_OPT.OBJ/jsapi.o -c -Wall -Wno-format -MMD -Os -DXP_UNIX -DSVR4 -DSYSV -D_BSD_SOURCE -DPOSIX_SOURCE -DHAVE_LOCALTIME_R -DHAVE_VA_COPY -DVA_COPY=va_copy -DPIC -fPIC  -UDEBUG -DNDEBUG -UDEBUG_bclary -DEDITLINE -ILinux_All_OPT.OBJ  jsapi.cpp
jsapi.cpp: In function ‘JSBool JS_ConvertArgumentsVA(JSContext*, uintN, jsval*, const char*, __va_list_tag*)’:
jsapi.cpp:272: error: cannot convert ‘__va_list_tag**’ to ‘__va_list_tag (*)[1]’ for argument ‘5’ to ‘JSBool TryArgumentFormatter(JSContext*, const char**, JSBool, jsval**, __va_list_tag (*)[1])’
jsapi.cpp: In function ‘jsval* JS_PushArgumentsVA(JSContext*, void**, const char*, __va_list_tag*)’:
jsapi.cpp:380: error: cannot convert ‘__va_list_tag**’ to ‘__va_list_tag (*)[1]’ for argument ‘5’ to ‘JSBool TryArgumentFormatter(JSContext*, const char**, JSBool, jsval**, __va_list_tag (*)[1])’

I can build on Linux i686 with gcc 4.1.2 and Mac OS X with gcc 4.0.1

Perhaps HAVE_VA_LIST_AS_ARRAY in jscpucfg.h needs to be defined for x86_64?
Flags: in-testsuite-
Flags: in-litmus-
Yeah, looks like.

/be
I tried defining HAVE_VA_LIST_AS_ARRAY but it didn't seem to help.
Defining it worked for me but I'm not familiar enough with the build system to confidently make a patch.  If it gets defined when __GNUC__ and __x86_64__ (or something similar) are present it should be fine.  

I threw #define HAVE_VA_LIST_AS_ARRAY in jsapi.cpp and jsprf.cpp to test.  (gcc-4.0.1, Mac OS X 10.5.3)
(In reply to comment #3)

It compiles for me with that as well. I originally tried to use jscpucfg.h which isn't used. :-/
jscpucfg.cpp is the important change; the other changes let you build x86_64 on Darwin with OS_ARCH=Darwin64
Attachment #323103 - Flags: review?
Attachment #323103 - Flags: review?(crowder)
Attachment #323103 - Flags: review?(bclary)
Attachment #323103 - Flags: review?
Comment on attachment 323103 [details] [diff] [review]
Fixes build on linux; allows for darwin64 building

David:  Can you provide a diff -w between Darwin64.mk and Darwin.mk, please?

Thanks.
Attachment #323136 - Attachment is patch: true
Attachment #323136 - Attachment mime type: application/octet-stream → text/plain
Attachment #323103 - Flags: review?(crowder) → review+
Comment on attachment 323103 [details] [diff] [review]
Fixes build on linux; allows for darwin64 building

can build both opt/debug shell in mozilla-central with this patch.
Attachment #323103 - Flags: review?(bclary) → review+
Pushed changeset 1affd89013a6 to mozilla-central.
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Depends on: 444846
You need to log in before you can comment on or make changes to this bug.