New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 614289 link

Starred by 4 users

Issue metadata

Status: WontFix
Owner: ----
Closed: Jun 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Bug



Sign in to add a comment

GCC 7 cannot build v8 java script engine

Reported by marxin.l...@gmail.com, May 24 2016

Issue description

UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36

Steps to reproduce the problem:
1. Build chromium with the GCC compiler 6.1+

What is the expected behavior?

What went wrong?
c++ -MMD -MF obj/v8/src/v8_base.accessors.o.d -DV8_DEPRECATION_WARNINGS -DCLD_VERSION=2 -D_FILE_OFFSET_BITS=64 -DDISABLE_NACL -DCHROMIUM_BUILD -DUI_COMPOSITOR_IMAGE_TRANSPORT -DUSE_AURA=1 -DUSE_ASH=1 -DUSE_PANGO=1 -DUSE_CAIRO=1 -DUSE_DEFAULT_RENDER_THEME=1 -DUSE_LIBJPEG_TURBO=1 -DUSE_X11=1 -DUSE_CLIPBOARD_AURAX11=1 -DENABLE_ONE_CLICK_SIGNIN -DENABLE_WEBRTC=1 -DENABLE_MEDIA_ROUTER=1 -DUSE_PROPRIETARY_CODECS -DENABLE_PEPPER_CDMS -DENABLE_CONFIGURATION_POLICY -DENABLE_NOTIFICATIONS -DENABLE_HIDPI=1 -DENABLE_TOPCHROME_MD=1 -DUSE_UDEV -DDONT_EMBED_BUILD_METADATA -DFIELDTRIAL_TESTING_ENABLED -DENABLE_TASK_MANAGER=1 -DENABLE_EXTENSIONS=1 -DENABLE_PDF=1 -DENABLE_PLUGINS=1 -DENABLE_SESSION_SERVICE=1 -DENABLE_THEMES=1 -DENABLE_AUTOFILL_DIALOG=1 -DENABLE_BACKGROUND=1 -DENABLE_PRINTING=1 -DENABLE_BASIC_PRINTING=1 -DENABLE_PRINT_PREVIEW=1 -DENABLE_SPELLCHECK=1 -DENABLE_CAPTIVE_PORTAL_DETECTION=1 -DENABLE_APP_LIST=1 -DENABLE_SETTINGS_APP=1 -DENABLE_SUPERVISED_USERS=1 -DENABLE_MDNS=1 -DENABLE_SERVICE_DISCOVERY=1 -DV8_USE_EXTERNAL_STARTUP_DATA -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DV8_TARGET_ARCH_X64 -DV8_I18N_SUPPORT -DV8_IMMINENT_DEPRECATION_WARNINGS -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DU_STATIC_IMPLEMENTATION -DUSE_LIBPCI=1 -DUSE_OPENSSL=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DENABLE_HANDLE_ZAPPING -I../../v8 -Igen -I../../third_party/icu/source/i18n -I../../third_party/icu/source/common -fstack-protector --param=ssp-buffer-size=4  -pthread -fno-strict-aliasing -Wno-unused-parameter -Wno-missing-field-initializers -fvisibility=hidden -pipe -fPIC -Wno-unused-local-typedefs -Wno-format -Wno-unused-result -m64 -march=x86-64 -flto -ffat-lto-objects -m64 -O3 -fno-ident -fdata-sections -ffunction-sections -funwind-tables -fdata-sections -ffunction-sections -O3 -fno-exceptions -fno-rtti -fno-threadsafe-statics -fvisibility-inlines-hidden -Wno-deprecated -std=gnu++11 -Wno-narrowing -Wno-literal-suffix  -c ../../v8/src/accessors.cc -o obj/v8/src/v8_base.accessors.o
In file included from ../../v8/src/heap/spaces.h:16:0,
                 from ../../v8/src/heap/heap.h:18,
                 from ../../v8/src/contexts.h:8,
                 from ../../v8/src/api.h:9,
                 from ../../v8/src/accessors.cc:7:
