The default bug view has changed. See this FAQ.

AIX port compilation error in js/src/jsstdint.h

RESOLVED FIXED

Status

()

Core
JavaScript Engine
RESOLVED FIXED
7 years ago
7 years ago

People

(Reporter: ul, Assigned: ul)

Tracking

({verified1.9.1, verified1.9.2})

1.9.1 Branch
PowerPC
AIX
verified1.9.1, verified1.9.2
Points:
---

Firefox Tracking Flags

(status1.9.2 .2-fixed, status1.9.1 .9-fixed)

Details

Attachments

(4 attachments, 2 obsolete attachments)

(Assignee)

Description

7 years ago
User-Agent:       Mozilla/5.0 (X11; U; AIX 5.1; en-US; rv:1.9.1.7) Gecko/20100101 Firefox/3.5.7
Build Identifier: Firefox 3.5, Seamonkey 2.0, Thunderbird 3.0

Comilation of js/src/jsapi.cpp fails due to conflicting types.
AIX has no <stdint.h> and uses <sys/types.h> which includes <sys/inttypes.h> instead.

Building deps for /home/ulink/Src/comm-1.9.1/mozilla/js/src/jsapi.cpp
xlC_r -o jsapi.o -c  -DOSTYPE=\"AIX5.1\" -DOSARCH=AIX -DEXPORT_JS_API  -DJS_USE_SAFE_ARENA  -I/home/ulink/Src/comm-1.9.1/mozilla/js/src -I.  -I./../../dist/include   -I./../../dist/include/js -I/home/ulink/Src/comm-1.9.1/SM2_OBJ32/mozilla/dist/include/nspr -I/sdk/include -I/home/ulink/Src/comm-1.9.1/mozilla/js/src   -qflag=w:w      -DNDEBUG -DTRIMMED -O2 -qarch=ppc -qmaxmem=-1 -qalias=noansi   -DAIX=1 -DHAVE_SYS_INTTYPES_H=1 -DNSCAP_DISABLE_DEBUG_PTR_TYPES=1 -DD_INO=d_ino -DSTDC_HEADERS=1 -DHAVE_ST_BLKSIZE=1 -DHAVE_SIGINFO_T=1 -DJS_INT8_TYPE=char -DJS_INT16_TYPE=short -DJS_INT32_TYPE=int -DJS_INT64_TYPE=long\ long -DJS_INTPTR_TYPE=int -DJS_BYTES_PER_WORD=4 -DJS_BITS_PER_WORD_LOG2=5 -DJS_ALIGN_OF_POINTER=4 -DJS_BYTES_PER_DOUBLE=8 -DHAVE_INT16_T=1 -DHAVE_INT32_T=1 -DHAVE_INT64_T=1 -DHAVE_INT64=1 -DHAVE_UINT=1 -DHAVE_UINT_T=1 -DHAVE_UINT16_T=1 -DHAVE_CPP_2BYTE_WCHAR_T=1 -DHAVE_DIRENT_H=1 -DHAVE_MEMORY_H=1 -DHAVE_UNISTD_H=1 -DHAVE_NL_TYPES_H=1 -DHAVE_MALLOC_H=1 -DHAVE_X11_XKBLIB_H=1 -DHAVE_SYS_STATVFS_H=1 -DHAVE_SYS_STATFS_H=1 -DHAVE_SYS_VFS_H=1 -DNEW_H=\<new\> -DHAVE_LIBC_R=1 -DHAVE_LIBM=1 -DHAVE_LIBDL=1 -DHAVE_LIBC_R=1 -D_REENTRANT=1 -DHAVE_RANDOM=1 -DHAVE_STRERROR=1 -DHAVE_LCHOWN=1 -DHAVE_FCHMOD=1 -DHAVE_SNPRINTF=1 -DHAVE_STATVFS=1 -DHAVE_MEMMOVE=1 -DHAVE_RINT=1 -DHAVE_STAT64=1 -DHAVE_LSTAT64=1 -DHAVE_TRUNCATE64=1 -DHAVE_FLOCKFILE=1 -DHAVE_GETPAGESIZE=1 -DHAVE_LOCALTIME_R=1 -DHAVE_STRTOK_R=1 -DHAVE_WCRTOMB=1 -DHAVE_MBRTOWC=1 -DHAVE_RES_NINIT=1 -DHAVE_ICONV=1 -DHAVE_ICONV_WITH_CONST_INPUT=1 -DHAVE_CPP_EXPLICIT=1 -DHAVE_CPP_TYPENAME=1 -DHAVE_CPP_MODERN_SPECIALIZE_TEMPLATE_SYNTAX=1 -DHAVE_CPP_PARTIAL_SPECIALIZATION=1 -DHAVE_CPP_AMBIGUITY_RESOLVING_USING=1 -DHAVE_CPP_NAMESPACE_STD=1 -DHAVE_CPP_UNAMBIGUOUS_STD_NOTEQUAL=1 -DHAVE_CPP_NEW_CASTS=1 -DNEED_CPP_UNUSED_IMPLEMENTATIONS=1 -DHAVE_I18N_LC_MESSAGES=1 -DCPP_THROW_NEW=throw\(\) -DMOZ_DLL_SUFFIX=\".so\" -DXP_UNIX=1 -DUNIX_ASYNC_DNS=1 -DJS_THREADSAFE=1  -D_MOZILLA_CONFIG_H_ -DMOZILLA_CLIENT /home/ulink/Src/comm-1.9.1/mozilla/js/src/jsapi.cpp
"/home/ulink/Src/comm-1.9.1/mozilla/js/src/jsstdint.h", line 60.33: 1540-0400 (S) "intptr_t" has a conflicting declaration.
"/usr/include/sys/inttypes.h", line 104.33: 1540-0425 (I) "intptr_t" is defined on line 104 of "/usr/include/sys/inttypes.h".
"/home/ulink/Src/comm-1.9.1/mozilla/js/src/jsstdint.h", line 66.33: 1540-0400 (S) "uintptr_t" has a conflicting declaration.
"/usr/include/sys/inttypes.h", line 105.33: 1540-0425 (I) "uintptr_t" is defined on line 105 of "/usr/include/sys/inttypes.h".
gmake[4]: *** [jsapi.o] Error 1
gmake[4]: Leaving directory `/home/ulink/Src/comm-1.9.1/SM2_OBJ32/mozilla/js/src'
gmake[3]: *** [libs_tier_js] Error 2



Reproducible: Always

Steps to Reproduce:
1. Compile on AIX with any version of IBM compiler

Actual Results:  
Compilation error

Expected Results:  
Successful compilation
(Assignee)

Comment 1

7 years ago
Created attachment 419961 [details] [diff] [review]
including <sys/types.h> instead of redefinition

Configure sets HAVE_SYS_INTTYPES_H on AIX.
then include <sys/types.h> as <sys/inttypes.h> should not be included directly. The visibility is triggerd depending on language level compiler internal macros.
(Assignee)

Updated

7 years ago
Version: unspecified → 1.9.1 Branch
(Assignee)

Updated

7 years ago
Attachment #419961 - Flags: review?(brendan)
Comment on attachment 419961 [details] [diff] [review]
including <sys/types.h> instead of redefinition

Please use Jim Blandy for reviews of this file -- in general use hg log to see who seems to be maintaining it.

/be
Attachment #419961 - Flags: review?(brendan) → review?(jim)

Updated

7 years ago
Assignee: general → ul.mcamafia
Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true
(Assignee)

Comment 3

7 years ago
Comment on attachment 419961 [details] [diff] [review]
including <sys/types.h> instead of redefinition

This patch is for 1.9.1 only. For 1.9.2 similar hack, different patch is needed. Will provide soon for review.
(Assignee)

Comment 4

7 years ago
Here is the error when compiling Firefox 3.6rc1 source:

xlC_r -o jsapi.o -c  -DOSTYPE=\"AIX5.1\" -DOSARCH=AIX -DEXPORT_JS_API  -DJS_USE_SAFE_ARENA  -I/home/ulink/src/fx36/mozilla-1.9.2/js/src -I. -I./../../dist/include -I./../../dist/include/nsprpub  -I/home/ulink/src/fx36/mozilla-1.9.2/FX36_OBJ/dist/include/nspr   -I/home/ulink/src/fx36/mozilla-1.9.2/js/src   -qflag=w:w      -DNDEBUG -DTRIMMED -O2 -qarch=com -qmaxmem=-1 -qalias=noansi   -DAIX=1 -DHAVE_SYS_INTTYPES_H=1 -DNSCAP_DISABLE_DEBUG_PTR_TYPES=1 -DD_INO=d_ino -DSTDC_HEADERS=1 -DHAVE_ST_BLKSIZE=1 -DHAVE_SIGINFO_T=1 -DJS_INT8_TYPE=char -DJS_INT16_TYPE=short -DJS_INT32_TYPE=int -DJS_INT64_TYPE=long\ long -DJS_INTPTR_TYPE=int -DJS_BYTES_PER_WORD=4 -DJS_BITS_PER_WORD_LOG2=5 -DJS_ALIGN_OF_POINTER=4 -DJS_BYTES_PER_DOUBLE=8 -DHAVE_INT16_T=1 -DHAVE_INT32_T=1 -DHAVE_INT64_T=1 -DHAVE_INT64=1 -DHAVE_UINT=1 -DHAVE_UINT_T=1 -DHAVE_UINT16_T=1 -DHAVE_DIRENT_H=1 -DHAVE_MEMORY_H=1 -DHAVE_UNISTD_H=1 -DHAVE_NL_TYPES_H=1 -DHAVE_MALLOC_H=1 -DHAVE_X11_XKBLIB_H=1 -DHAVE_SYS_STATVFS_H=1 -DHAVE_SYS_STATFS_H=1 -DHAVE_SYS_VFS_H=1 -DNEW_H=\<new\> -DHAVE_LIBC_R=1 -DHAVE_LIBM=1 -DHAVE_LIBDL=1 -DHAVE_LIBC_R=1 -D_REENTRANT=1 -DHAVE_FCHMOD=1 -DHAVE_FLOCKFILE=1 -DHAVE_GETC_UNLOCKED=1 -DHAVE_GETPAGESIZE=1 -DHAVE_LCHOWN=1 -DHAVE_LOCALTIME_R=1 -DHAVE_LSTAT64=1 -DHAVE_MEMMOVE=1 -DHAVE_RANDOM=1 -DHAVE_RINT=1 -DHAVE_SBRK=1 -DHAVE_SNPRINTF=1 -DHAVE_STAT64=1 -DHAVE_STATVFS=1 -DHAVE_STRERROR=1 -DHAVE_STRTOK_R=1 -DHAVE_TRUNCATE64=1 -DHAVE_WCRTOMB=1 -DHAVE_MBRTOWC=1 -DHAVE_RES_NINIT=1 -DHAVE_ICONV=1 -DHAVE_ICONV_WITH_CONST_INPUT=1 -DHAVE_CPP_EXPLICIT=1 -DHAVE_CPP_TYPENAME=1 -DHAVE_CPP_MODERN_SPECIALIZE_TEMPLATE_SYNTAX=1 -DHAVE_CPP_PARTIAL_SPECIALIZATION=1 -DHAVE_CPP_AMBIGUITY_RESOLVING_USING=1 -DHAVE_CPP_NAMESPACE_STD=1 -DHAVE_CPP_UNAMBIGUOUS_STD_NOTEQUAL=1 -DHAVE_CPP_NEW_CASTS=1 -DNEED_CPP_UNUSED_IMPLEMENTATIONS=1 -DHAVE_I18N_LC_MESSAGES=1 -DCPP_THROW_NEW=throw\(\) -DEDITLINE=1 -DMOZ_DLL_SUFFIX=\".so\" -DXP_UNIX=1 -DUNIX_ASYNC_DNS=1 -DJS_THREADSAFE=1 -DHAVE_SETLOCALE=1  -D_JS_CONFDEFS_H_ -DMOZILLA_CLIENT /home/ulink/src/fx36/mozilla-1.9.2/js/src/jsapi.cpp
"/home/ulink/src/fx36/mozilla-1.9.2/js/src/jsstdint.h", line 78.19: 1540-0400 (S) "intptr_t" has a conflicting declaration.
"/usr/include/sys/inttypes.h", line 104.33: 1540-0425 (I) "intptr_t" is defined on line 104 of "/usr/include/sys/inttypes.h".
"/home/ulink/src/fx36/mozilla-1.9.2/js/src/jsstdint.h", line 79.19: 1540-0400 (S) "uintptr_t" has a conflicting declaration.
"/usr/include/sys/inttypes.h", line 105.33: 1540-0425 (I) "uintptr_t" is defined on line 105 of "/usr/include/sys/inttypes.h".
"/home/ulink/src/fx36/mozilla-1.9.2/js/src/jsvector.h", line 183.16: 1540-0198 (W) The omitted keyword "private" is assumed for base class "AllocPolicy".
"/home/ulink/src/fx36/mozilla-1.9.2/js/src/jsvector.h", line 219.22: 1540-1109 (S) The use of undefined class "js::Vector<unsigned short,32,js::ContextAllocPolicy>::BufferPtrs" is not valid.
"/home/ulink/src/fx36/mozilla-1.9.2/js/src/jsvector.h", line 218.25: 1540-0700 (I) The previous message was produced while processing "js::Vector<unsigned short,32,class js::ContextAllocPolicy>::sInlineCapacity".
"/home/ulink/src/fx36/mozilla-1.9.2/js/src/jsvector.h", line 183.7: 1540-0700 (I) The previous message was produced while processing "class js::Vector<unsigned short,32,js::ContextAllocPolicy>".
"/home/ulink/src/fx36/mozilla-1.9.2/js/src/jsscan.h", line 245.8: 1540-0700 (I) The previous message was produced while processing "struct JSTokenStream".
"/home/ulink/src/fx36/mozilla-1.9.2/js/src/jsvector.h", line 224.36: 1540-1269 (S) The template argument for the non-type template parameter of type "unsigned long" must be an integral constant expression.
"/home/ulink/src/fx36/mozilla-1.9.2/js/src/jsvector.h", line 223.25: 1540-0700 (I) The previous message was produced while processing "js::Vector<unsigned short,32,class js::ContextAllocPolicy>::sInlineBytes".
"/home/ulink/src/fx36/mozilla-1.9.2/js/src/jsvector.h", line 183.7: 1540-0700 (I) The previous message was produced while processing "class js::Vector<unsigned short,32,js::ContextAllocPolicy>".
"/home/ulink/src/fx36/mozilla-1.9.2/js/src/jsscan.h", line 245.8: 1540-0700 (I) The previous message was produced while processing "struct JSTokenStream".
"/home/ulink/src/fx36/mozilla-1.9.2/js/src/jsvector.h", line 183.16: 1540-0198 (W) The omitted keyword "private" is assumed for base class "AllocPolicy".
"/home/ulink/src/fx36/mozilla-1.9.2/js/src/jsscan.h", line 264.25: 1540-0700 (I) The previous message was produced while processing "class js::Vector<unsigned short,32,js::ContextAllocPolicy>".
"/home/ulink/src/fx36/mozilla-1.9.2/js/src/jsscan.h", line 245.8: 1540-0700 (I) The previous message was produced while processing "struct JSTokenStream".
"/home/ulink/src/fx36/mozilla-1.9.2/js/src/jsvector.h", line 224.36: 1540-1269 (S) The template argument for the non-type template parameter of type "unsigned long" must be an integral constant expression.
"/home/ulink/src/fx36/mozilla-1.9.2/js/src/jscntxt.h", line 1530.44: 1540-1281 (W) "offsetof" cannot be applied to "struct JSContext".  It is not a POD (plain old data) type.
"/home/ulink/src/fx36/mozilla-1.9.2/js/src/jstl.h", line 198.78: 1540-0040 (S) The text "_" is unexpected.  "tl::StaticAssert<0>::result" may be undeclared or ambiguous.
"/home/ulink/src/fx36/mozilla-1.9.2/js/src/jsnum.h", line 126.23: 1540-0274 (S) The name lookup for "signbit" did not find a declaration.
"/home/ulink/src/fx36/mozilla-1.9.2/js/src/jsnum.h", line 150.12: 1540-0274 (S) The name lookup for "signbit" did not find a declaration.
gmake[3]: *** [jsapi.o] Error 1
gmake[3]: Leaving directory `/home/ulink/src/fx36/mozilla-1.9.2/FX36_OBJ/js/src'
gmake[2]: *** [libs_tier_js] Error 2
gmake[2]: Leaving directory `/home/ulink/src/fx36/mozilla-1.9.2/FX36_OBJ'
gmake[1]: *** [tier_js] Error 2
gmake[1]: Leaving directory `/home/ulink/src/fx36/mozilla-1.9.2/FX36_OBJ'
gmake: *** [default] Error 2
(Assignee)

