Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Spidermonkey -> 1.8.2 -> 1.8.5 (include jaegermonkey)

  • Loading branch information...
commit 5f7a83753ae66dcfadc13f9d94132765005f9062 1 parent 9e85a69
@paraboul paraboul authored
Showing with 11,150 additions and 25,290 deletions.
  1. +296 −44 deps/js/src/Makefile.in
  2. +0 −4 deps/js/src/Makefile.ref
  3. 0  deps/js/src/README.html
  4. 0  deps/js/src/SpiderMonkey.rsp
  5. 0  deps/js/src/Y.js
  6. 0  deps/js/src/aclocal.m4
  7. +12 −8 deps/js/src/analysis-tests/Makefile.in
  8. 0  deps/js/src/analysis-tests/green-accessred.cpp
  9. 0  deps/js/src/analysis-tests/green-callred.cpp
  10. 0  deps/js/src/analysis-tests/green-callredptr.cpp
  11. 0  deps/js/src/analysis-tests/green-tored-badpath.cpp
  12. 0  deps/js/src/analysis-tests/green-tored.cpp
  13. 0  deps/js/src/analysis-tests/green-toredptr.cpp
  14. 0  deps/js/src/analysis-tests/misdeclared-red-funcptr.cpp
  15. 0  deps/js/src/analysis-tests/misdeclared-red-funcptr2.cpp
  16. 0  deps/js/src/analysis-tests/red-accessred.cpp
  17. 0  deps/js/src/analysis-tests/red-callgreen.cpp
  18. 0  deps/js/src/analysis-tests/red-callred.cpp
  19. 0  deps/js/src/analysis-tests/red-togreenptr-arg.cpp
  20. 0  deps/js/src/analysis-tests/red-togreenptr-field.cpp
  21. 0  deps/js/src/analysis-tests/red-togreenptr-initializer-array.cpp
  22. 0  deps/js/src/analysis-tests/red-togreenptr-initializer-cast.cpp
  23. 0  deps/js/src/analysis-tests/red-togreenptr-initializer-nested.cpp
  24. 0  deps/js/src/analysis-tests/red-togreenptr-initializer-struct.cpp
  25. 0  deps/js/src/analysis-tests/red-togreenptr-initializer.cpp
  26. 0  deps/js/src/analysis-tests/red-togreenptr-return.cpp
  27. 0  deps/js/src/analysis-tests/red-togreenptr.cpp
  28. 0  deps/js/src/build/autoconf/acoutput-fast.pl
  29. 0  deps/js/src/build/autoconf/acwinpaths.m4
  30. 0  deps/js/src/build/autoconf/altoptions.m4
  31. 0  deps/js/src/build/autoconf/install-sh
  32. 0  deps/js/src/build/autoconf/make-makefile
  33. 0  deps/js/src/build/autoconf/match-dir.sh
  34. +3 −3 deps/js/src/build/autoconf/moznbytetype.m4
  35. 0  deps/js/src/build/autoconf/mozprog.m4
  36. +1 −0  deps/js/src/build/autoconf/nspr.m4
  37. 0  deps/js/src/build/autoconf/pkg.m4
  38. 0  deps/js/src/build/cygwin-wrapper
  39. 0  deps/js/src/build/hcc
  40. 0  deps/js/src/build/hcpp
  41. 0  deps/js/src/build/msys-perl-wrapper
  42. 0  deps/js/src/build/unix/mddepend.pl
  43. 0  deps/js/src/build/unix/uniq.pl
  44. 0  deps/js/src/build/win32/pgomerge.py
  45. +0 −91 deps/js/src/builtins.tbl
  46. 0  deps/js/src/config/Makefile
  47. 0  deps/js/src/config/Makefile.in
  48. 0  deps/js/src/config/Moz/Milestone.pm
  49. +25 −4 deps/js/src/config/autoconf.mk.in
  50. 0  deps/js/src/config/check-sync-dirs.py
  51. 0  deps/js/src/config/check-sync-exceptions
  52. +46 −16 deps/js/src/config/config.mk
  53. 0  deps/js/src/config/fastcwd.pl
  54. 0  deps/js/src/config/gcc_hidden.h
  55. 0  deps/js/src/config/make-system-wrappers.pl
  56. 0  deps/js/src/config/milestone.pl
  57. +1 −1  deps/js/src/config/milestone.txt
  58. 0  deps/js/src/config/mkdepend/Makefile
  59. 0  deps/js/src/config/mkdepend/Makefile.in
  60. 0  deps/js/src/config/mkdepend/cppsetup.c
  61. 0  deps/js/src/config/mkdepend/def.h
  62. 0  deps/js/src/config/mkdepend/ifparser.c
  63. 0  deps/js/src/config/mkdepend/ifparser.h
  64. 0  deps/js/src/config/mkdepend/imakemdep.h
  65. 0  deps/js/src/config/mkdepend/include.c
  66. 0  deps/js/src/config/mkdepend/main.c
  67. 0  deps/js/src/config/mkdepend/mkdepend.man
  68. 0  deps/js/src/config/mkdepend/parse.c
  69. 0  deps/js/src/config/mkdepend/pr.c
  70. 0  deps/js/src/config/nfspwd.pl
  71. 0  deps/js/src/config/nsinstall.c
  72. 0  deps/js/src/config/nsinstall.exe.manifest
  73. 0  deps/js/src/config/nsinstall.py
  74. 0  deps/js/src/config/nsinstall_win.c
  75. 0  deps/js/src/config/pathsub.c
  76. 0  deps/js/src/config/pathsub.h
  77. 0  deps/js/src/config/preprocessor.pl
  78. +126 −77 deps/js/src/config/rules.mk
  79. 0  deps/js/src/config/solaris_ia32.map
  80. +8 −5 deps/js/src/config/static-checking-config.mk
  81. +41 −6 deps/js/src/config/static-checking.js
  82. 0  deps/js/src/config/string-format.js
  83. +24 −4 deps/js/src/config/system-headers
  84. 0  deps/js/src/config/version.mk
  85. +2,962 −1,115 deps/js/src/configure
  86. +1,006 −268 deps/js/src/configure.in
  87. +650 −446 deps/js/src/ctypes/CTypes.cpp
  88. +59 −34 deps/js/src/ctypes/CTypes.h
  89. +104 −36 deps/js/src/ctypes/Library.cpp
  90. +3 −1 deps/js/src/ctypes/Library.h
  91. 0  deps/js/src/ctypes/ctypes.msg
  92. +917 −551 deps/js/src/ctypes/libffi.patch
  93. BIN  deps/js/src/ctypes/libffi/.libs/libffi.a
  94. +0 −1  deps/js/src/ctypes/libffi/.libs/libffi.la
  95. +0 −41 deps/js/src/ctypes/libffi/.libs/libffi.lai
  96. +0 −1  deps/js/src/ctypes/libffi/.libs/libffi.so
  97. +0 −1  deps/js/src/ctypes/libffi/.libs/libffi.so.5
  98. BIN  deps/js/src/ctypes/libffi/.libs/libffi.so.5.0.10
  99. BIN  deps/js/src/ctypes/libffi/.libs/libffi_convenience.a
  100. +0 −1  deps/js/src/ctypes/libffi/.libs/libffi_convenience.la
  101. +119 −0 deps/js/src/ctypes/libffi/ChangeLog
  102. 0  deps/js/src/ctypes/libffi/ChangeLog.libffi
  103. 0  deps/js/src/ctypes/libffi/ChangeLog.libgcj
  104. 0  deps/js/src/ctypes/libffi/ChangeLog.v1
  105. 0  deps/js/src/ctypes/libffi/LICENSE
  106. +0 −1,791 deps/js/src/ctypes/libffi/Makefile
  107. +12 −0 deps/js/src/ctypes/libffi/Makefile.am
  108. +59 −30 deps/js/src/ctypes/libffi/Makefile.in
  109. +8 −3 deps/js/src/ctypes/libffi/README
  110. 0  deps/js/src/ctypes/libffi/acinclude.m4
  111. +10 −10 deps/js/src/ctypes/libffi/aclocal.m4
  112. +0 −824 deps/js/src/ctypes/libffi/config.log
  113. +0 −2,184 deps/js/src/ctypes/libffi/config.status
  114. +4,016 −6,260 deps/js/src/ctypes/libffi/configure
  115. +53 −2 deps/js/src/ctypes/libffi/configure.ac
  116. 0  deps/js/src/ctypes/libffi/configure.host
  117. +78 −18 deps/js/src/ctypes/libffi/doc/libffi.info
  118. +4 −2 deps/js/src/ctypes/libffi/doc/libffi.texi
  119. 0  deps/js/src/ctypes/libffi/doc/stamp-vti
  120. 0  deps/js/src/ctypes/libffi/doc/version.texi
  121. +0 −185 deps/js/src/ctypes/libffi/fficonfig.h
  122. +9 −0 deps/js/src/ctypes/libffi/fficonfig.h.in
  123. +0 −470 deps/js/src/ctypes/libffi/include/Makefile
  124. 0  deps/js/src/ctypes/libffi/include/Makefile.am
  125. +2 −1  deps/js/src/ctypes/libffi/include/Makefile.in
  126. +0 −402 deps/js/src/ctypes/libffi/include/ffi.h
  127. +18 −4 deps/js/src/ctypes/libffi/include/ffi.h.in
  128. 0  deps/js/src/ctypes/libffi/include/ffi_common.h
  129. +0 −1  deps/js/src/ctypes/libffi/include/ffitarget.h
  130. +0 −41 deps/js/src/ctypes/libffi/libffi.la
  131. +0 −10 deps/js/src/ctypes/libffi/libffi.pc
  132. 0  deps/js/src/ctypes/libffi/libffi.pc.in
  133. +0 −41 deps/js/src/ctypes/libffi/libffi_convenience.la
  134. +0 −8,893 deps/js/src/ctypes/libffi/libtool
  135. 0  deps/js/src/ctypes/libffi/libtool-version
  136. +4 −4 deps/js/src/ctypes/libffi/ltmain.sh
  137. 0  deps/js/src/ctypes/libffi/m4/libtool.m4
  138. 0  deps/js/src/ctypes/libffi/m4/ltoptions.m4
  139. 0  deps/js/src/ctypes/libffi/m4/ltsugar.m4
  140. +5 −5 deps/js/src/ctypes/libffi/m4/ltversion.m4
  141. 0  deps/js/src/ctypes/libffi/m4/lt~obsolete.m4
  142. +0 −449 deps/js/src/ctypes/libffi/man/Makefile
  143. 0  deps/js/src/ctypes/libffi/man/Makefile.am
  144. +2 −1  deps/js/src/ctypes/libffi/man/Makefile.in
  145. 0  deps/js/src/ctypes/libffi/man/ffi.3
  146. 0  deps/js/src/ctypes/libffi/man/ffi_call.3
  147. 0  deps/js/src/ctypes/libffi/man/ffi_prep_cif.3
  148. +21 −7 deps/js/src/ctypes/libffi/msvcc.sh
  149. 0  deps/js/src/ctypes/libffi/src/.deps/.dirstamp
  150. +0 −192 deps/js/src/ctypes/libffi/src/.deps/closures.Plo
  151. +0 −106 deps/js/src/ctypes/libffi/src/.deps/debug.Plo
  152. +0 −85 deps/js/src/ctypes/libffi/src/.deps/java_raw_api.Plo
  153. +0 −85 deps/js/src/ctypes/libffi/src/.deps/prep_cif.Plo
  154. +0 −63 deps/js/src/ctypes/libffi/src/.deps/raw_api.Plo
  155. +0 −63 deps/js/src/ctypes/libffi/src/.deps/types.Plo
  156. 0  deps/js/src/ctypes/libffi/src/.dirstamp
  157. BIN  deps/js/src/ctypes/libffi/src/.libs/closures.o
  158. BIN  deps/js/src/ctypes/libffi/src/.libs/debug.o
  159. BIN  deps/js/src/ctypes/libffi/src/.libs/java_raw_api.o
  160. BIN  deps/js/src/ctypes/libffi/src/.libs/prep_cif.o
  161. BIN  deps/js/src/ctypes/libffi/src/.libs/raw_api.o
  162. BIN  deps/js/src/ctypes/libffi/src/.libs/types.o
  163. +0 −1  deps/js/src/ctypes/libffi/src/alpha/.deps/ffi.Plo
  164. +0 −1  deps/js/src/ctypes/libffi/src/alpha/.deps/osf.Plo
  165. 0  deps/js/src/ctypes/libffi/src/alpha/ffi.c
  166. 0  deps/js/src/ctypes/libffi/src/alpha/ffitarget.h
  167. 0  deps/js/src/ctypes/libffi/src/alpha/osf.S
  168. +0 −1  deps/js/src/ctypes/libffi/src/arm/.deps/ffi.Plo
  169. +0 −1  deps/js/src/ctypes/libffi/src/arm/.deps/sysv.Plo
  170. +211 −20 deps/js/src/ctypes/libffi/src/arm/ffi.c
  171. +16 −2 deps/js/src/ctypes/libffi/src/arm/ffitarget.h
  172. +166 −10 deps/js/src/ctypes/libffi/src/arm/sysv.S
  173. +0 −1  deps/js/src/ctypes/libffi/src/avr32/.deps/ffi.Plo
  174. +0 −1  deps/js/src/ctypes/libffi/src/avr32/.deps/sysv.Plo
  175. 0  deps/js/src/ctypes/libffi/src/avr32/ffi.c
  176. +2 −2 deps/js/src/ctypes/libffi/src/avr32/ffitarget.h
  177. 0  deps/js/src/ctypes/libffi/src/avr32/sysv.S
  178. +1 −1  deps/js/src/ctypes/libffi/src/closures.c
  179. +0 −12 deps/js/src/ctypes/libffi/src/closures.lo
  180. BIN  deps/js/src/ctypes/libffi/src/closures.o
  181. +0 −1  deps/js/src/ctypes/libffi/src/cris/.deps/ffi.Plo
  182. +0 −1  deps/js/src/ctypes/libffi/src/cris/.deps/sysv.Plo
  183. +1 −1  deps/js/src/ctypes/libffi/src/cris/ffi.c
  184. +2 −2 deps/js/src/ctypes/libffi/src/cris/ffitarget.h
  185. 0  deps/js/src/ctypes/libffi/src/cris/sysv.S
  186. 0  deps/js/src/ctypes/libffi/src/debug.c
  187. +0 −12 deps/js/src/ctypes/libffi/src/debug.lo
  188. BIN  deps/js/src/ctypes/libffi/src/debug.o
  189. +1 −1  deps/js/src/ctypes/libffi/src/dlmalloc.c
  190. +0 −1  deps/js/src/ctypes/libffi/src/frv/.deps/eabi.Plo
  191. +0 −1  deps/js/src/ctypes/libffi/src/frv/.deps/ffi.Plo
  192. 0  deps/js/src/ctypes/libffi/src/frv/eabi.S
  193. 0  deps/js/src/ctypes/libffi/src/frv/ffi.c
  194. +2 −6 deps/js/src/ctypes/libffi/src/frv/ffitarget.h
  195. +0 −1  deps/js/src/ctypes/libffi/src/ia64/.deps/ffi.Plo
  196. +0 −1  deps/js/src/ctypes/libffi/src/ia64/.deps/unix.Plo
  197. +1 −1  deps/js/src/ctypes/libffi/src/ia64/ffi.c
  198. +2 −2 deps/js/src/ctypes/libffi/src/ia64/ffitarget.h
  199. 0  deps/js/src/ctypes/libffi/src/ia64/ia64_flags.h
  200. 0  deps/js/src/ctypes/libffi/src/ia64/unix.S
  201. 0  deps/js/src/ctypes/libffi/src/java_raw_api.c
  202. +0 −12 deps/js/src/ctypes/libffi/src/java_raw_api.lo
  203. BIN  deps/js/src/ctypes/libffi/src/java_raw_api.o
  204. +0 −1  deps/js/src/ctypes/libffi/src/m32r/.deps/ffi.Plo
  205. +0 −1  deps/js/src/ctypes/libffi/src/m32r/.deps/sysv.Plo
  206. 0  deps/js/src/ctypes/libffi/src/m32r/ffi.c
  207. +2 −2 deps/js/src/ctypes/libffi/src/m32r/ffitarget.h
  208. 0  deps/js/src/ctypes/libffi/src/m32r/sysv.S
  209. +0 −1  deps/js/src/ctypes/libffi/src/m68k/.deps/ffi.Plo
  210. +0 −1  deps/js/src/ctypes/libffi/src/m68k/.deps/sysv.Plo
  211. 0  deps/js/src/ctypes/libffi/src/m68k/ffi.c
  212. +2 −2 deps/js/src/ctypes/libffi/src/m68k/ffitarget.h
  213. 0  deps/js/src/ctypes/libffi/src/m68k/sysv.S
  214. +0 −1  deps/js/src/ctypes/libffi/src/mips/.deps/ffi.Plo
  215. +0 −1  deps/js/src/ctypes/libffi/src/mips/.deps/n32.Plo
  216. +0 −1  deps/js/src/ctypes/libffi/src/mips/.deps/o32.Plo
  217. 0  deps/js/src/ctypes/libffi/src/mips/ffi.c
  218. +7 −8 deps/js/src/ctypes/libffi/src/mips/ffitarget.h
  219. 0  deps/js/src/ctypes/libffi/src/mips/n32.S
  220. 0  deps/js/src/ctypes/libffi/src/mips/o32.S
  221. 0  deps/js/src/ctypes/libffi/src/moxie/eabi.S
  222. 0  deps/js/src/ctypes/libffi/src/moxie/ffi.c
  223. +2 −6 deps/js/src/ctypes/libffi/src/moxie/ffitarget.h
  224. +0 −1  deps/js/src/ctypes/libffi/src/pa/.deps/ffi.Plo
  225. +0 −1  deps/js/src/ctypes/libffi/src/pa/.deps/hpux32.Plo
  226. +0 −1  deps/js/src/ctypes/libffi/src/pa/.deps/linux.Plo
  227. 0  deps/js/src/ctypes/libffi/src/pa/ffi.c
  228. +6 −5 deps/js/src/ctypes/libffi/src/pa/ffitarget.h
  229. 0  deps/js/src/ctypes/libffi/src/pa/hpux32.S
  230. 0  deps/js/src/ctypes/libffi/src/pa/linux.S
  231. +0 −1  deps/js/src/ctypes/libffi/src/powerpc/.deps/aix.Plo
  232. +0 −1  deps/js/src/ctypes/libffi/src/powerpc/.deps/aix_closure.Plo
  233. +0 −1  deps/js/src/ctypes/libffi/src/powerpc/.deps/darwin.Plo
  234. +0 −1  deps/js/src/ctypes/libffi/src/powerpc/.deps/darwin_closure.Plo
  235. +0 −1  deps/js/src/ctypes/libffi/src/powerpc/.deps/ffi.Plo
  236. +0 −1  deps/js/src/ctypes/libffi/src/powerpc/.deps/ffi_darwin.Plo
  237. +0 −1  deps/js/src/ctypes/libffi/src/powerpc/.deps/linux64.Plo
  238. +0 −1  deps/js/src/ctypes/libffi/src/powerpc/.deps/linux64_closure.Plo
  239. +0 −1  deps/js/src/ctypes/libffi/src/powerpc/.deps/ppc_closure.Plo
  240. +0 −1  deps/js/src/ctypes/libffi/src/powerpc/.deps/sysv.Plo
  241. 0  deps/js/src/ctypes/libffi/src/powerpc/aix.S
  242. 0  deps/js/src/ctypes/libffi/src/powerpc/aix_closure.S
  243. 0  deps/js/src/ctypes/libffi/src/powerpc/asm.h
  244. 0  deps/js/src/ctypes/libffi/src/powerpc/darwin.S
  245. 0  deps/js/src/ctypes/libffi/src/powerpc/darwin_closure.S
  246. 0  deps/js/src/ctypes/libffi/src/powerpc/ffi.c
  247. 0  deps/js/src/ctypes/libffi/src/powerpc/ffi_darwin.c
  248. +6 −0 deps/js/src/ctypes/libffi/src/powerpc/ffitarget.h
  249. 0  deps/js/src/ctypes/libffi/src/powerpc/linux64.S
  250. 0  deps/js/src/ctypes/libffi/src/powerpc/linux64_closure.S
  251. 0  deps/js/src/ctypes/libffi/src/powerpc/ppc_closure.S
  252. 0  deps/js/src/ctypes/libffi/src/powerpc/sysv.S
  253. +3 −3 deps/js/src/ctypes/libffi/src/prep_cif.c
  254. +0 −12 deps/js/src/ctypes/libffi/src/prep_cif.lo
  255. BIN  deps/js/src/ctypes/libffi/src/prep_cif.o
  256. 0  deps/js/src/ctypes/libffi/src/raw_api.c
  257. +0 −12 deps/js/src/ctypes/libffi/src/raw_api.lo
  258. BIN  deps/js/src/ctypes/libffi/src/raw_api.o
  259. +0 −1  deps/js/src/ctypes/libffi/src/s390/.deps/ffi.Plo
  260. +0 −1  deps/js/src/ctypes/libffi/src/s390/.deps/sysv.Plo
  261. 0  deps/js/src/ctypes/libffi/src/s390/ffi.c
  262. +4 −2 deps/js/src/ctypes/libffi/src/s390/ffitarget.h
  263. 0  deps/js/src/ctypes/libffi/src/s390/sysv.S
  264. +0 −1  deps/js/src/ctypes/libffi/src/sh/.deps/ffi.Plo
  265. +0 −1  deps/js/src/ctypes/libffi/src/sh/.deps/sysv.Plo
  266. 0  deps/js/src/ctypes/libffi/src/sh/ffi.c
  267. +2 −2 deps/js/src/ctypes/libffi/src/sh/ffitarget.h
  268. 0  deps/js/src/ctypes/libffi/src/sh/sysv.S
  269. +0 −1  deps/js/src/ctypes/libffi/src/sh64/.deps/ffi.Plo
  270. +0 −1  deps/js/src/ctypes/libffi/src/sh64/.deps/sysv.Plo
  271. 0  deps/js/src/ctypes/libffi/src/sh64/ffi.c
  272. +2 −2 deps/js/src/ctypes/libffi/src/sh64/ffitarget.h
  273. 0  deps/js/src/ctypes/libffi/src/sh64/sysv.S
  274. +0 −1  deps/js/src/ctypes/libffi/src/sparc/.deps/ffi.Plo
  275. +0 −1  deps/js/src/ctypes/libffi/src/sparc/.deps/v8.Plo
  276. +0 −1  deps/js/src/ctypes/libffi/src/sparc/.deps/v9.Plo
  277. 0  deps/js/src/ctypes/libffi/src/sparc/ffi.c
  278. +5 −3 deps/js/src/ctypes/libffi/src/sparc/ffitarget.h
  279. 0  deps/js/src/ctypes/libffi/src/sparc/v8.S
  280. 0  deps/js/src/ctypes/libffi/src/sparc/v9.S
  281. 0  deps/js/src/ctypes/libffi/src/types.c
  282. +0 −12 deps/js/src/ctypes/libffi/src/types.lo
  283. BIN  deps/js/src/ctypes/libffi/src/types.o
  284. 0  deps/js/src/ctypes/libffi/src/x86/.deps/.dirstamp
  285. +0 −1  deps/js/src/ctypes/libffi/src/x86/.deps/darwin.Plo
  286. +0 −1  deps/js/src/ctypes/libffi/src/x86/.deps/darwin64.Plo
  287. +0 −1  deps/js/src/ctypes/libffi/src/x86/.deps/ffi.Plo
  288. +0 −88 deps/js/src/ctypes/libffi/src/x86/.deps/ffi64.Plo
  289. +0 −1  deps/js/src/ctypes/libffi/src/x86/.deps/freebsd.Plo
  290. +0 −1  deps/js/src/ctypes/libffi/src/x86/.deps/sysv.Plo
  291. +0 −8 deps/js/src/ctypes/libffi/src/x86/.deps/unix64.Plo
  292. +0 −1  deps/js/src/ctypes/libffi/src/x86/.deps/win32.Plo
  293. +0 −1  deps/js/src/ctypes/libffi/src/x86/.deps/win64.Plo
  294. 0  deps/js/src/ctypes/libffi/src/x86/.dirstamp
  295. BIN  deps/js/src/ctypes/libffi/src/x86/.libs/ffi.o
  296. BIN  deps/js/src/ctypes/libffi/src/x86/.libs/ffi64.o
  297. BIN  deps/js/src/ctypes/libffi/src/x86/.libs/sysv.o
  298. BIN  deps/js/src/ctypes/libffi/src/x86/.libs/unix64.o
  299. 0  deps/js/src/ctypes/libffi/src/x86/darwin.S
  300. 0  deps/js/src/ctypes/libffi/src/x86/darwin64.S