../../v8/src/objects.h: In member function ‘uint32_t v8::internal::HashTable<Derived, Shape, Key>::Hash(Key)’:
../../v8/src/objects.h:3126:46: error: invalid use of incomplete type ‘class v8::internal::Heap’
       return Shape::SeededHash(key, GetHeap()->HashSeed());
                                              ^~
In file included from ../../v8/src/accessors.h:8:0,
                 from ../../v8/src/accessors.cc:5:
../../v8/include/v8.h:141:7: note: forward declaration of ‘class v8::internal::Heap’
 class Heap;
       ^~~~
In file included from ../../v8/src/heap/spaces.h:16:0,
                 from ../../v8/src/heap/heap.h:18,
                 from ../../v8/src/contexts.h:8,
                 from ../../v8/src/api.h:9,
                 from ../../v8/src/accessors.cc:7:
../../v8/src/objects.h: In member function ‘uint32_t v8::internal::HashTable<Derived, Shape, Key>::HashForObject(Key, v8::internal::Object*)’:
../../v8/src/objects.h:3134:55: error: invalid use of incomplete type ‘class v8::internal::Heap’
       return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object);
                                                       ^~
In file included from ../../v8/src/accessors.h:8:0,
                 from ../../v8/src/accessors.cc:5:
../../v8/include/v8.h:141:7: note: forward declaration of ‘class v8::internal::Heap’
 class Heap;
       ^~~~
ninja: build stopped: subcommand failed.

I reduced a smaller test-case and create an issue in GCC bugzilla:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71193

According to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71193#c1, the code is invalid and should be fixed in v8 code base.

Thanks,
Martin

Did this work before? N/A 

Chrome version: 50.0.2661.94  Channel: n/a
OS Version: 
Flash Version: Shockwave Flash 21.0 r0
 
Components: -Blink Infra>Client>V8
I don't think this is Blink issue. Forwarding this to V8 infra.
Yeah, I forgot to properly pick up the right component.
Status: Untriaged (was: Unconfirmed)
Just to clarify. This issue only happens with upcoming gcc-7, gcc-6 is fine.

Here is Jason's comment from gcc bugzilla:

»The standard quite clearly says that this code is ill-formed, no diagnostic required.

14.6/8: "If a hypothetical instantiation of a template immediately following its definition would be ill-formed due to a construct that does not depend on a template parameter, the program is ill-formed; no diagnostic is required.  If the interpretation of such a construct in the hypothetical instantiation is different from the interpretation of the corresponding construct in any actual instantiation of the template, the program is ill-formed; no diagnostic is required. [ Note: This can happen in situations including the following:
* a type used in a non-dependent name is incomplete at the point at which a template is defined but is complete at the point at which an instantiation is performed, ...."«
Components: -Infra>Client>V8 Blink>JavaScript
This is not an infrastructure issue.
Cc: hpayer@chromium.org machenb...@chromium.org
Status: Available (was: Untriaged)
Do we care about GCC 6?
First of all gcc-6 is fine.
And using ill-formed is a bad idea in general, regardless of the compiler.
Cc: thestig@chromium.org phajdan.jr@chromium.org marja@chromium.org thomasanderson@chromium.org
+marja@ for further V8 triage
Summary: GCC 7 cannot build v8 java script engine (was: GCC 6.1 cannot build v8 java script engine)
Project Member

Comment 10 by sheriffbot@chromium.org, Jun 7 2018

Labels: Hotlist-Recharge-Cold
Status: Untriaged (was: Available)
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue.

Sorry for the inconvenience if the bug really should have been left as Available.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
I guess we can close this one due to its age. I've been building Chromium (and consequently V8) for multiple architectures with GCC 6, 7 and 8 without problems.
Status: WontFix (was: Untriaged)

Sign in to add a comment