electron / libchromiumcontent

Shared library build of Chromium’s Content module
MIT License
485 stars 183 forks source link

CentOS error: cannot use typeid with -fno-rtti #53

Closed ceeeKay closed 8 years ago

ceeeKay commented 10 years ago

Bootstrap is working after installing the dependencies mentioned in #52 , but script/build produces the following error

FAILED: c++ -MMD -MF obj/mojo/public/bindings/lib/mojo_bindings.connector.o.d -DCOMPONENT_BUILD -DSKIA_DLL -DACCESSIBILITY_IMPLEMENTATION -DANGLE_TRANSLATOR_IMPLEMENTATION -DAPP_LIST_IMPLEMENTATION -DAURA_IMPLEMENTATION -DBASE_I18N_IMPLEMENTATION -DBASE_IMPLEMENTATION -DBASE_PREFS_IMPLEMENTATION -DBLINK_COMMON_IMPLEMENTATION -DBLINK_IMPLEMENTATION -DBLINK_PLATFORM_IMPLEMENTATION -DBUILDING_V8_SHARED -DCC_IMPLEMENTATION -DCOMPOSITOR_IMPLEMENTATION -DCONTENT_IMPLEMENTATION -DCRYPTO_IMPLEMENTATION -DDISPLAY_IMPLEMENTATION -DEVENTS_BASE_IMPLEMENTATION -DEVENTS_IMPLEMENTATION -DGESTURE_DETECTION_IMPLEMENTATION -DGFX_IMPLEMENTATION -DGIN_IMPLEMENTATION -DGLES2_C_LIB_IMPLEMENTATION -DGLES2_IMPL_IMPLEMENTATION -DGLES2_UTILS_IMPLEMENTATION -DGL_IMPLEMENTATION -DGPU_IMPLEMENTATION -DHEAP_IMPLEMENTATION -DIPC_IMPLEMENTATION -DKEYBOARD_IMPLEMENTATION -DLIBPROTOBUF_EXPORTS -DLIBPROTOC_EXPORTS -DMEDIA_IMPLEMENTATION -DMESSAGE_CENTER_IMPLEMENTATION -DMOJO_COMMON_IMPLEMENTATION -DMOJO_ENVIRONMENT_IMPL_IMPLEMENTATION -DMOJO_GLES2_IMPLEMENTATION -DMOJO_GLES2_IMPL_IMPLEMENTATION -DMOJO_NATIVE_VIEWPORT_IMPLEMENTATION -DMOJO_SERVICE_MANAGER_IMPLEMENTATION -DMOJO_SYSTEM_IMPLEMENTATION -DMOJO_SYSTEM_IMPL_IMPLEMENTATION -DNATIVE_THEME_IMPLEMENTATION -DNET_IMPLEMENTATION -DOZONE_IMPLEMENTATION -DPPAPI_HOST_IMPLEMENTATION -DPPAPI_PROXY_IMPLEMENTATION -DPPAPI_SHARED_IMPLEMENTATION -DPPAPI_THUNK_IMPLEMENTATION -DPRINTING_IMPLEMENTATION -DSHELL_DIALOGS_IMPLEMENTATION -DSKIA_IMPLEMENTATION -DSNAPSHOT_IMPLEMENTATION -DSQL_IMPLEMENTATION -DSURFACE_IMPLEMENTATION -DUI_BASE_IMPLEMENTATION -DUI_IMPLEMENTATION -DURL_IMPLEMENTATION -DU_COMBINED_IMPLEMENTATION_EXCEPT_DATA -DU_NO_GLOBAL_NEW_DELETE -DU_UTF8_IMPL -DV2_IMPLEMENTATION -DV8_SHARED -DWEBKIT_BASE_IMPLEMENTATION -DWEBKIT_CHILD_IMPLEMENTATION -DWEBKIT_COMMON_IMPLEMENTATION -DWEBKIT_COMPOSITOR_BINDINGS_IMPLEMENTATION -DWEBKIT_EXTENSIONS_IMPLEMENTATION -DWEBKIT_GLUE_IMPLEMENTATION -DWEBKIT_GPU_IMPLEMENTATION -DWEBKIT_PLUGINS_IMPLEMENTATION -DWEBKIT_RENDERER_IMPLEMENTATION -DWEBKIT_STORAGE_BROWSER_IMPLEMENTATION -DWEBKIT_STORAGE_COMMON_IMPLEMENTATION -DWEBKIT_STORAGE_RENDERER_IMPLEMENTATION -DWEBKIT_USER_AGENT_IMPLEMENTATION -DWEBORIGIN_IMPLEMENTATION -DWTF_IMPLEMENTATION -DV8_DEPRECATION_WARNINGS -DBLINK_SCALE_FILTERS_AT_RECORD_TIME -D_FILE_OFFSET_BITS=64 -DNO_TCMALLOC -DDISABLE_NACL -DCHROMIUM_BUILD -DTOOLKIT_VIEWS=1 -DUI_COMPOSITOR_IMAGE_TRANSPORT -DUSE_AURA=1 -DUSE_CAIRO=1 -DUSE_GLIB=1 -DUSE_DEFAULT_RENDER_THEME=1 -DUSE_LIBJPEG_TURBO=1 -DUSE_MOJO=1 -DUSE_X11=1 -DUSE_CLIPBOARD_AURAX11=1 -DENABLE_ONE_CLICK_SIGNIN -DUSE_XI2_MT=2 -DENABLE_REMOTING=1 -DENABLE_WEBRTC=1 -DENABLE_PEPPER_CDMS -DENABLE_CONFIGURATION_POLICY -DENABLE_INPUT_SPEECH -DENABLE_NOTIFICATIONS -DUSE_UDEV -DENABLE_EGLIMAGE=1 -DENABLE_TASK_MANAGER=1 -DENABLE_EXTENSIONS=1 -DENABLE_PLUGIN_INSTALLATION=1 -DENABLE_PLUGINS=1 -DENABLE_SESSION_SERVICE=1 -DENABLE_THEMES=1 -DENABLE_AUTOFILL_DIALOG=1 -DENABLE_BACKGROUND=1 -DENABLE_AUTOMATION=1 -DENABLE_GOOGLE_NOW=1 -DCLD_VERSION=2 -DENABLE_FULL_PRINTING=1 -DENABLE_PRINTING=1 -DENABLE_SPELLCHECK=1 -DENABLE_CAPTIVE_PORTAL_DETECTION=1 -DENABLE_APP_LIST=1 -DENABLE_SETTINGS_APP=1 -DENABLE_MANAGED_USERS=1 -DENABLE_MDNS=1 -DENABLE_SERVICE_DISCOVERY=1 -DUSE_NSS=1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -D_DEBUG -D_GLIBCXX_DEBUG=1 -I../.. -fstack-protector --param=ssp-buffer-size=4 -Werror -pthread -fno-exceptions -fno-strict-aliasing -Wall -Wno-unused-parameter -Wno-missing-field-initializers -fvisibility=hidden -pipe -fPIC -g -m64 -march=x86-64 -O0 -g -funwind-tables -fno-rtti -fno-threadsafe-statics -fvisibility-inlines-hidden -Wsign-compare  -c ../../mojo/public/bindings/lib/connector.cc -o obj/mojo/public/bindings/lib/mojo_bindings.connector.o
In file included from /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/debug/debug.h:126,
                 from /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/stl_algobase.h:71,
                 from /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/deque:61,
                 from /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/queue:61,
                 from ../../mojo/public/bindings/lib/message_queue.h:8,
                 from ../../mojo/public/bindings/lib/connector.h:8,
                 from ../../mojo/public/bindings/lib/connector.cc:5:
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/debug/formatter.h: In constructor â__gnu_debug::_Error_formatter::_Parameter::_Parameter(const __gnu_debug::_Safe_iterator<_Iterator, _Sequence>&, const char*, __gnu_debug::_Error_formatter::_Is_iterator)â:
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/debug/formatter.h:213: error: cannot use typeid with -fno-rtti
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/debug/formatter.h:219: error: cannot use typeid with -fno-rtti
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/debug/formatter.h: In constructor â__gnu_debug::_Error_formatter::_Parameter::_Parameter(const _Type*&, const char*, __gnu_debug::_Error_formatter::_Is_iterator)â:
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/debug/formatter.h:242: error: cannot use typeid with -fno-rtti
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/debug/formatter.h: In constructor â__gnu_debug::_Error_formatter::_Parameter::_Parameter(_Type*&, const char*, __gnu_debug::_Error_formatter::_Is_iterator)â:
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/debug/formatter.h:255: error: cannot use typeid with -fno-rtti
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/debug/formatter.h: In constructor â__gnu_debug::_Error_formatter::_Parameter::_Parameter(const _Iterator&, const char*, __gnu_debug::_Error_formatter::_Is_iterator)â:
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/debug/formatter.h:268: error: cannot use typeid with -fno-rtti
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/debug/formatter.h: In constructor â__gnu_debug::_Error_formatter::_Parameter::_Parameter(const __gnu_debug::_Safe_sequence<_Sequence>&, const char*, __gnu_debug::_Error_formatter::_Is_sequence)â:
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/debug/formatter.h:284: error: cannot use typeid with -fno-rtti
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/debug/formatter.h: In constructor â__gnu_debug::_Error_formatter::_Parameter::_Parameter(const _Sequence&, const char*, __gnu_debug::_Error_formatter::_Is_sequence)â:
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/debug/formatter.h:293: error: cannot use typeid with -fno-rtti
[28/10545] ACTION Generating about:credits
ninja: build stopped: subcommand failed.
Traceback (most recent call last):
  File "script/build", line 27, in <module>
    sys.exit(main())
  File "script/build", line 23, in main
    subprocess.check_call([NINJA, '-C', config_dir] + TARGETS)
  File "/usr/lib64/python2.6/subprocess.py", line 505, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/home/user/libchromiumcontent/vendor/depot_tools/ninja', '-C', 'vendor/chromium/src/out/Debug', 'chromiumcontent_all']' returned non-zero exit status 1

This appears on a whole bunch of files, this is just the last one.

Note CentOS ships with Python 2.6 so I'm not sure if this is running in to a 2.7 requirement issue (seems more like a compiler issue)

aroben commented 10 years ago

@zcbenz Do you know anything about this?

zcbenz commented 10 years ago

Maybe the version of GCC is too old, I haven't tested building with GCC < 4.6.

ceeeKay commented 10 years ago

A little googling seems to indicate that perhaps the compiler flag and the (perhaps implicit) use of typeid are incompatible http://stackoverflow.com/questions/8723702/error-cannot-use-typeid-with-fno-rtti

Perhaps there is a default flag setting that needs to be enabled/disabled for CentOS 6.5 / GCC 4.4.7

zcbenz commented 8 years ago

We now use downloaded toolchain so this problem should be gone.