Comment 5

7 years ago
porting the the Javascript engine of Mozilla 1.9.2 to AIX isn't a single patch. So this bug is considered Mozilla 1.9.1 branch only.
(Assignee)

Comment 6

7 years ago
Created attachment 423568 [details] [diff] [review]
including <sys/types.h> on AIX ifdefined HAVE_INTTYPES_H

Recreated patch with hg and ifdef  for both _AIX and HAVE_INTTYPES_H
Attachment #419961 - Attachment is obsolete: true
Attachment #423568 - Flags: review?
Attachment #419961 - Flags: review?(jim)
(Assignee)

Updated

7 years ago
Attachment #423568 - Flags: review? → review?(jim)

Comment 7

7 years ago
Created attachment 426013 [details] [diff] [review]
Recognize that <sys/types.h> has defined <stdint.h> types (as on AIX)

Could you give this a try on the current sources?  If it works, then let's backport something like this to 1.9.1.
(Assignee)

Comment 8

7 years ago
Created attachment 426028 [details] [diff] [review]
include <sys/types.h> if it defines int8_t, etc.
1.9.1 Branch only
Attachment #423568 - Attachment is obsolete: true
Attachment #423568 - Flags: review?(jim)
(Assignee)

Updated

7 years ago
Attachment #426028 - Flags: review?(jim)

