Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.
7942 Discussions

(0): internal error: backend signals (chromium build)

kuh3h3
Beginner
720 Views
i tried to compile chromium on ubuntu linux with intel compiler 12.0.0.084 Build 20101006.
but failed. what is this error?
$ icc -V
Intel C Compiler XE for applications running on IA-32, Version 12.0.0.084 Build 20101006
Copyright (C) 1985-2010 Intel Corporation. All rights reserved.
FOR NON-COMMERCIAL USE ONLY
$ LANG=C ICCCFLAGS="-O3 -xSSE2 -ipo" ICCCXXFLAGS="-fstack-security-check -fstack-protector -fvisibility=hidden -fvisibility-inlines-hidden" CC=icc CXX=icpc AR=xiar LD=xild make chrome chrome_sandbox BUILDTYPE=Release V=1
export LD_LIBRARY_PATH=/media/sdc1/chromium-trunk/src/out/Release/lib.host:/media/sdc1/chromium-trunk/src/out/Release/lib.target:$LD_LIBRARY_PATH; cd build/util; mkdir -p /media/sdc1/chromium-trunk/src/out/Release/obj/gen/build; python ./lastchange.py -o "/media/sdc1/chromium-trunk/src/out/Release/obj/gen/build/LASTCHANGE" -d ../LASTCHANGE.in
icpc '-DNO_HEAPCHECKER' '-DCHROMIUM_BUILD' '-DENABLE_REMOTING=1' '-DENABLE_GPU=1' '-DNACL_WINDOWS=0' '-DNACL_LINUX=1' '-DNACL_OSX=0' '-DNACL_TARGET_SUBARCH=32' '-DNACL_BUILD_SUBARCH=32' '-DCHROME_V8' '-DGL_GLEXT_PROTOTYPES' '-DGOOGLE_PROTOBUF_NO_RTTI' '-DUSE_SYSTEM_LIBBZ2' '-DU_STATIC_IMPLEMENTATION' '-DFEATURE_ENABLE_SSL' '-DFEATURE_ENABLE_VOICEMAIL' '-DEXPAT_RELATIVE_PATH' '-DLINUX' '-DPOSIX' '-DLIBXML_STATIC' '-DHUNSPELL_STATIC' '-DHUNSPELL_CHROME_CLIENT' '-DUSE_HUNSPELL' '-DUSE_GCONF' '-DUSE_GNOME_KEYRING' '-DDLOPEN_GNOME_KEYRING' '-D__STDC_FORMAT_MACROS' '-DNDEBUG' '-DNVALGRIND' '-DDYNAMIC_ANNOTATIONS_ENABLED=0' -Ithird_party/icu/public/common -Ithird_party/icu/public/i18n -I. -Iout/Release/obj.target/geni -Igpu -Ithird_party -Ithird_party/mesa/MesaLib/include -Iout/Release/obj/gen/app -Ithird_party/sqlite -Iout/Release/obj/gen/chrome -Iout/Release/obj/gen/protoc_out -Ithird_party/protobuf -Ithird_party/protobuf/src -Iout/Release/obj/gen/app/app_resources -Iout/Release/obj/gen/app/app_locale_settings -Iout/Release/obj/gen/app/app_strings -Iskia/config -Ithird_party/skia/include/config -Ithird_party/skia/include/core -Ithird_party/skia/include/effects -Iskia/ext -Ithird_party/harfbuzz/src -Ithird_party/harfbuzz/contrib -Ithird_party/libjingle/overrides -Ithird_party/libjingle/source -Ithird_party/expat/files -Ithird_party/libxml/linux/include -Ithird_party/libxml/src/include -Ithird_party/npapi -Ithird_party/npapi/bindings -Ithird_party/speex/include -Iout/Release/obj/gen/webkit -pthread -fno-exceptions -Wall -Wno-unused-parameter -Wno-missing-field-initializers -D_FILE_OFFSET_BITS=64 -fvisibility=hidden -pipe -m32 -mmmx -march=pentium4 -msse2 -mfpmath=sse -fno-strict-aliasing -pthread -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -DORBIT2=1 -pthread -I/usr/include/gconf/2 -I/usr/include/orbit-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -pthread -DQT_SHARED -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/qt4 -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtCore -pthread -DQT_SHARED -I/usr/include/gtk-unix-print-2.0 -I/usr/include/gtk-2.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/lib/gtk-2.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/qt4 -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtCore -I../net/third_party/nss/ssl -Inet/third_party/nss/ssl -IWebKit/chromium/net/third_party/nss/ssl -I/usr/include/nss -I/usr/include/nspr -I/usr/include/gnome-keyring-1 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -O2 -fno-ident -fdata-sections -ffunction-sections -fno-rtti -fno-threadsafe-statics -fvisibility-inlines-hidden -MMD -MF out/Release/.deps/out/Release/obj.target/browser/chrome/browser/password_manager/native_backend_gnome_x.o.d.raw -c -o out/Release/obj.target/browser/chrome/browser/password_manager/native_backend_gnome_x.o chrome/browser/password_manager/native_backend_gnome_x.cc
icpc: command line warning #10156: ignoring option '-Wno-unused'; no argument required
icpc: command line warning #10006: ignoring unknown option '-Wno-missing-field-initializers'
icpc: command line warning #10159: invalid argument for option '-m'
icpc: command line warning #10006: ignoring unknown option '-fno-ident'
icpc: command line warning #10006: ignoring unknown option '-fno-threadsafe-statics'
/usr/include/glib-2.0/glib/gatomic.h(41): warning #1292: attribute "may_alias" ignored
gint g_atomic_int_exchange_and_add (volatile gint G_GNUC_MAY_ALIAS *atomic,
^
/usr/include/glib-2.0/glib/gatomic.h(43): warning #1292: attribute "may_alias" ignored
void g_atomic_int_add (volatile gint G_GNUC_MAY_ALIAS *atomic,
^
/usr/include/glib-2.0/glib/gatomic.h(45): warning #1292: attribute "may_alias" ignored
gboolean g_atomic_int_compare_and_exchange (volatile gint G_GNUC_MAY_ALIAS *atomic,
^
/usr/include/glib-2.0/glib/gatomic.h(48): warning #1292: attribute "may_alias" ignored
gboolean g_atomic_pointer_compare_and_exchange (volatile gpointer G_GNUC_MAY_ALIAS *atomic,
^
/usr/include/glib-2.0/glib/gatomic.h(52): warning #1292: attribute "may_alias" ignored
gint g_atomic_int_get (volatile gint G_GNUC_MAY_ALIAS *atomic);
^
/usr/include/glib-2.0/glib/gatomic.h(53): warning #1292: attribute "may_alias" ignored
void g_atomic_int_set (volatile gint G_GNUC_MAY_ALIAS *atomic,
^
/usr/include/glib-2.0/glib/gatomic.h(55): warning #1292: attribute "may_alias" ignored
gpointer g_atomic_pointer_get (volatile gpointer G_GNUC_MAY_ALIAS *atomic);
^
/usr/include/glib-2.0/glib/gatomic.h(56): warning #1292: attribute "may_alias" ignored
void g_atomic_pointer_set (volatile gpointer G_GNUC_MAY_ALIAS *atomic,
^
/usr/include/glib-2.0/glib/gthread.h(348): warning #1292: attribute "may_alias" ignored
if G_LIKELY ((gpointer) g_atomic_pointer_get (value_location) != NULL)
^
/usr/include/glib-2.0/glib/gslice.h(33): warning #1292: attribute "__alloc_size__" ignored
gpointer g_slice_alloc (gsize block_size) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
^
/usr/include/glib-2.0/glib/gslice.h(34): warning #1292: attribute "__alloc_size__" ignored
gpointer g_slice_alloc0 (gsize block_size) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
^
/usr/include/glib-2.0/glib/gslice.h(36): warning #1292: attribute "__alloc_size__" ignored
gconstpointer mem_block) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
^
/usr/include/glib-2.0/glib/gmem.h(54): warning #1292: attribute "__alloc_size__" ignored
gpointer g_malloc (gsize n_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
^
/usr/include/glib-2.0/glib/gmem.h(55): warning #1292: attribute "__alloc_size__" ignored
gpointer g_malloc0 (gsize n_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
^
/usr/include/glib-2.0/glib/gmem.h(58): warning #1292: attribute "__alloc_size__" ignored
gpointer g_try_malloc (gsize n_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
^
/usr/include/glib-2.0/glib/gmem.h(59): warning #1292: attribute "__alloc_size__" ignored
gpointer g_try_malloc0 (gsize n_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1);
^
/usr/include/glib-2.0/glib/gmem.h(64): warning #1292: attribute "__alloc_size__" ignored
gsize n_block_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE2(1,2);
^
/usr/include/glib-2.0/glib/gmem.h(66): warning #1292: attribute "__alloc_size__" ignored
gsize n_block_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE2(1,2);
^
/usr/include/glib-2.0/glib/gmem.h(71): warning #1292: attribute "__alloc_size__" ignored
gsize n_block_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE2(1,2);
^
/usr/include/glib-2.0/glib/gmem.h(73): warning #1292: attribute "__alloc_size__" ignored
gsize n_block_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE2(1,2);
^
/usr/include/glib-2.0/glib/gstrfuncs.h(222): warning #1292: attribute "__alloc_size__" ignored
guint byte_size) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(2);
^
(0): internal error: backend signals
compilation aborted for chrome/browser/password_manager/native_backend_gnome_x.cc (code 4)
make: *** [out/Release/obj.target/browser/chrome/browser/password_manager/native_backend_gnome_x.o] Error 4
0 Kudos
15 Replies
Mark_S_Intel1
Employee
720 Views
This indicates a problem with compiler. Please see if you can generate a preprocessed file by adding the "-P" option to the compilation options for native_backend_gnome_x.cc. We can investigate the problem once you send us the resulting .i file along with full compilation optons.

Thanks,
--mark
0 Kudos
kuh3h3
Beginner
720 Views
ICCCFLAGS="-O3 -xSSE2 -ipo"
ICCCXXFLAGS="-fstack-security-check -fstack-protector -fvisibility=hidden -fvisibility-inlines-hidden"
CC=icc
CXX=icpc
AR=xiar
LD=xild
GYP_GENERATORS=make
GYP_DEFINES="ffmpeg_branding=Chrome remove_webcore_debug_symbols=1 werror="
export ICCCFLAGS ICCCXXFLAGS CC CXX AR LD GYP_GENERATORS GYP_DEFINES

make chrome chrome_sandbox BUILDTYPE=Release V=1
that is my all option for chromium compile on ubuntu.
0 Kudos
Mark_S_Intel1
Employee
720 Views
Thanks for the test case. I will look into this issue and get back to you.

--mark
0 Kudos
Mark_S_Intel1
Employee
720 Views
I tried to compile the file you sent me as below but got many compile-time errors. Where can I download the package you are trying to build?

--mark


icpc -c -DNO_HEAPCHECKER -DCHROMIUM_BUILD -DENABLE_REMOTING=1 -DENABLE_GPU=1 -DNACL_WINDOWS=0 -DNACL_LINUX=1 -DNACL_OSX=0 -DNACL_TARGET_SUBARCH=32 -DNACL_BUILD_SUBARCH=32 -DCHROME_V8 -DGL_GLEXT_PROTOTYPES -DGOOGLE_PROTOBUF_NO_RTTI -DUSE_SYSTEM_LIBBZ2 -DU_STATIC_IMPLEMENTATION -DFEATURE_ENABLE_SSL -DFEATURE_ENABLE_VOICEMAIL -DEXPAT_RELATIVE_PATH -DLINUX -DPOSIX -DLIBXML_STATIC -DHUNSPELL_STATIC -DHUNSPELL_CHROME_CLIENT -DUSE_HUNSPELL -DUSE_GCONF -DUSE_GNOME_KEYRING -DDLOPEN_GNOME_KEYRING -D__STDC_FORMAT_MACROS -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -pthread -fno-exceptions -Wall -Wno-unused-parameter -Wno-missing-field-initializers -D_FILE_OFFSET_BITS=64 -fvisibility=hidden -pipe -m32 -mmmx -march=pentium4 -msse2 -mfpmath=sse -fno-strict-aliasing -pthread -DORBIT2=1 -pthread -DQT_SHARED -O2 -fno-ident -fdata-sections -ffunction-sections -fno-rtti -fno-threadsafe-statics -fvisibility-inlines-hidden native_backend_gnome_x.i.cpp
0 Kudos
kuh3h3
Beginner
720 Views
0 Kudos
Mark_S_Intel1
Employee
720 Views
I have not built chromium before. I will look into it and get back to you.

Thanks,
--mark
0 Kudos
Mark_S_Intel1
Employee
720 Views
Intel Composer XE update 1 (package name l_ccompxe_2011.1.107) is now available at https://registrationcenter.intel.com/RegCenter/Download.aspx?productid=1414. Can you try the new update and see if it resolves this problem?

Thanks,
--mark
0 Kudos
kuh3h3
Beginner
720 Views
thanks for compiler update link.
new compiler could resolve "native_backend_gnome_x.c"internal error.
but with same option occurred new error.

[/media/sdc1/chromium-trunk/src]$LANG=C svn info
Path: .
Repository UUID: 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
Revision: 68151
Node Kind: directory
Schedule: normal
Last Changed Author: shess@chromium.org
Last Changed Rev: 68151
Last Changed Date: 2010-12-03 14:35:09 +0900 (Fri, 03 Dec 2010)
[/media/sdc1/chromium-trunk/src]$ icc -V
Intel C Compiler XE for applications running on IA-32, Version 12.0.1.107 Build 20101116
Copyright (C) 1985-2010 Intel Corporation. All rights reserved.
FOR NON-COMMERCIAL USE ONLY
[/media/sdc1/chromium-trunk/src]$LANG=C ICCCFLAGS="-O3 -xSSE2 -ipo" ICCCXXFLAGS="-fstack-security-check -fstack-protector -fvisibility=hidden -fvisibility-inlines-hidden" CC=icc CXX=icpc AR=xiar LD=xild make chrome chrome_sandbox BUILDTYPE=Release V=1
icpc '-DNO_HEAPCHECKER' '-DCHROMIUM_BUILD' '-DENABLE_REMOTING=1' '-DENABLE_GPU=1' '-DUSE_SYMBOLIZE' '-D__STDC_FORMAT_MACROS' '-DNDEBUG' '-DNVALGRIND' '-DDYNAMIC_ANNOTATIONS_ENABLED=0' -I. -pthread -fno-exceptions -Wall -Wno-unused-parameter -Wno-missing-field-initializers -D_FILE_OFFSET_BITS=64 -fvisibility=hidden -pipe -m32 -mmmx -march=pentium4 -msse2 -mfpmath=sse -fno-strict-aliasing -Wno-write-strings -pthread -DQT_SHARED -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng14 -I/usr/include/qt4 -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtCore -Inet/third_party/nss/ssl -IWebKit/chromium/net/third_party/nss/ssl -I/usr/include/nss -I/usr/include/nspr -O2 -fno-ident -fdata-sections -ffunction-sections -fno-rtti -fno-threadsafe-statics -fvisibility-inlines-hidden -MMD -MF out/Release/.deps/out/Release/obj.target/base/base/file_util_proxy.o.d.raw -c -o out/Release/obj.target/base/base/file_util_proxy.o base/file_util_proxy.cc
icpc: command line warning #10156: ignoring option '-Wno-unused'; no argument required
icpc: command line warning #10006: ignoring unknown option '-Wno-missing-field-initializers'
icpc: command line warning #10159: invalid argument for option '-m'
icpc: command line warning #10006: ignoring unknown option '-fno-ident'
icpc: command line warning #10006: ignoring unknown option '-fno-threadsafe-statics'
base/file_util_proxy.cc(95): error #1757: virtual function "::MessageLoopRelay::RunCallback" was not defined (and cannot be defined elsewhere because it is a member of an unnamed namespace)
virtual void RunCallback() = 0;
^
compilation aborted for base/file_util_proxy.cc (code 2)
make: *** [out/Release/obj.target/base/base/file_util_proxy.o] Error 2
0 Kudos
Mark_S_Intel1
Employee
720 Views
Doesgcc compile file_util_proxy.cc?
Can you add the -P option to the compilation options for file_util_proxy.cc and send me the resulting .i file?


Thanks,
--mark

0 Kudos
kuh3h3
Beginner
720 Views
my gcc compiles well the file.
$ gcc -v
Using built-in specs.
Target: i686-linux-gnu
Configured with: ../src/configure -v --with-pkgversion=Ubuntu 4.3.3-14ubuntu1 --with-bugurl=file:///usr/share/doc/gcc-4.3/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/include/c++/4.3 --program-suffix=-4.3 --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-mpfr --with-tune=generic --enable-checking=release --build=i686-linux-gnu --host=i686-linux-gnu --target=i686-linux-gnu
Thread model: posix
gcc version 4.3.3 (Ubuntu)
compile option is exactly same withnative_backend_gnome_x.cc
0 Kudos
Mark_S_Intel1
Employee
720 Views

The development team has reproduced the problem and is looking into it. We will
let you know when this issue is resolved. In the mean time you may be able to work around this problem if you replace the unnamed namespace with the construction described in the C++ standard below:

An unnamed-namespace-definition behaves as if it were replaced by
namespace unique { /* empty body */ }
using namespace unique;
namespace unique { namespace-body }
where all occurrences of unique in a translation unit are replaced by the same identifier and this identifier
differs from all other identifiers in the entire program.

Example:

$ cat test.cc
// bad case
#include
namespace {
class A {
public:
virtual void foo() = 0;
void bar() {
std::cout << &A::foo;
}
};
} //namespace

$ cat test1.cc
//good case
#include
namespace my_ns {}
using namespace my_ns;
namespace my_ns{
class A {
public:
virtual void foo() = 0;
void bar() {
std::cout << &A::foo;
}
};
} //namespace

$ icpc -V
Intel C++ Intel 64 Compiler XE for applications running on Intel 64, Version 12.0.1.108 Build 20101116
Copyright (C) 1985-2010 Intel Corporation. All rights reserved.


$ icpc -c test.cc
test.cc(5): error #1757: virtual function "::A::foo" was not defined (and cannot be defined elsewhere because it is a member of an unnamed namespace)
virtual void foo() = 0;
^

test.cc(6): warning #177: function "::A::bar" was declared but never referenced
void bar() {
^

compilation aborted for test.cc (code 2)

$ icpc -c test1.cc
$ g++ -m32 -c test1.cc
$ g++ -m32 -c test.cc

0 Kudos
Mark_S_Intel1
Employee
720 Views
Could you please let us know if the proposed workaround works for you?

Thanks,
--mark
0 Kudos
kuh3h3
Beginner
720 Views
sorry for too late reply.
your workaround works well for me.
but it is not easy to compile chromium.
new error always comes out.
this time, new error com from v8.
from searching web, i knew this is already known problem but there is still no fix.
i used recent compiler(12.0.2.137)
icpc '-DENABLE_LOGGING_AND_PROFILING' '-DENABLE_DEBUGGER_SUPPORT' '-DENABLE_VMSTATE_TRACKING' '-DV8_TARGET_ARCH_IA32' '-DNO_HEAPCHECKER' '-DCHROMIUM_BUILD' '-DENABLE_REMOTING=1' '-DENABLE_GPU=1' '-DENABLE_EGLIMAGE=1' '-DNDEBUG' '-DNVALGRIND' '-DDYNAMIC_ANNOTATIONS_ENABLED=0' -Iv8/src -Iv8/src/ia32 -pthread -fno-exceptions -Wno-unused-parameter -Wno-missing-field-initializers -D_FILE_OFFSET_BITS=64 -fvisibility=hidden -pipe -m32 -mmmx -march=pentium4 -msse2 -mfpmath=sse -fno-strict-aliasing -Wno-deprecated -Wformat=0 -fno-ident -fdata-sections -ffunction-sections -fomit-frame-pointer -O3 -fno-rtti -fno-threadsafe-statics -fvisibility-inlines-hidden -MMD -MF out/Release/.deps/out/Release/obj.target/v8_base/v8/src/objects.o.d.raw -c -o out/Release/obj.target/v8_base/v8/src/objects.o v8/src/objects.cc
icpc: command line warning #10156: ignoring option '-Wno-unused'; no argument required
icpc: command line warning #10006: ignoring unknown option '-Wno-missing-field-initializers'
icpc: command line warning #10159: invalid argument for option '-m'
icpc: command line warning #10156: ignoring option '-Wformat'; no argument required
icpc: command line warning #10006: ignoring unknown option '-fno-ident'
icpc: command line warning #10006: ignoring unknown option '-fno-threadsafe-statics'
v8/src/jsregexp.h(1066): warning #1125: function "v8::internal::RegExpNode::GreedyLoopTextLength()" is hidden by "v8::internal::ChoiceNode::GreedyLoopTextLength" -- virtual function override intended?
int GreedyLoopTextLength(GuardedAlternative* alternative);
^
v8/src/objects.cc(8413): error #803: function "v8::internal::Dictionary::Allocate [with Shape=v8::internal::NumberDictionaryShape, Key=uint32_t={unsigned int}]" explicitly instantiated more than once
template MaybeObject* Dictionary::Allocate(
^
v8/src/objects.cc(8416): error #803: function "v8::internal::Dictionary::Allocate [with Shape=v8::internal::StringDictionaryShape, Key=v8::internal::String *]" explicitly instantiated more than once
template MaybeObject* Dictionary::Allocate(
^
v8/src/objects.cc(8419): error #803: function "v8::internal::Dictionary::AtPut [with Shape=v8::internal::NumberDictionaryShape, Key=uint32_t={unsigned int}]" explicitly instantiated more than once
template MaybeObject* Dictionary::AtPut(
^
v8/src/objects.cc(8422): error #803: function "v8::internal::Dictionary::SlowReverseLookup [with Shape=v8::internal::NumberDictionaryShape, Key=uint32_t={unsigned int}]" explicitly instantiated more than once
template Object* Dictionary::SlowReverseLookup(
v8/src/objects.cc(8425): error #803: function "v8::internal::Dictionary::SlowReverseLookup [with Shape=v8::internal::StringDictionaryShape, Key=v8::internal::String *]" explicitly instantiated more than once
template Object* Dictionary::SlowReverseLookup(
^
v8/src/objects.cc(8428): error #803: function "v8::internal::Dictionary::CopyKeysTo(v8::internal::FixedArray *, PropertyAttributes) [with Shape=v8::internal::NumberDictionaryShape, Key=uint32_t={unsigned int}]" explicitly instantiated more than once
template void Dictionary::CopyKeysTo(
^
v8/src/objects.cc(8431): error #803: function "v8::internal::Dictionary::DeleteProperty [with Shape=v8::internal::StringDictionaryShape, Key=v8::internal::String *]" explicitly instantiated more than once
template Object* Dictionary::DeleteProperty(
^
v8/src/objects.cc(8434): error #803: function "v8::internal::Dictionary::DeleteProperty [with Shape=v8::internal::NumberDictionaryShape, Key=uint32_t={unsigned int}]" explicitly instantiated more than once
template Object* Dictionary::DeleteProperty(
^
v8/src/objects.cc(8437): error #803: function "v8::internal::Dictionary::CopyKeysTo(v8::internal::FixedArray *) [with Shape=v8::internal::StringDictionaryShape, Key=v8::internal::String *]" explicitly instantiated more than once
template void Dictionary::CopyKeysTo(
^
v8/src/objects.cc(8441): error #803: function "v8::internal::Dictionary::NumberOfElementsFilterAttributes [with Shape=v8::internal::StringDictionaryShape, Key=v8::internal::String *]" explicitly instantiated more than once
Dictionary::NumberOfElementsFilterAttributes(
^
v8/src/objects.cc(8444): error #803: function "v8::internal::Dictionary::Add [with Shape=v8::internal::StringDictionaryShape, Key=v8::internal::String *]" explicitly instantiated more than once
template MaybeObject* Dictionary::Add(
^
v8/src/objects.cc(8448): error #803: function "v8::internal::Dictionary::GenerateNewEnumerationIndices [with Shape=v8::internal::StringDictionaryShape, Key=v8::internal::String *]" explicitly instantiated more than once
Dictionary::GenerateNewEnumerationIndices();
v8/src/objects.cc(8451): error #803: function "v8::internal::Dictionary::NumberOfElementsFilterAttributes [with Shape=v8::internal::NumberDictionaryShape, Key=uint32_t={unsigned int}]" explicitly instantiated more than once
Dictionary::NumberOfElementsFilterAttributes(
^
v8/src/objects.cc(8454): error #803: function "v8::internal::Dictionary::Add [with Shape=v8::internal::NumberDictionaryShape, Key=uint32_t={unsigned int}]" explicitly instantiated more than once
template MaybeObject* Dictionary::Add(
^
v8/src/objects.cc(8458): error #803: function "v8::internal::Dictionary::EnsureCapacity [with Shape=v8::internal::NumberDictionaryShape, Key=uint32_t={unsigned int}]" explicitly instantiated more than once
EnsureCapacity(int, uint32_t);
^
v8/src/objects.cc(8461): error #803: function "v8::internal::Dictionary::EnsureCapacity [with Shape=v8::internal::StringDictionaryShape, Key=v8::internal::String *]" explicitly instantiated more than once
EnsureCapacity(int, String*);
^
v8/src/objects.cc(8463): error #803: function "v8::internal::Dictionary::AddEntry [with Shape=v8::internal::NumberDictionaryShape, Key=uint32_t={unsigned int}]" explicitly instantiated more than once
template MaybeObject* Dictionary::AddEntry(
^
v8/src/objects.cc(8466): error #803: function "v8::internal::Dictionary::AddEntry [with Shape=v8::internal::StringDictionaryShape, Key=v8::internal::String *]" explicitly instantiated more than once
template MaybeObject* Dictionary::AddEntry(
^
v8/src/objects.cc(8470): error #803: function "v8::internal::Dictionary::NumberOfEnumElements [with Shape=v8::internal::NumberDictionaryShape, Key=uint32_t={unsigned int}]" explicitly instantiated more than once
int Dictionary::NumberOfEnumElements();
^
v8/src/objects.cc(8473): error #803: function "v8::internal::Dictionary::NumberOfEnumElements [with Shape=v8::internal::StringDictionaryShape, Key=v8::internal::String *]" explicitly instantiated more than once
int Dictionary::NumberOfEnumElements();
^
compilation aborted for v8/src/objects.cc (code 2)
make: *** [out/Release/obj.target/v8_base/v8/src/objects.o] error 2
0 Kudos
Mark_S_Intel1
Employee
720 Views
Thanks for the test case; I was able to reproduce the problem. I will investigate and get back to you.

--mark
0 Kudos
Mark_S_Intel1
Employee
720 Views

The problem is thatline66707 is part of an explicit request to instantiate a member function of an instantiation of the Dictionary class. Line 66705 is an explicit request to instantiate the same instantiation of the Dictionary class -- which is interpreted as an explicit request to instantiate all the member functions of that template class. So the explicit instantiations of the member functions are redundant.

The workaround isto disable the diagnostic with-wd803.

--mark

0 Kudos
Reply