Bug 1331480

Summary: FTBFS on Fedora 24 and Rawhide: src/spaces.h: nonnull argument 'this' compared to NULL
Product: [Fedora] Fedora Reporter: Dominic Cleal <dominic>
Component: v8Assignee: Vít Ondruch <vondruch>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 24CC: awilliam, paulcarroty, tcallawa, tchollingsworth, tomspur, vondruch
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: v8-3.14.5.10-24.fc24 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-06-20 22:25:35 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1331458    
Attachments:
Description Flags
f24 build root.log
none
f24 build.log
none
Fix for "nonnull argument 'this' compared to NULL" none

Description Dominic Cleal 2016-04-28 15:21:53 UTC
Created attachment 1151939 [details]
f24 build root.log

Description of problem:
The v8 package fails to build from source on both Fedora 24 and Rawhide (as of 2016-04-28).

Version-Release number of selected component (if applicable):
v8-3.14.5.10-23.fc24

How reproducible:
Always

Steps to Reproduce:
1. koji build --scratch f24 v8-3.14.5.10-23.fc24.src.rpm

Actual results:
g++ -o obj/release/spaces.os -c -fno-rtti -fno-exceptions -Wall -Werror -W -Wno-unused-parameter -Woverloaded-virtual -Wnon-virtual-dtor -pedantic -m64 -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-bu
ffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic -fPIC -fno-strict-aliasing -Wno-unused-parameter -Wno-error=strict-overflow -Wno-unused-but-set-variable -fomit-frame-pointer -fdata-sections -ffunction-sections -ansi -f
PIC -DV8_TARGET_ARCH_X64 -DV8_SHARED -DBUILDING_V8_SHARED -DENABLE_DEBUGGER_SUPPORT -Isrc src/spaces.cc
In file included from src/mark-compact.h:32:0,
                 from src/incremental-marking.h:33,
                 from src/heap.h:35,
                 from src/elements.h:33,
                 from src/objects-inl.h:38,
                 from src/v8.h:60,
                 from src/spaces.cc:28:
src/spaces.h: In member function 'bool v8::internal::CodeRange::exists()':
src/spaces.h:837:39: error: nonnull argument 'this' compared to NULL [-Werror=nonnull-compare]
   bool exists() { return this != NULL && code_range_ != NULL; }
                                       ^
src/spaces.h: In member function 'bool v8::internal::CodeRange::contains(v8::internal::Address)':
src/spaces.h:839:5: error: nonnull argument 'this' compared to NULL [-Werror=nonnull-compare]
     if (this == NULL || code_range_ == NULL) return false;
     ^~
cc1plus: all warnings being treated as errors
scons: *** [obj/release/spaces.os] Error 1
scons: building terminated because of errors.


Expected results:
Successful build

Additional info:
I notice the rebuild of -24 against ICU 57.1 in Rawhide failed for the same reason: http://koji.fedoraproject.org/koji/buildinfo?buildID=755094

Comment 1 Dominic Cleal 2016-04-28 15:22:18 UTC
Created attachment 1151940 [details]
f24 build.log

Comment 2 Adam Williamson 2016-04-28 18:06:37 UTC
We're carrying a very old v8 and this code no longer exists upstream, so the fix isn't a simple backport.

Comment 3 Tom "spot" Callaway 2016-04-28 19:10:37 UTC
I am strongly motivated to simply retire v8 in Fedora. Chromium uses its bundled copy and the only consumers are:

* rubygem-therubyracer
* uwsgi-plugin-v8

Comment 4 Adam Williamson 2016-04-28 19:13:45 UTC
I've got no objections, but note this was pointed out to me by someone who was hitting it trying to upgrade, so it'd be nice if it got auto-removed somehow. did we solve that problem yet?

Comment 5 Dominic Cleal 2016-04-29 08:43:30 UTC
(In reply to Tom "spot" Callaway from comment #3)
> I am strongly motivated to simply retire v8 in Fedora. Chromium uses its
> bundled copy and the only consumers are:
> 
> * rubygem-therubyracer

I'm using rubygem-therubyracer to precompile assets with Ruby on Rails, but it's trivial to switch to NodeJS as Rails uses rubygem-execjs to select an available runtime.

I'll probably switch anyway due to bug #1331458 making the package unusable, so retiring v8 isn't a big deal if it's unmaintainable.

Comment 6 Vít Ondruch 2016-06-02 10:49:59 UTC
This is related upstream change:

https://github.com/v8/v8/commit/99d9abaf82aff155a62a1ebb03c6a12920554d91

Comment 7 Vít Ondruch 2016-06-02 12:04:53 UTC
Created attachment 1164036 [details]
Fix for "nonnull argument 'this' compared to NULL"

This is based on https://github.com/v8/v8/commit/99d9abaf82aff155a62a1ebb03c6a12920554d91

Comment 8 Vít Ondruch 2016-06-02 12:06:28 UTC
Actually the patch header would deserve some cleanup, but I leave it to anybody else for now.

Comment 9 Vít Ondruch 2016-06-06 13:30:49 UTC
I am sick of this, so I applied "-fno-delete-null-pointer-checks" to workaround this. This should be fine for F24 and F25 has completely different version of V8 which does not suffer this issues anyway.

Comment 10 Fedora Update System 2016-06-07 05:09:04 UTC
v8-3.14.5.10-24.fc24 has been submitted as an update to Fedora 24. https://bodhi.fedoraproject.org/updates/FEDORA-2016-67dcc8e9dd

Comment 11 Fedora Update System 2016-06-07 18:53:59 UTC
v8-3.14.5.10-24.fc24 has been pushed to the Fedora 24 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2016-67dcc8e9dd

Comment 12 Tom "spot" Callaway 2016-06-09 15:39:12 UTC
> I'll probably switch anyway due to bug #1331458 making the package unusable,
> so retiring v8 isn't a big deal if it's unmaintainable.

After several people came out of the woodwork as consumers of v8 3.14, I've decided to make a v8-314 package so that people dependent on this specific release will have something to build against.

https://bugzilla.redhat.com/show_bug.cgi?id=1344415

(This will only go into Fedora 25+)

Comment 13 Fedora Update System 2016-06-20 22:25:29 UTC
v8-3.14.5.10-24.fc24 has been pushed to the Fedora 24 stable repository. If problems still persist, please make note of it in this bug report.