
5 changed files with 374 additions and 0 deletions
@ -0,0 +1,33 @@
@@ -0,0 +1,33 @@
|
||||
From 443fef828092b315a207a194f5fe74e52e451996 Mon Sep 17 00:00:00 2001 |
||||
From: Zuzana Svetlikova <zsvetlik@redhat.com> |
||||
Date: Thu, 27 Apr 2017 14:25:42 +0200 |
||||
Subject: [PATCH 1/3] Disable running gyp on shared deps |
||||
|
||||
--- |
||||
Makefile | 7 +++---- |
||||
1 file changed, 3 insertions(+), 4 deletions(-) |
||||
|
||||
diff --git a/Makefile b/Makefile |
||||
index 3a343301d640bc7fd41e9680c74455bb260a950d..d2b9c13ee3e53d957ed32476e40fb09e41fcfded 100644 |
||||
--- a/Makefile |
||||
+++ b/Makefile |
||||
@@ -121,14 +121,13 @@ with-code-cache: |
||||
|
||||
.PHONY: test-code-cache |
||||
test-code-cache: with-code-cache |
||||
$(PYTHON) tools/test.py $(PARALLEL_ARGS) --mode=$(BUILDTYPE_LOWER) code-cache |
||||
|
||||
-out/Makefile: common.gypi deps/uv/uv.gyp deps/http_parser/http_parser.gyp \ |
||||
- deps/zlib/zlib.gyp deps/v8/gypfiles/toolchain.gypi \ |
||||
- deps/v8/gypfiles/features.gypi deps/v8/gypfiles/v8.gyp node.gyp \ |
||||
- config.gypi |
||||
+out/Makefile: common.gypi deps/http_parser/http_parser.gyp \ |
||||
+ deps/v8/gypfiles/toolchain.gypi deps/v8/gypfiles/features.gypi \ |
||||
+ deps/v8/gypfiles/v8.gyp node.gyp config.gypi |
||||
$(PYTHON) tools/gyp_node.py -f make |
||||
|
||||
config.gypi: configure configure.py |
||||
@if [ -x config.status ]; then \ |
||||
./config.status; \ |
||||
-- |
||||
2.20.1 |
@ -0,0 +1,86 @@
@@ -0,0 +1,86 @@
|
||||
From 0fd4649d1943f45cb06bda6febdc7ffa7d5859b2 Mon Sep 17 00:00:00 2001 |
||||
From: Stephen Gallagher <sgallagh@redhat.com> |
||||
Date: Tue, 1 May 2018 08:05:30 -0400 |
||||
Subject: [PATCH 2/3] Suppress NPM message to run global update |
||||
|
||||
Signed-off-by: Stephen Gallagher <sgallagh@redhat.com> |
||||
--- |
||||
deps/npm/bin/npm-cli.js | 54 ----------------------------------------- |
||||
1 file changed, 54 deletions(-) |
||||
|
||||
diff --git a/deps/npm/bin/npm-cli.js b/deps/npm/bin/npm-cli.js |
||||
index 6f76b23828531e7af98a7e3cd7d5abfaac09b40c..98edb6f45fe073e03794a2ae6e7aa7f5500723ee 100755 |
||||
--- a/deps/npm/bin/npm-cli.js |
||||
+++ b/deps/npm/bin/npm-cli.js |
||||
@@ -67,69 +67,15 @@ |
||||
if (conf.usage && npm.command !== 'help') { |
||||
npm.argv.unshift(npm.command) |
||||
npm.command = 'help' |
||||
} |
||||
|
||||
- var isGlobalNpmUpdate = conf.global && ['install', 'update'].includes(npm.command) && npm.argv.includes('npm') |
||||
- |
||||
// now actually fire up npm and run the command. |
||||
// this is how to use npm programmatically: |
||||
conf._exit = true |
||||
npm.load(conf, function (er) { |
||||
if (er) return errorHandler(er) |
||||
- if ( |
||||
- !isGlobalNpmUpdate && |
||||
- npm.config.get('update-notifier') && |
||||
- !unsupported.checkVersion(process.version).unsupported |
||||
- ) { |
||||
- const pkg = require('../package.json') |
||||
- let notifier = require('update-notifier')({pkg}) |
||||
- const isCI = require('ci-info').isCI |
||||
- if ( |
||||
- notifier.update && |
||||
- notifier.update.latest !== pkg.version && |
||||
- !isCI |
||||
- ) { |
||||
- const color = require('ansicolors') |
||||
- const useColor = npm.config.get('color') |
||||
- const useUnicode = npm.config.get('unicode') |
||||
- const old = notifier.update.current |
||||
- const latest = notifier.update.latest |
||||
- let type = notifier.update.type |
||||
- if (useColor) { |
||||
- switch (type) { |
||||
- case 'major': |
||||
- type = color.red(type) |
||||
- break |
||||
- case 'minor': |
||||
- type = color.yellow(type) |
||||
- break |
||||
- case 'patch': |
||||
- type = color.green(type) |
||||
- break |
||||
- } |
||||
- } |
||||
- const changelog = `https://github.com/npm/cli/releases/tag/v${latest}` |
||||
- notifier.notify({ |
||||
- message: `New ${type} version of ${pkg.name} available! ${ |
||||
- useColor ? color.red(old) : old |
||||
- } ${useUnicode ? '→' : '->'} ${ |
||||
- useColor ? color.green(latest) : latest |
||||
- }\n` + |
||||
- `${ |
||||
- useColor ? color.yellow('Changelog:') : 'Changelog:' |
||||
- } ${ |
||||
- useColor ? color.cyan(changelog) : changelog |
||||
- }\n` + |
||||
- `Run ${ |
||||
- useColor |
||||
- ? color.green(`npm install -g ${pkg.name}`) |
||||
- : `npm i -g ${pkg.name}` |
||||
- } to update!` |
||||
- }) |
||||
- } |
||||
- } |
||||
npm.commands[npm.command](npm.argv, function (err) { |
||||
// https://genius.com/Lin-manuel-miranda-your-obedient-servant-lyrics |
||||
if ( |
||||
!err && |
||||
npm.config.get('ham-it-up') && |
||||
-- |
||||
2.20.1 |
@ -0,0 +1,117 @@
@@ -0,0 +1,117 @@
|
||||
From 7108faf1bbcd1e542cd4c34bb57e76432da754f4 Mon Sep 17 00:00:00 2001 |
||||
From: Milad Farazmand <miladfar@ca.ibm.com> |
||||
Date: Wed, 30 Jan 2019 19:08:06 +0000 |
||||
Subject: [PATCH 3/3] deps: V8: cherry-pick d0468de |
||||
|
||||
Original commit message: |
||||
|
||||
[heap] Fix StoreBuffer setup. |
||||
|
||||
- Solves a problem for PPC in a configuration where commit page size |
||||
is 64K. https://chromium-review.googlesource.com/c/v8/v8/+/1149515 |
||||
- Uses existing VM allocation code to get properly aligned memory. |
||||
- Makes sure the size for SetPermissions is a multiple of system page |
||||
size. |
||||
|
||||
Bug:chromium:756050 |
||||
|
||||
Change-Id: Ib3799ab7a3bb44b0091c234234c1cc47938379c2 |
||||
Reviewed-on: https://chromium-review.googlesource.com/1161210 |
||||
Commit-Queue: Bill Budge <bbudge@chromium.org> |
||||
Reviewed-by: Michael Lippautz <mlippautz@chromium.org> |
||||
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> |
||||
Cr-Commit-Position: refs/heads/master@{#54930} |
||||
|
||||
Refs: https://github.com/v8/v8/commit/d0468dede05fcd57b5a96d0fbfa117a76795fa58 |
||||
--- |
||||
common.gypi | 2 +- |
||||
deps/v8/src/heap/store-buffer.cc | 28 +++++++++++++++++----------- |
||||
2 files changed, 18 insertions(+), 12 deletions(-) |
||||
|
||||
diff --git a/common.gypi b/common.gypi |
||||
index 0a4ed881a5b92514d3df88ffc74555931eb71b7c..1405183bf61dfbab8c8b18a6233a08a7a1ad62ec 100644 |
||||
--- a/common.gypi |
||||
+++ b/common.gypi |
||||
@@ -31,11 +31,11 @@ |
||||
# Default to -O0 for debug builds. |
||||
'v8_optimized_debug%': 0, |
||||
|
||||
# Reset this number to 0 on major V8 upgrades. |
||||
# Increment by one for each non-official patch applied to deps/v8. |
||||
- 'v8_embedder_string': '-node.12', |
||||
+ 'v8_embedder_string': '-node.13', |
||||
|
||||
# Enable disassembler for `--print-code` v8 options |
||||
'v8_enable_disassembler': 1, |
||||
|
||||
# Don't bake anything extra into the snapshot. |
||||
diff --git a/deps/v8/src/heap/store-buffer.cc b/deps/v8/src/heap/store-buffer.cc |
||||
index d73e3235c158df27756eb719643f81822d2bd015..657aa9212a6153f3bd1c44e519a3c8c7064c62b4 100644 |
||||
--- a/deps/v8/src/heap/store-buffer.cc |
||||
+++ b/deps/v8/src/heap/store-buffer.cc |
||||
@@ -28,46 +28,52 @@ StoreBuffer::StoreBuffer(Heap* heap) |
||||
insertion_callback = &InsertDuringRuntime; |
||||
deletion_callback = &DeleteDuringRuntime; |
||||
} |
||||
|
||||
void StoreBuffer::SetUp() { |
||||
- // Allocate 3x the buffer size, so that we can start the new store buffer |
||||
- // aligned to 2x the size. This lets us use a bit test to detect the end of |
||||
- // the area. |
||||
+ const size_t requested_size = kStoreBufferSize * kStoreBuffers; |
||||
+ // Allocate buffer memory aligned at least to kStoreBufferSize. This lets us |
||||
+ // use a bit test to detect the ends of the buffers. |
||||
+ const size_t alignment = |
||||
+ std::max<size_t>(kStoreBufferSize, AllocatePageSize()); |
||||
+ void* hint = AlignedAddress(heap_->GetRandomMmapAddr(), alignment); |
||||
VirtualMemory reservation; |
||||
- if (!AllocVirtualMemory(kStoreBufferSize * 3, heap_->GetRandomMmapAddr(), |
||||
- &reservation)) { |
||||
+ if (!AlignedAllocVirtualMemory(requested_size, alignment, hint, |
||||
+ &reservation)) { |
||||
heap_->FatalProcessOutOfMemory("StoreBuffer::SetUp"); |
||||
} |
||||
+ |
||||
Address start = reservation.address(); |
||||
- start_[0] = reinterpret_cast<Address*>(::RoundUp(start, kStoreBufferSize)); |
||||
+ const size_t allocated_size = reservation.size(); |
||||
+ |
||||
+ start_[0] = reinterpret_cast<Address*>(start); |
||||
limit_[0] = start_[0] + (kStoreBufferSize / kPointerSize); |
||||
start_[1] = limit_[0]; |
||||
limit_[1] = start_[1] + (kStoreBufferSize / kPointerSize); |
||||
|
||||
- Address* vm_limit = reinterpret_cast<Address*>(start + reservation.size()); |
||||
- |
||||
+ // Sanity check the buffers. |
||||
+ Address* vm_limit = reinterpret_cast<Address*>(start + allocated_size); |
||||
USE(vm_limit); |
||||
for (int i = 0; i < kStoreBuffers; i++) { |
||||
DCHECK(reinterpret_cast<Address>(start_[i]) >= reservation.address()); |
||||
DCHECK(reinterpret_cast<Address>(limit_[i]) >= reservation.address()); |
||||
DCHECK(start_[i] <= vm_limit); |
||||
DCHECK(limit_[i] <= vm_limit); |
||||
DCHECK_EQ(0, reinterpret_cast<Address>(limit_[i]) & kStoreBufferMask); |
||||
} |
||||
|
||||
- if (!reservation.SetPermissions(reinterpret_cast<Address>(start_[0]), |
||||
- kStoreBufferSize * kStoreBuffers, |
||||
+ // Set RW permissions only on the pages we use. |
||||
+ const size_t used_size = RoundUp(requested_size, CommitPageSize()); |
||||
+ if (!reservation.SetPermissions(start, used_size, |
||||
PageAllocator::kReadWrite)) { |
||||
heap_->FatalProcessOutOfMemory("StoreBuffer::SetUp"); |
||||
} |
||||
current_ = 0; |
||||
top_ = start_[current_]; |
||||
virtual_memory_.TakeControl(&reservation); |
||||
} |
||||
|
||||
- |
||||
void StoreBuffer::TearDown() { |
||||
if (virtual_memory_.IsReserved()) virtual_memory_.Free(); |
||||
top_ = nullptr; |
||||
for (int i = 0; i < kStoreBuffers; i++) { |
||||
start_[i] = nullptr; |
||||
-- |
||||
2.20.1 |
@ -0,0 +1,40 @@
@@ -0,0 +1,40 @@
|
||||
--- http_parser.gyp~ 2012-11-27 15:40:11.721398004 -0700 |
||||
+++ http_parser.gyp 2012-11-27 15:40:11.721398004 -0700 |
||||
@@ -12,7 +12,7 @@ |
||||
# RuntimeLibrary MUST MATCH across the entire project |
||||
'Debug': { |
||||
'defines': [ 'DEBUG', '_DEBUG' ], |
||||
- 'cflags': [ '-Wall', '-Wextra', '-O0', '-g', '-ftrapv' ], |
||||
+ 'cflags': [ '-Wall', '-Wextra', '-g', '-ftrapv' ], |
||||
'msvs_settings': { |
||||
'VCCLCompilerTool': { |
||||
'RuntimeLibrary': 1, # static debug |
||||
@@ -21,7 +21,7 @@ |
||||
}, |
||||
'Release': { |
||||
'defines': [ 'NDEBUG' ], |
||||
- 'cflags': [ '-Wall', '-Wextra', '-O3' ], |
||||
+ 'cflags': [ '-Wall', '-Wextra' ], |
||||
'msvs_settings': { |
||||
'VCCLCompilerTool': { |
||||
'RuntimeLibrary': 0, # static release |
||||
@@ -50,7 +50,8 @@ |
||||
'targets': [ |
||||
{ |
||||
'target_name': 'http_parser', |
||||
- 'type': 'static_library', |
||||
+ 'type': 'shared_library', |
||||
+ 'product_extension': 'so.2', |
||||
'include_dirs': [ '.' ], |
||||
'direct_dependent_settings': { |
||||
'defines': [ 'HTTP_PARSER_STRICT=0' ], |
||||
@@ -73,7 +74,8 @@ |
||||
|
||||
{ |
||||
'target_name': 'http_parser_strict', |
||||
- 'type': 'static_library', |
||||
+ 'type': 'shared_library', |
||||
+ 'product_extension': 'so.2', |
||||
'include_dirs': [ '.' ], |
||||
'direct_dependent_settings': { |
||||
'defines': [ 'HTTP_PARSER_STRICT=1' ], |
@ -0,0 +1,98 @@
@@ -0,0 +1,98 @@
|
||||
From 335850f6b868d3411968cbf5a4d59fe619dee36f Mon Sep 17 00:00:00 2001 |
||||
From: Nathaniel McCallum <npmccallum@redhat.com> |
||||
Date: Thu, 6 Oct 2016 02:03:36 -0400 |
||||
Subject: [PATCH] parser: HTTP_STATUS_MAP(XX) and enum http_status |
||||
|
||||
This patch provides an enum for the standardized HTTP status codes. |
||||
Additionally, the HTTP_STATUS_MAP(XX) can be used for other purposes as |
||||
well, such as code-to-name lookups and code-based switch statements. |
||||
|
||||
PR-URL: https://github.com/nodejs/http-parser/pull/337 |
||||
Reviewed-By: Fedor Indutny <fedor@indutny.com> |
||||
Reviewed-By: Brian White <mscdex@mscdex.net> |
||||
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> |
||||
--- |
||||
http_parser.h | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
||||
1 file changed, 70 insertions(+) |
||||
|
||||
diff --git a/http_parser.h b/http_parser.h |
||||
index ea26394..45c72a0 100644 |
||||
--- a/http_parser.h |
||||
+++ b/http_parser.h |
||||
@@ -90,6 +90,76 @@ typedef int (*http_data_cb) (http_parser*, const char *at, size_t length); |
||||
typedef int (*http_cb) (http_parser*); |
||||
|
||||
|
||||
+/* Status Codes */ |
||||
+#define HTTP_STATUS_MAP(XX) \ |
||||
+ XX(100, CONTINUE, Continue) \ |
||||
+ XX(101, SWITCHING_PROTOCOLS, Switching Protocols) \ |
||||
+ XX(102, PROCESSING, Processing) \ |
||||
+ XX(200, OK, OK) \ |
||||
+ XX(201, CREATED, Created) \ |
||||
+ XX(202, ACCEPTED, Accepted) \ |
||||
+ XX(203, NON_AUTHORITATIVE_INFORMATION, Non-Authoritative Information) \ |
||||
+ XX(204, NO_CONTENT, No Content) \ |
||||
+ XX(205, RESET_CONTENT, Reset Content) \ |
||||
+ XX(206, PARTIAL_CONTENT, Partial Content) \ |
||||
+ XX(207, MULTI_STATUS, Multi-Status) \ |
||||
+ XX(208, ALREADY_REPORTED, Already Reported) \ |
||||
+ XX(226, IM_USED, IM Used) \ |
||||
+ XX(300, MULTIPLE_CHOICES, Multiple Choices) \ |
||||
+ XX(301, MOVED_PERMANENTLY, Moved Permanently) \ |
||||
+ XX(302, FOUND, Found) \ |
||||
+ XX(303, SEE_OTHER, See Other) \ |
||||
+ XX(304, NOT_MODIFIED, Not Modified) \ |
||||
+ XX(305, USE_PROXY, Use Proxy) \ |
||||
+ XX(307, TEMPORARY_REDIRECT, Temporary Redirect) \ |
||||
+ XX(308, PERMANENT_REDIRECT, Permanent Redirect) \ |
||||
+ XX(400, BAD_REQUEST, Bad Request) \ |
||||
+ XX(401, UNAUTHORIZED, Unauthorized) \ |
||||
+ XX(402, PAYMENT_REQUIRED, Payment Required) \ |
||||
+ XX(403, FORBIDDEN, Forbidden) \ |
||||
+ XX(404, NOT_FOUND, Not Found) \ |
||||
+ XX(405, METHOD_NOT_ALLOWED, Method Not Allowed) \ |
||||
+ XX(406, NOT_ACCEPTABLE, Not Acceptable) \ |
||||
+ XX(407, PROXY_AUTHENTICATION_REQUIRED, Proxy Authentication Required) \ |
||||
+ XX(408, REQUEST_TIMEOUT, Request Timeout) \ |
||||
+ XX(409, CONFLICT, Conflict) \ |
||||
+ XX(410, GONE, Gone) \ |
||||
+ XX(411, LENGTH_REQUIRED, Length Required) \ |
||||
+ XX(412, PRECONDITION_FAILED, Precondition Failed) \ |
||||
+ XX(413, PAYLOAD_TOO_LARGE, Payload Too Large) \ |
||||
+ XX(414, URI_TOO_LONG, URI Too Long) \ |
||||
+ XX(415, UNSUPPORTED_MEDIA_TYPE, Unsupported Media Type) \ |
||||
+ XX(416, RANGE_NOT_SATISFIABLE, Range Not Satisfiable) \ |
||||
+ XX(417, EXPECTATION_FAILED, Expectation Failed) \ |
||||
+ XX(421, MISDIRECTED_REQUEST, Misdirected Request) \ |
||||
+ XX(422, UNPROCESSABLE_ENTITY, Unprocessable Entity) \ |
||||
+ XX(423, LOCKED, Locked) \ |
||||
+ XX(424, FAILED_DEPENDENCY, Failed Dependency) \ |
||||
+ XX(426, UPGRADE_REQUIRED, Upgrade Required) \ |
||||
+ XX(428, PRECONDITION_REQUIRED, Precondition Required) \ |
||||
+ XX(429, TOO_MANY_REQUESTS, Too Many Requests) \ |
||||
+ XX(431, REQUEST_HEADER_FIELDS_TOO_LARGE, Request Header Fields Too Large) \ |
||||
+ XX(451, UNAVAILABLE_FOR_LEGAL_REASONS, Unavailable For Legal Reasons) \ |
||||
+ XX(500, INTERNAL_SERVER_ERROR, Internal Server Error) \ |
||||
+ XX(501, NOT_IMPLEMENTED, Not Implemented) \ |
||||
+ XX(502, BAD_GATEWAY, Bad Gateway) \ |
||||
+ XX(503, SERVICE_UNAVAILABLE, Service Unavailable) \ |
||||
+ XX(504, GATEWAY_TIMEOUT, Gateway Timeout) \ |
||||
+ XX(505, HTTP_VERSION_NOT_SUPPORTED, HTTP Version Not Supported) \ |
||||
+ XX(506, VARIANT_ALSO_NEGOTIATES, Variant Also Negotiates) \ |
||||
+ XX(507, INSUFFICIENT_STORAGE, Insufficient Storage) \ |
||||
+ XX(508, LOOP_DETECTED, Loop Detected) \ |
||||
+ XX(510, NOT_EXTENDED, Not Extended) \ |
||||
+ XX(511, NETWORK_AUTHENTICATION_REQUIRED, Network Authentication Required) \ |
||||
+ |
||||
+enum http_status |
||||
+ { |
||||
+#define XX(num, name, string) HTTP_STATUS_##name = num, |
||||
+ HTTP_STATUS_MAP(XX) |
||||
+#undef XX |
||||
+ }; |
||||
+ |
||||
+ |
||||
/* Request Methods */ |
||||
#define HTTP_METHOD_MAP(XX) \ |
||||
XX(0, DELETE, DELETE) \ |
Loading…
Reference in new issue