Some problems when build firefox 25b2 using ICC 14

Some problems when build firefox 25b2 using ICC 14

Imagen de xunxun

Hi,

    I try to build firefox 25b2 using ICC 14 and VC2010 SP1/Win8 SDK.

   My icc version is 14.0.0.103 Build 20130728.

   The preprocess source and output log can be downloaded from http://sourceforge.net/projects/pcxfirefox/files/Test/Others/icc-bug-rep...

  1) deflickering.cc from webrtc cause a backend signals error

  2) nsJSEventListener.cpp and all source code including BindingUtils.h can cause

BindingUtils.h(422): error: class "nsISupports" has no member "WrapObject"  HAS_MEMBER(WrapObject) 

    This error cause most dom/binding code can't be build using icc.

  3) nsNavHistory.cpp can cause identifier "__func__" is undefined similar errors.

All the code above can be built using VC2010 SP1 / Win8 SDK.

Best Regards, xunxun
publicaciones de 5 / 0 nuevos
Último envío
Para obtener más información sobre las optimizaciones del compilador, consulte el aviso sobre la optimización.

 

Hi xunxun,

Thank you for your preprocessed files and command line logs.

Details on the specific problems:

(1) I was able to reproduce this internal error and submitted DPD200248456
in our internal bug tracking database. This seems to be caused by our runtime checking for effective parallelization
code. If I change -Qpar-runtime-control3 to -Qpar-runtime-control1 the problem
goes away.

(2) This was reproducible with this small example below. I have reported this in
our internal bug tracking database as DPD200248459. We will work on it ASAP.
It seems to be SFINAE problem involving pointer to members.

!% cat bug.cpp

template<typename T>
class HasWrapObjectMember {
 typedef char yes[1];
 typedef char no[2];
 template<typename V> static yes& Check(char (*)[(&V::WrapObject == 0) + 1]);
 template<typename V> static no& Check(...);
public:
 static bool const Value = sizeof(Check<T>(nullptr)) == sizeof(yes);
};

class C {};

HasWrapObjectMember<C> c;

!% icl -c bug.cpp
Intel(R) C++ Compiler XE for applications running on IA-32, Version 14.0 Beta Bu
ild x
Built Sep 12 2013 15:50:00 by jward4 on JWARD4-DESK in D:/workspaces/14_0cfe/dev

Copyright (C) 1985-2013 Intel Corporation.  All rights reserved.

bug.cpp
bug.cpp(7): error: class "C" has no member "WrapObject"
   template<typename V> static yes& Check(char (*)[(&V::WrapObject == 0) + 1]);

                                                        ^
          detected during:
            instantiation of "HasWrapObjectMember<T>::Check [with T=C]" based on
 template argument <C> at line 10
            instantiation of class "HasWrapObjectMember<T> [with T=C]" at line 1
5

compilation aborted for bug.cpp (code 2)
!%

 

(3) undeclared identifier __func__

This is not a bug -- it is expected. On Windows by default we match the
Microsoft compiler which doesn't define this symbol either. If you would
like it defined on Windows by icl you need to specify the /Qstd=c++11
(since it was added to the C++11 standard and was not in the C++98 or C++03 standard).

thanks again,
Judy

Imagen de xunxun

Thanks, Judith Ward.

Hope Intel fix the second error quickly, which can cause many code build error.

Best Regards, xunxun
Imagen de xunxun

And another problem, it seems intel doesn't define _M_IX86_FP, which cause the mozilla code below is invalid:

#if _M_IX86_FP >= 1
  // It's ok to use SSE instructions based on the /arch option
  #define MOZILLA_PRESUME_SSE
#endif
#if _M_IX86_FP >= 2
  // It's ok to use SSE2 instructions based on the /arch option
  #define MOZILLA_PRESUME_SSE2
#endif

This cause some linker errors.

Best Regards, xunxun

 

Yes the macro problem has already been reported in a previous thread here:

http://software.intel.com/en-us/forums/topic/474065

 

Inicie sesión para dejar un comentario.