Comment 9

7 years ago
Comment on attachment 426028 [details] [diff] [review]
include <sys/types.h> if it defines int8_t, etc.
1.9.1 Branch only

Looks good.
Attachment #426028 - Flags: review?(jim) → review+
(Assignee)

Updated

7 years ago
Attachment #426028 - Flags: superreview?(shaver)
Attachment #426028 - Flags: superreview?(shaver)
Comment on attachment 426028 [details] [diff] [review]
include <sys/types.h> if it defines int8_t, etc.
1.9.1 Branch only

js doesn't require sr (and I'm a bad person to ask anyway) -- this is ready to land!

Comment 11

7 years ago
Comment on attachment 426013 [details] [diff] [review]
Recognize that <sys/types.h> has defined <stdint.h> types (as on AIX)

Hi, Ted. We've got two versions of this patch: I wrote this one for trunk, and Uli adapted it for 1.9.1, which is what we really need.

I've r+'d Uli's adaptation; could you look at my original?
Attachment #426013 - Flags: review?(ted.mielczarek)
(Assignee)

Updated

7 years ago
Attachment #426028 - Attachment description: include <sys/types.h> if it defines int8_t, etc. → include <sys/types.h> if it defines int8_t, etc. 1.9.1 Branch only
(Assignee)

Comment 12

