bjam errors during boost compilation with --toolset=intel

View: New views
11 Messages — Rating Filter:   Alert me  

bjam errors during boost compilation with --toolset=intel

by Patryk Bukowinski :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hello,
This is my first mail to boost community so please be relatively tolerant ;)

I'm trying to compile latest boost library (currently `1_40_0`) with:
intel compiler (v 11.1).
Microsoft Platform SDK windows XP 32-bit RETAIL
OS - win32 XP

I'm following the instructions on intel site:

http://software.intel.com/en-us/articles/building-boost-with-intel-c/

But the bjam produce me following error:

C:\Documents and Settings\user\Desktop\boost_1_40_0>bjam
    --toolset="intel" "-sINTEL_PATH=C:\Program Files\Intel\Compiler\11.1\038\cpp\ bin\ia32" "-sINTEL_BASE_MSVC_TOOLSET=vc-9_0" "-sINTEL_VERSION=11"

    stage lib.jam: No such file or directory
    warning: Building Boost.Regex with the optional Unicode/ICU support disabled.
    note: Please refer to the Boost.Regex documentation for more information note: this is a strictly optional feature. 
    warning: Graph library does not contain optional GraphML reader. note: to enable GraphML support, set EXPAT_INCLUDE and EXPAT_LIBPATH to the note: directories containing the Expat headers and libraries, respectively.
    warning: Graph library does not contain MPI-based parallel components. note: to enable them, add "using mpi ;" to your user-config.jam

    Error: ambiguity found when searching for best transformation Trying to produce type 'RC' from:
     -  { simple_event_log.mc.MC } Generators that succeeded:
     -  mc.compile
     -  intel-win.compile.mc First generator produced:
     -  { mc%mc.compile-simple_event_log.h.H { simple_event_log.mc.MC } }
     -  { mc%mc.compile-simple_event_log.rc.RC { simple_event_log.mc.MC } } Second generator produced:
     -  { intel-win%intel-win.compile.mc-simple_event_log.h.H { simple_event_log.mc. MC } }
     -  { intel-win%intel-win.compile.mc-simple_event_log.rc.RC { simple_event_log.m c.MC } }

Compilation with MS CL toolset ends successfully. I haven't found reliable information about this ambiguity issue.

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build

Re: bjam errors during boost compilation with --toolset=intel

by Patryk Bukowinski :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I've found that the problem is caused by third party library, boost-log from boost.pro.
With this library deleted from boost dir tree, everything compile correctly with intel-toolset.
I just wanted to compile boost with that library, could You help me adjust the jamfile to use intel properly.
File in attachment.



2009/9/22 Patryk Bukowinski <p.bukowinski@...>
Hello,
This is my first mail to boost community so please be relatively tolerant ;)

I'm trying to compile latest boost library (currently `1_40_0`) with:
intel compiler (v 11.1).
Microsoft Platform SDK windows XP 32-bit RETAIL
OS - win32 XP

I'm following the instructions on intel site:

http://software.intel.com/en-us/articles/building-boost-with-intel-c/

But the bjam produce me following error:

C:\Documents and Settings\user\Desktop\boost_1_40_0>bjam
    --toolset="intel" "-sINTEL_PATH=C:\Program Files\Intel\Compiler\11.1\038\cpp\ bin\ia32" "-sINTEL_BASE_MSVC_TOOLSET=vc-9_0" "-sINTEL_VERSION=11"

    stage lib.jam: No such file or directory
    warning: Building Boost.Regex with the optional Unicode/ICU support disabled.
    note: Please refer to the Boost.Regex documentation for more information note: this is a strictly optional feature. 
    warning: Graph library does not contain optional GraphML reader. note: to enable GraphML support, set EXPAT_INCLUDE and EXPAT_LIBPATH to the note: directories containing the Expat headers and libraries, respectively.
    warning: Graph library does not contain MPI-based parallel components. note: to enable them, add "using mpi ;" to your user-config.jam

    Error: ambiguity found when searching for best transformation Trying to produce type 'RC' from:
     -  { simple_event_log.mc.MC } Generators that succeeded:
     -  mc.compile
     -  intel-win.compile.mc First generator produced:
     -  { mc%mc.compile-simple_event_log.h.H { simple_event_log.mc.MC } }
     -  { mc%mc.compile-simple_event_log.rc.RC { simple_event_log.mc.MC } } Second generator produced:
     -  { intel-win%intel-win.compile.mc-simple_event_log.h.H { simple_event_log.mc. MC } }
     -  { intel-win%intel-win.compile.mc-simple_event_log.rc.RC { simple_event_log.m c.MC } }