Sorry, we could not display the entire diff because too many files (5,281) changed.
View
340 deps/js/src/Makefile.in 100755 → 100644
@@ -71,8 +71,15 @@ ifdef ENABLE_TESTS
DIRS += tests
endif
+SRCREL_VERSION = 1.0.0
+SRCREL_ABI_VERSION := $(word 1,$(subst ., ,$(SRCREL_VERSION))).$(word 2,$(subst ., ,$(SRCREL_VERSION)))
+
MODULE = js
-LIBRARY_NAME = mozjs
+ifeq (,$(HOST_BIN_SUFFIX))
+LIBRARY_NAME = mozjs185
+else
+LIBRARY_NAME = mozjs185-$(SRCREL_ABI_VERSION)
+endif
STATIC_LIBRARY_NAME = js_static
GRE_MODULE = 1
@@ -85,28 +92,26 @@ ifdef MOZ_PROFILE_GENERATE
MODULE_OPTIMIZE_FLAGS = -O0
else
MODULE_OPTIMIZE_FLAGS = -O2 -ip
-#XXX: do we want different INTERP_OPTIMIZER flags here?
endif
else # not INTEL_CXX
-MODULE_OPTIMIZE_FLAGS = -O3 -fstrict-aliasing $(MOZ_OPTIMIZE_SIZE_TWEAK)
-ifeq ($(OS_ARCH),Linux)
-#TODO: move this up a line when we fix OS X (bug 517832)
+
+MODULE_OPTIMIZE_FLAGS = -O3 -fstrict-aliasing
+
+# We normally want -fomit-frame-pointer, but we want an explicit
+# -fno-omit-frame-pointer if we're using a sampling profiler.
+ifndef MOZ_PROFILING
MODULE_OPTIMIZE_FLAGS += -fomit-frame-pointer
+else
+MODULE_OPTIMIZE_FLAGS += -fno-omit-frame-pointer
endif
-# Special optimization flags for jsinterp.c
-INTERP_OPTIMIZER = -O3 -fstrict-aliasing
+
endif
else # not GNU_CXX
ifeq ($(OS_ARCH),SunOS)
MODULE_OPTIMIZE_FLAGS = -xO4
endif
ifeq ($(OS_ARCH),WINNT)
-ifdef WINCE
-# -GL is not supported on windows mobile while we are using the arm-wince-link command
MODULE_OPTIMIZE_FLAGS = -O2
-else
-MODULE_OPTIMIZE_FLAGS = -O2 -GL
-endif
endif
endif
@@ -119,27 +124,35 @@ endif
# In fact, we now build both a static and a shared library, as the
# JS shell would like to link to the static library.
+ifdef JS_SHARED_LIBRARY
FORCE_SHARED_LIB = 1
+endif
FORCE_STATIC_LIB = 1
+DIST_INSTALL = 1
VPATH = $(srcdir)
CPPSRCS = \
+ jsanalyze.cpp \
jsapi.cpp \
jsarena.cpp \
jsarray.cpp \
jsatom.cpp \
jsbool.cpp \
+ jsclone.cpp \
jscntxt.cpp \
+ jscompartment.cpp \
jsdate.cpp \
jsdbgapi.cpp \
jsdhash.cpp \
jsdtoa.cpp \
jsemit.cpp \
jsexn.cpp \
+ jsfriendapi.cpp \
jsfun.cpp \
jsgc.cpp \
jsgcchunk.cpp \
+ jsgcstats.cpp \
jshash.cpp \
jsinterp.cpp \
jsinvoke.cpp \
@@ -155,32 +168,30 @@ CPPSRCS = \
jsparse.cpp \
jsproxy.cpp \
jsprf.cpp \
+ jsprobes.cpp \
jspropertycache.cpp \
jspropertytree.cpp \
+ jsreflect.cpp \
jsregexp.cpp \
jsscan.cpp \
jsscope.cpp \
jsscript.cpp \
jsstr.cpp \
- jstask.cpp \
jstypedarray.cpp \
jsutil.cpp \
jswrapper.cpp \
jsxdrapi.cpp \
jsxml.cpp \
prmjtime.cpp \
+ sharkctl.cpp \
$(NULL)
-ifdef HAVE_DTRACE
-CPPSRCS += \
- jsdtracef.cpp
-endif
-
INSTALLED_HEADERS = \
js-config.h \
jsautocfg.h \
$(CURDIR)/jsautokw.h \
js.msg \
+ jsanalyze.h \
jsapi.h \
jsarray.h \
jsarena.h \
@@ -188,6 +199,7 @@ INSTALLED_HEADERS = \
jsbit.h \
jsbool.h \
jsclist.h \
+ jsclone.h \
jscntxt.h \
jscompat.h \
jsdate.h \
@@ -196,8 +208,12 @@ INSTALLED_HEADERS = \
jsdtoa.h \
jsemit.h \
jsfun.h \
+ jsfriendapi.h \
jsgc.h \
+ jscell.h \
jsgcchunk.h \
+ jsgcstats.h \
+ jscompartment.h \
jshash.h \
jsinterp.h \
jsinttypes.h \
@@ -210,25 +226,29 @@ INSTALLED_HEADERS = \
json.h \
jsopcode.tbl \
jsopcode.h \
+ jsopcodeinlines.h \
jsotypes.h \
jsparse.h \
jsproxy.h \
jsprf.h \
+ jsprobes.h \
jspropertycache.h \
jspropertycacheinlines.h \
jspropertytree.h \
jsproto.tbl \
jsprvtd.h \
jspubtd.h \
+ jsreflect.h \
jsregexp.h \
jsscan.h \
jsscope.h \
jsscript.h \
jsscriptinlines.h \
jsstaticcheck.h \
+ jsstdint.h \
jsstr.h \
- jstask.h \
jstracer.h \
+ jshotloop.h \
jstypedarray.h \
jstypes.h \
jsutil.h \
@@ -239,11 +259,15 @@ INSTALLED_HEADERS = \
jswrapper.h \
jsxdrapi.h \
jsxml.h \
+ jsval.h \
+ jsvalue.h \
prmjtime.h \
$(NULL)
ifdef ENABLE_TRACEJIT
-VPATH += $(srcdir)/nanojit
+VPATH += \
+ $(srcdir)/tracejit \
+ $(srcdir)/nanojit \
INSTALLED_HEADERS += \
jsbuiltins.h \
@@ -252,14 +276,18 @@ INSTALLED_HEADERS += \
CodeAlloc.h \
Containers.h \
LIR.h \
+ LIRopcode.tbl \
avmplus.h \
Fragmento.h \
Native.h \
+ NativeCommon.h \
Native$(NANOJIT_ARCH).h \
- njconfig.h \
+ njconfig.h \
+ njcpudetect.h \
RegAlloc.h \
nanojit.h \
VMPI.h \
+ Writer.h \
$(NULL)
CPPSRCS += \
@@ -274,8 +302,9 @@ CPPSRCS += \
RegAlloc.cpp \
avmplus.cpp \
Native$(NANOJIT_ARCH).cpp \
- jsbuiltins.cpp \
+ jsbuiltins.cpp \
VMPI.cpp \
+ Writer.cpp \
$(NULL)
ifdef WINCE
@@ -286,6 +315,135 @@ ASFILES += jswince.asm
endif
endif # ENABLE_TRACEJIT
+ifdef ENABLE_METHODJIT
+
+###############################################
+# BEGIN include sources for the method JIT
+#
+VPATH += $(srcdir)/methodjit
+
+CPPSRCS += MethodJIT.cpp \
+ StubCalls.cpp \
+ Compiler.cpp \
+ FrameState.cpp \
+ FastArithmetic.cpp \
+ FastOps.cpp \
+ StubCompiler.cpp \
+ MonoIC.cpp \
+ PolyIC.cpp \
+ ImmutableSync.cpp \
+ InvokeHelpers.cpp \
+ Retcon.cpp \
+ TrampolineCompiler.cpp \
+ $(NULL)
+# PICStubCompiler.cpp \
+
+ifeq (86, $(findstring 86,$(TARGET_CPU)))
+ifeq (x86_64, $(TARGET_CPU))
+ifdef _MSC_VER
+ASFILES += TrampolineMasmX64.asm
+endif
+ifdef SOLARIS_SUNPRO_CXX
+ASFILES += TrampolineSUNWX64.s
+endif
+#CPPSRCS += only_on_x86_64.cpp
+else
+#CPPSRCS += only_on_x86.cpp
+ifdef SOLARIS_SUNPRO_CXX
+ASFILES += TrampolineSUNWX86.s
+endif
+endif
+endif
+ifeq (arm, $(TARGET_CPU))
+#CPPSRCS += only_on_arm.cpp
+endif
+#
+# END enclude sources for the method JIT
+#############################################
+
+endif
+
+###############################################
+# BEGIN include sources for V8 dtoa
+#
+VPATH += $(srcdir)/v8-dtoa \
+ $(NONE)
+
+CPPSRCS += checks.cc \
+ conversions.cc \
+ diy-fp.cc \
+ v8-dtoa.cc \
+ fast-dtoa.cc \
+ platform.cc \
+ utils.cc \
+ $(NONE)
+
+#
+# END enclude sources for V8 dtoa
+#############################################
+
+ifeq (,$(filter-out powerpc sparc,$(TARGET_CPU)))
+
+VPATH += $(srcdir)/assembler \
+ $(srcdir)/assembler/wtf \
+ $(srcdir)/yarr/pcre \
+ $(NULL)
+
+CPPSRCS += pcre_compile.cpp \
+ pcre_exec.cpp \
+ pcre_tables.cpp \
+ pcre_xclass.cpp \
+ pcre_ucp_searchfuncs.cpp \
+ $(NULL)
+else
+
+###############################################
+# BEGIN include sources for the Nitro assembler
+#
+VPATH += $(srcdir)/assembler \
+ $(srcdir)/assembler/wtf \
+ $(srcdir)/assembler/jit \
+ $(srcdir)/assembler/assembler \
+ $(srcdir)/methodjit \
+ $(srcdir)/yarr \
+ $(srcdir)/yarr/yarr \
+ $(srcdir)/yarr/pcre \
+ $(srcdir)/yarr/wtf \
+ $(NONE)
+
+CPPSRCS += Assertions.cpp \
+ ExecutableAllocatorPosix.cpp \
+ ExecutableAllocatorWin.cpp \
+ ExecutableAllocatorOS2.cpp \
+ ExecutableAllocator.cpp \
+ ARMAssembler.cpp \
+ Logging.cpp \
+ MacroAssemblerARM.cpp \
+ MacroAssemblerX86Common.cpp \
+ RegexCompiler.cpp \
+ RegexJIT.cpp \
+ pcre_compile.cpp \
+ pcre_exec.cpp \
+ pcre_tables.cpp \
+ pcre_xclass.cpp \
+ pcre_ucp_searchfuncs.cpp \
+ $(NONE)
+
+ifeq (86, $(findstring 86,$(TARGET_CPU)))
+ifeq (x86_64, $(TARGET_CPU))
+#CPPSRCS += only_on_x86_64.cpp
+else
+#CPPSRCS += only_on_x86.cpp
+endif
+endif
+ifeq (arm, $(TARGET_CPU))
+#CPPSRCS += only_on_arm.cpp
+endif
+#
+# END enclude sources for the Nitro assembler
+#############################################
+
+endif
ifdef JS_HAS_CTYPES
VPATH += $(srcdir)/ctypes
@@ -314,11 +472,23 @@ endif # JS_HAS_CTYPES
ifdef HAVE_DTRACE
INSTALLED_HEADERS += \
- jsdtracef.h \
$(CURDIR)/javascript-trace.h \
$(NULL)
endif
+# PerfMeasurement is available regardless of low-level support for it;
+# it just doesn't necessarily do anything useful. There is one
+# implementation source file per supported operating system, plus a stub
+# for unsupported OSes, plus the Javascript wrapper.
+VPATH += $(srcdir)/perf
+INSTALLED_HEADERS += jsperf.h
+CPPSRCS += jsperf.cpp
+ifdef HAVE_LINUX_PERF_EVENT_H
+CPPSRCS += pm_linux.cpp
+else
+CPPSRCS += pm_stub.cpp
+endif
+
ifeq (,$(filter-out WINNT WINCE,$(OS_ARCH)))
INSTALLED_HEADERS += jscpucfg.h
endif
@@ -410,15 +580,24 @@ check-valgrind::
$(check-sync-dirs) $(srcdir)/build $(MOZ_SYNC_BUILD_FILES)/build
endif
+# The "find any vanilla new/new[] calls" script is tailored to Linux, so
+# only run it there. That should be enough to catch any such calls that
+# creep in.
+ifeq ($(OS_ARCH),Linux)
+check::
+ $(srcdir)/config/find_vanilla_new_calls $(LIBRARY)
+endif
+
ifdef ENABLE_TRACEJIT
ifndef WINCE
+JITFLAGS = ,m,j,mj,mjp,am,amj,amjp,amd
check::
- $(wildcard $(RUN_TEST_PROGRAM)) $(PYTHON) -u $(srcdir)/trace-test/trace-test.py \
- --no-slow --no-progress --tinderbox $(DIST)/bin/js$(BIN_SUFFIX)
+ $(wildcard $(RUN_TEST_PROGRAM)) $(PYTHON) -u $(srcdir)/jit-test/jit_test.py \
+ --no-slow --no-progress --tinderbox --jitflags=$(JITFLAGS) $(DIST)/bin/js$(BIN_SUFFIX)
check-valgrind::
- $(wildcard $(RUN_TEST_PROGRAM)) $(PYTHON) -u $(srcdir)/trace-test/trace-test.py \
- --valgrind --no-slow --no-progress --tinderbox $(DIST)/bin/js$(BIN_SUFFIX)
+ $(wildcard $(RUN_TEST_PROGRAM)) $(PYTHON) -u $(srcdir)/jit-test/jit_test.py \
+ --valgrind --no-slow --no-progress --tinderbox --jitflags=$(JITFLAGS) $(DIST)/bin/js$(BIN_SUFFIX)
endif
endif
@@ -456,6 +635,7 @@ endif
ifdef JS_HAS_CTYPES
DEFINES += -DJS_HAS_CTYPES
+DEFINES += -DDLL_PREFIX=\"$(DLL_PREFIX)\" -DDLL_SUFFIX=\"$(DLL_SUFFIX)\"
endif
ifdef JS_NO_THIN_LOCKS
@@ -472,12 +652,6 @@ else
NSPR_STATIC_PATH = $(DIST)/lib
endif
-ifdef MOZ_SHARK
-CFLAGS += -F/System/Library/PrivateFrameworks
-CXXFLAGS += -F/System/Library/PrivateFrameworks
-LDFLAGS += -F/System/Library/PrivateFrameworks -framework CHUD
-endif
-
ifdef MOZ_VTUNE
CXXFLAGS += -IC:/Program\ Files/Intel/VTune/Analyzer/Include
EXTRA_DSO_LDOPTS += C:/Program\ Files/Intel/VTune/Analyzer/Lib/VtuneApi.lib
@@ -535,6 +709,7 @@ endif
endif
ifdef SOLARIS_SUNPRO_CXX
+ifeq ($(TARGET_CPU),sparc)
# Sun Studio SPARC doesn't work well with gcc inline asm, use lock_SunOS_sparc*.il
jslock.o: jslock.cpp Makefile.in lock_sparcv8plus.il lock_sparcv9.il
$(REPORT_BUILD)
@@ -544,17 +719,13 @@ ifeq (sparcv9,$(findstring sparcv9,$(OS_TEST)))
else
$(CXX) -o $@ -c $(COMPILE_CFLAGS) $(srcdir)/lock_sparcv8plus.il $<
endif # sparcv9
+endif # sparc
endif # SOLARIS_SUNPRO_CXX
-# Allow building jsinterp.c with special optimization flags
-ifdef INTERP_OPTIMIZER
-jsinterp.$(OBJ_SUFFIX): MODULE_OPTIMIZE_FLAGS=$(INTERP_OPTIMIZER)
-endif
-
ifeq ($(OS_ARCH),IRIX)
ifndef GNU_CC
_COMPILE_CFLAGS = $(patsubst -O%,-O1,$(COMPILE_CFLAGS))
-jsapi.o jsxdrapi.o jsarena.o jsarray.o jsatom.o jsemit.o jsfun.o jsinterp.o jsregexp.o jsparse.o jsopcode.o jsscript.o: %.o: %.cpp Makefile.in
+jsapi.o jsxdrapi.o jsarena.o jsarray.o jsatom.o jsemit.o jsfun.o jsinterp.o jsreflect.o jsregexp.o jsparse.o jsopcode.o jsscript.o: %.o: %.cpp Makefile.in
$(REPORT_BUILD)
@$(MAKE_DEPS_AUTO_CXX)
$(CXX) -o $@ -c $(_COMPILE_CFLAGS) $<
@@ -630,6 +801,7 @@ endif
# - OS_LIBS includes libraries selected by the configure script.
# - EXTRA_LIBS includes libraries selected by this Makefile.
JS_CONFIG_LIBS=$(EXTRA_DSO_LDOPTS) $(OS_LIBS) $(EXTRA_LIBS)
+JS_CONFIG_MOZ_JS_LIBS=-L$(libdir) -l$(LIBRARY_NAME)
# The configure script invokes this rule explicitly at configure time!
# It's important that js-config be ready by the time we're done
@@ -655,24 +827,70 @@ js-config: js-config.in Makefile $(DEPTH)/config/autoconf.mk $(topsrcdir)/config
-e 's|$(at)LIBRARY_NAME$(at)|$(LIBRARY_NAME)|' \
-e 's|$(at)NSPR_CFLAGS$(at)|$(NSPR_CFLAGS)|' \
-e 's|$(at)JS_CONFIG_LIBS$(at)|$(JS_CONFIG_LIBS)|' \
- -e 's|$(at)MOZ_JS_LIBS$(at)|$(MOZ_JS_LIBS)|' \
+ -e 's|$(at)MOZ_JS_LIBS$(at)|$(JS_CONFIG_MOZ_JS_LIBS)|' \
&& mv js-config.tmp $@ && chmod +x $@
SCRIPTS = js-config
SDK_BINARY = js-config
+pkg_config_files = \
+ mozjs185.pc \
+ $(NULL)
+
+GARBAGE += $(pkg_config_files)
+
+%.pc: $(srcdir)/%.pc.in Makefile
+ cat $< | sed \
+ -e "s|%prefix%|$(prefix)|" \
+ -e "s|%includedir%|$(includedir)|" \
+ -e "s|%libdir%|$(libdir)|" \
+ -e 's|%MOZILLA_VERSION%|$(MOZILLA_VERSION)|' \
+ > $@ && chmod 644 $@
+
+install:: $(pkg_config_files)
+ @echo pkg_config_file: $(pkg_config_files)
+ $(SYSINSTALL) $(IFLAGS1) $^ $(DESTDIR)$(libdir)/pkgconfig
+
install:: $(INSTALLED_HEADERS)
$(SYSINSTALL) $^ $(DESTDIR)$(includedir)/$(MODULE)
install:: $(SCRIPTS)
$(SYSINSTALL) $^ $(DESTDIR)$(bindir)
+ifeq (,$(HOST_BIN_SUFFIX))
+ifeq (.dylib,$(DLL_SUFFIX))
+# Mac OS X
+SHLIB_ANY_VER := $(DESTDIR)$(libdir)/$(SHARED_LIBRARY)
+SHLIB_ABI_VER := $(DESTDIR)$(libdir)/$(SHARED_LIBRARY:$(DLL_SUFFIX)=.$(SRCREL_ABI_VERSION)$(DLL_SUFFIX))
+SHLIB_EXACT_VER := $(DESTDIR)$(libdir)/$(SHARED_LIBRARY:$(DLL_SUFFIX)=.$(SRCREL_VERSION)$(DLL_SUFFIX))
+$(SHARED_LIBRARY): EXTRA_DSO_LDOPTS += -install_name $(SHLIB_ABI_VER)
+$(SHARED_LIBRARY): EXTRA_DSO_LDOPTS += -current_version $(SRCREL_VERSION)
+$(SHARED_LIBRARY): EXTRA_DSO_LDOPTS += -compatibility_version $(SRCREL_ABI_VERSION)
+else
+# Generic Unix / Linux
+SHLIB_ANY_VER := $(DESTDIR)$(libdir)/$(SHARED_LIBRARY)
+SHLIB_ABI_VER := $(DESTDIR)$(libdir)/$(SHARED_LIBRARY).$(SRCREL_ABI_VERSION)
+SHLIB_EXACT_VER := $(DESTDIR)$(libdir)/$(SHARED_LIBRARY).$(SRCREL_VERSION)
+$(SHARED_LIBRARY): EXTRA_DSO_LDOPTS += -Wl,-soname,$(notdir $(SHLIB_ABI_VER))
+endif
+endif
+
install:: $(LIBRARY) $(SHARED_LIBRARY) $(IMPORT_LIBRARY)
ifneq (,$(LIBRARY))
$(SYSINSTALL) $(LIBRARY) $(DESTDIR)$(libdir)
+ mv -f $(DESTDIR)$(libdir)/$(LIBRARY) $(subst $(STATIC_LIBRARY_NAME),mozjs185-$(SRCREL_ABI_VERSION),$(DESTDIR)$(libdir)/$(LIBRARY))
endif
ifneq (,$(SHARED_LIBRARY))
+ifeq (,$(HOST_BIN_SUFFIX))
+ @[ ! -h $(SHLIB_ANY_VER) ] || rm -f $(SHLIB_ANY_VER)
+endif
$(SYSINSTALL) $(SHARED_LIBRARY) $(DESTDIR)$(libdir)
+ifeq (,$(HOST_BIN_SUFFIX))
+ mv -f $(SHLIB_ANY_VER) $(SHLIB_EXACT_VER)
+ @[ ! -h $(SHLIB_ABI_VER) ] || rm -f $(SHLIB_ABI_VER)
+ ln -s $(SHLIB_EXACT_VER) $(SHLIB_ABI_VER)
+ ln -s $(SHLIB_ABI_VER) $(SHLIB_ANY_VER)
+endif
endif
ifneq (,$(IMPORT_LIBRARY))
$(SYSINSTALL) $(IMPORT_LIBRARY) $(DESTDIR)$(libdir)
@@ -694,22 +912,23 @@ $(CURDIR)/jsautooplen.h: host_jsoplengen$(HOST_BIN_SUFFIX)
./host_jsoplengen$(HOST_BIN_SUFFIX) $@
# Force auto-header generation before compiling any source that may use them
-$(CPPSRCS:%.cpp=%.$(OBJ_SUFFIX)): $(CURDIR)/jsautokw.h $(CURDIR)/jsautooplen.h
+$(patsubst %.cc,%.$(OBJ_SUFFIX),$(CPPSRCS:%.cpp=%.$(OBJ_SUFFIX))): $(CURDIR)/jsautokw.h $(CURDIR)/jsautooplen.h
ifdef HAVE_DTRACE
$(CURDIR)/javascript-trace.h: $(srcdir)/javascript-trace.d
dtrace -h -s $(srcdir)/javascript-trace.d -o javascript-trace.h.in
- sed 's/if _DTRACE_VERSION/ifdef INCLUDE_MOZILLA_DTRACE/' \
+ sed -e 's/if _DTRACE_VERSION/ifdef INCLUDE_MOZILLA_DTRACE/' \
+ -e '/const/!s/char \*/const char */g' \
javascript-trace.h.in > javascript-trace.h
# We can't automatically generate dependencies on auto-generated headers;
# we have to list them explicitly.
-$(addsuffix .$(OBJ_SUFFIX),jsdtracef jsinterp jsobj): $(CURDIR)/javascript-trace.h
+$(addsuffix .$(OBJ_SUFFIX),jsprobes jsinterp jsobj): $(CURDIR)/javascript-trace.h
endif
ifdef ENABLE_TRACEJIT
# Imacro compilation.
-$(CURDIR)/imacros.c.out: $(srcdir)/imacro_asm.py $(srcdir)/imacros.jsasm
+$(CURDIR)/imacros.c.out: $(srcdir)/imacro_asm.py $(srcdir)/imacros.jsasm jsopcode.tbl
$(PYTHON) $< $(srcdir)/imacros.jsasm $(CURDIR)/imacros.c.out
$(addsuffix .$(OBJ_SUFFIX),jstracer): $(CURDIR)/imacros.c.out
@@ -741,3 +960,36 @@ update-nanojit:
.PHONY: update-nanojit
endif
+
+###############################################
+# BEGIN kludges for the Nitro assembler
+#
+
+# Needed to "configure" it correctly. Unfortunately these
+# flags wind up being applied to all code in js/src, not just
+# the code in js/src/assembler.
+CXXFLAGS += -DUSE_SYSTEM_MALLOC=1 -DENABLE_ASSEMBLER=1 -DENABLE_JIT=1
+
+INCLUDES += -I$(srcdir)/assembler -I$(srcdir)/yarr
+
+ifdef ENABLE_METHODJIT
+# Build a standalone test program that exercises the assembler
+# sources a bit.
+TESTMAIN_OBJS = \
+ Assertions.$(OBJ_SUFFIX) \
+ ExecutableAllocatorPosix.$(OBJ_SUFFIX) \
+ ExecutableAllocatorWin.$(OBJ_SUFFIX) \
+ ExecutableAllocator.$(OBJ_SUFFIX) \
+ ARMAssembler.$(OBJ_SUFFIX) \
+ MacroAssemblerARM.$(OBJ_SUFFIX) \
+ TestMain.$(OBJ_SUFFIX) \
+ jsutil.$(OBJ_SUFFIX) \
+ jslog2.$(OBJ_SUFFIX)
+TestMain$(HOST_BIN_SUFFIX): $(TESTMAIN_OBJS)
+ $(CXX) -o TestMain$(HOST_BIN_SUFFIX) $(TESTMAIN_OBJS)
+endif
+
+#
+# END kludges for the Nitro assembler
+###############################################
+
View
4 deps/js/src/Makefile.ref 100755 → 100644
@@ -74,10 +74,6 @@ endif
#DEFINES += -Ivprof
#endif
-ifdef NARCISSUS
-DEFINES += -DNARCISSUS
-endif
-
# Look in OBJDIR to find jsautocfg.h, jsautokw.h, and js-config.h
INCLUDES += -I. -I$(OBJDIR)
View
0  deps/js/src/README.html 100755 → 100644
File mode changed
View
0  deps/js/src/SpiderMonkey.rsp 100755 → 100644
File mode changed
View
0  deps/js/src/Y.js 100755 → 100644
File mode changed
View
0  deps/js/src/aclocal.m4 100755 → 100644
File mode changed
View
20 deps/js/src/analysis-tests/Makefile.in 100755 → 100644
@@ -46,7 +46,7 @@ NEED_MDDEPDIR = 1
include $(DEPTH)/config/autoconf.mk
-REDGREEN_FAILURE_TESTCASES = \
+REDGREEN_WARNING_TESTCASES = \
green-callred.cpp \
green-accessred.cpp \
green-tored-badpath.cpp \
@@ -72,8 +72,8 @@ REDGREEN_SUCCESS_TESTCASES = \
green-toredptr.cpp \
$(NULL)
-STATIC_FAILURE_TESTCASES = \
- $(REDGREEN_FAILURE_TESTCASES) \
+STATIC_WARNING_TESTCASES = \
+ $(REDGREEN_WARNING_TESTCASES) \
$(NULL)
STATIC_PASS_TESTCASES = \
@@ -85,19 +85,23 @@ include $(topsrcdir)/config/rules.mk
LOCAL_INCLUDES += -I$(srcdir)/.. -I..
check:: \
- $(STATIC_FAILURE_TESTCASES:.cpp=.s-fail) \
+ $(STATIC_WARNING_TESTCASES:.cpp=.s-warn) \
$(STATIC_PASS_TESTCASES:.cpp=.s-pass) \
$(NULL)
# We want to compile each file and invert the result to ensure that
# compilation failed.
-%.s-fail: %.cpp $(GLOBAL_DEPS) $(DEHYDRA_SCRIPTS)
+%.s-warn: %.cpp $(GLOBAL_DEPS) $(DEHYDRA_SCRIPTS)
@printf "Compiling $(<F) to check that the static-analysis script is checking properly..."
- @if $(CCC) $(OUTOPTION)/dev/null -S $(COMPILE_CXXFLAGS) $(_VPATH_SRCS) >$(*F).errlog 2>&1; then \
- printf "fail:\nerror: compilation of $(<F) succeeded. It shouldn't have!\n"; \
+ @if $(CCC) -Werror $(OUTOPTION)/dev/null -S $(COMPILE_CXXFLAGS) $(_VPATH_SRCS) >$(*F).errlog 2>&1; then \
+ printf "fail:\nerror: compilation of $(<F) succeeded with -Werror. It shouldn't have!\n"; \
exit 1; \
- else \
+ fi
+ @if $(CCC) $(OUTOPTION)/dev/null -S $(COMPILE_CXXFLAGS) $(_VPATH_SRCS) >$(*F).werrlog 2>&1; then \
printf "ok.\n"; \
+ else \
+ printf "fail:\nerror: compilation of $(<F) without -Werror failed. A warning should have been issued.\n"; \
+ exit 1; \
fi
%.s-pass: %.cpp $(GLOBAL_DEPS) $(DEHYDRA_SCRIPTS)
View
0  deps/js/src/analysis-tests/green-accessred.cpp 100755 → 100644
File mode changed
View
0  deps/js/src/analysis-tests/green-callred.cpp 100755 → 100644
File mode changed
View
0  deps/js/src/analysis-tests/green-callredptr.cpp 100755 → 100644
File mode changed
View
0  deps/js/src/analysis-tests/green-tored-badpath.cpp 100755 → 100644
File mode changed
View
0  deps/js/src/analysis-tests/green-tored.cpp 100755 → 100644
File mode changed
View
0  deps/js/src/analysis-tests/green-toredptr.cpp 100755 → 100644
File mode changed
View
0  deps/js/src/analysis-tests/misdeclared-red-funcptr.cpp 100755 → 100644
File mode changed
View
0  deps/js/src/analysis-tests/misdeclared-red-funcptr2.cpp 100755 → 100644
File mode changed
View
0  deps/js/src/analysis-tests/red-accessred.cpp 100755 → 100644
File mode changed
View
0  deps/js/src/analysis-tests/red-callgreen.cpp 100755 → 100644
File mode changed
View
0  deps/js/src/analysis-tests/red-callred.cpp 100755 → 100644
File mode changed
View
0  deps/js/src/analysis-tests/red-togreenptr-arg.cpp 100755 → 100644
File mode changed
View
0  deps/js/src/analysis-tests/red-togreenptr-field.cpp 100755 → 100644
File mode changed
View
0  deps/js/src/analysis-tests/red-togreenptr-initializer-array.cpp 100755 → 100644
File mode changed
View
0  deps/js/src/analysis-tests/red-togreenptr-initializer-cast.cpp 100755 → 100644
File mode changed
View
0  deps/js/src/analysis-tests/red-togreenptr-initializer-nested.cpp 100755 → 100644
File mode changed
View
0  deps/js/src/analysis-tests/red-togreenptr-initializer-struct.cpp 100755 → 100644
File mode changed
View
0  deps/js/src/analysis-tests/red-togreenptr-initializer.cpp 100755 → 100644
File mode changed
View
0  deps/js/src/analysis-tests/red-togreenptr-return.cpp 100755 → 100644
File mode changed
View
0  deps/js/src/analysis-tests/red-togreenptr.cpp 100755 → 100644
File mode changed
View
0  deps/js/src/build/autoconf/acoutput-fast.pl 100755 → 100644
File mode changed
View
0  deps/js/src/build/autoconf/acwinpaths.m4 100755 → 100644
File mode changed
View
0  deps/js/src/build/autoconf/altoptions.m4 100755 → 100644
File mode changed
View
0  deps/js/src/build/autoconf/install-sh 100755 → 100644
File mode changed
View
0  deps/js/src/build/autoconf/make-makefile 100755 → 100644
File mode changed
View
0  deps/js/src/build/autoconf/match-dir.sh 100755 → 100644
File mode changed
View
6 deps/js/src/build/autoconf/moznbytetype.m4 100755 → 100644
@@ -60,7 +60,7 @@ AC_CACHE_CHECK([for a $2-byte type], moz_cv_n_byte_type_$1, [
AC_TRY_COMPILE([],
[
int a[sizeof ($type) == $2 ? 1 : -1];
- return;
+ return 0;
],
[moz_cv_n_byte_type_$1=$type; break], [])
done
@@ -91,7 +91,7 @@ AC_CACHE_CHECK([for the size of $2], moz_cv_size_of_$1, [
AC_TRY_COMPILE([],
[
int a[sizeof ($2) == $size ? 1 : -1];
- return;
+ return 0;
],
[moz_cv_size_of_$1=$size; break], [])
done
@@ -124,7 +124,7 @@ AC_CACHE_CHECK([for the alignment of $2], moz_cv_align_of_$1, [
],
[
int a[offsetof(struct aligner, a) == $align ? 1 : -1];
- return;
+ return 0;
],
[moz_cv_align_of_$1=$align; break], [])
done
View
0  deps/js/src/build/autoconf/mozprog.m4 100755 → 100644
File mode changed
View
1  deps/js/src/build/autoconf/nspr.m4 100755 → 100644
@@ -92,6 +92,7 @@ AC_ARG_WITH(nspr-exec-prefix,
ifelse([$2], , :, [$2])
else
AC_MSG_RESULT(no)
+ ifelse([$3], , :, [$3])
fi
View
0  deps/js/src/build/autoconf/pkg.m4 100755 → 100644
File mode changed
View
0  deps/js/src/build/cygwin-wrapper 100755 → 100644
File mode changed
View
0  deps/js/src/build/hcc 100755 → 100644
File mode changed
View
0  deps/js/src/build/hcpp 100755 → 100644
File mode changed
View
0  deps/js/src/build/msys-perl-wrapper 100755 → 100644
File mode changed
View
0  deps/js/src/build/unix/mddepend.pl 100755 → 100644
File mode changed
View
0  deps/js/src/build/unix/uniq.pl 100755 → 100644
File mode changed
View
0  deps/js/src/build/win32/pgomerge.py 100755 → 100644
File mode changed
View
91 deps/js/src/builtins.tbl
@@ -1,91 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
- * vim: set ts=8 sw=4 et tw=0 ft=C:
- *
- * ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is Mozilla SpiderMonkey JavaScript 1.9 code, released
- * June 22, 2008.
- *
- * The Initial Developer of the Original Code is
- * Andreas Gal <gal@uci.edu>
- *
- * Contributor(s):
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either of the GNU General Public License Version 2 or later (the "GPL"),
- * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
-/**
- * This file declares builtin functions that can be called from JITted code.
- * Each line starts with "BUILTIN" and an integer, the number of arguments the
- * builtin takes. Builtins with no arguments are not supported.
- *
- * The macro arguments are:
- *
- * - 'extern' to indicate extern linkage for these functions and the associated
- * CallInfo.
- *
- * - The return type. This identifier must name one of the _JS_TYPEINFO_*
- * macros defined in jsbuiltins.h.
- *
- * - The builtin name. Prefixed with "js_" this gives the native function name.
- *
- * - The parameter types.
- *
- * - The cse flag. 1 if the builtin call can be optimized away by common
- * subexpression elimination; otherwise 0. This should be 1 only if the
- * function is idempotent and the return value is determined solely by the
- * arguments.
- *
- * - The fold flag. Reserved. The same as cse for now.
- */
-
-/*
- * NB: bool FASTCALL is not compatible with Nanojit's calling convention usage.
- * Do not use bool FASTCALL, use JSBool only!
- */
-
-BUILTIN2(extern, JSVAL, js_BoxDouble, CONTEXT, DOUBLE, 1, 1)
-BUILTIN2(extern, JSVAL, js_BoxInt32, CONTEXT, INT32, 1, 1)
-BUILTIN1(extern, DOUBLE, js_UnboxDouble, JSVAL, 1, 1)
-BUILTIN1(extern, INT32, js_UnboxInt32, JSVAL, 1, 1)
-BUILTIN2(extern, DOUBLE, js_dmod, DOUBLE, DOUBLE, 1, 1)
-BUILTIN2(extern, INT32, js_imod, INT32, INT32, 1, 1)
-BUILTIN1(extern, INT32, js_DoubleToInt32, DOUBLE, 1, 1)
-BUILTIN1(extern, UINT32, js_DoubleToUint32, DOUBLE, 1, 1)
-
-BUILTIN2(extern, DOUBLE, js_StringToNumber, CONTEXT, STRING, 1, 1)
-BUILTIN2(extern, INT32, js_StringToInt32, CONTEXT, STRING, 1, 1)
-BUILTIN2(FRIEND, BOOL, js_CloseIterator, CONTEXT, JSVAL, 0, 0)
-BUILTIN2(extern, SIDEEXIT, js_CallTree, INTERPSTATE, FRAGMENT, 0, 0)
-BUILTIN3(extern, BOOL, js_AddProperty, CONTEXT, OBJECT, SCOPEPROP, 0, 0)
-BUILTIN3(extern, BOOL, js_HasNamedProperty, CONTEXT, OBJECT, STRING, 0, 0)
-BUILTIN3(extern, BOOL, js_HasNamedPropertyInt32, CONTEXT, OBJECT, INT32, 0, 0)
-BUILTIN3(extern, JSVAL, js_CallGetter, CONTEXT, OBJECT, SCOPEPROP, 0, 0)
-BUILTIN2(extern, STRING, js_TypeOfObject, CONTEXT, OBJECT, 1, 1)
-BUILTIN2(extern, STRING, js_TypeOfBoolean, CONTEXT, INT32, 1, 1)
-BUILTIN2(extern, DOUBLE, js_BooleanOrUndefinedToNumber, CONTEXT, INT32, 1, 1)
-BUILTIN2(extern, STRING, js_BooleanOrUndefinedToString, CONTEXT, INT32, 1, 1)
-BUILTIN2(extern, OBJECT, js_Arguments, CONTEXT, OBJECT 0, 0)
-BUILTIN4(extern, OBJECT, js_NewNullClosure, CONTEXT, OBJECT, OBJECT, OBJECT, 0, 0)
View
0  deps/js/src/config/Makefile 100755 → 100644
File mode changed
View
0  deps/js/src/config/Makefile.in 100755 → 100644
File mode changed
View
0  deps/js/src/config/Moz/Milestone.pm 100755 → 100644
File mode changed
View
29 deps/js/src/config/autoconf.mk.in 100755 → 100644
@@ -77,17 +77,15 @@ MOZ_SYNC_BUILD_FILES = @MOZ_SYNC_BUILD_FILES@
MOZ_DEBUG = @MOZ_DEBUG@
MOZ_DEBUG_SYMBOLS = @MOZ_DEBUG_SYMBOLS@
-MOZ_PROFILE_MODULES = @MOZ_PROFILE_MODULES@
MOZ_DEBUG_ENABLE_DEFS = @MOZ_DEBUG_ENABLE_DEFS@
MOZ_DEBUG_DISABLE_DEFS = @MOZ_DEBUG_DISABLE_DEFS@
MOZ_DEBUG_FLAGS = @MOZ_DEBUG_FLAGS@
MOZ_DEBUG_LDFLAGS=@MOZ_DEBUG_LDFLAGS@
MOZ_EXTENSIONS = @MOZ_EXTENSIONS@
-MOZ_IMG_DECODERS= @MOZ_IMG_DECODERS@
-MOZ_IMG_ENCODERS= @MOZ_IMG_ENCODERS@
MOZ_JSDEBUGGER = @MOZ_JSDEBUGGER@
MOZ_LEAKY = @MOZ_LEAKY@
MOZ_MEMORY = @MOZ_MEMORY@
+MOZ_PROFILING = @MOZ_PROFILING@
MOZ_JPROF = @MOZ_JPROF@
MOZ_SHARK = @MOZ_SHARK@
MOZ_CALLGRIND = @MOZ_CALLGRIND@
@@ -214,6 +212,7 @@ HOST_CC = @HOST_CC@
HOST_CXX = @HOST_CXX@
HOST_CFLAGS = @HOST_CFLAGS@
HOST_CXXFLAGS = @HOST_CXXFLAGS@
+HOST_LDFLAGS = @HOST_LDFLAGS@
HOST_OPTIMIZE_FLAGS = @HOST_OPTIMIZE_FLAGS@
HOST_NSPR_MDCPUCFG = @HOST_NSPR_MDCPUCFG@
HOST_AR = @HOST_AR@
@@ -280,9 +279,13 @@ MOZ_TOOLKIT_REGISTRY_CFLAGS = \
MOZ_NATIVE_MAKEDEPEND = @SYSTEM_MAKEDEPEND@
+export CL_INCLUDES_PREFIX = @CL_INCLUDES_PREFIX@
+
MOZ_AUTO_DEPS = @MOZ_AUTO_DEPS@
COMPILER_DEPEND = @COMPILER_DEPEND@
MDDEPDIR := @MDDEPDIR@
+CC_WRAPPER = @CC_WRAPPER@
+CXX_WRAPPER = @CXX_WRAPPER@
MOZ_DEMANGLE_SYMBOLS = @MOZ_DEMANGLE_SYMBOLS@
@@ -293,6 +296,8 @@ OS_TARGET=@OS_TARGET@
OS_ARCH=@OS_ARCH@
OS_RELEASE=@OS_RELEASE@
OS_TEST=@OS_TEST@
+CPU_ARCH=@CPU_ARCH@
+INTEL_ARCHITECTURE=@INTEL_ARCHITECTURE@
# For Solaris build
SOLARIS_SUNPRO_CC = @SOLARIS_SUNPRO_CC@
@@ -303,7 +308,6 @@ AIX_OBJMODEL = @AIX_OBJMODEL@
# For OS/2 build
MOZ_OS2_TOOLS = @MOZ_OS2_TOOLS@
-MOZ_OS2_USE_DECLSPEC = @MOZ_OS2_USE_DECLSPEC@
MOZ_OS2_HIGH_MEMORY = @MOZ_OS2_HIGH_MEMORY@
MOZILLA_OFFICIAL = @MOZILLA_OFFICIAL@
@@ -336,5 +340,22 @@ VISIBILITY_FLAGS = @VISIBILITY_FLAGS@
WRAP_SYSTEM_INCLUDES = @WRAP_SYSTEM_INCLUDES@
ENABLE_TRACEJIT = @ENABLE_TRACEJIT@
+ENABLE_METHODJIT = @ENABLE_METHODJIT@
NANOJIT_ARCH = @NANOJIT_ARCH@
HAVE_ARM_SIMD= @HAVE_ARM_SIMD@
+
+JS_SHARED_LIBRARY = @JS_SHARED_LIBRARY@
+HAVE_LINUX_PERF_EVENT_H = @HAVE_LINUX_PERF_EVENT_H@
+
+# We only want to do the pymake sanity on Windows, other os's can cope
+ifeq (,$(filter-out WINNT WINCE,$(HOST_OS_ARCH)))
+# Ensure invariants between GNU Make and pymake
+# Checked here since we want the sane error in a file that
+# actually can be found regardless of path-style.
+ifeq (_:,$(.PYMAKE)_$(findstring :,$(srcdir)))
+$(error Windows-style srcdir being used with GNU make. Did you mean to run $(topsrcdir)/build/pymake/make.py instead? [see-also: https://developer.mozilla.org/en/Gmake_vs._Pymake])
+endif
+ifeq (1_a,$(.PYMAKE)_$(firstword a$(subst /, ,$(srcdir))))
+$(error MSYS-style srcdir being used with Pymake. Did you mean to run GNU Make instead? [see-also: https://developer.mozilla.org/en/Gmake_vs._Pymake])
+endif
+endif # Windows
View
0  deps/js/src/config/check-sync-dirs.py 100755 → 100644
File mode changed
View
0  deps/js/src/config/check-sync-exceptions 100755 → 100644
File mode changed
View
62 deps/js/src/config/config.mk 100755 → 100644
@@ -45,6 +45,9 @@
#
# Define an include-at-most-once flag
+#ifdef INCLUDED_CONFIG_MK
+#$(error Don't include config.mk twice!)
+#endif
INCLUDED_CONFIG_MK = 1
EXIT_ON_ERROR = set -e; # Shell loops continue past errors without this.
@@ -80,6 +83,11 @@ $(foreach x,$(CHECK_VARS),$(check-variable))
core_abspath = $(if $(findstring :,$(1)),$(1),$(if $(filter /%,$(1)),$(1),$(CURDIR)/$(1)))
+nullstr :=
+space :=$(nullstr) # EOL
+
+core_winabspath = $(firstword $(subst /, ,$(call core_abspath,$(1)))):$(subst $(space),,$(patsubst %,\\%,$(wordlist 2,$(words $(subst /, ,$(call core_abspath,$(1)))), $(strip $(subst /, ,$(call core_abspath,$(1)))))))
+
# FINAL_TARGET specifies the location into which we copy end-user-shipped
# build products (typelibs, components, chrome).
#
@@ -154,9 +162,17 @@ MOZ_WIDGET_SUPPORT_LIBS = $(DIST)/lib/$(LIB_PREFIX)widgetsupport_s.$(LIB_SUFF
ifdef MOZ_MEMORY
ifneq (,$(filter-out WINNT WINCE,$(OS_ARCH)))
JEMALLOC_LIBS = $(MKSHLIB_FORCE_ALL) $(call EXPAND_MOZLIBNAME,jemalloc) $(MKSHLIB_UNFORCE_ALL)
+# If we are linking jemalloc into a program, we want the jemalloc symbols
+# to be exported
+ifneq (,$(SIMPLE_PROGRAMS)$(PROGRAM))
+JEMALLOC_LIBS += $(MOZ_JEMALLOC_STANDALONE_GLUE_LDOPTS)
+endif
endif
endif
+CC := $(CC_WRAPPER) $(CC)
+CXX := $(CXX_WRAPPER) $(CXX)
+
# determine debug-related options
_DEBUG_CFLAGS :=
_DEBUG_LDFLAGS :=
@@ -174,7 +190,7 @@ else
endif
endif
-MOZALLOC_LIB = -L$(DIST)/bin $(call EXPAND_MOZLIBNAME,mozalloc)
+MOZALLOC_LIB = $(call EXPAND_LIBNAME_PATH,mozalloc,$(DIST)/lib)
OS_CFLAGS += $(_DEBUG_CFLAGS)
OS_CXXFLAGS += $(_DEBUG_CFLAGS)
@@ -203,8 +219,12 @@ endif
ifdef MOZ_DEBUG_SYMBOLS
OS_CXXFLAGS += -Zi -UDEBUG -DNDEBUG
OS_CFLAGS += -Zi -UDEBUG -DNDEBUG
+ifdef HAVE_64BIT_OS
+OS_LDFLAGS += -DEBUG -OPT:REF,ICF
+else
OS_LDFLAGS += -DEBUG -OPT:REF
endif
+endif
ifdef MOZ_QUANTIFY
# -FIXED:NO is needed for Quantify to work, but it increases the size
@@ -223,7 +243,11 @@ endif
#
ifdef NS_TRACE_MALLOC
MOZ_OPTIMIZE_FLAGS=-Zi -Od -UDEBUG -DNDEBUG
-OS_LDFLAGS = -DEBUG -PDB:NONE -OPT:REF -OPT:nowin98
+ifdef HAVE_64BIT_OS
+OS_LDFLAGS = -DEBUG -PDB:NONE -OPT:REF,ICF
+else
+OS_LDFLAGS = -DEBUG -PDB:NONE -OPT:REF
+endif
endif # NS_TRACE_MALLOC
endif # MOZ_DEBUG
@@ -318,34 +342,44 @@ STATIC_LIBRARY_NAME=$(LIBRARY_NAME)
endif
endif
+ifeq (WINNT,$(OS_ARCH))
+MOZ_FAKELIBS = 1
+endif
+
# This comes from configure
ifdef MOZ_PROFILE_GUIDED_OPTIMIZE_DISABLE
NO_PROFILE_GUIDED_OPTIMIZE = 1
endif
+# No sense in profiling tools
+ifdef INTERNAL_TOOLS
+NO_PROFILE_GUIDED_OPTIMIZE = 1
+endif
+
+# Don't build SIMPLE_PROGRAMS with PGO, since they don't need it anyway,
+# and we don't have the same build logic to re-link them in the second pass.
+ifdef SIMPLE_PROGRAMS
+NO_PROFILE_GUIDED_OPTIMIZE = 1
+endif
+
# Enable profile-based feedback
ifndef NO_PROFILE_GUIDED_OPTIMIZE
ifdef MOZ_PROFILE_GENERATE
-# No sense in profiling tools
-ifndef INTERNAL_TOOLS
OS_CFLAGS += $(PROFILE_GEN_CFLAGS)
OS_CXXFLAGS += $(PROFILE_GEN_CFLAGS)
OS_LDFLAGS += $(PROFILE_GEN_LDFLAGS)
ifeq (WINNT,$(OS_ARCH))
AR_FLAGS += -LTCG
endif
-endif # INTERNAL_TOOLS
endif # MOZ_PROFILE_GENERATE
ifdef MOZ_PROFILE_USE
-ifndef INTERNAL_TOOLS
OS_CFLAGS += $(PROFILE_USE_CFLAGS)
OS_CXXFLAGS += $(PROFILE_USE_CFLAGS)
OS_LDFLAGS += $(PROFILE_USE_LDFLAGS)
ifeq (WINNT,$(OS_ARCH))
AR_FLAGS += -LTCG
endif
-endif # INTERNAL_TOOLS
endif # MOZ_PROFILE_USE
endif # NO_PROFILE_GUIDED_OPTIMIZE
@@ -370,8 +404,8 @@ DEFINES += \
-DIMPL_THEBES \
$(NULL)
-ifndef MOZ_NATIVE_ZLIB
-DEFINES += -DZLIB_INTERNAL
+ifndef JS_SHARED_LIBRARY
+DEFINES += -DSTATIC_EXPORTABLE_JS_API
endif
endif
endif
@@ -451,12 +485,6 @@ INCLUDES = \
include $(topsrcdir)/config/static-checking-config.mk
-ifdef MOZ_SHARK
-OS_CFLAGS += -F/System/Library/PrivateFrameworks
-OS_CXXFLAGS += -F/System/Library/PrivateFrameworks
-OS_LDFLAGS += -F/System/Library/PrivateFrameworks -framework CHUD
-endif # ifdef MOZ_SHARK
-
CFLAGS = $(OS_CFLAGS)
CXXFLAGS = $(OS_CXXFLAGS)
LDFLAGS = $(OS_LDFLAGS) $(MOZ_FIX_LINK_PATHS)
@@ -713,7 +741,7 @@ DEFINES += -DOSARCH=$(OS_ARCH)
######################################################################
-GARBAGE += $(DEPENDENCIES) $(MKDEPENDENCIES) $(MKDEPENDENCIES).bak core $(wildcard core.[0-9]*) $(wildcard *.err) $(wildcard *.pure) $(wildcard *_pure_*.o) Templates.DB
+GARBAGE += $(DEPENDENCIES) $(MKDEPENDENCIES) $(MKDEPENDENCIES).bak core $(wildcard core.[0-9]*) $(wildcard *.err) $(wildcard *.pure) $(wildcard *_pure_*.o) Templates.DB $(FAKE_LIBRARY)
ifeq ($(OS_ARCH),Darwin)
ifndef NSDISTMODE
@@ -821,3 +849,5 @@ ifdef TIERS
DIRS += $(foreach tier,$(TIERS),$(tier_$(tier)_dirs))
STATIC_DIRS += $(foreach tier,$(TIERS),$(tier_$(tier)_staticdirs))
endif
+
+OPTIMIZE_JARS_CMD = $(PYTHON) $(call core_abspath,$(topsrcdir)/config/optimizejars.py)
View
0  deps/js/src/config/fastcwd.pl 100755 → 100644
File mode changed
View
0  deps/js/src/config/gcc_hidden.h 100755 → 100644
File mode changed
View
0  deps/js/src/config/make-system-wrappers.pl 100755 → 100644
File mode changed
View
0  deps/js/src/config/milestone.pl 100755 → 100644
File mode changed
View
2  deps/js/src/config/milestone.txt 100755 → 100644
@@ -10,4 +10,4 @@
# hardcoded milestones in the tree from these two files.
#--------------------------------------------------------
-2.0b2pre
+2.0
View
0  deps/js/src/config/mkdepend/Makefile 100755 → 100644
File mode changed
View
0  deps/js/src/config/mkdepend/Makefile.in 100755 → 100644
File mode changed
View
0  deps/js/src/config/mkdepend/cppsetup.c 100755 → 100644
File mode changed
View
0  deps/js/src/config/mkdepend/def.h 100755 → 100644
File mode changed
View
0  deps/js/src/config/mkdepend/ifparser.c 100755 → 100644
File mode changed
View
0  deps/js/src/config/mkdepend/ifparser.h 100755 → 100644
File mode changed
View
0  deps/js/src/config/mkdepend/imakemdep.h 100755 → 100644
File mode changed
View
0  deps/js/src/config/mkdepend/include.c 100755 → 100644
File mode changed
View
0  deps/js/src/config/mkdepend/main.c 100755 → 100644
File mode changed
View
0  deps/js/src/config/mkdepend/mkdepend.man 100755 → 100644
File mode changed
View
0  deps/js/src/config/mkdepend/parse.c 100755 → 100644
File mode changed
View
0  deps/js/src/config/mkdepend/pr.c 100755 → 100644
File mode changed
View
0  deps/js/src/config/nfspwd.pl 100755 → 100644
File mode changed
View
0  deps/js/src/config/nsinstall.c 100755 → 100644
File mode changed
View
0  deps/js/src/config/nsinstall.exe.manifest 100755 → 100644
File mode changed
View
0  deps/js/src/config/nsinstall.py 100755 → 100644
File mode changed
View
0  deps/js/src/config/nsinstall_win.c 100755 → 100644
File mode changed
View
0  deps/js/src/config/pathsub.c 100755 → 100644
File mode changed
View
0  deps/js/src/config/pathsub.h 100755 → 100644
File mode changed
View
0  deps/js/src/config/preprocessor.pl 100755 → 100644
File mode changed
View
203 deps/js/src/config/rules.mk 100755 → 100644
@@ -76,7 +76,7 @@ ifdef SYSTEM_LIBXUL
endif
# ELOG prints out failed command when building silently (gmake -s).
-ifneq (,$(findstring -s,$(MAKEFLAGS)))
+ifneq (,$(findstring s, $(filter-out --%, $(MAKEFLAGS))))
ELOG := $(EXEC) sh $(BUILD_TOOLS)/print-failed-commands.sh
else
ELOG :=
@@ -121,6 +121,21 @@ EXPAND_LIBNAME_PATH = -L$(2) $(addprefix -l,$(1))
EXPAND_MOZLIBNAME = $(addprefix -l,$(1))
endif
+ifdef MOZ_FAKELIBS
+# If a lib.fake is present, replace it with @lib.fake, otherwise just pass
+# the library name through unchanged.
+EXPAND_FAKELIBS = $(foreach f,$(1),$(if $(wildcard $(f).fake),@$(wildcard $(f).fake),$(f)))
+
+# Also override EXPAND_LIBNAME_PATH and EXPAND_MOZLIBNAME on non-RELATIVE_PATH
+# platforms, so we can shortcut linking -lfoo if we have foo.a.fake
+ifndef _LIBNAME_RELATIVE_PATHS
+EXPAND_LIBNAME_PATH = $(if $(wildcard $(2)/$(LIB_PREFIX)$(1).$(LIB_SUFFIX).fake),@$(2)/$(LIB_PREFIX)$(1).$(LIB_SUFFIX).fake,-L$(2) $(addprefix -l,$(1)))
+EXPAND_MOZLIBNAME = $(if $(wildcard $(DIST)/lib/$(LIB_PREFIX)$(1).$(LIB_SUFFIX).fake),@$(DIST)/lib/$(LIB_PREFIX)$(1).$(LIB_SUFFIX).fake,$(addprefix -l,$(1)))
+endif
+else
+EXPAND_FAKELIBS = $1
+endif
+
ifdef EXTRA_DSO_LIBS
EXTRA_DSO_LIBS := $(call EXPAND_MOZLIBNAME,$(EXTRA_DSO_LIBS))
endif
@@ -129,15 +144,15 @@ endif
# Testing frameworks support
################################################################################
+testxpcobjdir = $(DEPTH)/_tests/xpcshell
+
ifdef ENABLE_TESTS
ifdef XPCSHELL_TESTS
-ifndef MODULE
-$(error Must define MODULE when defining XPCSHELL_TESTS.)
+ifndef relativesrcdir
+$(error Must define relativesrcdir when defining XPCSHELL_TESTS.)
endif
-testxpcobjdir = $(DEPTH)/_tests/xpcshell
-
# Test file installation
ifneq (,$(filter WINNT os2-emx,$(HOST_OS_ARCH)))
# Windows and OS/2 nsinstall can't recursively copy directories, so use nsinstall.py
@@ -147,7 +162,7 @@ TEST_INSTALLER = $(INSTALL)
endif
define _INSTALL_TESTS
-$(TEST_INSTALLER) $(wildcard $(srcdir)/$(dir)/*) $(testxpcobjdir)/$(MODULE)/$(dir)
+$(TEST_INSTALLER) $(wildcard $(srcdir)/$(dir)/*) $(testxpcobjdir)/$(relativesrcdir)/$(dir)
endef # do not remove the blank line!
@@ -156,8 +171,8 @@ SOLO_FILE ?= $(error Specify a test filename in SOLO_FILE when using check-inter
libs::
$(foreach dir,$(XPCSHELL_TESTS),$(_INSTALL_TESTS))
$(PYTHON) $(MOZILLA_DIR)/config/buildlist.py \
- $(testxpcobjdir)/all-test-dirs.list \
- $(addprefix $(MODULE)/,$(XPCSHELL_TESTS))
+ $(testxpcobjdir)/all-test-dirs.list \
+ $(addprefix $(relativesrcdir)/,$(XPCSHELL_TESTS))
testxpcsrcdir = $(topsrcdir)/testing/xpcshell
@@ -165,39 +180,39 @@ testxpcsrcdir = $(topsrcdir)/testing/xpcshell
# See also testsuite-targets.mk 'xpcshell-tests' target for global execution.
xpcshell-tests:
$(PYTHON) -u $(topsrcdir)/config/pythonpath.py \
- -I$(topsrcdir)/build \
- $(testxpcsrcdir)/runxpcshelltests.py \
- --symbols-path=$(DIST)/crashreporter-symbols \
- $(EXTRA_TEST_ARGS) \
- $(DIST)/bin/xpcshell \
- $(foreach dir,$(XPCSHELL_TESTS),$(testxpcobjdir)/$(MODULE)/$(dir))
+ -I$(topsrcdir)/build \
+ $(testxpcsrcdir)/runxpcshelltests.py \
+ --symbols-path=$(DIST)/crashreporter-symbols \
+ $(EXTRA_TEST_ARGS) \
+ $(DIST)/bin/xpcshell \
+ $(foreach dir,$(XPCSHELL_TESTS),$(testxpcobjdir)/$(relativesrcdir)/$(dir))
# Execute a single test, specified in $(SOLO_FILE), but don't automatically
# start the test. Instead, present the xpcshell prompt so the user can
# attach a debugger and then start the test.
check-interactive:
$(PYTHON) -u $(topsrcdir)/config/pythonpath.py \
- -I$(topsrcdir)/build \
- $(testxpcsrcdir)/runxpcshelltests.py \
- --symbols-path=$(DIST)/crashreporter-symbols \
- --test-path=$(SOLO_FILE) \
- --profile-name=$(MOZ_APP_NAME) \
- --interactive \
- $(DIST)/bin/xpcshell \
- $(foreach dir,$(XPCSHELL_TESTS),$(testxpcobjdir)/$(MODULE)/$(dir))
+ -I$(topsrcdir)/build \
+ $(testxpcsrcdir)/runxpcshelltests.py \
+ --symbols-path=$(DIST)/crashreporter-symbols \
+ --test-path=$(SOLO_FILE) \
+ --profile-name=$(MOZ_APP_NAME) \
+ --interactive \
+ $(DIST)/bin/xpcshell \
+ $(foreach dir,$(XPCSHELL_TESTS),$(testxpcobjdir)/$(relativesrcdir)/$(dir))
# Execute a single test, specified in $(SOLO_FILE)
check-one:
$(PYTHON) -u $(topsrcdir)/config/pythonpath.py \
- -I$(topsrcdir)/build \
- $(testxpcsrcdir)/runxpcshelltests.py \
- --symbols-path=$(DIST)/crashreporter-symbols \
- --test-path=$(SOLO_FILE) \
- --profile-name=$(MOZ_APP_NAME) \
- --verbose \
- $(EXTRA_TEST_ARGS) \
- $(DIST)/bin/xpcshell \
- $(foreach dir,$(XPCSHELL_TESTS),$(testxpcobjdir)/$(MODULE)/$(dir))
+ -I$(topsrcdir)/build \
+ $(testxpcsrcdir)/runxpcshelltests.py \
+ --symbols-path=$(DIST)/crashreporter-symbols \
+ --test-path=$(SOLO_FILE) \
+ --profile-name=$(MOZ_APP_NAME) \
+ --verbose \
+ $(EXTRA_TEST_ARGS) \
+ $(DIST)/bin/xpcshell \
+ $(foreach dir,$(XPCSHELL_TESTS),$(testxpcobjdir)/$(relativesrcdir)/$(dir))
endif # XPCSHELL_TESTS
@@ -209,7 +224,7 @@ ifdef CPP_UNIT_TESTS
CPPSRCS += $(CPP_UNIT_TESTS)
SIMPLE_PROGRAMS += $(CPP_UNIT_TESTS:.cpp=$(BIN_SUFFIX))
INCLUDES += -I$(DIST)/include/testing
-LIBS += $(XPCOM_GLUE_LDOPTS) $(NSPR_LIBS)
+LIBS += $(XPCOM_GLUE_LDOPTS) $(NSPR_LIBS) -ljs_static
# ...and run them the usual way
check::
@@ -235,6 +250,11 @@ endif # ENABLE_TESTS
ifndef LIBRARY
ifdef STATIC_LIBRARY_NAME
LIBRARY := $(LIB_PREFIX)$(STATIC_LIBRARY_NAME).$(LIB_SUFFIX)
+ifdef MOZ_FAKELIBS
+ifndef SUPPRESS_FAKELIB
+FAKE_LIBRARY = $(LIBRARY).fake
+endif # SUPPRESS_FAKELIB
+endif # MOZ_FAKELIBS
endif # STATIC_LIBRARY_NAME
endif # LIBRARY
@@ -467,7 +487,7 @@ UPDATE_TITLE = sed -e "s!Y!$(1) in $(shell $(BUILD_TOOLS)/print-depth-path.sh)/$
endif
define SUBMAKE # $(call SUBMAKE,target,directory)
-@$(UPDATE_TITLE)
++@$(UPDATE_TITLE)
+@$(MAKE) $(if $(2),-C $(2)) $(1)
endef # The extra line is important here! don't delete it
@@ -536,6 +556,9 @@ TAG_PROGRAM = xargs etags -a
ifneq ($(CPPSRCS)$(CMMSRCS),)
CPP_PROG_LINK = 1
endif
+ifneq ($(HOST_CPPSRCS)$(HOST_CMMSRCS),)
+HOST_CPP_PROG_LINK = 1
+endif
#
# Make sure to wrap static libs inside linker specific flags to turn on & off
@@ -543,7 +566,7 @@ endif
#
ifndef NO_LD_ARCHIVE_FLAGS
ifdef SHARED_LIBRARY_LIBS
-EXTRA_DSO_LDOPTS := $(MKSHLIB_FORCE_ALL) $(SHARED_LIBRARY_LIBS) $(MKSHLIB_UNFORCE_ALL) $(EXTRA_DSO_LDOPTS)
+EXTRA_DSO_LDOPTS := $(MKSHLIB_FORCE_ALL) $(call EXPAND_FAKELIBS,$(SHARED_LIBRARY_LIBS)) $(MKSHLIB_UNFORCE_ALL) $(EXTRA_DSO_LDOPTS)
endif
endif
@@ -826,7 +849,7 @@ ifdef MODULE_NAME
@$(PYTHON) $(MOZILLA_DIR)/config/buildlist.py $(FINAL_LINK_COMP_NAMES) $(MODULE_NAME)
endif
endif # BUILD_STATIC_LIBS
-else # !IS_COMPONENT
+else # !IS_COMPONENT
$(PYTHON) $(MOZILLA_DIR)/config/buildlist.py $(FINAL_LINK_LIBS) $(STATIC_LIBRARY_NAME)
endif # IS_COMPONENT
endif # EXPORT_LIBRARY
@@ -854,7 +877,7 @@ endif # _LIBDIRS
endif # _LIBNAME_RELATIVE_PATHS
-# Dependancies which, if modified, should cause everything to rebuild
+# Dependencies which, if modified, should cause everything to rebuild
GLOBAL_DEPS += Makefile Makefile.in $(DEPTH)/config/autoconf.mk $(topsrcdir)/config/config.mk
##############################################
@@ -870,9 +893,9 @@ ifndef NO_DIST_INSTALL
ifdef LIBRARY
ifdef EXPORT_LIBRARY # Stage libs that will be linked into a static build
ifdef IS_COMPONENT
- $(INSTALL) $(IFLAGS1) $(LIBRARY) $(DEPTH)/staticlib/components
+ $(INSTALL) $(IFLAGS1) $(LIBRARY) $(FAKE_LIBRARY) $(DEPTH)/staticlib/components
else
- $(INSTALL) $(IFLAGS1) $(LIBRARY) $(DEPTH)/staticlib
+ $(INSTALL) $(IFLAGS1) $(LIBRARY) $(FAKE_LIBRARY) $(DEPTH)/staticlib
endif
endif # EXPORT_LIBRARY
ifdef DIST_INSTALL
@@ -888,6 +911,7 @@ ifdef IS_COMPONENT
$(INSTALL) $(IFLAGS2) $(SHARED_LIBRARY) $(FINAL_TARGET)/components
$(ELF_DYNSTR_GC) $(FINAL_TARGET)/components/$(SHARED_LIBRARY)
ifndef NO_COMPONENTS_MANIFEST
+ @$(PYTHON) $(MOZILLA_DIR)/config/buildlist.py $(FINAL_TARGET)/chrome.manifest "manifest components/components.manifest"
@$(PYTHON) $(MOZILLA_DIR)/config/buildlist.py $(FINAL_TARGET)/components/components.manifest "binary-component $(SHARED_LIBRARY)"
endif
ifdef BEOS_ADDON_WORKAROUND
@@ -934,7 +958,7 @@ endif # !NO_DIST_INSTALL
ifndef NO_PROFILE_GUIDED_OPTIMIZE
ifdef MOZ_PROFILE_USE
-ifeq ($(OS_ARCH)_$(GNU_CC)$(INTERNAL_TOOLS), WINNT_)
+ifeq ($(OS_ARCH)_$(GNU_CC), WINNT_)
# When building with PGO, we have to make sure to re-link
# in the MOZ_PROFILE_USE phase if we linked in the
# MOZ_PROFILE_GENERATE phase. We'll touch this pgo.relink
@@ -954,11 +978,11 @@ ifneq (,$(SHARED_LIBRARY)$(PROGRAM))
export::
ifdef PROGRAM
$(PYTHON) $(topsrcdir)/build/win32/pgomerge.py \
- $(PROGRAM:$(BIN_SUFFIX)=) $(DIST)/bin
+ $(PROGRAM:$(BIN_SUFFIX)=) $(DIST)/$(MOZ_APP_NAME)
endif
ifdef SHARED_LIBRARY
$(PYTHON) $(topsrcdir)/build/win32/pgomerge.py \
- $(SHARED_LIBRARY_NAME) $(DIST)/bin
+ $(SHARED_LIBRARY_NAME) $(DIST)/$(MOZ_APP_NAME)
endif
endif # SHARED_LIBRARY || PROGRAM
endif # WINNT_
@@ -998,10 +1022,10 @@ alltags:
$(PROGRAM): $(PROGOBJS) $(LIBS_DEPS) $(EXTRA_DEPS) $(EXE_DEF_FILE) $(RESFILE) $(GLOBAL_DEPS)
@rm -f $@.manifest
ifeq (WINCE,$(OS_ARCH))
- $(LD) -NOLOGO -OUT:$@ $(WIN32_EXE_LDFLAGS) $(LDFLAGS) $(PROGOBJS) $(RESFILE) $(LIBS) $(EXTRA_LIBS) $(OS_LIBS)
+ $(LD) -NOLOGO -OUT:$@ $(WIN32_EXE_LDFLAGS) $(LDFLAGS) $(PROGOBJS) $(RESFILE) $(call EXPAND_FAKELIBS,$(LIBS) $(EXTRA_LIBS) $(OS_LIBS))
else
ifeq (_WINNT,$(GNU_CC)_$(OS_ARCH))
- $(LD) -NOLOGO -OUT:$@ -PDB:$(LINK_PDBFILE) $(WIN32_EXE_LDFLAGS) $(LDFLAGS) $(PROGOBJS) $(RESFILE) $(LIBS) $(EXTRA_LIBS) $(OS_LIBS)
+ $(LD) -NOLOGO -OUT:$@ -PDB:$(LINK_PDBFILE) $(WIN32_EXE_LDFLAGS) $(LDFLAGS) $(PROGOBJS) $(RESFILE) $(call EXPAND_FAKELIBS,$(LIBS) $(EXTRA_LIBS) $(OS_LIBS))
ifdef MSMANIFEST_TOOL
@if test -f $@.manifest; then \
if test -f "$(srcdir)/$@.manifest"; then \
@@ -1023,9 +1047,9 @@ ifdef MOZ_PROFILE_GENERATE
endif
else # !WINNT || GNU_CC
ifeq ($(CPP_PROG_LINK),1)
- $(CCC) -o $@ $(CXXFLAGS) $(WRAP_MALLOC_CFLAGS) $(PROGOBJS) $(RESFILE) $(WIN32_EXE_LDFLAGS) $(LDFLAGS) $(LIBS_DIR) $(LIBS) $(OS_LIBS) $(EXTRA_LIBS) $(BIN_FLAGS) $(WRAP_MALLOC_LIB) $(EXE_DEF_FILE)
+ $(CCC) -o $@ $(CXXFLAGS) $(WRAP_MALLOC_CFLAGS) $(PROGOBJS) $(RESFILE) $(WIN32_EXE_LDFLAGS) $(LDFLAGS) $(LIBS_DIR) $(call EXPAND_FAKELIBS,$(LIBS) $(OS_LIBS) $(EXTRA_LIBS)) $(BIN_FLAGS) $(call EXPAND_FAKELIBS,$(WRAP_MALLOC_LIB)) $(EXE_DEF_FILE)
else # ! CPP_PROG_LINK
- $(CC) -o $@ $(CFLAGS) $(PROGOBJS) $(RESFILE) $(WIN32_EXE_LDFLAGS) $(LDFLAGS) $(LIBS_DIR) $(LIBS) $(OS_LIBS) $(EXTRA_LIBS) $(BIN_FLAGS) $(EXE_DEF_FILE)
+ $(CC) -o $@ $(CFLAGS) $(PROGOBJS) $(RESFILE) $(WIN32_EXE_LDFLAGS) $(LDFLAGS) $(LIBS_DIR) $(call EXPAND_FAKELIBS,$(LIBS) $(OS_LIBS) $(EXTRA_LIBS)) $(BIN_FLAGS) $(EXE_DEF_FILE)
endif # CPP_PROG_LINK
endif # WINNT && !GNU_CC
endif # WINCE
@@ -1064,11 +1088,11 @@ ifdef MSMANIFEST_TOOL
fi
endif # MSVC with manifest tool
else
-ifeq ($(CPP_PROG_LINK),1)
+ifeq ($(HOST_CPP_PROG_LINK),1)
$(HOST_CXX) -o $@ $(HOST_CXXFLAGS) $(HOST_LDFLAGS) $(HOST_PROGOBJS) $(HOST_LIBS) $(HOST_EXTRA_LIBS)
else
$(HOST_CC) -o $@ $(HOST_CFLAGS) $(HOST_LDFLAGS) $(HOST_PROGOBJS) $(HOST_LIBS) $(HOST_EXTRA_LIBS)
-endif # CPP_PROG_LINK
+endif # HOST_CPP_PROG_LINK
endif
endif
@@ -1082,10 +1106,10 @@ endif
#
$(SIMPLE_PROGRAMS): %$(BIN_SUFFIX): %.$(OBJ_SUFFIX) $(LIBS_DEPS) $(EXTRA_DEPS) $(GLOBAL_DEPS)
ifeq (WINCE,$(OS_ARCH))
- $(LD) -nologo -entry:mainACRTStartup -out:$@ $< $(WIN32_EXE_LDFLAGS) $(LDFLAGS) $(LIBS) $(EXTRA_LIBS) $(OS_LIBS)
+ $(LD) -nologo -entry:mainACRTStartup -out:$@ $< $(WIN32_EXE_LDFLAGS) $(LDFLAGS) $(call EXPAND_FAKELIBS,$(LIBS) $(EXTRA_LIBS) $(OS_LIBS))
else
ifeq (_WINNT,$(GNU_CC)_$(OS_ARCH))
- $(LD) -nologo -out:$@ -pdb:$(LINK_PDBFILE) $< $(WIN32_EXE_LDFLAGS) $(LDFLAGS) $(LIBS) $(EXTRA_LIBS) $(OS_LIBS)
+ $(LD) -nologo -out:$@ -pdb:$(LINK_PDBFILE) $< $(WIN32_EXE_LDFLAGS) $(LDFLAGS) $(call EXPAND_FAKELIBS,$(LIBS) $(EXTRA_LIBS) $(OS_LIBS))
ifdef MSMANIFEST_TOOL
@if test -f $@.manifest; then \
mt.exe -NOLOGO -MANIFEST $@.manifest -OUTPUTRESOURCE:$@\;1; \
@@ -1094,9 +1118,9 @@ ifdef MSMANIFEST_TOOL
endif # MSVC with manifest tool
else
ifeq ($(CPP_PROG_LINK),1)
- $(CCC) $(WRAP_MALLOC_CFLAGS) $(CXXFLAGS) -o $@ $< $(WIN32_EXE_LDFLAGS) $(LDFLAGS) $(LIBS_DIR) $(LIBS) $(OS_LIBS) $(EXTRA_LIBS) $(WRAP_MALLOC_LIB) $(BIN_FLAGS)
+ $(CCC) $(WRAP_MALLOC_CFLAGS) $(CXXFLAGS) -o $@ $< $(WIN32_EXE_LDFLAGS) $(LDFLAGS) $(LIBS_DIR) $(call EXPAND_FAKELIBS,$(LIBS) $(OS_LIBS) $(EXTRA_LIBS) $(WRAP_MALLOC_LIB)) $(BIN_FLAGS)
else
- $(CC) $(WRAP_MALLOC_CFLAGS) $(CFLAGS) $(OUTOPTION)$@ $< $(WIN32_EXE_LDFLAGS) $(LDFLAGS) $(LIBS_DIR) $(LIBS) $(OS_LIBS) $(EXTRA_LIBS) $(WRAP_MALLOC_LIB) $(BIN_FLAGS)
+ $(CC) $(WRAP_MALLOC_CFLAGS) $(CFLAGS) $(OUTOPTION)$@ $< $(WIN32_EXE_LDFLAGS) $(LDFLAGS) $(LIBS_DIR) $(call EXPAND_FAKELIBS,$(LIBS) $(OS_LIBS) $(EXTRA_LIBS) $(WRAP_MALLOC_LIB)) $(BIN_FLAGS)
endif # CPP_PROG_LINK
endif # WINNT && !GNU_CC
endif # WINCE
@@ -1158,6 +1182,17 @@ ifneq (,$(BUILD_STATIC_LIBS)$(FORCE_STATIC_LIB))
LOBJS += $(SHARED_LIBRARY_LIBS)
endif
else
+NONFAKE_SHARED_LIBRARY_LIBS = $(filter-out %.fake,$(call EXPAND_FAKELIBS,$(SHARED_LIBRARY_LIBS)))
+ifeq (,$(NONFAKE_SHARED_LIBRARY_LIBS))
+# All of our SHARED_LIBRARY_LIBS have fake equivalents. Score!
+# Just pass the original object files around.
+# For shared libraries, these are already included in EXTRA_DSO_LDOPTS
+# above.
+ifndef SHARED_LIBRARY
+LOBJS += $(shell cat $(addsuffix .fake,$(SHARED_LIBRARY_LIBS)))
+endif
+SKIP_SUB_LOBJS := 1
+else
ifneq (,$(filter OSF1 BSD_OS FreeBSD NetBSD OpenBSD SunOS Darwin,$(OS_ARCH)))
CLEANUP1 := | egrep -v '(________64ELEL_|__.SYMDEF)'
CLEANUP2 := rm -f ________64ELEL_ __.SYMDEF
@@ -1165,7 +1200,8 @@ else
CLEANUP2 := true
endif
SUB_LOBJS = $(shell for lib in $(SHARED_LIBRARY_LIBS); do $(AR_LIST) $${lib} $(CLEANUP1); done;)
-endif
+endif # EXPAND_FAKELIBS
+endif # SHARED_LIBRARY_LIBS
endif
ifdef MOZILLA_PROBE_LIBS
PROBE_LOBJS = $(shell for lib in $(MOZILLA_PROBE_LIBS); do $(AR_LIST) $${lib} $(CLEANUP1); done;)
@@ -1176,15 +1212,33 @@ endif
$(LIBRARY): $(OBJS) $(LOBJS) $(SHARED_LIBRARY_LIBS) $(EXTRA_DEPS) $(GLOBAL_DEPS)
rm -f $@
+ifndef SKIP_SUB_LOBJS
ifneq (,$(GNU_LD)$(filter-out OS2 WINNT WINCE, $(OS_ARCH)))
ifdef SHARED_LIBRARY_LIBS
@rm -f $(SUB_LOBJS)
@for lib in $(SHARED_LIBRARY_LIBS); do $(AR_EXTRACT) $${lib}; $(CLEANUP2); done
endif
endif
+endif # SKIP_SUB_LOBJS
$(AR) $(AR_FLAGS) $(OBJS) $(LOBJS) $(SUB_LOBJS)
$(RANLIB) $@
+ifndef MOZ_FAKELIBS
+# Don't clean these up if we're building a fake lib, because then
+# we'll reference nonexistent object files in our fake lib.
@rm -f foodummyfilefoo $(SUB_LOBJS)
+endif
+# Also produce a .fake file that just contains the names of the object files.
+# This can be used as a response file to the linker later instead of
+# linking the actual static library.
+ifdef MOZ_FAKELIBS
+ifndef SUPPRESS_FAKELIB
+ifeq (WINNT_,$(HOST_OS_ARCH)_$(.PYMAKE))
+ echo "$(strip $(foreach f,$(OBJS) $(SEPARATE_OBJS) $(LOBJS) $(SUB_LOBJS),$(subst \,\\,$(call core_winabspath,$(f))))) " > $@.fake
+else
+ echo "$(strip $(foreach f,$(OBJS) $(SEPARATE_OBJS) $(LOBJS) $(SUB_LOBJS),$(call core_abspath,$(f)))) " > $@.fake
+endif
+endif
+endif
ifeq (,$(filter-out WINNT WINCE, $(OS_ARCH)))
$(IMPORT_LIBRARY): $(SHARED_LIBRARY)
@@ -1198,26 +1252,10 @@ $(DEF_FILE): $(OBJS) $(SHARED_LIBRARY_LIBS)
echo CODE LOADONCALL MOVEABLE DISCARDABLE >> $@
echo DATA PRELOAD MOVEABLE MULTIPLE NONSHARED >> $@
echo EXPORTS >> $@
-ifeq ($(IS_COMPONENT),1)
-ifeq ($(HAS_EXTRAEXPORTS),1)
-ifndef MOZ_OS2_USE_DECLSPEC
- $(FILTER) $(OBJS) $(SHARED_LIBRARY_LIBS) >> $@
-endif
-else
- echo _NSGetModule >> $@
-endif
-else
-ifndef MOZ_OS2_USE_DECLSPEC
- $(FILTER) $(OBJS) $(SHARED_LIBRARY_LIBS) >> $@
-endif
-endif
+
$(ADD_TO_DEF_FILE)
-ifdef MOZ_OS2_USE_DECLSPEC
$(IMPORT_LIBRARY): $(SHARED_LIBRARY)
-else
-$(IMPORT_LIBRARY): $(DEF_FILE)
-endif
rm -f $@
$(IMPLIB) $@ $^
$(RANLIB) $@
@@ -1295,7 +1333,7 @@ endif
ofiles=`$(AR_LIST) $${lib}`; \
$(AR_DELETE) $${lib} $$ofiles; \
done
- $(MKSHLIB) $(SHLIB_LDSTARTFILE) $(OBJS) $(LOBJS) $(SUB_SHLOBJS) $(DTRACE_PROBE_OBJ) $(PROBE_LOBJS) $(RESFILE) $(LDFLAGS) $(EXTRA_DSO_LDOPTS) $(OS_LIBS) $(EXTRA_LIBS) $(DEF_FILE) $(SHLIB_LDENDFILE)
+ $(MKSHLIB) $(SHLIB_LDSTARTFILE) $(OBJS) $(LOBJS) $(SUB_SHLOBJS) $(DTRACE_PROBE_OBJ) $(PROBE_LOBJS) $(RESFILE) $(LDFLAGS) $(EXTRA_DSO_LDOPTS) $(call EXPAND_FAKELIBS,$(OS_LIBS) $(EXTRA_LIBS)) $(DEF_FILE) $(SHLIB_LDENDFILE)
@rm -f $(PROBE_LOBJS)
@rm -f $(DTRACE_PROBE_OBJ)
@for lib in $(MOZILLA_PROBE_LIBS); do \
@@ -1304,7 +1342,7 @@ endif
@rm -f $(MOZILLA_PROBE_LIBS)
else # ! DTRACE_LIB_DEPENDENT
- $(MKSHLIB) $(SHLIB_LDSTARTFILE) $(OBJS) $(DTRACE_PROBE_OBJ) $(LOBJS) $(SUB_SHLOBJS) $(RESFILE) $(LDFLAGS) $(EXTRA_DSO_LDOPTS) $(OS_LIBS) $(EXTRA_LIBS) $(DEF_FILE) $(SHLIB_LDENDFILE)
+ $(MKSHLIB) $(SHLIB_LDSTARTFILE) $(OBJS) $(DTRACE_PROBE_OBJ) $(LOBJS) $(SUB_SHLOBJS) $(RESFILE) $(LDFLAGS) $(EXTRA_DSO_LDOPTS) $(call EXPAND_FAKELIBS,$(OS_LIBS) $(EXTRA_LIBS)) $(DEF_FILE) $(SHLIB_LDENDFILE)
endif # DTRACE_LIB_DEPENDENT
ifeq (_WINNT,$(GNU_CC)_$(OS_ARCH))
@@ -1401,12 +1439,15 @@ host_%.$(OBJ_SUFFIX): %.mm $(GLOBAL_DEPS)
@$(MAKE_DEPS_AUTO_CC)
$(ELOG) $(CC) $(OUTOPTION)$@ -c $(COMPILE_CFLAGS) $(_VPATH_SRCS)
+# DEFINES and ACDEFINES are needed here to enable conditional compilation of Q_OBJECTs:
+# 'moc' only knows about #defines it gets on the command line (-D...), not in
+# included headers like mozilla-config.h
moc_%.cpp: %.h $(GLOBAL_DEPS)
- $(MOC) $< $(OUTOPTION)$@
+ $(MOC) $(DEFINES) $(ACDEFINES) $< $(OUTOPTION)$@
moc_%.cc: %.cc $(GLOBAL_DEPS)
$(REPORT_BUILD)
- $(ELOG) $(MOC) $(_VPATH_SRCS:.cc=.h) $(OUTOPTION)$@
+ $(ELOG) $(MOC) $(DEFINES) $(ACDEFINES) $(_VPATH_SRCS:.cc=.h) $(OUTOPTION)$@
ifdef ASFILES
# The AS_DASH_C_FLAG is needed cause not all assemblers (Solaris) accept
@@ -1524,7 +1565,7 @@ normalizepath = $(foreach p,$(1),$(shell cygpath -m $(p)))
else
# assume MSYS
# We use 'pwd -W' to get DOS form of the path. However, since the given path
-# could be a file or a nonexistent path, we cannot call 'pwd -W' directly
+# could be a file or a non-existent path, we cannot call 'pwd -W' directly
# on the path. Instead, we extract the root path (i.e. "c:/"), call 'pwd -W'
# on it, then merge with the rest of the path.
root-path = $(shell echo $(1) | sed -e "s|\(/[^/]*\)/\?\(.*\)|\1|")
@@ -1729,6 +1770,7 @@ ifndef NO_DIST_INSTALL
$(INSTALL) $(IFLAGS1) $(XPIDL_GEN_DIR)/$(XPIDL_MODULE).xpt $(FINAL_TARGET)/components
ifndef NO_INTERFACES_MANIFEST
@$(PYTHON) $(MOZILLA_DIR)/config/buildlist.py $(FINAL_TARGET)/components/interfaces.manifest "interfaces $(XPIDL_MODULE).xpt"
+ @$(PYTHON) $(MOZILLA_DIR)/config/buildlist.py $(FINAL_TARGET)/chrome.manifest "manifest components/interfaces.manifest"
endif
endif
@@ -1819,7 +1861,7 @@ endif # MOZ_JAVAXPCOM
ifneq (,$(filter %.js,$(EXTRA_COMPONENTS) $(EXTRA_PP_COMPONENTS)))
ifeq (,$(filter %.manifest,$(EXTRA_COMPONENTS) $(EXTRA_PP_COMPONENTS)))
ifndef NO_JS_MANIFEST
-$(error .js component without matching .manifest)
+$(error .js component without matching .manifest. See https://developer.mozilla.org/en/XPCOM/XPCOM_changes_in_Gecko_2.0)
endif
endif
endif
@@ -1844,7 +1886,12 @@ ifndef NO_DIST_INSTALL
$(PYTHON) $(topsrcdir)/config/Preprocessor.py $(DEFINES) $(ACDEFINES) $(XULPPFLAGS) $$i > $$dest; \
done
endif
+endif
+EXTRA_MANIFESTS = $(filter %.manifest,$(EXTRA_COMPONENTS) $(EXTRA_PP_COMPONENTS))
+ifneq (,$(EXTRA_MANIFESTS))
+libs::
+ $(PYTHON) $(MOZILLA_DIR)/config/buildlist.py $(FINAL_TARGET)/chrome.manifest $(patsubst %,"manifest components/%",$(notdir $(EXTRA_MANIFESTS)))
endif
################################################################################
@@ -1910,9 +1957,9 @@ chrome::
$(FINAL_TARGET)/chrome:
$(NSINSTALL) -D $@
+libs realchrome:: $(CHROME_DEPS) $(FINAL_TARGET)/chrome
ifneq (,$(wildcard $(JAR_MANIFEST)))
ifndef NO_DIST_INSTALL
-libs realchrome:: $(CHROME_DEPS) $(FINAL_TARGET)/chrome
$(PYTHON) $(MOZILLA_DIR)/config/JarMaker.py \
$(QUIET) -j $(FINAL_TARGET)/chrome \
$(MAKE_JARS_FLAGS) $(XULPPFLAGS) $(DEFINES) $(ACDEFINES) \
@@ -2285,6 +2332,8 @@ FREEZE_VARIABLES = \
REQUIRES \
SHORT_LIBNAME \
TIERS \
+ EXTRA_COMPONENTS \
+ EXTRA_PP_COMPONENTS \
$(NULL)
$(foreach var,$(FREEZE_VARIABLES),$(eval $(var)_FROZEN := '$($(var))'))
@@ -2295,5 +2344,5 @@ CHECK_FROZEN_VARIABLES = $(foreach var,$(FREEZE_VARIABLES), \
libs export libs::
$(CHECK_FROZEN_VARIABLES)
-default::
+default all::
if test -d $(DIST)/bin ; then touch $(DIST)/bin/.purgecaches ; fi
View
0  deps/js/src/config/solaris_ia32.map 100755 → 100644
File mode changed
View
13 deps/js/src/config/static-checking-config.mk 100755 → 100644
@@ -7,14 +7,17 @@ TREEHYDRA_MODULES = \
$(topsrcdir)/jsstack.js \
$(NULL)
+DEHYDRA_ARG_PREFIX=-fplugin-arg-gcc_treehydra-
+
DEHYDRA_ARGS = \
- --topsrcdir=$(topsrcdir) \
- --objdir=$(DEPTH) \
- --dehydra-modules=$(subst $(NULL) ,$(COMMA),$(strip $(DEHYDRA_MODULES))) \
- --treehydra-modules=$(subst $(NULL) ,$(COMMA),$(strip $(TREEHYDRA_MODULES))) \
+ $(DEHYDRA_ARG_PREFIX)script=$(DEHYDRA_SCRIPT) \
+ $(DEHYDRA_ARG_PREFIX)topsrcdir=$(topsrcdir) \
+ $(DEHYDRA_ARG_PREFIX)objdir=$(DEPTH) \
+ $(DEHYDRA_ARG_PREFIX)dehydra-modules=$(subst $(NULL) ,$(COMMA),$(strip $(DEHYDRA_MODULES))) \
+ $(DEHYDRA_ARG_PREFIX)treehydra-modules=$(subst $(NULL) ,$(COMMA),$(strip $(TREEHYDRA_MODULES))) \
$(NULL)
-DEHYDRA_FLAGS = -fplugin=$(DEHYDRA_PATH) -fplugin-arg='$(DEHYDRA_SCRIPT) $(DEHYDRA_ARGS)'
+DEHYDRA_FLAGS = -fplugin=$(DEHYDRA_PATH) $(DEHYDRA_ARGS)
ifdef DEHYDRA_PATH
OS_CXXFLAGS += $(DEHYDRA_FLAGS)
View
47 deps/js/src/config/static-checking.js 100755 → 100644
@@ -10,9 +10,6 @@ function treehydra_enabled() {
return this.hasOwnProperty('TREE_CODE');
}
-include('unstable/getopt.js');
-[options, args] = getopt();
-
sys.include_path.push(options.topsrcdir);
include('string-format.js');
@@ -71,17 +68,55 @@ function signaturesMatch(m1, m2)
let p1 = m1.type.parameters;
let p2 = m2.type.parameters;
-
+
if (p1.length != p2.length)
return false;
for (let i = 0; i < p1.length; ++i)
- if (p1[i] !== p2[i])
+ if (!params_match(p1[i], p2[i]))
return false;
-