7 years ago
Created attachment 426046 [details] [diff] [review]
include <sys/types.h> if it defines int8_t, etc. for trunk

This is jim's patch + one additional hunk needed in jsstdint.h
for trunk
(Assignee)

Updated

7 years ago
Attachment #426046 - Flags: review?(ted.mielczarek)
(Assignee)

Comment 13

7 years ago
Created attachment 426052 [details] [diff] [review]
include <sys/types.h> if it defines int8_t, etc. for 1.9.2 branch.
(Assignee)

Comment 14

7 years ago
Comment on attachment 426052 [details] [diff] [review]
include <sys/types.h> if it defines int8_t, etc. for 1.9.2 branch.

same as trunk patch, only offset for js/src/configure.in hunk adjusted
Attachment #426052 - Attachment description: Same patch as for trunk with adjusted offset → include <sys/types.h> if it defines int8_t, etc. for 1.9.2 branch.
(Assignee)

Updated

7 years ago
Attachment #426052 - Flags: review?(ted.mielczarek)

Comment 15

7 years ago
They all look good to me.

Updated

7 years ago
Attachment #426013 - Flags: review?(ted.mielczarek)
Comment on attachment 426046 [details] [diff] [review]
include <sys/types.h> if it defines int8_t, etc. for trunk

It might be nice to combine those two defines into one thing to check for, something like
#if defined(JS_HAVE_STDINT_H) || defined(JS_SYS_TYPES_H_DEFINES_EXACT_SIZE_TYPES)
#define JS_HAVE_STDINT_TYPES
#endif

