diff options
author | Raúl Porcel <armin76@gentoo.org> | 2013-01-06 16:50:16 +0000 |
---|---|---|
committer | Raúl Porcel <armin76@gentoo.org> | 2013-01-06 16:50:16 +0000 |
commit | 2132743d60785b6f053b1b4def32d9fcd0fc3ece (patch) | |
tree | 00793626a0fe662c714cf9c243a28ed28936a0e2 /dev-lang/spidermonkey | |
parent | fix bug# from last comment (diff) | |
download | historical-2132743d60785b6f053b1b4def32d9fcd0fc3ece.tar.gz historical-2132743d60785b6f053b1b4def32d9fcd0fc3ece.tar.bz2 historical-2132743d60785b6f053b1b4def32d9fcd0fc3ece.zip |
Add patches for ia64, mark stable, bug #441934
Package-Manager: portage-2.1.11.38/cvs/Linux ia64
Manifest-Sign-Key: 0xF6AD3240
Diffstat (limited to 'dev-lang/spidermonkey')
-rw-r--r-- | dev-lang/spidermonkey/ChangeLog | 7 | ||||
-rw-r--r-- | dev-lang/spidermonkey/Manifest | 16 | ||||
-rw-r--r-- | dev-lang/spidermonkey/files/spidermonkey-1.8.5-ia64-fix.patch | 53 | ||||
-rw-r--r-- | dev-lang/spidermonkey/files/spidermonkey-1.8.5-ia64-static-strings.patch | 381 | ||||
-rw-r--r-- | dev-lang/spidermonkey/spidermonkey-1.8.5-r4.ebuild | 7 |
5 files changed, 459 insertions, 5 deletions
diff --git a/dev-lang/spidermonkey/ChangeLog b/dev-lang/spidermonkey/ChangeLog index 54cc2477807b..a91668702352 100644 --- a/dev-lang/spidermonkey/ChangeLog +++ b/dev-lang/spidermonkey/ChangeLog @@ -1,6 +1,11 @@ # ChangeLog for dev-lang/spidermonkey # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-lang/spidermonkey/ChangeLog,v 1.99 2013/01/01 11:41:30 ago Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-lang/spidermonkey/ChangeLog,v 1.100 2013/01/06 16:50:09 armin76 Exp $ + + 06 Jan 2013; Raúl Porcel <armin76@gentoo.org> spidermonkey-1.8.5-r4.ebuild, + +files/spidermonkey-1.8.5-ia64-fix.patch, + +files/spidermonkey-1.8.5-ia64-static-strings.patch: + Add patches for ia64, mark stable, bug #441934 01 Jan 2013; Agostino Sarubbo <ago@gentoo.org> spidermonkey-1.8.5-r4.ebuild: Add ~ia64, wrt bug #449220 diff --git a/dev-lang/spidermonkey/Manifest b/dev-lang/spidermonkey/Manifest index e903bb6353bf..7858447cef01 100644 --- a/dev-lang/spidermonkey/Manifest +++ b/dev-lang/spidermonkey/Manifest @@ -1,3 +1,6 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA256 + AUX spidermonkey-1.5-build.patch 3457 SHA256 04a2b3b1b85825f463c6eb703d32e66747e2a8cca81b0026b958862eb1248fdb SHA512 d4ebb63c9ce2a2e84a0a2b32abb8f4316d53bd71a2c6de37f1a48b26514d583b4c573302dcb15f39b4f57878d01dfc4ff9f9d70e9d1abd54f4ce535124c1147e WHIRLPOOL d35da32872cb68f2bf5b86c20691c7212bdff843a9bfcd8fb385e62c7bc55b9248a00edd3654ac2c1e50f57e413c9dd4c4cfcb57b5a59c1cef343f6c202eb6f9 AUX spidermonkey-1.6-header.patch 270 SHA256 e81acd7ba025214b2ecfa5918a1652e4590eaca39307c4e8d9f5d949d315373e SHA512 f52861ad88b6624fc7e2cd7b9174f53cf0bebf339704932f36ca1d5bd6b133f6e28333fa5d10841c72ccfaccf0f7daa63a1385e2ff6ab8d0192bf70bd437479a WHIRLPOOL d076e64a52adfb9ff55aa7c6191c4a1c29c6917661a15a5cfcc0717960e63403b5557f9e28263cc19c20f3ee4e97c88f87b40b6d786ca3705dd4b2893a0f9c7d AUX spidermonkey-1.7.0-ldflags.patch 1076 SHA256 7dcc26496a6413652ff32ce1b1eb04c7ef526658d41a243f1ce0e44598cd809b SHA512 649dccce8206cf99e09715a0e8e7fc0db3bdff4269ab82898476d2e70fda73c420f80f915eadabf17a8bcee529e692bd195dd6df3ac58020e8dd97a91d19a847 WHIRLPOOL 270ea3c19981a597cc8cf9984f5ac358e91fb6ab3fe0ff753cbd933868177e5629b088ae7588b9b630f37ac1cc1381f6e28591e3b47e03bec39627ef332cdcb4 @@ -6,6 +9,8 @@ AUX spidermonkey-1.8.5-arm_respect_cflags-2.patch 3618 SHA256 076e5397d761919bc6 AUX spidermonkey-1.8.5-arm_respect_cflags-3.patch 3474 SHA256 2f0a33c7d70e98c231619cf28de151e6961f7fd163a9b02588c75bb3740f6380 SHA512 55726ddffe88c025eac331918b5f12223ccf47a2a2f3f6bb020fd6fc027e558dee811b80d2328dc631daf7d372b10c51004ee4a4ca87e8c1aa2e68f562bf1244 WHIRLPOOL b8a1738080680670cdaa5e4a9d603137c34dd0468448e7c51d6a7ae0d41ce69a74ac2e880d5db7d38171f979d564bd78a8e64fae419d5119558e5eb71a0a5792 AUX spidermonkey-1.8.5-fix-install-symlinks.patch 484 SHA256 4c66d490b6ff22086252ad871242d6d87de2e3fec59b91099864c7881cffd823 SHA512 738f59260900e2dee42a3a8347c5afa09cc99e0e7f267c7af80b29a115818c61dce6912d5ff98c1bbcaea816c4d8579383eb7f6a848ba5d4b9275ec6baa2f01d WHIRLPOOL 210390d31e93c7a96fb61951b93221dbd34a1572476dbbf91e0ae3bcfd06d10194205411c49c47ea7d8fa6f898d0c96366c5b6fd3927d12d787524b674d85b81 AUX spidermonkey-1.8.5-fix-ppc64.patch 1669 SHA256 ffae38a7e5db0895e10be924e1bd084e57640c7a184cd8f1b1a90e9533202470 SHA512 0352665ae138e15aabc8b40561ac6d5328b7a1c497f9591ebe57ffacb05a0ba52c677b8174829c5328cb79ea271b519287bfb99bd418efefc3409d18a198b7d9 WHIRLPOOL 699b3d0a75d660fba0a6095b19db84504238b2c3f9f0bcddf1d6628c8a51a70301c2a3eb54712c2e7719ca5bd4184562d64fac22760e870e453ea2feb5456870 +AUX spidermonkey-1.8.5-ia64-fix.patch 2097 SHA256 1e98852a3d3a07eebc12ec22531dd7358a6f76f4303ebac436bedda6726eefe2 SHA512 ad23dd6d561c404b935a8acd844732e1cbccda10e26880f9c074e1af272a02bbe6f0465e5bc50405dd5fd77dda5d94ba68486642911b61adfed599174fc771b2 WHIRLPOOL fcc3e50e33d93fc075a53e04efb18e1683e105e5374d832d8334dc930ad916098ace1cc4d910cd67a7893b5efe19da2dabca41ce5bd6e5d71206797ca34987f7 +AUX spidermonkey-1.8.5-ia64-static-strings.patch 11766 SHA256 3d409d04bee33335c9a4620829356bbfd41e65c4c00910931f02624578a62d3a SHA512 205bc24c466ac17811100693888ec86b4189e786be459298d7f4e7b967870d25f8f93738fab5e5ab43ca2cc3e55cd9814e818558f9e16fdb2bfe7ac6ebf738b5 WHIRLPOOL 655c1997fc30b06f9e80e38ce5ca643fac3f0d6211f460a00799c75014c7d56b048e4217bea87159ea589fcbd6d568e105fc33e8a1e8c5ff5bd8d7589cfa406d AUX spidermonkey-1.8.5-perf_event-check.patch 694 SHA256 c24f4c5b445e4ac20a35e0baf11649b1697d0d0c10e08406d07f9e3d311f8135 SHA512 d974135f6f6897529d482d7ac7ba79031471ed677c646462dd919a36313d05e3720c394afa9b143a7c1f681d5612fc8011faaebc5ba54712790d878d6002fa73 WHIRLPOOL 511e9904f32c4be3c4d73dd760a4c68159e101a4963d895a1b891dd6317a1713c83f95f12cea4de7f80224e8a0f15e0cd490c1eaa3c193e07c7733b5941039cc AUX spidermonkey-1.8.5-symbol-versions.patch 1011 SHA256 41bda93bc2309621ece16c2b659a25e94785b8d2a0ca6c983b32f5c50d266ab7 SHA512 8e8f8ea70d87441be070ef5c199ad9589cf4ebedb2ea5bff972aec3c819f3aef517f7dcb1ffac1508dcfcac07cbf2d4bfb8b2b29f1f2c487410de1484e9aa95f WHIRLPOOL e0b0fc506e71a4b4961b2aadd26f86b4499687cba98c56b5e4861ef4acc0e11849af234febc0a2ed2aee603748df87ce8fd0a83484757af1b697d09c65bf8945 AUX spidermonkey-1.8.7-filter_desc.patch 922 SHA256 7a3832a0a47f90b89a240b44ac580fff8740344c1d3eee0624973cb251043c46 SHA512 f4b2f3b8b48b0418ab2572dcedc927c4e415979b2dff0f89614cab8b6c6b33e8d0ecf0d298ecdd5c125e936db98028261a59b6f4917384e060999e07ff7b92be WHIRLPOOL 186c2f2ba04170005a5af7cce773ef92925015a1e4541f40d2d44641b9dda5048a2b3d8953755860e866893043ae666360c8a7b594eda77858851c937d5ca8c0 @@ -28,9 +33,16 @@ EBUILD spidermonkey-1.8.2.15.ebuild 1907 SHA256 e03a07403e86e8a20c7efefc59dc5e84 EBUILD spidermonkey-1.8.5-r1.ebuild 3393 SHA256 07eac4dd3ed4a5c572d0510d3df05c639a09bd6a25fa46b951bc77e6e4fee920 SHA512 355ab294eb9a46f5f2fdd55c49d0c63b6bd8e3dc52b50182ff02232d048f98585f1aa47a8913cc164eb690affaee07ee1c9c969c3ef62784294b4ff6b450fb79 WHIRLPOOL 85e89e3dbd7dfd6db559e6ab1639cefa5e656b071aa6da3f26f317b4b66487853e8a2c5bab58a0145d668759ea50502be8cc37a318e9aab5894a80be9603be6f EBUILD spidermonkey-1.8.5-r2.ebuild 3726 SHA256 6d8743f9bc8e61d9d622192555f82e3f341e78f45b1f797e65fde2431398dd35 SHA512 f190ab4b3870fa0d998ee41c54df16876317a9c9df62a9c3b3ca184383c4bcee09d1770ae1ece32982695fc255d2a4b7d782dc11f4c02d036dceec7e1fde7e17 WHIRLPOOL d77df7a577daa2886e9dc92ecddf20fdf689e1f49aedc466fd71329daacd5ba71c0d1473e81c42794f482f973bbef2df96a6adf3550357b8705c4105fd93f88c EBUILD spidermonkey-1.8.5-r3.ebuild 3820 SHA256 0bb0fd48912006c7478148ad82ea7fff9ad3128ae6cdf5e4ae5e1718ab071db5 SHA512 782a49ef74b99410d189e580e60e8e12ecc0e48f78fa0351ed1ae06d038681442e4653ab638688a3a740c5bd8e4583cdf2075d6a53d6813a0db46a86dce743ad WHIRLPOOL 6d9468378a0410207e77e152d5038cdf731a42880e1a359d687f6a4f040299e370c9d4eceab80a0284b82b367eff42541436a5eeb04245b4ba0ca4aed751c040 -EBUILD spidermonkey-1.8.5-r4.ebuild 3875 SHA256 e78945672737b47edb53955b79aedd40eebc5eef622ccb48928e7f5db668c3ae SHA512 466d254f9fc557b3483ff047c7db86040dc66c13948d725e587da69455af7e8ab8fac6abe78c5b3d888cb35fc543d26137237825de54035edf509f13cfb547d4 WHIRLPOOL c62f30e223f6a4ba67edb3791012aae1ba61f2efe7a72c38f0d70e5cdd7d7ffdcdbaf55b9e777f2cb903cda9d0d4d197256062876b56fad3370e47861d408206 +EBUILD spidermonkey-1.8.5-r4.ebuild 4037 SHA256 29978e44a2d06bf3f666bfdeaf111104b21476ddd4e76776d6c4dc4b09cd74f9 SHA512 cdb21fff7f74532f0a754f8bf29aac0acb4c3034e45ae615e263b550e49798c0c370c686975008e50aefbc81b3b7617f078f6a84db8b09dc5f66bfd1c05f0b5e WHIRLPOOL 5d8ff9ea2db459275dfaf76ad088f29ea8337083032831c10ebfcc2eafb7e07cf43c14e0adb04ebb4d5eb02fefdc775cb9bf519f61ffda2129727d1c470c7171 EBUILD spidermonkey-1.8.7-r2.ebuild 3953 SHA256 0064ff0cd89005d9fda0e42a34bab38cf08576f3005ab9f76cb415c2af1b250d SHA512 60e073e2baf4c285036bc699d0b2046cee736250bae8e163dd931738bdcc4fd37b7fdf5e74cf294a12ea4bb171617a9fff7b72c717703c1497b8dba80f775c31 WHIRLPOOL b421c800f4f4aece6ce8f0101177a5b006204af5022ea28d8e021add646db10375bf3308367951147b2433ccf53f85edc6bd2e22306ff31a2be830872630519f EBUILD spidermonkey-1.8.7-r3.ebuild 4002 SHA256 f50355febb9db9f88f8b773993defc7314b242cb50693e1c958ab2b86533b791 SHA512 6cc438c83862184be262f0526abf41d126bb5f0d87f4ef90bede3b1f3eed8417ed73a4134922b6e58f08a7c85c7e1dfb7c40e2832e2d1bf4a53329c4bcf2c49b WHIRLPOOL 81b308a3ca7698aecf0f89e5206308b5f52492a94bb5ef5370cf0921f53348285085f891fd7ed004124942ecfe7a46cc90243367f6a1ab4939a83dad1be1a1dc EBUILD spidermonkey-1.8.7.ebuild 3607 SHA256 a60de62a9845cc56b0fb289ac8ffee9c31d8a6bfb9b7f68aaf37aacf849e8d70 SHA512 62cbf45fa4461057d2d3d8369cb2b8a4e29f68d225d518b89aa37e904e65dc1a79c1587d40e7c40c7f647368fc754f985c31b0a628d0a8bb976aec54bc06a88c WHIRLPOOL 579de256e755939c93d0f7ff8c26edfdd7f85e4fff2af14cb4f9d5e022a1bae2b5aa6b93eec5d6b190c3b0edaae23f804c8e342bb25e7a9f0cc3e0aa348067c2 -MISC ChangeLog 16001 SHA256 4a21314260fd36c772d4a2c20f5727c26afc8007955895c21fa64b5d612a2a10 SHA512 77612138ff3dfbb9b75494b4e230567a75c673032893ef4328c14caeb94fb8e519232b4a63e1509fd51f466349d37ee09d1287fda8556ae7ee0614080e7e7fc9 WHIRLPOOL 658c992dfb1e162331e378bb15e6e1005c3a142d2eb85eaa5365510e74dcdaa43cbb5d92848cacff298d08d44e5674a859ec6f09558045b273784d1cce7345f6 +MISC ChangeLog 16234 SHA256 181c00a8f9763cd10c00840f6c22cef5aa478feef2fcafe1d9cc99d8fb73d957 SHA512 b63fbae0f6c79f91161e5d6a03dd70fb927fdfb3148687cd763f7699aafcce384f801ee4a8d011663dc0d088b2da9e729e0c8a225c5f1b31c3067fe6994c5a4c WHIRLPOOL 51aa081d9b0354be5b07b8545ad706953493c9bd9d70cc5ebdd3fdde5e626e7cf51e93466d24ebd4b1aef125ceb654f71a6a56f17933fc62271da4121aa6eb7e MISC metadata.xml 337 SHA256 198d1a23238f7b069df2def08e41451d40c225f8a93a2005ed83166f8fae7d35 SHA512 8f7d13e732629734cdcf5db9b8d4279820517c68b80f3ab840f1dfa6117d38eae70feb6894f1f51e76b33cfc058a39a3ecb6ec3fa33199c7a1bc64bc1897bf89 WHIRLPOOL 8ea694f3e700dc58c787f1c9c91621ed83cf06785172045bd4d2d436fb8e7153ea2631db9e7113a59d765fc67fa32aba5275809cad1d96ed2154fc65da0c803d +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v2.0.19 (GNU/Linux) + +iEYEAREIAAYFAlDpq0IACgkQuQc30/atMkAVnwCfV/J1pDTpC+XdlanpXbhDbonL +mNoAoJF5NcfQkPSF30u+qk17FJ7ffI8w +=1U5f +-----END PGP SIGNATURE----- diff --git a/dev-lang/spidermonkey/files/spidermonkey-1.8.5-ia64-fix.patch b/dev-lang/spidermonkey/files/spidermonkey-1.8.5-ia64-fix.patch new file mode 100644 index 000000000000..bebe5587180f --- /dev/null +++ b/dev-lang/spidermonkey/files/spidermonkey-1.8.5-ia64-fix.patch @@ -0,0 +1,53 @@ +https://bugzilla.mozilla.org/show_bug.cgi?id=589735 + +--- a/js/src/jsgcchunk.cpp 2011-03-31 21:08:36.000000000 +0200 ++++ b/js/src/jsgcchunk.cpp 2012-11-02 10:36:08.324453878 +0100 +@@ -318,15 +318,48 @@ + static void * + MapPages(void *addr, size_t size) + { ++#if defined(__ia64__) ++ /* ++ * The JS engine assumes that all allocated pointers have their high 17 bits clear, ++ * which ia64's mmap doesn't support directly. However, we can emulate it by passing ++ * mmap an "addr" parameter with those bits clear. The mmap will return that address, ++ * or the nearest available memory above that address, providing a near-guarantee ++ * that those bits are clear. If they are not, we return NULL below to indicate ++ * out-of-memory. ++ * ++ * The addr is chosen as 0x0000070000000000, which still allows about 120TB of virtual ++ * address space. ++ * ++ * See Bug 589735 for more information. ++ */ ++#endif ++ + /* + * We don't use MAP_FIXED here, because it can cause the *replacement* + * of existing mappings, and we only want to create new mappings. + */ ++#if defined(__ia64__) ++ void *p = mmap(addr ? addr : (void*)0x0000070000000000, ++ size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, ++ -1, 0); ++#else + void *p = mmap(addr, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, + -1, 0); ++#endif + if (p == MAP_FAILED) + return NULL; ++#if defined(__ia64__) ++ /* ++ * If the caller requested a specific memory location, verify that's what mmap returned. ++ * Otherwise: If the allocated memory doesn't have its upper 17 bits clear, consider it ++ * as out of memory. ++ */ ++ if (addr && p != addr ++ || !addr && ((long long)p & 0xffff800000000000)) { ++#else ++ /* If the caller requested a specific memory location, verify that's what mmap returned. */ + if (addr && p != addr) { ++#endif + /* We succeeded in mapping memory, but not in the right place. */ + JS_ALWAYS_TRUE(munmap(p, size) == 0); + return NULL; diff --git a/dev-lang/spidermonkey/files/spidermonkey-1.8.5-ia64-static-strings.patch b/dev-lang/spidermonkey/files/spidermonkey-1.8.5-ia64-static-strings.patch new file mode 100644 index 000000000000..5cfed32ae68e --- /dev/null +++ b/dev-lang/spidermonkey/files/spidermonkey-1.8.5-ia64-static-strings.patch @@ -0,0 +1,381 @@ +https://bugzilla.mozilla.org/show_bug.cgi?id=589735 + +--- a/js/src/jsatom.cpp 2011-03-31 21:08:36.000000000 +0200 ++++ b/js/src/jsatom.cpp 2012-11-02 10:43:16.970562590 +0100 +@@ -603,11 +603,13 @@ + JSString str, *str2; + JSAtomState *state; + ++#ifdef JS_HAS_STATIC_STRINGS + if (length == 1) { + jschar c = *chars; + if (c < UNIT_STRING_LIMIT) + return STRING_TO_ATOM(JSString::unitString(c)); + } ++#endif + + str.initFlatNotTerminated((jschar *)chars, length); + state = &cx->runtime->atomState; +--- a/js/src/jsiter.cpp 2011-03-31 21:08:36.000000000 +0200 ++++ b/js/src/jsiter.cpp 2012-11-02 10:43:16.974562590 +0100 +@@ -1002,9 +1002,12 @@ + + JSString *str; + jsint i; ++#ifdef JS_HAS_STATIC_STRINGS + if (rval->isInt32() && (jsuint(i = rval->toInt32()) < INT_STRING_LIMIT)) { + str = JSString::intString(i); +- } else { ++ } else ++#endif ++ { + str = js_ValueToString(cx, *rval); + if (!str) + return false; +--- a/js/src/jsnum.cpp 2011-03-31 21:08:36.000000000 +0200 ++++ b/js/src/jsnum.cpp 2012-11-02 10:43:16.982562589 +0100 +@@ -605,8 +605,10 @@ + { + uint32 ui; + if (si >= 0) { ++#ifdef JS_HAS_STATIC_STRINGS + if (si < INT_STRING_LIMIT) + return JSString::intString(si); ++#endif + ui = si; + } else { + ui = uint32(-si); +@@ -1169,6 +1171,7 @@ + + int32_t i; + if (JSDOUBLE_IS_INT32(d, &i)) { ++#ifdef JS_HAS_STATIC_STRINGS + if (base == 10 && jsuint(i) < INT_STRING_LIMIT) + return JSString::intString(i); + if (jsuint(i) < jsuint(base)) { +@@ -1176,6 +1179,7 @@ + return JSString::intString(i); + return JSString::unitString(jschar('a' + i - 10)); + } ++#endif + + if (JSString *str = c->dtoaCache.lookup(base, d)) + return str; +--- a/js/src/jsstr.cpp 2011-03-31 21:08:36.000000000 +0200 ++++ b/js/src/jsstr.cpp 2012-11-02 10:43:16.990562588 +0100 +@@ -3121,6 +3121,8 @@ + JS_FS_END + }; + ++#ifdef JS_HAS_STATIC_STRINGS ++ + /* + * Set up some tools to make it easier to generate large tables. After constant + * folding, for each n, Rn(0) is the comma-separated list R(0), R(1), ..., R(2^n-1). +@@ -3291,6 +3293,8 @@ + #undef R3 + #undef R7 + ++#endif /* defined(JS_HAS_STATIC_STRINGS) */ ++ + JSBool + js_String(JSContext *cx, uintN argc, Value *vp) + { +@@ -3331,6 +3335,7 @@ + uint16_t code; + if (!ValueToUint16(cx, argv[0], &code)) + return JS_FALSE; ++#ifdef JS_HAS_STATIC_STRINGS + if (code < UNIT_STRING_LIMIT) { + str = JSString::unitString(code); + if (!str) +@@ -3338,6 +3343,7 @@ + vp->setString(str); + return JS_TRUE; + } ++#endif + argv[0].setInt32(code); + } + chars = (jschar *) cx->malloc((argc + 1) * sizeof(jschar)); +@@ -3367,8 +3373,10 @@ + { + JS_ASSERT(JS_ON_TRACE(cx)); + jschar c = (jschar)i; ++#ifdef JS_HAS_STATIC_STRINGS + if (c < UNIT_STRING_LIMIT) + return JSString::unitString(c); ++#endif + return js_NewStringCopyN(cx, &c, 1); + } + #endif +--- a/js/src/jsstr.h 2011-03-31 21:08:36.000000000 +0200 ++++ b/js/src/jsstr.h 2012-11-02 10:43:16.998562587 +0100 +@@ -57,6 +57,15 @@ + #include "jsvalue.h" + #include "jscell.h" + ++#if !defined(__ia64__) ++/* ++ * Don't use static strings on ia64 since the compiler may put the static ++ * memory out of the acceptable 47-bit jsval pointer range. ++ */ ++# define JS_HAS_STATIC_STRINGS ++#endif ++ ++#ifdef JS_HAS_STATIC_STRINGS + enum { + UNIT_STRING_LIMIT = 256U, + SMALL_CHAR_LIMIT = 128U, /* Bigger chars cannot be in a length-2 string. */ +@@ -64,6 +73,7 @@ + INT_STRING_LIMIT = 256U, + NUM_HUNDRED_STRINGS = 156U + }; ++#endif + + extern jschar * + js_GetDependentStringChars(JSString *str); +@@ -380,10 +390,15 @@ + typedef uint8 SmallChar; + + static inline bool fitsInSmallChar(jschar c) { ++#ifdef JS_HAS_STATIC_STRINGS + return c < SMALL_CHAR_LIMIT && toSmallChar[c] != INVALID_SMALL_CHAR; ++#else ++ return false; ++#endif + } + + static inline bool isUnitString(void *ptr) { ++#ifdef JS_HAS_STATIC_STRINGS + jsuword delta = reinterpret_cast<jsuword>(ptr) - + reinterpret_cast<jsuword>(unitStringTable); + if (delta >= UNIT_STRING_LIMIT * sizeof(JSString)) +@@ -392,9 +407,13 @@ + /* If ptr points inside the static array, it must be well-aligned. */ + JS_ASSERT(delta % sizeof(JSString) == 0); + return true; ++#else ++ return false; ++#endif + } + + static inline bool isLength2String(void *ptr) { ++#ifdef JS_HAS_STATIC_STRINGS + jsuword delta = reinterpret_cast<jsuword>(ptr) - + reinterpret_cast<jsuword>(length2StringTable); + if (delta >= NUM_SMALL_CHARS * NUM_SMALL_CHARS * sizeof(JSString)) +@@ -403,9 +422,13 @@ + /* If ptr points inside the static array, it must be well-aligned. */ + JS_ASSERT(delta % sizeof(JSString) == 0); + return true; ++#else ++ return false; ++#endif + } + + static inline bool isHundredString(void *ptr) { ++#ifdef JS_HAS_STATIC_STRINGS + jsuword delta = reinterpret_cast<jsuword>(ptr) - + reinterpret_cast<jsuword>(hundredStringTable); + if (delta >= NUM_HUNDRED_STRINGS * sizeof(JSString)) +@@ -414,6 +437,9 @@ + /* If ptr points inside the static array, it must be well-aligned. */ + JS_ASSERT(delta % sizeof(JSString) == 0); + return true; ++#else ++ return false; ++#endif + } + + static inline bool isStatic(void *ptr) { +@@ -424,6 +450,7 @@ + #pragma align 8 (__1cIJSStringPunitStringTable_, __1cIJSStringSlength2StringTable_, __1cIJSStringShundredStringTable_) + #endif + ++#ifdef JS_HAS_STATIC_STRINGS + static const SmallChar INVALID_SMALL_CHAR = -1; + + static const jschar fromSmallChar[]; +@@ -436,6 +463,7 @@ + * strings, we keep a table to map from integer to the correct string. + */ + static const JSString *const intStringTable[]; ++#endif + + static JSFlatString *unitString(jschar c); + static JSLinearString *getUnitString(JSContext *cx, JSString *str, size_t index); +--- a/js/src/jsstrinlines.h 2011-03-31 21:08:36.000000000 +0200 ++++ b/js/src/jsstrinlines.h 2012-11-02 10:43:17.010562586 +0100 +@@ -215,52 +215,75 @@ + inline JSFlatString * + JSString::unitString(jschar c) + { ++#ifdef JS_HAS_STATIC_STRINGS + JS_ASSERT(c < UNIT_STRING_LIMIT); + return const_cast<JSString *>(&unitStringTable[c])->assertIsFlat(); ++#else ++ JS_NOT_REACHED("no static strings"); ++ return NULL; ++#endif + } + + inline JSLinearString * + JSString::getUnitString(JSContext *cx, JSString *str, size_t index) + { + JS_ASSERT(index < str->length()); ++#ifdef JS_HAS_STATIC_STRINGS + const jschar *chars = str->getChars(cx); + if (!chars) + return NULL; + jschar c = chars[index]; + if (c < UNIT_STRING_LIMIT) + return unitString(c); ++#endif + return js_NewDependentString(cx, str, index, 1); + } + + inline JSFlatString * + JSString::length2String(jschar c1, jschar c2) + { ++#ifdef JS_HAS_STATIC_STRINGS + JS_ASSERT(fitsInSmallChar(c1)); + JS_ASSERT(fitsInSmallChar(c2)); + return const_cast<JSString *> ( + &length2StringTable[(((size_t)toSmallChar[c1]) << 6) + toSmallChar[c2]] + )->assertIsFlat(); ++#else ++ JS_NOT_REACHED("no static strings"); ++ return NULL; ++#endif + } + + inline JSFlatString * + JSString::length2String(uint32 i) + { ++#ifdef JS_HAS_STATIC_STRINGS + JS_ASSERT(i < 100); + return length2String('0' + i / 10, '0' + i % 10); ++#else ++ JS_NOT_REACHED("no static strings"); ++ return NULL; ++#endif + } + + inline JSFlatString * + JSString::intString(jsint i) + { ++#ifdef JS_HAS_STATIC_STRINGS + jsuint u = jsuint(i); + JS_ASSERT(u < INT_STRING_LIMIT); + return const_cast<JSString *>(JSString::intStringTable[u])->assertIsFlat(); ++#else ++ JS_NOT_REACHED("no static strings"); ++ return NULL; ++#endif + } + + /* Get a static atomized string for chars if possible. */ + inline JSFlatString * + JSString::lookupStaticString(const jschar *chars, size_t length) + { ++#ifdef JS_HAS_STATIC_STRINGS + if (length == 1) { + if (chars[0] < UNIT_STRING_LIMIT) + return unitString(chars[0]); +@@ -290,6 +313,7 @@ + return intString(i); + } + } ++#endif + + return NULL; + } +--- a/js/src/jstracer.cpp 2011-03-31 21:08:36.000000000 +0200 ++++ b/js/src/jstracer.cpp 2012-11-02 10:43:17.022562584 +0100 +@@ -11505,6 +11505,7 @@ + } + if (vp[1].isString()) { + JSString *str = vp[1].toString(); ++#ifdef JS_HAS_STATIC_STRINGS + if (native == js_str_charAt) { + jsdouble i = vp[2].toNumber(); + if (JSDOUBLE_IS_NaN(i)) +@@ -11518,7 +11519,9 @@ + set(&vp[0], char_ins); + pendingSpecializedNative = IGNORE_NATIVE_CALL_COMPLETE_CALLBACK; + return RECORD_CONTINUE; +- } else if (native == js_str_charCodeAt) { ++ } else ++#endif ++ if (native == js_str_charCodeAt) { + jsdouble i = vp[2].toNumber(); + if (JSDOUBLE_IS_NaN(i)) + i = 0; +@@ -12967,6 +12970,7 @@ + JS_STATIC_ASSERT(sizeof(JSString) == 16 || sizeof(JSString) == 32); + + ++#ifdef JS_HAS_STATIC_STRINGS + JS_REQUIRES_STACK LIns* + TraceRecorder::getUnitString(LIns* str_ins, LIns* idx_ins) + { +@@ -13010,6 +13014,7 @@ + } + return RECORD_CONTINUE; + } ++#endif + + // Typed array tracing depends on EXPANDED_LOADSTORE and F2I + #if NJ_EXPANDED_LOADSTORE_SUPPORTED && NJ_F2I_SUPPORTED +@@ -13044,6 +13049,7 @@ + LIns* obj_ins = get(&lval); + LIns* idx_ins = get(&idx); + ++#ifdef JS_HAS_STATIC_STRINGS + // Special case for array-like access of strings. + if (lval.isString() && hasInt32Repr(idx)) { + if (call) +@@ -13056,6 +13062,7 @@ + set(&lval, char_ins); + return ARECORD_CONTINUE; + } ++#endif + + if (lval.isPrimitive()) + RETURN_STOP_A("JSOP_GETLEM on a primitive"); +--- a/js/src/jstracer.h 2011-03-31 21:08:36.000000000 +0200 ++++ b/js/src/jstracer.h 2012-11-02 10:43:17.034562582 +0100 +@@ -1394,10 +1394,12 @@ + JS_REQUIRES_STACK RecordingStatus getCharCodeAt(JSString *str, + nanojit::LIns* str_ins, nanojit::LIns* idx_ins, + nanojit::LIns** out_ins); ++#ifdef JS_HAS_STATIC_STRINGS + JS_REQUIRES_STACK nanojit::LIns* getUnitString(nanojit::LIns* str_ins, nanojit::LIns* idx_ins); + JS_REQUIRES_STACK RecordingStatus getCharAt(JSString *str, + nanojit::LIns* str_ins, nanojit::LIns* idx_ins, + JSOp mode, nanojit::LIns** out_ins); ++#endif + + JS_REQUIRES_STACK RecordingStatus initOrSetPropertyByName(nanojit::LIns* obj_ins, + Value* idvalp, Value* rvalp, +--- a/js/src/tracejit/Writer.cpp 2011-03-31 21:08:36.000000000 +0200 ++++ b/js/src/tracejit/Writer.cpp 2012-11-02 10:43:17.038562582 +0100 +@@ -246,7 +246,9 @@ + // ins = andq ins_oprnd1, ins_oprnd2 + ret = true; + #endif +- } else if (ins->isop(LIR_addp) && ++ } ++#ifdef JS_HAS_STATIC_STRINGS ++ else if (ins->isop(LIR_addp) && + ((ins->oprnd1()->isImmP() && + (void *)ins->oprnd1()->immP() == JSString::unitStringTable) || + (ins->oprnd2()->isImmP() && +@@ -258,6 +260,7 @@ + // ins = addp JSString::unitStringTable, ... + ret = true; + } ++#endif + + return ret; + } diff --git a/dev-lang/spidermonkey/spidermonkey-1.8.5-r4.ebuild b/dev-lang/spidermonkey/spidermonkey-1.8.5-r4.ebuild index 27f7be047a1c..f5832c2971ee 100644 --- a/dev-lang/spidermonkey/spidermonkey-1.8.5-r4.ebuild +++ b/dev-lang/spidermonkey/spidermonkey-1.8.5-r4.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/dev-lang/spidermonkey/spidermonkey-1.8.5-r4.ebuild,v 1.2 2013/01/01 11:41:30 ago Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-lang/spidermonkey/spidermonkey-1.8.5-r4.ebuild,v 1.3 2013/01/06 16:50:09 armin76 Exp $ EAPI="5" WANT_AUTOCONF="2.1" @@ -16,7 +16,7 @@ SRC_URI="https://ftp.mozilla.org/pub/mozilla.org/js/${TARBALL_P}.tar.gz" LICENSE="NPL-1.1" SLOT="0/mozjs185" -KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd" IUSE="debug minimal static-libs test" S="${WORKDIR}/${MY_P}" @@ -50,6 +50,9 @@ src_prepare() { epatch "${FILESDIR}"/${PN}-1.8.5-perf_event-check.patch # https://bugs.gentoo.org/show_bug.cgi?id=439260 epatch "${FILESDIR}"/${P}-symbol-versions.patch + # https://bugs.gentoo.org/show_bug.cgi?id=441934 + epatch "${FILESDIR}"/${PN}-1.8.5-ia64-fix.patch + epatch "${FILESDIR}"/${PN}-1.8.5-ia64-static-strings.patch epatch_user |