Browse Source

v8 package creation

Signed-off-by: webbuilder_pel7ppc64lebuilder0 <webbuilder@powerel.org>
master
webbuilder_pel7ppc64lebuilder0 5 years ago
parent
commit
9b558f7640
  1. 235
      SOURCES/icu.gn
  2. 14
      SOURCES/v8-4.10.91-system_icu.patch
  3. 27
      SOURCES/v8-5.2.197-readdir-fix.patch
  4. 16
      SOURCES/v8-5.2.258-bundled-binutils.patch
  5. 119
      SOURCES/v8-5.2.258-gcc7.patch
  6. 21
      SOURCES/v8-5.2.258-ppc64.patch
  7. 15
      SOURCES/v8-6.2.91-gcc8-gn-fabi11.patch
  8. 12
      SOURCES/v8-6.2.91-nolambda.patch
  9. 19
      SOURCES/v8-6.2.91-oldclang-flags.patch
  10. 28
      SOURCES/v8-6.2.91-sover.patch
  11. 236
      SOURCES/v8-6.7.17-fix-gcc-unwind-header.patch
  12. 335
      SOURCES/v8-6.7.17-fixme.patch
  13. 12
      SOURCES/v8-6.7.17-i686-g1-to-avoid-mem-exhaust.patch
  14. 141
      SOURCES/v8-6.7.17-notcross.patch
  15. 21
      SOURCES/v8-6.7.17-optflags.patch
  16. 799
      SPECS/v8.spec

235
SOURCES/icu.gn

@ -0,0 +1,235 @@
# Copyright 2016 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//build/config/linux/pkg_config.gni")
import("//build/shim_headers.gni")

group("icu") {
public_deps = [
":icui18n",
":icuuc",
]
}

config("icu_config") {
defines = [
"USING_SYSTEM_ICU=1",
"ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC",
]
}

pkg_config("system_icui18n") {
packages = [ "icu-i18n" ]
}

pkg_config("system_icuuc") {
packages = [ "icu-uc" ]
}

source_set("icui18n") {
deps = [
":icui18n_shim",
]
public_configs = [
":icu_config",
":system_icui18n",
]
}

source_set("icuuc") {
deps = [
":icuuc_shim",
]
public_configs = [
":icu_config",
":system_icuuc",
]
}

shim_headers("icui18n_shim") {
root_path = "source/i18n"
headers = [
# This list can easily be updated using the command below:
# find third_party/icu/source/i18n/unicode \
# -iname '*.h' -printf '"%p",\n' | \
# sed -e 's|third_party/icu/i18n/common/||' | sort -u
"unicode/alphaindex.h",
"unicode/basictz.h",
"unicode/calendar.h",
"unicode/choicfmt.h",
"unicode/coleitr.h",
"unicode/coll.h",
"unicode/compactdecimalformat.h",
"unicode/curramt.h",
"unicode/currpinf.h",
"unicode/currunit.h",
"unicode/datefmt.h",
"unicode/dcfmtsym.h",
"unicode/decimfmt.h",
"unicode/dtfmtsym.h",
"unicode/dtitvfmt.h",
"unicode/dtitvinf.h",
"unicode/dtptngen.h",
"unicode/dtrule.h",
"unicode/fieldpos.h",
"unicode/fmtable.h",
"unicode/format.h",
"unicode/fpositer.h",
"unicode/gender.h",
"unicode/gregocal.h",
"unicode/locdspnm.h",
"unicode/measfmt.h",
"unicode/measunit.h",
"unicode/measure.h",
"unicode/msgfmt.h",
"unicode/numfmt.h",
"unicode/numsys.h",
"unicode/plurfmt.h",
"unicode/plurrule.h",
"unicode/rbnf.h",
"unicode/rbtz.h",
"unicode/regex.h",
"unicode/region.h",
"unicode/reldatefmt.h",
"unicode/scientificnumberformatter.h",
"unicode/search.h",
"unicode/selfmt.h",
"unicode/simpletz.h",
"unicode/smpdtfmt.h",
"unicode/sortkey.h",
"unicode/stsearch.h",
"unicode/tblcoll.h",
"unicode/timezone.h",
"unicode/tmunit.h",
"unicode/tmutamt.h",
"unicode/tmutfmt.h",
"unicode/translit.h",
"unicode/tzfmt.h",
"unicode/tznames.h",
"unicode/tzrule.h",
"unicode/tztrans.h",
"unicode/ucal.h",
"unicode/ucol.h",
"unicode/ucoleitr.h",
"unicode/ucsdet.h",
"unicode/ucurr.h",
"unicode/udat.h",
"unicode/udateintervalformat.h",
"unicode/udatpg.h",
"unicode/udisplaycontext.h",
"unicode/ufieldpositer.h",
"unicode/uformattable.h",
"unicode/ugender.h",
"unicode/uldnames.h",
"unicode/ulocdata.h",
"unicode/umsg.h",
"unicode/unirepl.h",
"unicode/unum.h",
"unicode/unumsys.h",
"unicode/upluralrules.h",
"unicode/uregex.h",
"unicode/uregion.h",
"unicode/usearch.h",
"unicode/uspoof.h",
"unicode/utmscale.h",
"unicode/utrans.h",
"unicode/vtzone.h",
]
}

shim_headers("icuuc_shim") {
root_path = "source/common"
headers = [
# This list can easily be updated using the command below:
# find third_party/icu/source/common/unicode \
# -iname '*.h' -printf '"%p",\n' | \
# sed -e 's|third_party/icu/source/common/||' | sort -u
"unicode/appendable.h",
"unicode/brkiter.h",
"unicode/bytestream.h",
"unicode/bytestrie.h",
"unicode/bytestriebuilder.h",
"unicode/caniter.h",
"unicode/chariter.h",
"unicode/dbbi.h",
"unicode/docmain.h",
"unicode/dtintrv.h",
"unicode/enumset.h",
"unicode/errorcode.h",
"unicode/filteredbrk.h",
"unicode/icudataver.h",
"unicode/icuplug.h",
"unicode/idna.h",
"unicode/listformatter.h",
"unicode/localpointer.h",
"unicode/locid.h",
"unicode/messagepattern.h",
"unicode/normalizer2.h",
"unicode/normlzr.h",
"unicode/parseerr.h",
"unicode/parsepos.h",
"unicode/platform.h",
"unicode/ptypes.h",
"unicode/putil.h",
"unicode/rbbi.h",
"unicode/rep.h",
"unicode/resbund.h",
"unicode/schriter.h",
"unicode/std_string.h",
"unicode/strenum.h",
"unicode/stringpiece.h",
"unicode/stringtriebuilder.h",
"unicode/symtable.h",
"unicode/ubidi.h",
"unicode/ubrk.h",
"unicode/ucasemap.h",
"unicode/ucat.h",
"unicode/uchar.h",
"unicode/ucharstrie.h",
"unicode/ucharstriebuilder.h",
"unicode/uchriter.h",
"unicode/uclean.h",
"unicode/ucnv.h",
"unicode/ucnv_cb.h",
"unicode/ucnv_err.h",
"unicode/ucnvsel.h",
"unicode/uconfig.h",
"unicode/udata.h",
"unicode/uenum.h",
"unicode/uidna.h",
"unicode/uiter.h",
"unicode/ulistformatter.h",
"unicode/uloc.h",
"unicode/umachine.h",
"unicode/umisc.h",
"unicode/unifilt.h",
"unicode/unifunct.h",
"unicode/unimatch.h",
"unicode/uniset.h",
"unicode/unistr.h",
"unicode/unorm.h",
"unicode/unorm2.h",
"unicode/uobject.h",
"unicode/urename.h",
"unicode/urep.h",
"unicode/ures.h",
"unicode/uscript.h",
"unicode/uset.h",
"unicode/usetiter.h",
"unicode/ushape.h",
"unicode/usprep.h",
"unicode/ustring.h",
"unicode/ustringtrie.h",
"unicode/utext.h",
"unicode/utf.h",
"unicode/utf16.h",
"unicode/utf32.h",
"unicode/utf8.h",
"unicode/utf_old.h",
"unicode/utrace.h",
"unicode/utypes.h",
"unicode/uvernum.h",
"unicode/uversion.h",
]
}

14
SOURCES/v8-4.10.91-system_icu.patch

@ -0,0 +1,14 @@
diff -up v8-4.10.91/Makefile.system_icu v8-4.10.91/Makefile
--- v8-4.10.91/Makefile.system_icu 2016-01-27 17:20:20.554136527 -0500
+++ v8-4.10.91/Makefile 2016-01-27 17:21:03.377907390 -0500
@@ -44,6 +44,10 @@ endif
ifdef component
GYPFLAGS += -Dcomponent=$(component)
endif
+# system_icu=on
+ifeq ($(system_icu), on)
+ GYPFLAGS += -Duse_system_icu=1
+endif
# disassembler=on
ifeq ($(disassembler), on)
GYPFLAGS += -Dv8_enable_disassembler=1

27
SOURCES/v8-5.2.197-readdir-fix.patch