but that's not critical.
Attachment #426046 - Flags: review?(ted.mielczarek) → review+
Comment on attachment 426052 [details] [diff] [review]
include <sys/types.h> if it defines int8_t, etc. for 1.9.2 branch.

This is the exact same patch just with context adjusted, right?

You'll need separate approval to land on 1.9.2.
Attachment #426052 - Flags: review?(ted.mielczarek)
Attachment #426052 - Flags: review+
Attachment #426052 - Flags: approval1.9.2.2?
(Assignee)

Updated

7 years ago
Attachment #426028 - Flags: approval1.9.1.9?
(Assignee)

Comment 18

7 years ago
(In reply to comment #17)
> (From update of attachment 426052 [details] [diff] [review])
> This is the exact same patch just with context adjusted, right?

Yes.
(Assignee)

Updated

7 years ago
Keywords: checkin-needed
Whiteboard: [attachment 426046 on trunk]
Attachment #426028 - Flags: approval1.9.1.9? → approval1.9.1.9+
Comment on attachment 426028 [details] [diff] [review]
include <sys/types.h> if it defines int8_t, etc.
1.9.1 Branch only

Approved for 1.9.1.9, a=dveditz for release-drivers
Comment on attachment 426052 [details] [diff] [review]
include <sys/types.h> if it defines int8_t, etc. for 1.9.2 branch.

Approved for 1.9.2.2, a=dveditz for release-drivers
Attachment #426052 - Flags: approval1.9.2.2? → approval1.9.2.2+
(Assignee)

Updated

7 years ago
Whiteboard: [attachment 426046 on trunk] → [attachment 426046 on trunk],[attachment 426052 branch 1.9.2],[attachment 426028 branch 1.9.1]
Checked in on trunk http://hg.mozilla.org/mozilla-central/rev/bae59e32bd06
Whiteboard: [attachment 426046 on trunk],[attachment 426052 branch 1.9.2],[attachment 426028 branch 1.9.1] → [attachment 426052 branch 1.9.2],[attachment 426028 branch 1.9.1]
(Assignee)

Updated

7 years ago
Status: ASSIGNED → RESOLVED
Last Resolved: 7 years ago
Resolution: --- → FIXED
(Assignee)

Updated

7 years ago
Keywords: checkin-needed
This still needs to be landed on 1.9.2 and 1.9.1
Keywords: checkin-needed
https://hg.mozilla.org/releases/mozilla-1.9.1/rev/e912476fe4bd
https://hg.mozilla.org/releases/mozilla-1.9.2/rev/1ff420bcbd53
status1.9.1: --- → .9-fixed
status1.9.2: --- → .2-fixed
Keywords: checkin-needed
Whiteboard: [attachment 426052 branch 1.9.2],[attachment 426028 branch 1.9.1]
(Assignee)

Updated

7 years ago
Keywords: verified1.9.1, verified1.9.2
You need to log in before you can comment on or make changes to this bug.