Skip to content
Snippets Groups Projects
Select Git revision
  • 39c1f67236c0d65d0063e7b4d38952ff3d5b0541
  • v2018.2.x default
  • experimental
  • master
  • v2021.1.2-ffs
  • v2021.1.1-ffs
  • nrb/gluon-master-cpe510
  • v2021.1-ffs
  • v2020.2.3-ffs
  • nrbffs/fastd-remove-delay
  • v2020.2.2-ffs
  • v2020.2.1-ffs
  • v2020.2-ffs
  • v2020.2.x
  • v2020.1.3-ffs
  • v2020.1.1-ffs
  • v2020.1-ffs
  • v2019.1.2-ffs
  • v2019.1.1-ffs
  • nrb/test-radv-filter
  • v2019.1-ffs
  • nrbffs/netgear-ex6120
  • v2021.1.2-ffs0.2
  • v2021.1.2-ffs0.1
  • v2021.1.1-ffs0.4
  • v2021.1.1-ffs0.3
  • v2021.1.1-ffs0.2
  • v2021.1.1-ffs0.1
  • v2021.1-ffs0.1
  • v2020.2.3-ffs0.3
  • v2020.2.3-ffs0.2
  • v2020.2.3-ffs0.1
  • v2020.2.2-ffs0.1
  • v2020.2.1-ffs0.1
  • v2020.2-ffs0.1
  • v2020.2
  • v2020.2.x-ffs0.1
  • v2020.1.3-ffs0.1
  • v2020.1.1-ffs0.1
  • v2020.1-ffs0.1
  • v2019.1.2-ffs0.1
  • v2019.1.1-ffs0.1
42 results

modules

Blame
  • Forked from firmware / FFS Gluon
    Source project has a limited visibility.
    0006-node-fix-undefined-behaviour-leading-to-broken-code-with-GCC-6.patch 3.27 KiB
    From: Matthias Schiffer <mschiffer@universe-factory.net>
    Date: Mon, 9 May 2016 16:21:57 +0200
    Subject: node: fix undefined behaviour leading to broken code with GCC 6
    
    Fixes segfaults occuring in the node host build when GCC 6 is used.
    
    Backport of upstream commit 96198d5bc710a4e3ca49eeeb3b3fa7b8cb61547d.
    
    Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
    
    diff --git a/lang/node/patches/004-gcc6-undefined-behaviour.patch b/lang/node/patches/004-gcc6-undefined-behaviour.patch
    new file mode 100644
    index 0000000000000000000000000000000000000000..dbbbcf0c54bb62f643521411668772531d42b89a
    --- /dev/null
    +++ b/lang/node/patches/004-gcc6-undefined-behaviour.patch
    @@ -0,0 +1,64 @@
    +diff --git a/deps/v8/src/heap/incremental-marking.cc b/deps/v8/src/heap/incremental-marking.cc
    +index c922e83..2ead8be 100644
    +--- a/deps/v8/src/heap/incremental-marking.cc
    ++++ b/deps/v8/src/heap/incremental-marking.cc
    +@@ -379,7 +379,7 @@ void IncrementalMarking::DeactivateIncrementalWriteBarrier() {
    +   DeactivateIncrementalWriteBarrierForSpace(heap_->new_space());
    + 
    +   LargePage* lop = heap_->lo_space()->first_page();
    +-  while (lop->is_valid()) {
    ++  while (LargePage::IsValid(lop)) {
    +     SetOldSpacePageFlags(lop, false, false);
    +     lop = lop->next_page();
    +   }
    +@@ -414,7 +414,7 @@ void IncrementalMarking::ActivateIncrementalWriteBarrier() {
    +   ActivateIncrementalWriteBarrier(heap_->new_space());
    + 
    +   LargePage* lop = heap_->lo_space()->first_page();
    +-  while (lop->is_valid()) {
    ++  while (LargePage::IsValid(lop)) {
    +     SetOldSpacePageFlags(lop, true, is_compacting_);
    +     lop = lop->next_page();
    +   }
    +diff --git a/deps/v8/src/heap/spaces-inl.h b/deps/v8/src/heap/spaces-inl.h
    +index 56c2bad..1a45096 100644
    +--- a/deps/v8/src/heap/spaces-inl.h
    ++++ b/deps/v8/src/heap/spaces-inl.h
    +@@ -148,7 +148,7 @@ Page* Page::Initialize(Heap* heap, MemoryChunk* chunk, Executability executable,
    + 
    + bool PagedSpace::Contains(Address addr) {
    +   Page* p = Page::FromAddress(addr);
    +-  if (!p->is_valid()) return false;
    ++  if (!Page::IsValid(p)) return false;
    +   return p->owner() == this;
    + }
    + 
    +diff --git a/deps/v8/src/heap/spaces.cc b/deps/v8/src/heap/spaces.cc
    +index e197f5a..2fe10eb 100644
    +--- a/deps/v8/src/heap/spaces.cc
    ++++ b/deps/v8/src/heap/spaces.cc
    +@@ -2918,7 +2918,7 @@ LargePage* LargeObjectSpace::FindPage(Address a) {
    +   if (e != NULL) {
    +     DCHECK(e->value != NULL);
    +     LargePage* page = reinterpret_cast<LargePage*>(e->value);
    +-    DCHECK(page->is_valid());
    ++    DCHECK(LargePage::IsValid(page));
    +     if (page->Contains(a)) {
    +       return page;
    +     }
    +diff --git a/deps/v8/src/heap/spaces.h b/deps/v8/src/heap/spaces.h
    +index 312d75f..1054672 100644
    +--- a/deps/v8/src/heap/spaces.h
    ++++ b/deps/v8/src/heap/spaces.h
    +@@ -283,9 +283,9 @@ class MemoryChunk {
    +   // Only works for addresses in pointer spaces, not data or code spaces.
    +   static inline MemoryChunk* FromAnyPointerAddress(Heap* heap, Address addr);
    + 
    +-  Address address() { return reinterpret_cast<Address>(this); }
    ++  static bool IsValid(MemoryChunk* chunk) { return chunk != nullptr; }
    + 
    +-  bool is_valid() { return address() != NULL; }
    ++  Address address() { return reinterpret_cast<Address>(this); }
    + 
    +   MemoryChunk* next_chunk() const {
    +     return reinterpret_cast<MemoryChunk*>(base::Acquire_Load(&next_chunk_));