Compilation with MS CL toolset ends successfully. I haven't found reliable information about this ambiguity issue.



_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build

Jamfile.v2 (2K) Download Attachment

Re: bjam errors during boost compilation with --toolset=intel

by Vladimir Prus-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Patryk Bukowinski wrote:

> I've found that the problem is caused by third party library, boost-log from
> boost.pro.
> With this library deleted from boost dir tree, everything compile correctly
> with intel-toolset.
> I just wanted to compile boost with that library, could You help me adjust
> the jamfile to use intel properly.
> File in attachment.

Patryk,

if you use third-party library, this explains the error. Can you try to
apply the attached patch to tools/build/v2/tools/intel-win.jam and
try again?

The Jamfile for the library has an unrelated issue, but I assume you're not
maintainer of it so it should not matter.

- Volodya


[intel-win.diff]

Index: intel-win.jam
===================================================================
--- intel-win.jam (revision 56046)
+++ intel-win.jam (working copy)
@@ -25,6 +25,7 @@
 generators.override intel-win.compile.c.pch   : pch.default-c-pch-generator   ;
 generators.override intel-win.compile.c++.pch : pch.default-cpp-pch-generator ;
 generators.override intel-win.compile.rc : rc.compile.resource ;
+generators.override intel-win.compile.mc : mc.compile ;
 
 toolset.flags intel-win.compile PCH_SOURCE <pch>on : <pch-source> ;
 



_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build

Re: bjam errors during boost compilation with --toolset=intel

by Patryk Bukowinski :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi, thanks for feedback.

This is certainly close.

Now I've different error messages, but no more ambiguity problem (quote text).

I've solved all issues with following:

In Jamfile for this lib, there is a section that is dependent on Message Compiler.
I've commented it out and created headers by my own.
Then the whole build run without errors.



After adding Your adjustments to intel-win.jam:

generators.override intel-win.compile.mc : mc.compile ;

I have:

lib.jam: No such file or directory
warning: Building Boost.Regex with the optional Unicode/ICU support disabled.
note: Please refer to the Boost.Regex documentation for more information
note: this is a strictly optional feature.
...patience...
...patience...
...found 2258 targets...
...updating 6 targets...
intel-win.compile.mc ..\..\..\bin.v2\libs\log\build\intel-win\debug\threading-multi\simple_event_log.h
'-h' is not recognized as an internal or external command,
operable program or batch file.

      -h "..\..\..\bin.v2\libs\log\build\intel-win\debug\threading-multi" -r "..\..\..\bin.v2\libs\log\build\intel-win\d
ebug\threading-multi" "..\..\..\libs\log\src\simple_event_log.mc"

...failed intel-win.compile.mc ..\..\..\bin.v2\libs\log\build\intel-win\debug\threading-multi\simple_event_log.h ..\..\.
.\bin.v2\libs\log\build\intel-win\debug\threading-multi\simple_event_log.rc...
...skipped <p..\..\..\bin.v2\libs\log\build\intel-win\debug\threading-multi>simple_event_log_res.obj for lack of <p..\..
\..\bin.v2\libs\log\build\intel-win\debug\threading-multi-object(res-scanner)@935>simple_event_log.rc...
...skipped <p..\..\..\bin.v2\libs\log\build\intel-win\debug\threading-multi>boost_log-iw-mt-gd-1_40.dll for lack of <p..
\..\..\bin.v2\libs\log\build\intel-win\debug\threading-multi>simple_event_log_res.obj...
...skipped <p..\..\..\bin.v2\libs\log\build\intel-win\debug\threading-multi>boost_log-iw-mt-gd-1_40.lib for lack of <p..
\..\..\bin.v2\libs\log\build\intel-win\debug\threading-multi>simple_event_log_res.obj...
...skipped <p..\..\..\bin.v2\libs\log\build\intel-win\debug\threading-multi>boost_log-iw-mt-gd-1_40.pdb for lack of <p..
\..\..\bin.v2\libs\log\build\intel-win\debug\threading-multi>simple_event_log_res.obj...
...failed updating 2 targets...
...skipped 4 targets...