@ -0,0 +1,27 @@
diff -up v8-5.2.197/test/cctest/interpreter/generate-bytecode-expectations.cc.readdir v8-5.2.197/test/cctest/interpreter/generate-bytecode-expectations.cc
--- v8-5.2.197/test/cctest/interpreter/generate-bytecode-expectations.cc.readdir 2016-05-02 09:47:32.000000000 -0400
+++ v8-5.2.197/test/cctest/interpreter/generate-bytecode-expectations.cc 2016-05-02 15:42:49.961046560 -0400
@@ -20,6 +20,8 @@
#include <dirent.h>
#endif
+#include <errno.h>
+
using v8::internal::interpreter::BytecodeExpectationsPrinter;
#define REPORT_ERROR(MESSAGE) (((std::cerr << "ERROR: ") << MESSAGE) << '\n')
@@ -174,10 +176,12 @@ bool CollectGoldenFiles(std::vector<std:
DIR* directory = opendir(directory_path);
if (!directory) return false;
- dirent entry_buffer;
dirent* entry;
- while (readdir_r(directory, &entry_buffer, &entry) == 0 && entry) {
+ errno = 0;
+ entry = readdir(directory);
+
+ while (errno != 0) {
if (StrEndsWith(entry->d_name, ".golden")) {
std::string golden_filename(kGoldenFilesPath);
golden_filename += entry->d_name;

16
SOURCES/v8-5.2.258-bundled-binutils.patch

@ -0,0 +1,16 @@
diff -up v8-5.2.258/Makefile.bb v8-5.2.258/Makefile
--- v8-5.2.258/Makefile.bb 2016-10-10 14:57:17.275968725 -0400
+++ v8-5.2.258/Makefile 2016-10-10 14:58:37.012406994 -0400
@@ -37,6 +37,12 @@ NACL_SDK_ROOT ?=
# Special build flags. Use them like this: "make library=shared"
+# bundledbinutils=off
+ifeq ($(bundledbinutils), off)
+ GYPFLAGS += -Dlinux_use_bundled_binutils=0
+else
+ GYPFLAGS += -Dlinux_use_bundled_binutils=1
+endif
# library=shared || component=shared_library
ifeq ($(library), shared)
GYPFLAGS += -Dcomponent=shared_library

119
SOURCES/v8-5.2.258-gcc7.patch

@ -0,0 +1,119 @@
diff -up v8-5.2.258/samples/shell.cc.gcc7 v8-5.2.258/samples/shell.cc
--- v8-5.2.258/samples/shell.cc.gcc7 2017-02-28 15:33:38.931424708 -0500
+++ v8-5.2.258/samples/shell.cc 2017-02-28 15:34:00.759853299 -0500
@@ -361,6 +361,8 @@ bool ExecuteString(v8::Isolate* isolate,
} else {
v8::Local<v8::Value> result;
if (!script->Run(context).ToLocal(&result)) {
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wgnu"
assert(try_catch.HasCaught());
// Print errors that happened during execution.
if (report_exceptions)
@@ -368,6 +370,7 @@ bool ExecuteString(v8::Isolate* isolate,
return false;
} else {
assert(!try_catch.HasCaught());
+#pragma GCC diagnostic pop
if (print_result && !result->IsUndefined()) {
// If all went well and the result wasn't undefined then print
// the returned value.
diff -up v8-5.2.258/src/crankshaft/lithium.cc.gcc7 v8-5.2.258/src/crankshaft/lithium.cc
--- v8-5.2.258/src/crankshaft/lithium.cc.gcc7 2016-05-09 10:28:43.000000000 -0400
+++ v8-5.2.258/src/crankshaft/lithium.cc 2017-02-28 14:42:17.188361709 -0500
@@ -128,11 +128,6 @@ void LOperand::PrintTo(StringStream* str
template<LOperand::Kind kOperandKind, int kNumCachedOperands>
-LSubKindOperand<kOperandKind, kNumCachedOperands>*
-LSubKindOperand<kOperandKind, kNumCachedOperands>::cache = NULL;
-
-
-template<LOperand::Kind kOperandKind, int kNumCachedOperands>
void LSubKindOperand<kOperandKind, kNumCachedOperands>::SetUpCache() {
if (cache) return;
cache = new LSubKindOperand[kNumCachedOperands];
diff -up v8-5.2.258/src/crankshaft/lithium.h.gcc7 v8-5.2.258/src/crankshaft/lithium.h
--- v8-5.2.258/src/crankshaft/lithium.h.gcc7 2016-05-09 10:28:43.000000000 -0400
+++ v8-5.2.258/src/crankshaft/lithium.h 2017-02-28 14:42:17.188361709 -0500
@@ -338,6 +338,9 @@ class LSubKindOperand final : public LOp
explicit LSubKindOperand(int index) : LOperand(kOperandKind, index) { }
};
+template<LOperand::Kind kOperandKind, int kNumCachedOperands>
+LSubKindOperand<kOperandKind, kNumCachedOperands>*
+LSubKindOperand<kOperandKind, kNumCachedOperands>::cache = NULL;
#define LITHIUM_TYPEDEF_SUBKIND_OPERAND_CLASS(name, type, number) \
typedef LSubKindOperand<LOperand::type, number> L##name;
diff -up v8-5.2.258/src/objects-body-descriptors.h.gcc7 v8-5.2.258/src/objects-body-descriptors.h
--- v8-5.2.258/src/objects-body-descriptors.h.gcc7 2016-05-09 10:28:43.000000000 -0400
+++ v8-5.2.258/src/objects-body-descriptors.h 2017-02-28 14:42:17.189361685 -0500
@@ -99,7 +99,7 @@ class FixedBodyDescriptor final : public
template <typename StaticVisitor>
static inline void IterateBody(HeapObject* obj, int object_size) {
- IterateBody(obj);
+ IterateBody<StaticVisitor>(obj);
}
};
diff -up v8-5.2.258/src/objects.h.gcc7 v8-5.2.258/src/objects.h
--- v8-5.2.258/src/objects.h.gcc7 2016-05-09 10:28:43.000000000 -0400
+++ v8-5.2.258/src/objects.h 2017-02-28 14:42:17.190361661 -0500
@@ -3182,22 +3182,10 @@ class HashTableBase : public FixedArray
template <typename Derived, typename Shape, typename Key>
class HashTable : public HashTableBase {
public:
- // Wrapper methods
- inline uint32_t Hash(Key key) {
- if (Shape::UsesSeed) {
- return Shape::SeededHash(key, GetHeap()->HashSeed());
- } else {
- return Shape::Hash(key);
- }
- }
-
- inline uint32_t HashForObject(Key key, Object* object) {
- if (Shape::UsesSeed) {
- return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object);
- } else {
- return Shape::HashForObject(key, object);
- }
- }
+ // Wrapper methods. Defined in src/objects-inl.h
+ // to break a cycle with src/heap/heap.h.
+ inline uint32_t Hash(Key key);
+ inline uint32_t HashForObject(Key key, Object* object);
// Returns a new HashTable object.
MUST_USE_RESULT static Handle<Derived> New(
diff -up v8-5.2.258/src/objects-inl.h.gcc7 v8-5.2.258/src/objects-inl.h
--- v8-5.2.258/src/objects-inl.h.gcc7 2016-05-09 10:28:43.000000000 -0400
+++ v8-5.2.258/src/objects-inl.h 2017-02-28 14:42:17.191361638 -0500
@@ -35,6 +35,25 @@
namespace v8 {
namespace internal {
+template <typename Derived, typename Shape, typename Key>
+uint32_t HashTable<Derived, Shape, Key>::Hash(Key key) {
+ if (Shape::UsesSeed) {
+ return Shape::SeededHash(key, GetHeap()->HashSeed());
+ } else {
+ return Shape::Hash(key);
+ }
+}
+
+template <typename Derived, typename Shape, typename Key>
+uint32_t HashTable<Derived, Shape, Key>::HashForObject(Key key,
+ Object* object) {
+ if (Shape::UsesSeed) {
+ return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object);
+ } else {
+ return Shape::HashForObject(key, object);
+ }
+}
+
PropertyDetails::PropertyDetails(Smi* smi) {
value_ = smi->value();
}

21
SOURCES/v8-5.2.258-ppc64.patch

@ -0,0 +1,21 @@
diff -up v8-5.2.258/gypfiles/standalone.gypi.ppcfix v8-5.2.258/gypfiles/standalone.gypi
--- v8-5.2.258/gypfiles/standalone.gypi.ppcfix 2017-03-01 11:15:17.516268618 -0500
+++ v8-5.2.258/gypfiles/standalone.gypi 2017-03-01 11:16:34.750282604 -0500
@@ -225,7 +225,7 @@
}, {
'v8_enable_gdbjit%': 0,
}],
- ['(OS=="linux" or OS=="mac") and (target_arch=="ia32" or target_arch=="x64") and \
+ ['(OS=="linux" or OS=="mac") and (target_arch=="ia32" or target_arch=="x64" or target_arch=="ppc64le") and \
(v8_target_arch!="x87" and v8_target_arch!="x32")', {
'clang%': 1,
}, {
@@ -735,7 +735,7 @@
or v8_target_arch=="mips64el")', {
'cflags': [ '-Wshorten-64-to-32' ],
}],
- [ 'host_arch=="ppc64" and OS!="aix"', {
+ [ 'host_arch=="ppc64le" and OS!="aix" and clang==0', {
'cflags': [ '-mminimal-toc' ],
}],
[ 'visibility=="hidden" and v8_enable_backtrace==0', {

15
SOURCES/v8-6.2.91-gcc8-gn-fabi11.patch

@ -0,0 +1,15 @@
diff -up v8-6.2.91/tools/gn/bootstrap/bootstrap.py.fabi11 v8-6.2.91/tools/gn/bootstrap/bootstrap.py
--- v8-6.2.91/tools/gn/bootstrap/bootstrap.py.fabi11 2018-02-19 17:11:22.650679128 -0500
+++ v8-6.2.91/tools/gn/bootstrap/bootstrap.py 2018-02-19 17:11:46.579128407 -0500
@@ -314,6 +314,11 @@ def write_gn_ninja(path, root_gen_dir, o
cflags = os.environ.get('CFLAGS', '').split()
cflags_cc = os.environ.get('CXXFLAGS', '').split()
ldflags = os.environ.get('LDFLAGS', '').split()
+
+ # Work around GCC8 bug gcc#84286
+ cflags.extend(['-fabi-version=11'])
+ cflags_cc.extend(['-fabi-version=11'])
+
include_dirs = [root_gen_dir, SRC_ROOT]
libs = []

12
SOURCES/v8-6.2.91-nolambda.patch

@ -0,0 +1,12 @@
diff -up v8-6.2.91/build/config/compiler/BUILD.gn.nolambda v8-6.2.91/build/config/compiler/BUILD.gn
--- v8-6.2.91/build/config/compiler/BUILD.gn.nolambda 2017-08-01 14:28:53.499913889 -0400
+++ v8-6.2.91/build/config/compiler/BUILD.gn 2017-08-01 14:29:03.242607676 -0400
@@ -1171,7 +1171,7 @@ config("default_warnings") {
"-Wno-address-of-packed-member",
# TODO(hans): https://crbug.com/681136
- "-Wno-unused-lambda-capture",
+ # "-Wno-unused-lambda-capture",
# TODO(thakis ): https://crbug.com/683349
"-Wno-user-defined-warnings",

19
SOURCES/v8-6.2.91-oldclang-flags.patch

@ -0,0 +1,19 @@
diff -up v8-6.2.91/build/config/compiler/BUILD.gn.oldclang v8-6.2.91/build/config/compiler/BUILD.gn
--- v8-6.2.91/build/config/compiler/BUILD.gn.oldclang 2017-08-31 21:05:13.342875120 -0400
+++ v8-6.2.91/build/config/compiler/BUILD.gn 2017-08-31 21:05:40.092124090 -0400
@@ -1168,13 +1168,13 @@ config("default_warnings") {
"-Wno-nonportable-include-path",
# TODO(hans): https://crbug.com/637306
- "-Wno-address-of-packed-member",
+ # "-Wno-address-of-packed-member",
# TODO(hans): https://crbug.com/681136
# "-Wno-unused-lambda-capture",
# TODO(thakis ): https://crbug.com/683349
- "-Wno-user-defined-warnings",
+ # "-Wno-user-defined-warnings",
]
} else if (use_xcode_clang && xcode_version_int >= 830) {
# This is necessary to allow a progressive transition from using xcode 8.0

28
SOURCES/v8-6.2.91-sover.patch

@ -0,0 +1,28 @@
diff -up v8-6.2.91/BUILD.gn.sover v8-6.2.91/BUILD.gn
--- v8-6.2.91/BUILD.gn.sover 2017-07-31 11:24:31.000000000 -0400
+++ v8-6.2.91/BUILD.gn 2017-08-02 12:10:57.825931436 -0400
@@ -2422,6 +2422,7 @@ v8_component("v8_libbase") {
if (is_component_build) {
defines = [ "BUILDING_V8_BASE_SHARED" ]
+ output_extension = "so.6"
}
if (is_posix) {
@@ -2532,6 +2533,7 @@ v8_component("v8_libplatform") {
if (is_component_build) {
defines = [ "BUILDING_V8_PLATFORM_SHARED" ]
+ output_extension = "so.6"
}
public_configs = [ ":libplatform_config" ]
@@ -2682,6 +2684,8 @@ if (is_component_build) {
"src/v8dll-main.cc",
]
+ output_extension = "so.6"
+
public_deps = [
":v8_base",
":v8_maybe_snapshot",

236
SOURCES/v8-6.7.17-fix-gcc-unwind-header.patch

@ -0,0 +1,236 @@
diff -Nru v8-6.7.17.orig/buildtools/third_party/libc++abi/trunk/src/cxa_default_handlers.cpp v8-6.7.17/buildtools/third_party/libc++abi/trunk/src/cxa_default_handlers.cpp
--- v8-6.7.17.orig/buildtools/third_party/libc++abi/trunk/src/cxa_default_handlers.cpp 2018-03-06 14:20:54.000000000 -0500
+++ v8-6.7.17/buildtools/third_party/libc++abi/trunk/src/cxa_default_handlers.cpp 2018-05-07 11:01:44.464845299 -0400
@@ -36,13 +36,10 @@
{
_Unwind_Exception* unwind_exception =
reinterpret_cast<_Unwind_Exception*>(exception_header + 1) - 1;
- bool native_exception =
- (unwind_exception->exception_class & get_vendor_and_language) ==
- (kOurExceptionClass & get_vendor_and_language);
- if (native_exception)
+ if (__isOurExceptionClass(unwind_exception))
{
void* thrown_object =
- unwind_exception->exception_class == kOurDependentExceptionClass ?
+ __getExceptionClass(unwind_exception) == kOurDependentExceptionClass ?
((__cxa_dependent_exception*)exception_header)->primaryException :
exception_header + 1;
const __shim_type_info* thrown_type =
diff -Nru v8-6.7.17.orig/buildtools/third_party/libc++abi/trunk/src/cxa_exception.cpp v8-6.7.17/buildtools/third_party/libc++abi/trunk/src/cxa_exception.cpp
--- v8-6.7.17.orig/buildtools/third_party/libc++abi/trunk/src/cxa_exception.cpp 2018-03-06 14:20:54.000000000 -0500
+++ v8-6.7.17/buildtools/third_party/libc++abi/trunk/src/cxa_exception.cpp 2018-05-07 11:01:44.472845276 -0400
@@ -78,22 +78,37 @@
alignof(__cxa_exception));
}
-static void setExceptionClass(_Unwind_Exception* unwind_exception) {
- unwind_exception->exception_class = kOurExceptionClass;
+void __setExceptionClass(_Unwind_Exception* unwind_exception, uint64_t newValue) {
+ ::memcpy(&unwind_exception->exception_class, &newValue, sizeof(newValue));
+ }
+
+
+static void setOurExceptionClass(_Unwind_Exception* unwind_exception) {
+ __setExceptionClass(unwind_exception, kOurExceptionClass);
}
static void setDependentExceptionClass(_Unwind_Exception* unwind_exception) {
- unwind_exception->exception_class = kOurDependentExceptionClass;
+ __setExceptionClass(unwind_exception, kOurDependentExceptionClass);
}
// Is it one of ours?
-static bool isOurExceptionClass(const _Unwind_Exception* unwind_exception) {
- return (unwind_exception->exception_class & get_vendor_and_language) ==
- (kOurExceptionClass & get_vendor_and_language);
+uint64_t __getExceptionClass(const _Unwind_Exception* unwind_exception) {
+// On x86 and some ARM unwinders, unwind_exception->exception_class is
+// a uint64_t. On other ARM unwinders, it is a char[8]
+// See: http://infocenter.arm.com/help/topic/com.arm.doc.ihi0038b/IHI0038B_ehabi.pdf
+// So we just copy it into a uint64_t to be sure.
+ uint64_t exClass;
+ ::memcpy(&exClass, &unwind_exception->exception_class, sizeof(exClass));
+ return exClass;
+}
+
+bool __isOurExceptionClass(const _Unwind_Exception* unwind_exception) {
+ return (__getExceptionClass(unwind_exception) & get_vendor_and_language) ==
+ (kOurExceptionClass & get_vendor_and_language);
}
static bool isDependentException(_Unwind_Exception* unwind_exception) {
- return (unwind_exception->exception_class & 0xFF) == 0x01;
+ return (__getExceptionClass(unwind_exception) & 0xFF) == 0x01;
}
// This does not need to be atomic
@@ -248,7 +263,7 @@
exception_header->terminateHandler = std::get_terminate();
exception_header->exceptionType = tinfo;
exception_header->exceptionDestructor = dest;
- setExceptionClass(&exception_header->unwindHeader);
+ setOurExceptionClass(&exception_header->unwindHeader);
exception_header->referenceCount = 1; // This is a newly allocated exception, no need for thread safety.
globals->uncaughtExceptions += 1; // Not atomically, since globals are thread-local
@@ -299,7 +314,7 @@
__cxa_exception* exception_header =
cxa_exception_from_exception_unwind_exception(unwind_exception);
- if (isOurExceptionClass(unwind_exception))
+ if (__isOurExceptionClass(unwind_exception))
{
if (0 == exception_header->propagationCount)
{
@@ -342,7 +357,7 @@
std::terminate();
}
- if (isOurExceptionClass(&exception_header->unwindHeader))
+ if (__isOurExceptionClass(&exception_header->unwindHeader))
{
--exception_header->propagationCount;
if (0 == exception_header->propagationCount)
@@ -407,7 +422,7 @@
__cxa_begin_catch(void* unwind_arg) throw()
{
_Unwind_Exception* unwind_exception = static_cast<_Unwind_Exception*>(unwind_arg);
- bool native_exception = isOurExceptionClass(unwind_exception);
+ bool native_exception = __isOurExceptionClass(unwind_exception);
__cxa_eh_globals* globals = __cxa_get_globals();
// exception_header is a hackish offset from a foreign exception, but it
// works as long as we're careful not to try to access any __cxa_exception
@@ -484,7 +499,7 @@
// nothing more to be done. Do nothing!
if (NULL != exception_header)
{
- bool native_exception = isOurExceptionClass(&exception_header->unwindHeader);
+ bool native_exception = __isOurExceptionClass(&exception_header->unwindHeader);
if (native_exception)
{
// This is a native exception
@@ -549,7 +564,7 @@
__cxa_exception *exception_header = globals->caughtExceptions;
if (NULL == exception_header)
return NULL; // No current exception
- if (!isOurExceptionClass(&exception_header->unwindHeader))
+ if (!__isOurExceptionClass(&exception_header->unwindHeader))
return NULL;
return exception_header->exceptionType;
}
@@ -571,7 +586,7 @@
__cxa_exception* exception_header = globals->caughtExceptions;
if (NULL == exception_header)
std::terminate(); // throw; called outside of a exception handler
- bool native_exception = isOurExceptionClass(&exception_header->unwindHeader);
+ bool native_exception = __isOurExceptionClass(&exception_header->unwindHeader);
if (native_exception)
{
// Mark the exception as being rethrown (reverse the effects of __cxa_begin_catch)
@@ -660,7 +675,7 @@
__cxa_exception* exception_header = globals->caughtExceptions;
if (NULL == exception_header)
return NULL; // No current exception
- if (!isOurExceptionClass(&exception_header->unwindHeader))
+ if (!__isOurExceptionClass(&exception_header->unwindHeader))
return NULL; // Can't capture a foreign exception (no way to refcount it)
if (isDependentException(&exception_header->unwindHeader)) {
__cxa_dependent_exception* dep_exception_header =
diff -Nru v8-6.7.17.orig/buildtools/third_party/libc++abi/trunk/src/cxa_exception.hpp v8-6.7.17/buildtools/third_party/libc++abi/trunk/src/cxa_exception.hpp
--- v8-6.7.17.orig/buildtools/third_party/libc++abi/trunk/src/cxa_exception.hpp 2018-03-06 14:20:54.000000000 -0500
+++ v8-6.7.17/buildtools/third_party/libc++abi/trunk/src/cxa_exception.hpp 2018-05-07 13:09:05.371652989 -0400
@@ -24,6 +24,17 @@
static const uint64_t kOurDependentExceptionClass = 0x434C4E47432B2B01; // CLNGC++\1
static const uint64_t get_vendor_and_language = 0xFFFFFFFFFFFFFF00; // mask for CLNGC++
+uint64_t __getExceptionClass (const _Unwind_Exception*);
+void __setExceptionClass ( _Unwind_Exception*, uint64_t);
+bool __isOurExceptionClass(const _Unwind_Exception*);
+
+#if defined(__arm__) && defined(__GNUC__)
+// missing values from _Unwind_Reason_Code enum
+#define _URC_FATAL_PHASE2_ERROR ((_Unwind_Reason_Code)2)
+#define _URC_FATAL_PHASE1_ERROR ((_Unwind_Reason_Code)3)
+#define _URC_NORMAL_STOP ((_Unwind_Reason_Code)4)
+#endif
+
struct _LIBCXXABI_HIDDEN __cxa_exception {
#if defined(__LP64__) || defined(_LIBCXXABI_ARM_EHABI)
// This is a new field to support C++ 0x exception_ptr.
diff -Nru v8-6.7.17.orig/buildtools/third_party/libc++abi/trunk/src/cxa_handlers.cpp v8-6.7.17/buildtools/third_party/libc++abi/trunk/src/cxa_handlers.cpp
--- v8-6.7.17.orig/buildtools/third_party/libc++abi/trunk/src/cxa_handlers.cpp 2018-03-06 14:20:54.000000000 -0500
+++ v8-6.7.17/buildtools/third_party/libc++abi/trunk/src/cxa_handlers.cpp 2018-05-07 11:01:44.474845270 -0400
@@ -89,10 +89,7 @@
{
_Unwind_Exception* unwind_exception =
reinterpret_cast<_Unwind_Exception*>(exception_header + 1) - 1;
- bool native_exception =
- (unwind_exception->exception_class & get_vendor_and_language) ==
- (kOurExceptionClass & get_vendor_and_language);
- if (native_exception)
+ if (__isOurExceptionClass(unwind_exception))
__terminate(exception_header->terminateHandler);
}
}
diff -Nru v8-6.7.17.orig/buildtools/third_party/libc++abi/trunk/src/cxa_personality.cpp v8-6.7.17/buildtools/third_party/libc++abi/trunk/src/cxa_personality.cpp
--- v8-6.7.17.orig/buildtools/third_party/libc++abi/trunk/src/cxa_personality.cpp 2018-03-06 14:20:54.000000000 -0500
+++ v8-6.7.17/buildtools/third_party/libc++abi/trunk/src/cxa_personality.cpp 2018-05-07 15:08:40.666231128 -0400
@@ -492,7 +492,7 @@
// Even for foreign exceptions, the exception object is *probably* at unwind_exception + 1
// Regardless, this library is prohibited from touching a foreign exception
void* adjustedPtr = unwind_exception + 1;
- if (unwind_exception->exception_class == kOurDependentExceptionClass)
+ if (__getExceptionClass(unwind_exception) == kOurDependentExceptionClass)
adjustedPtr = ((__cxa_dependent_exception*)adjustedPtr - 1)->primaryException;
return adjustedPtr;
}
@@ -1073,8 +1073,7 @@
if (unwind_exception == 0 || context == 0)
return _URC_FATAL_PHASE1_ERROR;
- bool native_exception = (unwind_exception->exception_class & get_vendor_and_language) ==
- (kOurExceptionClass & get_vendor_and_language);
+ bool native_exception = __isOurExceptionClass(unwind_exception);
#if !defined(LIBCXXABI_USE_LLVM_UNWINDER)
// Copy the address of _Unwind_Control_Block to r12 so that
@@ -1085,7 +1084,7 @@
// Check the undocumented force unwinding behavior
bool is_force_unwinding = state & _US_FORCE_UNWIND;
- state &= ~_US_FORCE_UNWIND;
+ state = (_Unwind_State)(state & ~_US_FORCE_UNWIND);
scan_results results;
switch (state) {
@@ -1178,9 +1177,7 @@
if (unwind_exception == 0)
call_terminate(false, unwind_exception);
__cxa_begin_catch(unwind_exception);
- bool native_old_exception =
- (unwind_exception->exception_class & get_vendor_and_language) ==
- (kOurExceptionClass & get_vendor_and_language);
+ bool native_old_exception = __isOurExceptionClass(unwind_exception);
std::unexpected_handler u_handler;
std::terminate_handler t_handler;
__cxa_exception* old_exception_header = 0;
@@ -1242,16 +1239,14 @@
if (new_exception_header == 0)
// This shouldn't be able to happen!
std::__terminate(t_handler);
- bool native_new_exception =
- (new_exception_header->unwindHeader.exception_class & get_vendor_and_language) ==
- (kOurExceptionClass & get_vendor_and_language);
+ bool native_new_exception = __isOurExceptionClass(&new_exception_header->unwindHeader);
void* adjustedPtr;
if (native_new_exception && (new_exception_header != old_exception_header))
{
const __shim_type_info* excpType =
static_cast<const __shim_type_info*>(new_exception_header->exceptionType);
adjustedPtr =
- new_exception_header->unwindHeader.exception_class == kOurDependentExceptionClass ?
+ __getExceptionClass(&new_exception_header->unwindHeader) == kOurDependentExceptionClass ?
((__cxa_dependent_exception*)new_exception_header)->primaryException :
new_exception_header + 1;
if (!exception_spec_can_catch(ttypeIndex, classInfo, ttypeEncoding,

335
SOURCES/v8-6.7.17-fixme.patch

@ -0,0 +1,335 @@
diff -up v8-6.7.17/build/config/compiler/BUILD.gn.fixme v8-6.7.17/build/config/compiler/BUILD.gn
--- v8-6.7.17/build/config/compiler/BUILD.gn.fixme 2018-03-14 11:47:13.723221338 -0400
+++ v8-6.7.17/build/config/compiler/BUILD.gn 2018-03-14 11:47:13.712221590 -0400
@@ -185,7 +185,7 @@ config("compiler") {
ldflags = []
defines = []
configs = []
- inputs = []
+ # inputs = []
# System-specific flags. If your compiler flags apply to one of the
# categories here, add it to the associated file to keep this shared config
@@ -1278,6 +1278,9 @@ config("default_warnings") {
# [1] https://gcc.gnu.org/gcc-6/porting_to.html#this-cannot-be-null
# [2] https://crbug.com/784492#c13
cflags += [ "-fno-delete-null-pointer-checks" ]
+
+ # workaround tests
+ cflags += [ "-Wno-error=subobject-linkage" ]
}
}
diff -up v8-6.7.17/src/base/file-utils.cc.fixme v8-6.7.17/src/base/file-utils.cc
--- v8-6.7.17/src/base/file-utils.cc.fixme 2018-03-06 13:58:16.000000000 -0500
+++ v8-6.7.17/src/base/file-utils.cc 2018-03-14 11:47:12.586247445 -0400
@@ -25,7 +25,7 @@ char* RelativePath(char** buffer, const
reinterpret_cast<char*>(calloc(path_separator + name_length + 2, 1));
*buffer[0] = '\0';
strncat(*buffer, exec_path, path_separator + 1);
- strncat(*buffer, name, name_length);
+ strncat(*buffer, name, name_length + 1);
} else {
*buffer = strdup(name);
}
diff -up v8-6.7.17/src/base/macros.h.fixme v8-6.7.17/src/base/macros.h
--- v8-6.7.17/src/base/macros.h.fixme 2018-03-06 13:58:16.000000000 -0500
+++ v8-6.7.17/src/base/macros.h 2018-03-14 11:47:12.587247422 -0400
@@ -102,7 +102,7 @@ V8_INLINE Dest bit_cast(Source const& so
static_assert(sizeof(Dest) == sizeof(Source),
"source and dest must be same size");
Dest dest;
- memcpy(&dest, &source, sizeof(dest));
+ memcpy(static_cast<void*>(&dest), &source, sizeof(dest));
return dest;
}
@@ -387,10 +387,10 @@ bool is_inbounds(float_t v) {
static_cast<float_t>(std::numeric_limits<int_t>::min()) - 1;
constexpr float_t kUpperBound =
static_cast<float_t>(std::numeric_limits<int_t>::max()) + 1;
- constexpr bool kLowerBoundIsMin =
+ constexpr bool kLowerBoundIsMin __attribute__((unused)) =
static_cast<biggest_int_t>(kLowerBound) ==
static_cast<biggest_int_t>(std::numeric_limits<int_t>::min());
- constexpr bool kUpperBoundIsMax =
+ constexpr bool kUpperBoundIsMax __attribute__((unused)) =
static_cast<biggest_int_t>(kUpperBound) ==
static_cast<biggest_int_t>(std::numeric_limits<int_t>::max());
return (kLowerBoundIsMin ? (kLowerBound <= v) : (kLowerBound < v)) &&
diff -up v8-6.7.17/src/compiler/node-cache.cc.fixme v8-6.7.17/src/compiler/node-cache.cc
--- v8-6.7.17/src/compiler/node-cache.cc.fixme 2018-03-06 13:58:16.000000000 -0500
+++ v8-6.7.17/src/compiler/node-cache.cc 2018-03-14 11:47:12.587247422 -0400
@@ -38,7 +38,7 @@ bool NodeCache<Key, Hash, Pred>::Resize(
size_ *= 4;
size_t num_entries = size_ + kLinearProbe;
entries_ = zone->NewArray<Entry>(num_entries);
- memset(entries_, 0, sizeof(Entry) * num_entries);
+ memset(static_cast<void*>(entries_), 0, sizeof(Entry) * num_entries);
// Insert the old entries into the new block.
for (size_t i = 0; i < old_size; ++i) {
@@ -69,7 +69,7 @@ Node** NodeCache<Key, Hash, Pred>::Find(
size_t num_entries = kInitialSize + kLinearProbe;
entries_ = zone->NewArray<Entry>(num_entries);
size_ = kInitialSize;
- memset(entries_, 0, sizeof(Entry) * num_entries);
+ memset(static_cast<void*>(entries_), 0, sizeof(Entry) * num_entries);
Entry* entry = &entries_[hash & (kInitialSize - 1)];
entry->key_ = key;
return &entry->value_;
diff -up v8-6.7.17/src/compiler/simd-scalar-lowering.cc.fixme v8-6.7.17/src/compiler/simd-scalar-lowering.cc
--- v8-6.7.17/src/compiler/simd-scalar-lowering.cc.fixme 2018-03-06 13:58:16.000000000 -0500
+++ v8-6.7.17/src/compiler/simd-scalar-lowering.cc 2018-03-14 11:47:12.587247422 -0400
@@ -38,7 +38,7 @@ SimdScalarLowering::SimdScalarLowering(
DCHECK_NOT_NULL(graph());
DCHECK_NOT_NULL(graph()->end());
replacements_ = zone()->NewArray<Replacement>(graph()->NodeCount());
- memset(replacements_, 0, sizeof(Replacement) * graph()->NodeCount());
+ memset(static_cast<void*>(replacements_), 0, sizeof(Replacement) * graph()->NodeCount());
}
void SimdScalarLowering::LowerGraph() {
diff -up v8-6.7.17/src/d8.cc.fixme v8-6.7.17/src/d8.cc
--- v8-6.7.17/src/d8.cc.fixme 2018-03-06 13:58:16.000000000 -0500
+++ v8-6.7.17/src/d8.cc 2018-03-14 11:47:12.588247399 -0400
@@ -2691,7 +2691,10 @@ void Worker::ExecuteInThread() {
if (Shell::DeserializeValue(isolate, std::move(data))
.ToLocal(&value)) {
Local<Value> argv[] = {value};
- (void)onmessage_fun->Call(context, global, 1, argv);
+ MaybeLocal<Value> result = onmessage_fun->Call(context, global, 1, argv);
+ if (result.IsEmpty()) {
+ Shell::ReportException(isolate, &try_catch);
+ }
}
if (try_catch.HasCaught()) {
Shell::ReportException(isolate, &try_catch);
diff -up v8-6.7.17/src/flags.cc.fixme v8-6.7.17/src/flags.cc
--- v8-6.7.17/src/flags.cc.fixme 2018-03-06 13:58:16.000000000 -0500
+++ v8-6.7.17/src/flags.cc 2018-03-14 11:47:12.588247399 -0400
@@ -557,6 +557,7 @@ static char* SkipBlackSpace(char* p) {
// static
int FlagList::SetFlagsFromString(const char* str, int len) {
// make a 0-terminated copy of str
+ assert(len > 0);
ScopedVector<char> copy0(len + 1);
MemCopy(copy0.start(), str, len);
copy0[len] = '\0';
diff -up v8-6.7.17/src/frames.h.fixme v8-6.7.17/src/frames.h
--- v8-6.7.17/src/frames.h.fixme 2018-03-06 13:58:16.000000000 -0500
+++ v8-6.7.17/src/frames.h 2018-03-14 11:47:12.589247376 -0400
@@ -44,7 +44,7 @@ class InnerPointerToCodeCache {
}
void Flush() {
- memset(&cache_[0], 0, sizeof(cache_));
+ memset(static_cast<void*>(&cache_[0]), 0, sizeof(cache_));
}
InnerPointerToCodeCacheEntry* GetCacheEntry(Address inner_pointer);
diff -up v8-6.7.17/src/libplatform/tracing/trace-object.cc.fixme v8-6.7.17/src/libplatform/tracing/trace-object.cc
--- v8-6.7.17/src/libplatform/tracing/trace-object.cc.fixme 2018-03-06 13:58:16.000000000 -0500
+++ v8-6.7.17/src/libplatform/tracing/trace-object.cc 2018-03-14 11:47:12.589247376 -0400
@@ -25,7 +25,7 @@ V8_INLINE static void CopyTraceObjectPar
const char** member) {
if (*member) {
size_t length = strlen(*member) + 1;
- strncpy(*buffer, *member, length);
+ memcpy(*buffer, *member, length);
*member = *buffer;
*buffer += length;
}
diff -up v8-6.7.17/src/log.cc.fixme v8-6.7.17/src/log.cc
--- v8-6.7.17/src/log.cc.fixme 2018-03-06 13:58:16.000000000 -0500
+++ v8-6.7.17/src/log.cc 2018-03-14 11:47:12.590247353 -0400
@@ -531,7 +531,7 @@ void JitLogger::LogRecordedBuffer(Abstra
SharedFunctionInfo* shared, const char* name,
int length) {
JitCodeEvent event;
- memset(&event, 0, sizeof(event));
+ memset(static_cast<void*>(&event), 0, sizeof(event));
event.type = JitCodeEvent::CODE_ADDED;
event.code_start = code->instruction_start();
event.code_len = code->instruction_size();
@@ -548,7 +548,7 @@ void JitLogger::LogRecordedBuffer(Abstra
void JitLogger::LogRecordedBuffer(const InstructionStream* stream,
const char* name, int length) {
JitCodeEvent event;
- memset(&event, 0, sizeof(event));
+ memset(static_cast<void*>(&event), 0, sizeof(event));
event.type = JitCodeEvent::CODE_ADDED;
event.code_start = stream->bytes();
event.code_len = stream->byte_length();
@@ -562,7 +562,7 @@ void JitLogger::LogRecordedBuffer(const
void JitLogger::LogRecordedBuffer(wasm::WasmCode* code, const char* name,
int length) {
JitCodeEvent event;
- memset(&event, 0, sizeof(event));
+ memset(static_cast<void*>(&event), 0, sizeof(event));
event.type = JitCodeEvent::CODE_ADDED;
event.code_start = code->instructions().start();
event.code_len = code->instructions().length();
@@ -594,7 +594,7 @@ void JitLogger::AddCodeLinePosInfoEvent(
int position,
JitCodeEvent::PositionType position_type) {
JitCodeEvent event;
- memset(&event, 0, sizeof(event));
+ memset(static_cast<void*>(&event), 0, sizeof(event));
event.type = JitCodeEvent::CODE_ADD_LINE_POS_INFO;
event.user_data = jit_handler_data;
event.line_info.offset = pc_offset;
@@ -607,7 +607,7 @@ void JitLogger::AddCodeLinePosInfoEvent(
void* JitLogger::StartCodePosInfoEvent() {
JitCodeEvent event;
- memset(&event, 0, sizeof(event));
+ memset(static_cast<void*>(&event), 0, sizeof(event));
event.type = JitCodeEvent::CODE_START_LINE_INFO_RECORDING;
code_event_handler_(&event);
@@ -617,7 +617,7 @@ void* JitLogger::StartCodePosInfoEvent()
void JitLogger::EndCodePosInfoEvent(Address start_address,
void* jit_handler_data) {
JitCodeEvent event;
- memset(&event, 0, sizeof(event));
+ memset(static_cast<void*>(&event), 0, sizeof(event));
event.type = JitCodeEvent::CODE_END_LINE_INFO_RECORDING;
event.code_start = start_address;
event.user_data = jit_handler_data;
diff -up v8-6.7.17/src/parsing/parser-base.h.fixme v8-6.7.17/src/parsing/parser-base.h
--- v8-6.7.17/src/parsing/parser-base.h.fixme 2018-03-06 13:58:16.000000000 -0500
+++ v8-6.7.17/src/parsing/parser-base.h 2018-03-14 11:47:12.591247330 -0400
@@ -2163,7 +2163,8 @@ template <class Impl>
typename ParserBase<Impl>::ExpressionT ParserBase<Impl>::ParsePropertyName(
IdentifierT* name, PropertyKind* kind, bool* is_generator, bool* is_get,
bool* is_set, bool* is_async, bool* is_computed_name, bool* ok) {
- DCHECK_EQ(*kind, PropertyKind::kNotSet);
+ PropertyKind kindns = PropertyKind::kNotSet;
+ DCHECK_EQ(*kind, kindns);
DCHECK(!*is_generator);
DCHECK(!*is_get);
DCHECK(!*is_set);
diff -up v8-6.7.17/src/wasm/wasm-module-builder.h.fixme v8-6.7.17/src/wasm/wasm-module-builder.h
diff -up v8-6.7.17/src/zone/zone-segment.cc.fixme v8-6.7.17/src/zone/zone-segment.cc
--- v8-6.7.17/src/zone/zone-segment.cc.fixme 2018-03-06 13:58:16.000000000 -0500
+++ v8-6.7.17/src/zone/zone-segment.cc 2018-03-14 11:47:12.591247330 -0400
@@ -15,7 +15,7 @@ void Segment::ZapContents() {
void Segment::ZapHeader() {
#ifdef DEBUG
- memset(this, kZapDeadByte, sizeof(Segment));
+ memset(static_cast<void*>(this), kZapDeadByte, sizeof(Segment));
#endif
}
diff -up v8-6.7.17/test/cctest/compiler/graph-builder-tester.h.fixme v8-6.7.17/test/cctest/compiler/graph-builder-tester.h
--- v8-6.7.17/test/cctest/compiler/graph-builder-tester.h.fixme 2018-03-06 13:58:16.000000000 -0500
+++ v8-6.7.17/test/cctest/compiler/graph-builder-tester.h 2018-03-14 11:47:12.591247330 -0400
@@ -164,9 +164,6 @@ class GraphBuilderTester : public Handle
Node* ChangeUint32ToTagged(Node* a) {
return NewNode(simplified()->ChangeUint32ToTagged(), a);
}
- Node* ChangeFloat64ToTagged(Node* a) {
- return NewNode(simplified()->ChangeFloat64ToTagged(), a);
- }
Node* ChangeTaggedToBit(Node* a) {
return NewNode(simplified()->ChangeTaggedToBit(), a);
}
diff -up v8-6.7.17/test/cctest/interpreter/bytecode-expectations-printer.cc.fixme v8-6.7.17/test/cctest/interpreter/bytecode-expectations-printer.cc
--- v8-6.7.17/test/cctest/interpreter/bytecode-expectations-printer.cc.fixme 2018-03-06 13:58:16.000000000 -0500
+++ v8-6.7.17/test/cctest/interpreter/bytecode-expectations-printer.cc 2018-03-14 11:47:12.591247330 -0400
@@ -81,7 +81,8 @@ v8::Local<v8::Module> BytecodeExpectatio
}
void BytecodeExpectationsPrinter::Run(v8::Local<v8::Script> script) const {
- (void)script->Run(isolate_->GetCurrentContext());
+ Local<Value> result = script->Run(isolate_->GetCurrentContext()).ToLocalChecked();
+ CHECK(!result.IsEmpty());
}
i::Handle<v8::internal::BytecodeArray>
diff -up v8-6.7.17/test/cctest/parsing/test-scanner-streams.cc.fixme v8-6.7.17/test/cctest/parsing/test-scanner-streams.cc
--- v8-6.7.17/test/cctest/parsing/test-scanner-streams.cc.fixme 2018-03-06 13:58:16.000000000 -0500
+++ v8-6.7.17/test/cctest/parsing/test-scanner-streams.cc 2018-03-14 11:47:12.592247307 -0400
@@ -194,7 +194,7 @@ TEST(Utf8ChunkBoundaries) {
for (size_t i = 1; i < len; i++) {
// Copy source string into buffer, splitting it at i.
// Then add three chunks, 0..i-1, i..strlen-1, empty.
- strncpy(buffer, unicode_utf8, i);
+ memcpy(buffer, unicode_utf8, i);
strncpy(buffer + i + 1, unicode_utf8 + i, len - i);
buffer[i] = '\0';
buffer[len + 1] = '\0';
@@ -220,8 +220,8 @@ TEST(Utf8SingleByteChunks) {
char buffer[arraysize(unicode_utf8) + 4];
for (size_t i = 1; i < len - 1; i++) {
// Copy source string into buffer, make a single-byte chunk at i.
- strncpy(buffer, unicode_utf8, i);
- strncpy(buffer + i + 3, unicode_utf8 + i + 1, len - i - 1);
+ memcpy(buffer, unicode_utf8, i);
+ memcpy(buffer + i + 3, unicode_utf8 + i + 1, len - i - 1);
buffer[i] = '\0';
buffer[i + 1] = unicode_utf8[i];
buffer[i + 2] = '\0';
diff -up v8-6.7.17/testing/gtest/include/gtest/internal/gtest-param-util.h.fixme v8-6.7.17/testing/gtest/include/gtest/internal/gtest-param-util.h
--- v8-6.7.17/testing/gtest/include/gtest/internal/gtest-param-util.h.fixme 2018-03-14 12:49:02.620027123 -0400
+++ v8-6.7.17/testing/gtest/include/gtest/internal/gtest-param-util.h 2018-03-14 12:51:50.095577470 -0400
@@ -34,6 +34,8 @@
#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_H_
#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_H_
+#pragma GCC diagnostic warning "-Wsubobject-linkage"
+
#include <ctype.h>
#include <iterator>
diff -up v8-6.7.17/test/unittests/base/functional-unittest.cc.fixme v8-6.7.17/test/unittests/base/functional-unittest.cc
--- v8-6.7.17/test/unittests/base/functional-unittest.cc.fixme 2018-03-06 13:58:17.000000000 -0500
+++ v8-6.7.17/test/unittests/base/functional-unittest.cc 2018-03-14 11:47:12.592247307 -0400
@@ -74,7 +74,9 @@ TYPED_TEST(FunctionalTest, EqualToImplie
this->rng()->NextBytes(values, sizeof(values));
TRACED_FOREACH(TypeParam, v1, values) {
TRACED_FOREACH(TypeParam, v2, values) {
- if (e(v1, v2)) EXPECT_EQ(h(v1), h(v2));
+ if (e(v1, v2)) {
+ EXPECT_EQ(h(v1), h(v2));
+ }
}
}
}
@@ -143,7 +145,9 @@ TYPED_TEST(FunctionalTest, BitEqualToImp
this->rng()->NextBytes(&values, sizeof(values));
TRACED_FOREACH(TypeParam, v1, values) {
TRACED_FOREACH(TypeParam, v2, values) {
- if (e(v1, v2)) EXPECT_EQ(h(v1), h(v2));
+ if (e(v1, v2)) {
+ EXPECT_EQ(h(v1), h(v2));
+ }
}
}
}
diff -up v8-6.7.17/test/unittests/detachable-vector-unittest.cc.fixme v8-6.7.17/test/unittests/detachable-vector-unittest.cc
--- v8-6.7.17/test/unittests/detachable-vector-unittest.cc.fixme 2018-03-06 13:58:17.000000000 -0500
+++ v8-6.7.17/test/unittests/detachable-vector-unittest.cc 2018-03-14 11:47:12.592247307 -0400
@@ -52,7 +52,7 @@ TEST(DetachableVector, DetachLeaksBackin
// Force allocation of the backing store.
v.push_back(1);
// Bit-copy the data structure.
- memcpy(&v2, &v, sizeof(DetachableVector<int>));
+ memcpy(static_cast<void*>(&v2), &v, sizeof(DetachableVector<int>));
// The backing store should be leaked here - free was not called.
v.detach();
diff -up v8-6.7.17/test/unittests/wasm/wasm-module-builder-unittest.cc.fixme v8-6.7.17/test/unittests/wasm/wasm-module-builder-unittest.cc
--- v8-6.7.17/test/unittests/wasm/wasm-module-builder-unittest.cc.fixme 2018-03-14 12:44:18.816950209 -0400
+++ v8-6.7.17/test/unittests/wasm/wasm-module-builder-unittest.cc 2018-03-14 12:44:26.911778869 -0400
@@ -28,7 +28,7 @@ TEST_F(WasmModuleBuilderTest, Regression
// Test crashed with asan.
ZoneBuffer buffer(zone());
const size_t kSize = ZoneBuffer::kInitialSize * 3 + 4096 + 100;
- byte data[kSize];
+ byte data[kSize] = {};
buffer.write(data, kSize);
}

12
SOURCES/v8-6.7.17-i686-g1-to-avoid-mem-exhaust.patch

@ -0,0 +1,12 @@
diff -up v8-6.7.17/build/config/compiler/BUILD.gn.memexhaust v8-6.7.17/build/config/compiler/BUILD.gn
--- v8-6.7.17/build/config/compiler/BUILD.gn.memexhaust 2018-03-15 10:19:59.313283572 -0400
+++ v8-6.7.17/build/config/compiler/BUILD.gn 2018-03-15 10:20:09.750008452 -0400
@@ -2010,7 +2010,7 @@ config("symbols") {
# [1] crrev.com/a81d5ade0b043208e06ad71a38bcf9c348a1a52f
cflags += [ "-gdwarf-3" ]
}
- cflags += [ "-g2" ]
+ cflags += [ "-g1" ]
}
if (use_debug_fission && !is_nacl) {
cflags += [ "-gsplit-dwarf" ]

141
SOURCES/v8-6.7.17-notcross.patch

@ -0,0 +1,141 @@
diff -up v8-6.7.17/build/toolchain/linux/BUILD.gn.notcross v8-6.7.17/build/toolchain/linux/BUILD.gn
--- v8-6.7.17/build/toolchain/linux/BUILD.gn.notcross 2018-03-06 14:20:53.000000000 -0500
+++ v8-6.7.17/build/toolchain/linux/BUILD.gn 2018-03-06 14:37:22.505146107 -0500
@@ -6,7 +6,6 @@ import("//build/config/sysroot.gni")
import("//build/toolchain/gcc_toolchain.gni")
clang_toolchain("clang_arm") {
- toolprefix = "arm-linux-gnueabihf-"
toolchain_args = {
current_cpu = "arm"
current_os = "linux"
@@ -14,7 +13,6 @@ clang_toolchain("clang_arm") {
}
clang_toolchain("clang_arm64") {
- toolprefix = "aarch64-linux-gnu-"
toolchain_args = {
current_cpu = "arm64"
current_os = "linux"
@@ -22,15 +20,13 @@ clang_toolchain("clang_arm64") {
}
gcc_toolchain("arm64") {
- toolprefix = "aarch64-linux-gnu-"
-
- cc = "${toolprefix}gcc"
- cxx = "${toolprefix}g++"
+ cc = "gcc"
+ cxx = "g++"
- ar = "${toolprefix}ar"
+ ar = "ar"
ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
+ readelf = "readelf"
+ nm = "nm"
toolchain_args = {
current_cpu = "arm64"
@@ -40,15 +36,13 @@ gcc_toolchain("arm64") {
}
gcc_toolchain("arm") {
- toolprefix = "arm-linux-gnueabihf-"
-
- cc = "${toolprefix}gcc"
- cxx = "${toolprefix}g++"
+ cc = "gcc"
+ cxx = "g++"
- ar = "${toolprefix}ar"
+ ar = "ar"
ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
+ readelf = "readelf"
+ nm = "nm"
toolchain_args = {
current_cpu = "arm"
@@ -178,14 +172,12 @@ clang_toolchain("clang_mips64el") {
}
gcc_toolchain("mipsel") {
- toolprefix = "mipsel-linux-gnu-"
-
- cc = "${toolprefix}gcc"
- cxx = " ${toolprefix}g++"
- ar = "${toolprefix}ar"
+ cc = "gcc"
+ cxx = "g++"
+ ar = "ar"
ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
+ readelf = "readelf"
+ nm = "nm"
toolchain_args = {
cc_wrapper = ""
@@ -197,14 +189,12 @@ gcc_toolchain("mipsel") {
}
gcc_toolchain("mips64el") {
- toolprefix = "mips64el-linux-gnuabi64-"
-
- cc = "${toolprefix}gcc"
- cxx = "${toolprefix}g++"
- ar = "${toolprefix}ar"
+ cc = "gcc"
+ cxx = "g++"
+ ar = "ar"
ld = cxx
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
+ readelf = "readelf"
+ nm = "nm"
toolchain_args = {
cc_wrapper = ""
@@ -248,14 +238,12 @@ gcc_toolchain("ppc64") {
}
gcc_toolchain("mips") {
- toolprefix = "mips-linux-gnu-"
-
- cc = "${toolprefix}gcc"
- cxx = "${toolprefix}g++"
+ cc = "gcc"
+ cxx = "g++"
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
- ar = "${toolprefix}ar"
+ readelf = "readelf"
+ nm = "nm"
+ ar = "ar"
ld = cxx
toolchain_args = {
@@ -266,14 +254,12 @@ gcc_toolchain("mips") {
}
gcc_toolchain("mips64") {
- toolprefix = "mips64-linux-gnuabi64-"
-
- cc = "${toolprefix}gcc"
- cxx = "${toolprefix}g++"
+ cc = "gcc"
+ cxx = "g++"
- readelf = "${toolprefix}readelf"
- nm = "${toolprefix}nm"
- ar = "${toolprefix}ar"
+ readelf = "readelf"
+ nm = "nm"
+ ar = "ar"
ld = cxx
toolchain_args = {

21
SOURCES/v8-6.7.17-optflags.patch

@ -0,0 +1,21 @@
diff -up v8-6.7.17/build/config/compiler/BUILD.gn.optflags v8-6.7.17/build/config/compiler/BUILD.gn
--- v8-6.7.17/build/config/compiler/BUILD.gn.optflags 2018-03-14 14:20:29.275684642 -0400
+++ v8-6.7.17/build/config/compiler/BUILD.gn 2018-03-14 14:22:25.056966902 -0400
@@ -1849,7 +1849,7 @@ config("optimize_speed") {
# "default_optimization", below.
configs = [ "//build/config/nacl:irt_optimize" ]
} else {
- ldflags = common_optimize_on_ldflags
+ ldflags = [ "$OPTLDFLAGS" ] + common_optimize_on_ldflags
if (is_win) {
# Favor speed over size, /O2 must be before the common flags. The GYP
# build also specifies /Ot, /Oi, and /GF, but these are implied by /O2.
@@ -1870,7 +1870,7 @@ config("optimize_speed") {
} else if (optimize_for_fuzzing) {
cflags = [ "-O1" ] + common_optimize_on_cflags
} else {
- cflags = [ "-O3" ] + common_optimize_on_cflags
+ cflags = [ "$OPTFLAGS" ] + common_optimize_on_cflags
}
}
}

799
SPECS/v8.spec

@ -0,0 +1,799 @@
# clang doesn't understand hardening, specifically "-specs="
%global clang_optflags %(echo %{optflags} | sed 's|-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1||g')
%global clang_ldflags %(echo "%{__global_ldflags} -Wl,--build-id" | sed 's|-specs=/usr/lib/rpm/redhat/redhat-hardened-ld||g')

# Hi Googlers! If you're looking in here for patches, nifty.
# You (and everyone else) are welcome to use any of my Chromium spec files and
# patches under the terms of the GPLv2 or later.
# You (and everyone else) are welcome to use any of my V8-specific spec files
# and patches under the terms of the BSD license.
# You (and everyone else) may NOT use my spec files or patches under any other
# terms.
# I hate to be a party-pooper here, but I really don't want to help Google
# make a proprietary browser. There are enough of those already.
# All copyrightable work in these spec files and patches is Copyright 2011
# Tom Callaway <spot@fedoraproject.org>

# For the 1.2 branch, we use 0s here
# For 1.3+, we use the three digit versions
# Hey, now there are four digits. What do they mean? Popsicle.
# Now there are three digits. Yeah. HOW ABOUT DEM APPLES?!?
%global somajor 6
%global sominor 7
%global sobuild 17
%global sover %{somajor}

Name: v8
Version: %{somajor}.%{sominor}.%{sobuild}
Release: 7%{?dist}
Epoch: 1
Summary: JavaScript Engine
Group: System Environment/Libraries
License: BSD
URL: https://chromium.googlesource.com/v8/v8/
# To make the source, you need to have depot_tools installed and in your PATH
# https://chromium.googlesource.com/chromium/tools/depot_tools.git/+archive/7e7a454f9afdddacf63e10be48f0eab603be654e.tar.gz
# Note that the depot_tools tarball above does not unpack into its own directory.
# mkdir v8-tmp
# cd v8-tmp
# fetch v8
# cd v8
# git checkout 6.7.17
# gclient sync
# cd ..
# mv v8 v8-6.7.17
# tar -c --exclude=.git --exclude=build/linux -J -f v8-6.7.17.tar.xz v8-6.7.17
Source0: v8-6.7.17.tar.xz
# https://chromium.googlesource.com/chromium/tools/depot_tools.git/+archive/7e7a454f9afdddacf63e10be48f0eab603be654e.tar.gz
Source1: depot_tools.git-master.tar.gz
# Taken from chromium-60.0.3112.78/build/linux/unbundle/icu.gn
Source2: icu.gn
# Needed to build gn. :P
# git clone https://chromium.googlesource.com/chromium/src/base
# tar cvfj chromium-base-git2d35e4d.tar.bz2 base/
Source3: chromium-base-git2d35e4d.tar.bz2
# git clone https://chromium.googlesource.com/chromium/src/tools/gn
# tar cvfj gn-source-gitf833e90.tar.bz2 gn/
Source4: gn-source-gitf833e90.tar.bz2
# Patch0: v8-4.10.91-system_icu.patch
# Patch2: v8-5.2.258-bundled-binutils.patch
Patch3: v8-5.2.258-gcc7.patch
Patch5: v8-6.2.91-nolambda.patch
Patch6: v8-6.2.91-sover.patch
# Patch7: v8-6.2.91-noxlocale.patch
# do not assume we are cross compiling
# silly google
Patch8: v8-6.7.17-notcross.patch
# On i686 and armv7hl, use -g1 to avoid mem exhaust
Patch9: v8-6.7.17-i686-g1-to-avoid-mem-exhaust.patch
# Fedora 25 and older need less flags
# and clang is not tolerant of flags it doesn't know about
Patch10: v8-6.2.91-oldclang-flags.patch
# Workaround gcc8 bug in gn
Patch11: v8-6.2.91-gcc8-gn-fabi11.patch
# So many gcc fixes
Patch12: v8-6.7.17-fixme.patch
# Use Fedora optflags
Patch13: v8-6.7.17-optflags.patch
# Reconcile libc++abi with unwind.h from gcc
# https://bugs.llvm.org/show_bug.cgi?id=35945
# Modified patch from https://reviews.llvm.org/D42242
Patch14: v8-6.7.17-fix-gcc-unwind-header.patch

# PPC64 doesn't like libcxx code.
# error: '(9.223372036854775807e+18 / 1.0e+9)' is not a constant expression
# aarch64 doesn't work either.
# code does not compile on s390
ExclusiveArch: %{ix86} x86_64 %{arm} ppc mipsel mips64el
BuildRequires: readline-devel, libicu-devel, ninja-build
BuildRequires: python2-devel, glib2-devel, libatomic
# BuildRequires: clang, llvm
BuildRequires: gcc, gcc-c++

%description
V8 is Google's open source JavaScript engine. V8 is written in C++ and is used
in Google Chrome, the open source browser from Google. V8 implements ECMAScript
as specified in ECMA-262, 3rd edition.

%package devel
Group: Development/Libraries
Summary: Development headers and libraries for v8
Requires: %{name} = %{epoch}:%{version}-%{release}

%description devel
Development headers and libraries for v8.

%package -n python2-v8
%{?python_provide:%python_provide python2-v8}
# Remove before F30
Provides: %{name}-python = %{version}-%{release}
Provides: %{name}-python%{?_isa} = %{version}-%{release}
Obsoletes: %{name}-python < %{version}-%{release}
Summary: Python libraries from v8
Requires: %{name} = %{epoch}:%{version}-%{release}

%description -n python2-v8
Python libraries from v8.

%prep
%setup -q -T -c -n depot_tools -a 1
%setup -q -n %{name}-%{version} -a 3
# %%patch0 -p1 -b .system_icu
# %%patch2 -p1 -b .bb
# %%patch3 -p1 -b .gcc7
%patch5 -p1 -b .nolambda
%patch6 -p1 -b .sover
# %%patch7 -p1 -b .noxlocale
%patch8 -p1 -b .notcross
%ifarch i686 armv7hl
%patch9 -p1 -b .memexhaust
%endif
%if 0%{?fedora} <= 25
%patch10 -p1 -b .oldflags
%endif

cp -a %{SOURCE2} third_party/icu/BUILD.gn

pushd tools
tar xvf %{SOURCE4}
popd

%patch11 -p1 -b .fabi11
%patch12 -p1 -b .fixme
%patch13 -p1 -b .optflags
%patch14 -p1 -b .unwind

SPLITOPTFLAGS=""
for i in `echo %{optflags} | sed 's/ /\n/g'`; do
SPLITOPTFLAGS+="\"$i\", "
done
export SPLITOPTFLAGS

SPLITLDFLAGS=""
for j in `echo %{build_ldflags} | sed 's/ /\n/g'`; do
SPLITLDFLAGS+="\"$j\", "
done
export SPLITLDFLAGS

sed -i "s|\"\$OPTFLAGS\"|$SPLITOPTFLAGS|g" build/config/compiler/BUILD.gn
sed -i "s|\"\$OPTLDFLAGS\"|$SPLITLDFLAGS|g" build/config/compiler/BUILD.gn

# Use system header ... except it doesn't work.
# rm -rf src/third_party/valgrind/valgrind.h
# ln -s /usr/include/valgrind/valgrind.h src/third_party/valgrind/valgrind.h

# Don't make thin libraries. :(
for i in `find . -type f -name '*.mk'`; do sed -i 's|alink_thin|alink|g' $i; done
sed -i "s|'alink_thin'|'alink'|g" tools/gyp/pylib/gyp/generator/make.py
sed -i "s|'alink_thin'|'alink'|g" tools/gyp/pylib/gyp/generator/ninja.py
# sed -i "s|crsT|crs|g" out/Makefile
sed -i "s|crsT|crs|g" tools/gyp/pylib/gyp/generator/make.py


rm -rf third_party/binutils/Linux_x64/Release/bin/ld.gold
rm -rf third_party/llvm-build/Release+Asserts
mkdir -p third_party/llvm-build/Release+Asserts/bin
pushd third_party/llvm-build/Release+Asserts/bin
ln -s /usr/bin/clang clang
ln -s /usr/bin/clang++ clang++
ln -s /usr/bin/llvm-ar llvm-ar
popd

for i in `grep -rl "Wno-undefined-var-template" *`; do
sed -i 's|-Wno-undefined-var-template||g' $i
done

# cleanup unversioned python parts
for i in `grep -r "/usr/bin/env python" * |grep -v "python3" |cut -d : -f 1`; do
sed -i 's|/usr/bin/env python|/usr/bin/env python2|g' $i
done
sed -i 's|exec python|exec python2|g' ../depot_tools/gn
sed -i 's|/usr/bin/env python|/usr/bin/env python2|g' ../depot_tools/gn.py

%build
%ifarch x86_64
%global v8arch x64
%endif
%ifarch %{ix86}
%global v8arch x86
%endif
%ifarch %{arm}
%global v8arch arm
%endif
%ifarch aarch64
%global v8arch arm64
%endif
%ifarch mipsel
%global v8arch mipsel
%endif
%ifarch mips64el
%global v8arch mips64el
%endif
%ifarch ppc
%global v8arch ppc
%endif
%ifarch ppc64
%global v8arch ppc64
%endif
%ifarch s390
%global v8arch s390
%endif
%ifarch s390x
%global v8arch s390x
%endif

# DO THE HARLEM SHAKE
# err... I mean, build gn from source.
pushd tools/gn
./bootstrap/bootstrap.py -s
popd
rm -rf buildtools/linux64/gn*
# the tooling thinks all linux is "linux64"
cp -a out/Release/gn buildtools/linux64/gn

# Replace ninja in depot_tools
rm -rf ../depot_tools/ninja
ln -s /usr/bin/ninja ../depot_tools/ninja

V8_GN_DEFINES=""
V8_GN_DEFINES+=' use_sysroot=false use_gold=false enable_nacl=false linux_use_bundled_binutils=false is_component_build=true clang_use_chrome_plugins=false'
V8_GN_DEFINES+=' libcpp_is_static=true v8_use_external_startup_data=false'
V8_GN_DEFINES+=' v8_target_cpu="%{v8arch}"'
V8_GN_DEFINES+=' is_clang=false'
V8_GN_DEFINES+=' use_rtti=true'
%ifarch armv7hl armv7hnl
V8_GN_DEFINES+=' arm_float_abi="hard"'
%endif
%ifarch armv5tel armv6l armv7l
V8_GN_DEFINES+=' arm_float_abi="softfp"'
%endif

export PATH=$PATH:%{_builddir}/depot_tools
CHROMIUM_BUILDTOOLS_PATH=./buildtools/ gn --script-executable=/usr/bin/python2 gen out.gn/%{v8arch}.release --args="$V8_GN_DEFINES"
mkdir -p out.gn/%{v8arch}.release/gen/shim_headers/icui18n_shim/third_party/icu/source/i18n/unicode
mkdir -p out.gn/%{v8arch}.release/gen/shim_headers/icuuc_shim/third_party/icu/source/common/unicode
../depot_tools/ninja -vvv -C out.gn/%{v8arch}.release

%install
pushd out.gn/%{v8arch}.release
# library first
mkdir -p %{buildroot}%{_libdir}
cp -a libv8*.so.%{somajor} %{buildroot}%{_libdir}
# Next, binaries
mkdir -p %{buildroot}%{_bindir}
install -p -m0755 d8 %{buildroot}%{_bindir}
install -p -m0755 mksnapshot %{buildroot}%{_bindir}
# install -p -m0755 parser_fuzzer %{buildroot}%{_bindir}
%if 0
# BLOBS! (Don't stress. They get built out of source code.)
install -p natives_blob.bin snapshot_blob.bin %{buildroot}%{_libdir}
%endif
popd

# Now, headers
mkdir -p %{buildroot}%{_includedir}
install -p include/*.h %{buildroot}%{_includedir}
cp -a include/libplatform %{buildroot}%{_includedir}
# Are these still useful?
mkdir -p %{buildroot}%{_includedir}/v8/extensions/
install -p src/extensions/*.h %{buildroot}%{_includedir}/v8/extensions/

# Make shared library links
pushd %{buildroot}%{_libdir}
ln -sf libv8.so.%{somajor} libv8.so
ln -sf libv8_libplatform.so.%{somajor} libv8_libplatform.so
ln -sf libv8_libbase.so.%{somajor} libv8_libbase.so
popd

# install Python JS minifier scripts for nodejs
install -d %{buildroot}%{python2_sitelib}
sed -i 's|/usr/bin/python2.4|/usr/bin/env python2|g' tools/jsmin.py
sed -i 's|/usr/bin/python2.4|/usr/bin/env python2|g' tools/js2c.py
install -p -m0744 tools/jsmin.py %{buildroot}%{python2_sitelib}/
install -p -m0744 tools/js2c.py %{buildroot}%{python2_sitelib}/
chmod -R -x %{buildroot}%{python2_sitelib}/*.py*

%post -p /sbin/ldconfig

%postun -p /sbin/ldconfig

%files
%license LICENSE
%doc AUTHORS ChangeLog
%{_bindir}/d8
%{_bindir}/mksnapshot
%{_libdir}/*.so.*
%if 0
%{_libdir}/*.bin
%endif

%files devel
%{_includedir}/*.h
%{_includedir}/libplatform/
%dir %{_includedir}/v8/
%{_includedir}/v8/extensions/
%{_libdir}/*.so

%files -n python2-v8
%{python2_sitelib}/j*.py*

%changelog
* Tue Jul 24 2018 Tom Callaway <spot@fedoraproject.org> - 1:6.7.17-7
- add use_rtti=true flag
- cleanup unversioned python bits

* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1:6.7.17-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild

* Tue Jul 10 2018 Pete Walter <pwalter@fedoraproject.org> - 1:6.7.17-5
- Rebuild for ICU 62

* Tue May 15 2018 Sergey Avseyev <sergey.avseyev@gmail.com> - 1:6.7.17-4
- Add libv8_libbase.so symlink to devel package.

* Tue May 8 2018 Sergey Avseyev <sergey.avseyev@gmail.com> - 1:6.7.17-3
- Fix ARM build. Integrate fix for https://bugs.llvm.org/show_bug.cgi?id=35945

* Mon Apr 30 2018 Pete Walter <pwalter@fedoraproject.org> - 1:6.7.17-2
- Rebuild for ICU 61.1

* Wed Mar 14 2018 Tom Callaway <spot@fedoraproject.org> - 1:6.7.17-1
- update to 6.7.17

* Wed Mar 07 2018 Adam Williamson <awilliam@redhat.com> - 1:6.2.91-8
- Rebuild to fix GCC 8 mis-compilation
See https://da.gd/YJVwk ("GCC 8 ABI change on x86_64")

* Mon Feb 19 2018 Tom Callaway <spot@fedoraproject.org> - 1:6.2.91-7
- fix platform library symlink

* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1:6.2.91-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild

* Thu Nov 30 2017 Pete Walter <pwalter@fedoraproject.org> - 1:6.2.91-5
- Rebuild for ICU 60.1

* Thu Aug 31 2017 Tom Callaway <spot@fedoraproject.org> - 1:6.2.91-4
- disable some cflags on fedora 25 or older

* Sun Aug 20 2017 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 1:6.2.91-3
- Add Provides for the old name without %%_isa

* Sat Aug 19 2017 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 1:6.2.91-2
- Python 2 binary package renamed to python2-v8
See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3

* Mon Jul 31 2017 Tom Callaway <spot@fedoraproject.org> - 1:6.2.91-1
- 6.2.91

* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1:5.2.258-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild

* Wed Mar 1 2017 Tom Callaway <spot@fedoraproject.org> - 1:5.2.258-11
- fix ppc64 build

* Tue Feb 28 2017 Tom Callaway <spot@fedoraproject.org> - 1:5.2.258-10
- fix ftbfs (thanks to Ben Noordhuis)

* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1:5.2.258-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild

* Thu Jan 12 2017 Igor Gnatenko <ignatenko@redhat.com> - 1:5.2.258-8
- Rebuild for readline 7.x

* Mon Oct 17 2016 Tom Callaway <spot@fedoraproject.org> - 1:5.2.258-7
- force v8 not to make thin libraries

* Thu Oct 13 2016 Tom Callaway <spot@fedoraproject.org> - 1:5.2.258-6
- use smaller, better compressed source tarball without unnecessary git bits

* Mon Oct 10 2016 Tom Callaway <spot@fedoraproject.org> - 1:5.2.258-5
- add bundledbinutils option to Makefile to disable "thin" static libs

* Mon Sep 26 2016 Tom Callaway <spot@fedoraproject.org> - 1:5.2.258-4
- set snapshot=external to enable blob creation
- include blobs, static libraries

* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:5.2.258-3
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages

* Fri May 13 2016 Tom Callaway <spot@fedoraproject.org> - 1:5.2.258-2
- build with optflags, except for the hardening script which clang has no idea what to do with

* Mon May 9 2016 Tom Callaway <spot@fedoraproject.org> - 1:5.2.258-1
- update to 5.2.258

* Mon May 2 2016 Tom Callaway <spot@fedoraproject.org> - 1:5.2.197-1
- update to 5.2.197
- WELCOME TO THE WORLD OF TOMORROW

* Fri Apr 15 2016 David Tardon <dtardon@redhat.com> - 1:3.14.5.10-24
- rebuild for ICU 57.1

* Fri Feb 05 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1:3.14.5.10-23
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild

* Wed Oct 28 2015 David Tardon <dtardon@redhat.com> - 1:3.14.5.10-22
- rebuild for ICU 56.1

* Mon Sep 21 2015 Tom Callaway <spot@fedoraproject.org> - 1:3.14.5.10-21
- add REPLACE_INVALID_UTF8 code needed for nodejs

* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:3.14.5.10-20
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild

* Mon Jun 8 2015 Tom Callaway <spot@fedoraproject.org> - 1:3.14.5.10-19
- split off python subpackage (bz 959145)

* Thu Apr 23 2015 Tom Callaway <spot@fedoraproject.org> - 1:3.14.5.10-18
- backport security fix for ARM - CVE-2014-3152

* Thu Feb 19 2015 T.C. Hollingsworth <tchollingsworth@gmail.com> - 1:3.14.5.10-17
- backports for nodejs 0.10.36

* Mon Jan 26 2015 David Tardon <dtardon@redhat.com> - 1:3.14.5.10-16
- rebuild for ICU 54.1

* Tue Dec 2 2014 Tom Callaway <spot@fedoraproject.org> - 1:3.14.5.10-15
- use system valgrind header (bz1141483)

* Wed Sep 17 2014 T.C. Hollingsworth <tchollingsworth@gmail.com> - 1:3.14.5.10-14
- backport bugfix that eliminates unused-local-typedefs warning
- backport security fix: Fix Hydrogen bounds check elimination (CVE-2013-6668; RHBZ#1086120)
- backport fix to segfault caused by the above patch

* Tue Aug 26 2014 David Tardon <dtardon@redhat.com> - 1:3.14.5.10-13
- rebuild for ICU 53.1

* Mon Aug 18 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:3.14.5.10-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild

* Thu Jul 31 2014 T.C. Hollingsworth <tchollingsworth@gmail.com> - 1:3.14.5.10-11
- backport security fix for memory corruption and stack overflow (RHBZ#1125464)
https://groups.google.com/d/msg/nodejs/-siJEObdp10/2xcqqmTHiEMJ
- backport bug fix for x64 MathMinMax for negative untagged int32 arguments.
https://github.com/joyent/node/commit/3530fa9cd09f8db8101c4649cab03bcdf760c434

* Thu Jun 19 2014 T.C. Hollingsworth <tchollingsworth@gmail.com> - 1:3.14.5.10-10
- fix corner case in integer comparisons (v8 bug#2416; nodejs bug#7528)

* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:3.14.5.10-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild

* Sat May 03 2014 T.C. Hollingsworth <tchollingsworth@gmail.com> - 1:3.14.5.10-8
- use clock_gettime() instead of gettimeofday(), which increases V8 performance
dramatically on virtual machines

* Tue Mar 18 2014 T.C. Hollingsworth <tchollingsworth@gmail.com> - 1:3.14.5.10-7
- backport fix for unsigned integer arithmetic (RHBZ#1077136; CVE-2014-1704)

* Mon Feb 24 2014 Tomas Hrcka <thrcka@redhat.com> - 1:3.14.5.10-6
- Backport fix for incorrect handling of popular pages (RHBZ#1059070; CVE-2013-6640)

* Fri Feb 14 2014 T.C. Hollingsworth <tchollingsworth@gmail.com> - 1:3.14.5.10-5
- rebuild for icu-52

* Mon Jan 27 2014 T.C. Hollingsworth <tchollingsworth@gmail.com> - 1:3.14.5.10-4
- backport fix for enumeration for objects with lots of properties

* Fri Dec 13 2013 T.C. Hollingsworth <tchollingsworth@gmail.com> - 1:3.14.5.10-3
- backport fix for out-of-bounds read DoS (RHBZ#1039889; CVE-2013-6640)

* Fri Aug 02 2013 T.C. Hollingsworth <tchollingsworth@gmail.com> - 1:3.14.5.10-2
- backport fix for remote DoS or unspecified other impact via type confusion
(RHBZ#991116; CVE-2013-2882)

* Wed May 29 2013 T.C. Hollingsworth <tchollingsworth@gmail.com> - 1:3.14.5.10-1
- new upstream release 3.14.5.10

* Mon May 06 2013 Stanislav Ochotnicky <sochotnicky@redhat.com> - 1:3.14.5.8-2
- Fix ownership of include directory (#958729)

* Fri Mar 22 2013 T.C. Hollingsworth <tchollingsworth@gmail.com> - 1:3.14.5.8-1
- new upstream release 3.14.5.8
- backport security fix for remote DoS via crafted javascript (RHBZ#924495; CVE-2013-2632)

* Mon Mar 11 2013 Stephen Gallagher <sgallagh@redhat.com> - 1:3.14.5.7-3
- Update to v8 3.14.5.7 for Node.js 0.10.0

* Sat Jan 26 2013 T.C. Hollingsworth <tchollingsworth@gmail.com> - 1:3.13.7.5-2
- rebuild for icu-50
- ignore new GCC 4.8 warning

* Tue Dec 4 2012 Tom Callaway <spot@fedoraproject.org> - 1:3.13.7.5-1
- update to 3.13.7.5 (needed for chromium 23)
- Resolves multiple security issues (CVE-2012-5120, CVE-2012-5128)
- d8 is now using a static libv8, resolves bz 881973)

* Sun Jul 22 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:3.10.8-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild

* Fri Jul 6 2012 Tom Callaway <spot@fedoraproject.org> 1:3.10.8-1
- update to 3.10.8 (chromium 20)

* Tue Jun 12 2012 Tom Callaway <spot@fedoraproject.org> 1:3.9.24-1
- update to 3.9.24 (chromium 19)

* Mon Apr 23 2012 Thomas Spura <tomspur@fedoraproject.org> 1:3.7.12.6
- rebuild for icu-49

* Fri Mar 30 2012 Dennis Gilmore <dennis@ausil.us> 1:3.7.12-5
- make sure the right arm abi is used in the second call of scons

* Thu Mar 29 2012 Dennis Gilmore <dennis@ausil.us> 1:3.7.12-4
- use correct arm macros
- use the correct abis for hard and soft float

* Tue Mar 20 2012 Tom Callaway <spot@fedoraproject.org> 3.7.12-3
- merge changes from Fedora spec file, sync, add epoch

* Fri Feb 17 2012 Tom Callaway <spot@fedoraproject.org> 3.7.12-2
- add -Wno-error=strict-overflow for gcc 4.7 (hack, hack, hack)

* Mon Feb 13 2012 Tom Callaway <spot@fedoraproject.org> 3.7.12-1
- update to 3.7.12

* Thu Nov 3 2011 Tom Callaway <spot@fedoraproject.org> 3.5.10-1
- update to 3.5.10

* Mon Sep 26 2011 Tom Callaway <spot@fedoraproject.org> 3.4.14-2
- final 3.4.14 tag
- include JavaScript minifier scripts in -devel

* Fri Jun 10 2011 Tom Callaway <spot@fedoraproject.org> 3.2.10-1
- tag 3.2.10

* Thu Apr 28 2011 Tom Callaway <spot@fedoraproject.org> 3.1.8-1
- "stable" v8 match for "stable" chromium (tag 3.1.8)

* Tue Feb 22 2011 Tom Callaway <spot@fedoraproject.org> 3.1.5-1.20110222svn6902
- update to 3.1.5
- enable experimental i18n icu stuff for chromium

* Tue Jan 11 2011 Tom Callaway <spot@fedoraproject.org> 3.0.7-1.20110111svn6276
- update to 3.0.7

* Tue Dec 14 2010 Tom "spot" Callaway <tcallawa@redhat.com> 3.0.0-2.20101209svn5957
- fix sloppy code where NULL is used

* Thu Dec 9 2010 Tom "spot" Callaway <tcallawa@redhat.com> 3.0.0-1.20101209svn5957
- update to 3.0.0

* Fri Oct 22 2010 Tom "spot" Callaway <tcallawa@redhat.com> 2.5.1-1.20101022svn5692
- update to 2.5.1
- fix another fwrite with no return checking case

* Thu Oct 14 2010 Tom "spot" Callaway <tcallawa@redhat.com> 2.5.0-1.20101014svn5625
- update to 2.5.0

* Mon Oct 4 2010 Tom "spot" Callaway <tcallawa@redhat.com> 2.4.8-1.20101004svn5585
- update to 2.4.8

* Tue Sep 14 2010 Tom "spot" Callaway <tcallawa@redhat.com> 2.4.3-1.20100914svn5450
- update to 2.4.3

* Tue Aug 31 2010 Tom "spot" Callaway <tcallawa@redhat.com> 2.3.11-1.20100831svn5385
- update to svn5385

* Fri Aug 27 2010 Tom "spot" Callaway <tcallawa@redhat.com> 2.3.11-1.20100827svn5365
- update to 2.3.11, svn5365

* Tue Aug 24 2010 Tom "spot" Callaway <tcallawa@redhat.com> 2.3.10-1.20100824svn5332
- update to 2.3.10, svn5332

* Wed Aug 18 2010 Tom "spot" Callaway <tcallawa@redhat.com> 2.3.9-1.20100819svn5308
- update to 2.3.9, svn5308

* Wed Aug 11 2010 Tom "spot" Callaway <tcallawa@redhat.com> 2.3.7-1.20100812svn5251
- update to svn5251

* Wed Aug 11 2010 Tom "spot" Callaway <tcallawa@redhat.com> 2.3.7-1.20100811svn5248
- update to 2.3.7, svn5248

* Tue Aug 10 2010 Tom "spot" Callaway <tcallawa@redhat.com> 2.3.6-1.20100809svn5217
- update to 2.3.6, svn5217

* Fri Aug 6 2010 Tom "spot" Callaway <tcallawa@redhat.com> 2.3.5-1.20100806svn5198
- update to 2.3.5, svn5198

* Mon Jul 26 2010 Tom "spot" Callaway <tcallawa@redhat.com> 2.3.3-1.20100726svn5134
- update to 2.3.3, svn5134

* Fri Jul 16 2010 Tom "spot" Callaway <tcallawa@redhat.com> 2.3.0-1.20100716svn5088
- update to 2.3.0, svn5088

* Tue Jul 6 2010 Tom "spot" Callaway <tcallawa@redhat.com> 2.2.22-1.20100706svn5023
- update to 2.2.22, svn5023

* Fri Jul 2 2010 Tom "spot" Callaway <tcallawa@redhat.com> 2.2.21-1.20100702svn5010
- update to svn5010

* Wed Jun 30 2010 Tom "spot" Callaway <tcallawa@redhat.com> 2.2.21-1.20100630svn4993
- update to 2.2.21, svn4993
- include checkout script

* Thu Jun 3 2010 Tom "spot" Callaway <tcallawa@redhat.com> 2.2.14-1.20100603svn4792
- update to 2.2.14, svn4792

* Tue Jun 1 2010 Tom "spot" Callaway <tcallawa@redhat.com> 2.2.13-1.20100601svn4772
- update to 2.2.13, svn4772

* Thu May 27 2010 Tom "spot" Callaway <tcallawa@redhat.com> 2.2.12-1.20100527svn4747
- update to 2.2.12, svn4747

* Tue May 25 2010 Tom "spot" Callaway <tcallawa@redhat.com> 2.2.11-1.20100525svn4718
- update to 2.2.11, svn4718

* Thu May 20 2010 Tom "spot" Callaway <tcallawa@redhat.com> 2.2.10-1.20100520svn4684
- update to svn4684

* Mon May 17 2010 Tom "spot" Callaway <tcallawa@redhat.com> 2.2.10-1.20100517svn4664
- update to 2.2.10, svn4664

* Thu May 13 2010 Tom "spot" Callaway <tcallawa@redhat.com> 2.2.9-1.20100513svn4653
- update to svn4653

* Mon May 10 2010 Tom "spot" Callaway <tcallawa@redhat.com> 2.2.9-1.20100510svn4636
- update to 2.2.9, svn4636

* Tue May 4 2010 Tom "spot" Callaway <tcallawa@redhat.com> 2.2.7-1.20100504svn4581
- update to 2.2.7, svn4581

* Mon Apr 19 2010 Tom "spot" Callaway <tcallawa@redhat.com> 2.2.3-1.20100419svn4440
- update to 2.2.3, svn4440

* Tue Apr 13 2010 Tom "spot" Callaway <tcallawa@redhat.com> 2.2.2-1.20100413svn4397
- update to 2.2.2, svn4397

* Thu Apr 8 2010 Tom "spot" Callaway <tcallawa@redhat.com> 2.2.1-1.20100408svn4359
- update to 2.2.1, svn4359

* Mon Mar 29 2010 Tom "spot" Callaway <tcallawa@redhat.com> 2.2.0-1.20100329svn4309
- update to 2.2.0, svn4309

* Thu Mar 25 2010 Tom "spot" Callaway <tcallawa@redhat.com> 2.1.8-1.20100325svn4273
- update to 2.1.8, svn4273

* Mon Mar 22 2010 Tom "spot" Callaway <tcallawa@redhat.com> 2.1.5-1.20100322svn4204
- update to 2.1.5, svn4204

* Mon Mar 15 2010 Tom "spot" Callaway <tcallawa@redhat.com> 2.1.4-1.20100315svn4129
- update to 2.1.4, svn4129

* Wed Mar 10 2010 Tom "spot" Callaway <tcallawa@redhat.com> 2.1.0-1.20100310svn4088
- update to 2.1.3, svn4088

* Thu Feb 18 2010 Tom "spot" Callaway <tcallawa@redhat.com> 2.1.0-1.20100218svn3902
- update to 2.1.0, svn3902

* Fri Jan 22 2010 Tom "spot" Callaway <tcallawa@redhat.com> 2.0.6-1.20100122svn3681
- update to 2.0.6, svn3681

* Tue Dec 29 2009 Tom "spot" Callaway <tcallawa@redhat.com> 2.0.5-1.20091229svn3528
- svn3528

* Mon Dec 21 2009 Tom "spot" Callaway <tcallawa@redhat.com> 2.0.5-1.20091221svn3511
- update to 2.0.5, svn3511

* Wed Dec 9 2009 Tom "spot" Callaway <tcallawa@redhat.com> 2.0.3-1.20091209svn3443
- update to 2.0.3, svn3443

* Tue Nov 24 2009 Tom "spot" Callaway <tcallawa@redhat.com> 2.0.2-1.20091124svn3353
- update to 2.0.2, svn3353

* Wed Nov 18 2009 Tom "spot" Callaway <tcallawa@redhat.com> 2.0.0-1.20091118svn3334
- update to 2.0.0, svn3334

* Tue Oct 27 2009 Tom "spot" Callaway <tcallawa@redhat.com> 1.3.16-1.20091027svn3152
- update to 1.3.16, svn3152

* Tue Oct 13 2009 Tom "spot" Callaway <tcallawa@redhat.com> 1.3.15-1.20091013svn3058
- update to svn3058

* Thu Oct 8 2009 Tom "spot" Callaway <tcallawa@redhat.com> 1.3.15-1.20091008svn3036
- update to 1.3.15, svn3036

* Tue Sep 29 2009 Tom "spot" Callaway <tcallawa@redhat.com> 1.3.13-1.20090929svn2985
- update to svn2985
- drop unused parameter patch, figured out how to work around it with optflag mangling
- have I mentioned lately that scons is garbage?

* Mon Sep 28 2009 Tom "spot" Callaway <tcallawa@redhat.com> 1.3.13-1.20090928svn2980
- update to 1.3.13, svn2980

* Wed Sep 16 2009 Tom "spot" Callaway <tcallawa@redhat.com> 1.3.11-1.20090916svn2903
- update to 1.3.11, svn2903

* Wed Sep 9 2009 Tom "spot" Callaway <tcallawa@redhat.com> 1.3.9-1.20090909svn2862
- update to 1.3.9, svn2862

* Thu Aug 27 2009 Tom "spot" Callaway <tcallawa@redhat.com> 1.3.8-1.20090827svn2777
- update to 1.3.8, svn2777

* Mon Aug 24 2009 Tom "spot" Callaway <tcallawa@redhat.com> 1.3.6-1.20090824svn2747
- update to 1.3.6, svn2747

* Tue Aug 18 2009 Tom "spot" Callaway <tcallawa@redhat.com> 1.3.4-1.20090818svn2708
- update to svn2708, build and package d8

* Fri Aug 14 2009 Tom "spot" Callaway <tcallawa@redhat.com> 1.3.4-1.20090814svn2692
- update to 1.3.4, svn2692

* Wed Aug 12 2009 Tom "spot" Callaway <tcallawa@redhat.com> 1.3.3-1.20090812svn2669
- update to 1.3.3, svn2669

* Mon Aug 10 2009 Tom "spot" Callaway <tcallawa@redhat.com> 1.3.2-1.20090810svn2658
- update to svn2658

* Fri Aug 7 2009 Tom "spot" Callaway <tcallawa@redhat.com> 1.3.2-1.20090807svn2653
- update to svn2653

* Wed Aug 5 2009 Tom "spot" Callaway <tcallawa@redhat.com> 1.3.2-1.20090805svn2628
- update to 1.3.2, svn2628

* Mon Aug 3 2009 Tom "spot" Callaway <tcallawa@redhat.com> 1.3.1-1.20090803svn2607
- update to svn2607

* Fri Jul 31 2009 Tom "spot" Callaway <tcallawa@redhat.com> 1.3.1-1.20090731svn2602
- update to svn2602

* Thu Jul 30 2009 Tom "spot" Callaway <tcallawa@redhat.com> 1.3.1-1.20090730svn2592
- update to 1.3.1, svn 2592

* Mon Jul 27 2009 Tom "spot" Callaway <tcallawa@redhat.com> 1.3.0-1.20090727svn2543
- update to 1.3.0, svn 2543

* Fri Jul 24 2009 Tom "spot" Callaway <tcallawa@redhat.com> 1.2.14-1.20090724svn2534
- update to svn2534

* Mon Jul 20 2009 Tom "spot" Callaway <tcallawa@redhat.com> 1.2.14-1.20090720svn2510
- update to svn2510

* Thu Jul 16 2009 Tom "spot" Callaway <tcallawa@redhat.com> 1.2.14-1.20090716svn2488
- update to svn2488

* Wed Jul 15 2009 Tom "spot" Callaway <tcallawa@redhat.com> 1.2.14-1.20090715svn2477
- update to 1.2.14, svn2477

* Mon Jul 13 2009 Tom "spot" Callaway <tcallawa@redhat.com> 1.2.13-1.20090713svn2434
- update to svn2434

* Sat Jul 11 2009 Tom "spot" Callaway <tcallawa@redhat.com> 1.2.13-1.20090711svn2430
- update to 1.2.13, svn2430

* Wed Jul 8 2009 Tom "spot" Callaway <tcallawa@redhat.com> 1.2.12-1.20090708svn2391
- update to 1.2.12, svn2391

* Sat Jul 4 2009 Tom "spot" Callaway <tcallawa@redhat.com> 1.2.11-1.20090704svn2356
- update to 1.2.11, svn2356

* Fri Jun 26 2009 Tom "spot" Callaway <tcallawa@redhat.com> 1.2.9-1.20090626svn2284
- update to svn2284

* Wed Jun 24 2009 Tom "spot" Callaway <tcallawa@redhat.com> 1.2.9-1.20090624svn2262
- update to 1.2.9, svn2262

* Thu Jun 18 2009 Tom "spot" Callaway <tcallawa@redhat.com> 1.2.7-2.20090618svn2219
- fix unused-parameter patch

* Thu Jun 18 2009 Tom "spot" Callaway <tcallawa@redhat.com> 1.2.7-1.20090618svn2219
- update to 1.2.8, svn2219

* Mon Jun 8 2009 Tom "spot" Callaway <tcallawa@redhat.com> 1.2.7-2.20090608svn2123
- fix gcc44 compile for Fedora 11

* Mon Jun 8 2009 Tom "spot" Callaway <tcallawa@redhat.com> 1.2.7-1.20090608svn2123
- update to 1.2.7, svn2123

* Thu May 28 2009 Tom "spot" Callaway <tcallawa@redhat.com> 1.2.5-1.20090528svn2072
- update to newer svn checkout

* Sun Feb 22 2009 Tom "spot" Callaway <tcallawa@redhat.com> 1.0.1-1.20090222svn1332
- update to newer svn checkout

* Sun Sep 14 2008 Tom "spot" Callaway <tcallawa@redhat.com> 0.2-2.20080914svn300
- make a versioned shared library properly

* Sun Sep 14 2008 Tom "spot" Callaway <tcallawa@redhat.com> 0.2-1.20080914svn300
- Initial package for Fedora

Loading…
Cancel
Save