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

ICC 15: gfx_linker exits because binutils doesn't recognize .obj file. Is it possible to disable IGT code generation?

Alex_K_6
Beginner
692 Views

Hello,

When I'm attempting to compile Firefox with Intel C++ 15 Update 1 and Visual Studio 2010 I fall into the following error:

 1:01.09 ../../widget/windows/nsWindowGFX.obj: file not recognized: File format not recognized
 1:01.09 gfx_linker: catastrophic error: command 'ld.exe' exited with non-zero exit code 1

This seems to occur because code generation for Intel Graphics Technology (IGT) seems to use binutils and that doesn't seem to support windows object (.obj) files.

Is IGT code generation on by default? Is it possible to disable it?

Here is the command line used where this fails:

Executing: xilink -NOLOGO -DLL -OUT:xul.dll -PDB:xul.pdb -SUBSYSTEM:WINDOWS,5.02 -MACHINE:X64 @b:\Firefox\35.0b5\objdir\toolkit\library\tmpuwx_9i.list module.res -LARGEADDRESSAWARE -NXCOMPAT -DYNAMICBASE -LIBPATH:C:/Program Files (x86)/Microsoft DirectX SDK (June 2010)/lib/x64 -DEBUG -DEBUG -OPT:REF,ICF -DELAYLOAD:comdlg32.dll -DELAYLOAD:dbghelp.dll -DELAYLOAD:psapi.dll -DELAYLOAD:rasapi32.dll -DELAYLOAD:rasdlg.dll -DELAYLOAD:secur32.dll -DELAYLOAD:wininet.dll -DELAYLOAD:winspool.drv -DELAYLOAD:msdmo.dll -MACHINE:X64 -OPT:REF,ICF -FORCE ..\..\security\nss\lib\crmf\crmf.lib ../../config/external/nss/nss3.lib ../../js/src/mozjs.lib ../../security/sandbox/win/src/sandboxbroker/sandboxbroker.lib ../../layout/media/gkmedias.lib ../../memory/mozalloc/mozalloc.lib ../../intl/icu/target/lib/icuin.lib ../../intl/icu/target/lib/icuuc.lib ../../intl/icu/target/lib/icudt.lib -LIBPATH:../../dist/lib -NODEFAULTLIB:msvcrt -NODEFAULTLIB:msvcprt -DEFAULTLIB:mozcrt kernel32.lib user32.lib gdi32.lib winmm.lib wsock32.lib advapi32.lib secur32.lib netapi32.lib psapi.lib shell32.lib dbghelp.lib secur32.lib crypt32.lib iphlpapi.lib strmiids.lib dmoguids.lib wmcodecdspuuid.lib amstrmid.lib msdmo.lib wininet.lib mfuuid.lib ole32.lib version.lib winspool.lib comdlg32.lib imm32.lib msimg32.lib shlwapi.lib ws2_32.lib rasapi32.lib rasdlg.lib uxtheme.lib setupapi.lib sensorsapi.lib portabledeviceguids.lib windowscodecs.lib wbemuuid.lib wintrust.lib wtsapi32.lib usp10.lib oleaut32.lib delayimp.lib

And the compiler flags I use:

-O2 -Qip- -fp:precise -w
0 Kudos
5 Replies
MalReddy_Y_Intel
Employee
692 Views

Hi,

By default IGT native code will be generated, it seems above issue is known as per release notes and to resolve this problem, add the binutils bin directory for the 64-bit linker to your PATH environment variable and then restart Microsoft Visual Studio*.

Thanks,

Reddy

 

0 Kudos
Alex_K_6
Beginner
692 Views

Mal.Reddy (Intel) wrote:

Hi,

By default IGT native code will be generated, it seems above issue is known as per release notes and to resolve this problem, add the binutils bin directory for the 64-bit linker to your PATH environment variable and then restart Microsoft Visual Studio*.

Thanks,

Reddy

 

 

Hi Reddy,

It seems that binutils (ld, the linker more specifically) doesn't recognize the .obj file presented to it so it exits, which in turn causes gfx_linker to exit. All the binutils are in the path correctly and visual studio can access them.

link and xilink are fine with the generated .obj file but ld is not. Might be that ld doesn't like the structure of the generated obj file? This is why I was wondering if IGT can be disable since I'm not sure what's causing ld.exe to reject nsWindowGFX.obj.

Thanks,

Alex

0 Kudos
MalReddy_Y_Intel
Employee
692 Views

Hi Alex,

Could you let us know version of binutils you are using?

It is recommended to use a version of binutils (specifically 2.24.51.20131210) for Windows (available at
http://intel.ly/1fHX7xO)

Thanks,

Reddy



 

0 Kudos
Alex_K_6
Beginner
692 Views

Mal.Reddy (Intel) wrote:

Hi Alex,

Could you let us know version of binutils you are using?

It is recommended to use a version of binutils (specifically 2.24.51.20131210) for Windows (available at
http://intel.ly/1fHX7xO)

Thanks,

Reddy

 

 

Hi Reddy,

I'm using that exact version of binutils and I got it from the page you're linking to. I'll get steps to reproduce this issue asap.

Thanks,

Alex

0 Kudos
Alex_K_6
Beginner
692 Views

Mal.Reddy (Intel) wrote:

Hi Alex,

Could you let us know version of binutils you are using?

It is recommended to use a version of binutils (specifically 2.24.51.20131210) for Windows (available at
http://intel.ly/1fHX7xO)

Thanks,

Reddy

 

Just to note, in the docs it says to use binutils 2.24.51.20131210 yet the version of binutils available on http://intel.ly/1fHX7xO is 2.24.51.20131203 (for x64 anyway, haven't tested 32-bit. Just noticed that's the version I'm using. Could that be the issue?

0 Kudos
Reply