I can assume that the problem for me is partially solved, but If You have some ideas how to solve those MC issues, I can test it on my side.

thanks for help.


2009/9/23 Vladimir Prus <vladimir@...>
Patryk Bukowinski wrote:

> I've found that the problem is caused by third party library, boost-log from
> boost.pro.
> With this library deleted from boost dir tree, everything compile correctly
> with intel-toolset.
> I just wanted to compile boost with that library, could You help me adjust
> the jamfile to use intel properly.
> File in attachment.

Patryk,

if you use third-party library, this explains the error. Can you try to
apply the attached patch to tools/build/v2/tools/intel-win.jam and
try again?

The Jamfile for the library has an unrelated issue, but I assume you're not
maintainer of it so it should not matter.

- Volodya


_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build



_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build

Re: bjam errors during boost compilation with --toolset=intel

by Vladimir Prus :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Wednesday 23 September 2009 Patryk Bukowinski wrote:

> Hi, thanks for feedback.
>
> This is certainly close.
>
> Now I've different error messages, but no more ambiguity problem (quote
> text).
>
> I've solved all issues with following:
>
> In Jamfile for this lib, there is a section that is dependent on Message
> Compiler.
> I've commented it out and created headers by my own.
> Then the whole build run without errors.
>
>
>
> After adding Your adjustments to intel-win.jam:
>
> generators.override intel-win.compile.mc : mc.compile ;
>
> I have:
>
> lib.jam: No such file or directory
Please remove "import lib ; " in the Jamfile -- this is neither
necessary nor working (or ever worked, even)

> > warning: Building Boost.Regex with the optional Unicode/ICU support
> > disabled.
> > note: Please refer to the Boost.Regex documentation for more information
> > note: this is a strictly optional feature.
> > ...patience...
> > ...patience...
> > ...found 2258 targets...
> > ...updating 6 targets...
> > intel-win.compile.mc..\..\..\bin.v2\libs\log\build\intel-win\debug\threading-multi\simple_event_log.h
> > '-h' is not recognized as an internal or external command,
> > operable program or batch file.
> >
> >       -h "..\..\..\bin.v2\libs\log\build\intel-win\debug\threading-multi"
Please apply, in addition to the previous, the following patch.

Thanks,
Volodya

[intel-win-2.diff]

Index: intel-win.jam
===================================================================
--- intel-win.jam (revision 56366)
+++ intel-win.jam (working copy)
@@ -78,6 +78,7 @@
     toolset.flags intel-win.link .LD $(condition) : $(setup)xilink ;
     toolset.flags intel-win.archive .LD $(condition) : $(setup)xilink /lib ;
     toolset.flags intel-win.link .MT $(condition) : $(setup)mt -nologo ;
+    toolset.flags intel-win.link .MC $(condition) : $(setup)mc ;
 
     local m = [ MATCH (.).* : $(version) ] ;
     local major = $(m[1]) ;


_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build

Re: bjam errors during boost compilation with --toolset=intel

by Patryk Bukowinski :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I've removed *.h files which I've generated manually,
then apply Your new line (to intel-win.jam which is placed in its regular directory):

toolset.flags intel-win.link .MC $(condition) : $(setup)mc ;

MC dependent header file hasn't been created.
Similar error occurs:

intel-win.compile.mc boost\bin.v2\libs\log\build\intel-win\debug\threading-multi\simple_event_log.h
'-h' is not recognized as an internal or external command,
operable program or batch file.

      -h "boost\bin.v2\libs\log\build\intel-win\debug\threading-multi" -r "boost\bin.v2\libs\log\build\intel-win\debug\t
hreading-multi" "..\..\..\libs\log\src\simple_event_log.mc"

...failed intel-win.compile.mc boost\bin.v2\libs\log\build\intel-win\debug\threading-multi\simple_event_log.h boost\bin.
v2\libs\log\build\intel-win\debug\threading-multi\simple_event_log.rc...
...skipped <pboost\bin.v2\libs\log\build\intel-win\debug\threading-multi>simple_event_log_res.obj for lack of <pboost\bi
n.v2\libs\log\build\intel-win\debug\threading-multi-object(res-scanner)@935>simple_event_log.rc...
...skipped <pboost\bin.v2\libs\log\build\intel-win\debug\threading-multi>event_log_backend.obj for lack of <pboost\bin.v
2\libs\log\build\intel-win\debug\threading-multi>simple_event_log.h...
compile-c-c++ boost\bin.v2\libs\log\build\intel-win\debug\threading-multi\nt6_event_log_backend.obj
icl: command line remark #10010: option '/Op' is deprecated and will be removed in a future release. See '/help deprecat
ed'
 
build finished with:

...skipped <pboost\bin.v2\libs\log\build\intel-win\debug\threading-multi>boost_log-iw-mt-gd-1_40.dll for lack of <pboost
\bin.v2\libs\log\build\intel-win\debug\threading-multi>simple_event_log_res.obj...
..

Thx
P.

2009/9/23 Vladimir Prus <ghost@...>
On Wednesday 23 September 2009 Patryk Bukowinski wrote:

> Hi, thanks for feedback.
>
> This is certainly close.
>
> Now I've different error messages, but no more ambiguity problem (quote
> text).
>
> I've solved all issues with following:
>
> In Jamfile for this lib, there is a section that is dependent on Message
> Compiler.
> I've commented it out and created headers by my own.
> Then the whole build run without errors.
>
>
>
> After adding Your adjustments to intel-win.jam:
>
> generators.override intel-win.compile.mc : mc.compile ;
>
> I have:
>
> lib.jam: No such file or directory

Please remove "import lib ; " in the Jamfile -- this is neither
necessary nor working (or ever worked, even)

> > warning: Building Boost.Regex with the optional Unicode/ICU support
> > disabled.
> > note: Please refer to the Boost.Regex documentation for more information
> > note: this is a strictly optional feature.
> > ...patience...
> > ...patience...
> > ...found 2258 targets...
> > ...updating 6 targets...
> > intel-win.compile.mc..\..\..\bin.v2\libs\log\build\intel-win\debug\threading-multi\simple_event_log.h
> > '-h' is not recognized as an internal or external command,
> > operable program or batch file.
> >
> >       -h "..\..\..\bin.v2\libs\log\build\intel-win\debug\threading-multi"

Please apply, in addition to the previous, the following patch.

Thanks,
Volodya

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build



_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build

Re: bjam errors during boost compilation with --toolset=intel

by Vladimir Prus :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Wednesday 23 September 2009 Patryk Bukowinski wrote:

> I've removed *.h files which I've generated manually,
> then apply Your new line (to intel-win.jam which is placed in its regular
> directory):
>
> toolset.flags intel-win.link .MC $(condition) : $(setup)mc ;

Oh, sorry, it's too late here already. This should have been:

        toolset.flags intel-win.compile .MC $(condition) : $(setup)mc ;

That is 'compile', not 'link'.

Does that help?

- Volodya
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build

Re: bjam errors during boost compilation with --toolset=intel

by Patryk Bukowinski :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

What have happened is :
  • everything compiled properly, this header (*.h) and other *rc, and object files were done properly  BUT:
  • those MC dependent header and other files were placed to output folder,
  • new error occurred
intel-win.compile.rc boost\bin.v2\libs\log\build\intel-win\debug\threading-multi\simple_event_log_res.obj
'-l' is not recognized as an internal or external command,
operable program or batch file.

     -l 0x409  -DBOOST_ALL_NO_LIB=1 -DBOOST_DATE_TIME_DYN_LINK=1 -DBOOST_FILESYSTEM_DYN_LINK=1 -DBOOST_LOG_BUILDING_THE_
LIB=1 -DBOOST_LOG_DLL -DBOOST_SYSTEM_DYN_LINK=1 -DBOOST_THREAD_USE_DLL=1 -DDATE_TIME_INLINE -I"..\..\.." -I"boost\bin.v2
\libs\log\build\intel-win\debug\threading-multi" -fo "boost\bin.v2\libs\log\build\intel-win\debug\threading-multi\simple
_event_log_res.obj" "boost\bin.v2\libs\log\build\intel-win\debug\threading-multi\simple_event_log.rc"

...failed intel-win.compile.rc boost\bin.v2\libs\log\build\intel-win\debug\threading-multi\simple_event_log_res.obj...
compile-c-c++ boost\bin.v2\libs\log\build\intel-win\debug\threading-multi\code_conversion.obj
icl: command line remark #10010: option '/Op' is deprecated and will be removed in a future release. See '/help deprecat
ed'

So simply the library couldn't be linked.
It was working when I had this *.h file in library src folder (the same where *.mc file was).

Wondering is that an jamfile issue, or still the intel-win.jam, because I remind that for msvc this works.



2009/9/23 Vladimir Prus <ghost@...>
On Wednesday 23 September 2009 Patryk Bukowinski wrote:

> I've removed *.h files which I've generated manually,
> then apply Your new line (to intel-win.jam which is placed in its regular
> directory):
>
> toolset.flags intel-win.link .MC $(condition) : $(setup)mc ;

Oh, sorry, it's too late here already. This should have been:

       toolset.flags intel-win.compile .MC $(condition) : $(setup)mc ;

That is 'compile', not 'link'.

Does that help?

- Volodya
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build


_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build

Re: bjam errors during boost compilation with --toolset=intel

by Vladimir Prus-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Patryk Bukowinski wrote:

> What have happened is :
>
>    - everything compiled properly, this header (*.h) and other *rc, and
>    object files were done properly  *BUT:*

Good.

>    - those MC dependent header and other files were placed to output folder,

That's how it should be. After all, these are derived files.

>
>    - new error occurred
>
> intel-win.compile.rc
>> boost\bin.v2\libs\log\build\intel-win\debug\threading-multi\simple_event_log_res.obj
>> '-l' is not recognized as an internal or external command,
>> operable program or batch file.
>>
>>      -l 0x409  -DBOOST_ALL_NO_LIB=1 -DBOOST_DATE_TIME_DYN_LINK=1

Try adding another line:

     toolset.flags intel-win.compile .RC $(condition) : $(setup)rc ;

in the same place.

- Volodya


_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build

Re: bjam errors during boost compilation with --toolset=intel

by Patryk Bukowinski :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,


2009/9/23 Vladimir Prus <vladimir@...>
Patryk Bukowinski wrote:

> What have happened is :
>
>    - everything compiled properly, this header (*.h) and other *rc, and
>    object files were done properly  *BUT:*

Good.

>    - those MC dependent header and other files were placed to output folder,

That's how it should be. After all, these are derived files.

>
>    - new error occurred
>
> intel-win.compile.rc
>> boost\bin.v2\libs\log\build\intel-win\debug\threading-multi\simple_event_log_res.obj
>> '-l' is not recognized as an internal or external command,
>> operable program or batch file.
>>
>>      -l 0x409  -DBOOST_ALL_NO_LIB=1 -DBOOST_DATE_TIME_DYN_LINK=1

Try adding another line:

    toolset.flags intel-win.compile .RC $(condition) : $(setup)rc ;


That did the job.
 
in the same place.

- Volodya




Thanks for great support.
Patryk


_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build

Re: bjam errors during boost compilation with --toolset=intel

by Vladimir Prus :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Thursday 24 September 2009 Patryk Bukowinski wrote:

> > boost\bin.v2\libs\log\build\intel-win\debug\threading-multi\simple_event_log_res.obj
> > >> '-l' is not recognized as an internal or external command,
> > >> operable program or batch file.
> > >>
> > >>      -l 0x409  -DBOOST_ALL_NO_LIB=1 -DBOOST_DATE_TIME_DYN_LINK=1
> >
> > Try adding another line:
> >
> >     toolset.flags intel-win.compile .RC $(condition) : $(setup)rc ;
> >
> >
> That did the job.

Great, I've checked in the fixes.

- Volodya
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build