changing file output suffixes

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

changing file output suffixes

by McLemon, Sean :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Some parts of this message have been removed. Learn more about Nabble's security policy.

Hi,

 

(Originally posted in Boost-users, apologies for the repetition :)). Our toolchain generates files ending in ".doj" for objects, so I've been trying to configure my custom toolset module to use this. My original module is based on acc.jam but qcc.jam had something that looked like it would do the trick, so I lifted that and chucked into my module:

 

import type ;

 

type.set-generated-target-suffix OBJ        : <toolset>bfin : doj ;

type.set-generated-target-suffix STATIC_LIB : <toolset>bfin : dlb ;

 

However my build of Boost now fails, with a fairly long error tracing:

 

smclemo@edin-angus /usr/src/boost_1_39_0

$ bjam toolset=bfin

WARNING: No python installation configured and autoconfiguration

         failed.  See http://www.boost.org/libs/python/doc/building.html

         for configuration instructions or pass --without-python to

         suppress this message and silently skip all Boost.Python targets

 

Building C++ Boost.

 

After the build, the headers will be located at

 

    C:\cygwin\usr\src\boost_1_39_0

 

The libraries will be located at

 

    C:\cygwin\usr\src\boost_1_39_0\stage\lib

 

Use 'bjam install --prefix=<path>' if you wish to install headers and

libraries to a different location and remove the source tree.

 

 

C:/cygwin/usr/src/boost_1_39_0/tools/build/v2/build\property.jam:613: in find-replace from module object(property-map)@1

error: Ambiguous key <target-type>OBJ <asynch-exceptions>off <conditional>@Jamfile</C:/cygwin/usr/src/boost_1_39_0>%Jamfile</C:/cygwin/usr/src/boost_1_39_0>.handle-static-runtime <debug-symbols>on <define>BOOST_ALL_NO_LIB=1 <define>BOOST_DATE_TIME_STATIC_LINK <define>DATE_TIME_INLINE <exception-handling>on <extern-c-nothrow>off <hardcode-dll-paths>true <host-os>windows <include>. <inlining>off <install-dependencies>off <link>static <main-target-type>LIB <optimization>off <os>NT <preserve-test-targets>on <profiling>off <python-debugging>off <python>2.5 <rtti>on <runtime-debugging>on <runtime-link>shared <stdlib>native <suppress-import-lib>false <symlink-location>project-relative <tag>@Jamfile</C:/cygwin/usr/src/boost_1_39_0>%Jamfile</C:/cygwin/usr/src/boost_1_39_0>.tag <target-os>windows <target>object(file-target)@429 <threadapi>win32 <threading>multi <toolset-bfin:version>8.0.7.1 <toolset>bfin <user-interface>console <variant>debug <warnings-as-errors>off <warnings>on

<snip>

 

I'm guessing I'm doing something probably a bit stupid or missing something (I'm still at the fiddling around stage yet, so this is very likely). I've attached the module (bfin.jam) - hopefully someone is able to point me in the right direction.

 

Thanks,

- Sean

 



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

bfin.jam (5K) Download Attachment

Re: changing file output suffixes

by Vladimir Prus :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Friday 26 June 2009 McLemon, Sean wrote:

> Hi,
>
>  
>
> (Originally posted in Boost-users, apologies for the repetition :)). Our
> toolchain generates files ending in ".doj" for objects, so I've been
> trying to configure my custom toolset module to use this. My original
> module is based on acc.jam but qcc.jam had something that looked like it
> would do the trick, so I lifted that and chucked into my module:
>
>  
>
> import type ;
>
>  
>
> type.set-generated-target-suffix OBJ        : <toolset>bfin : doj ;
>
> type.set-generated-target-suffix STATIC_LIB : <toolset>bfin : dlb ;

Try adding

        target-os=linux

to command line. If you are on cygwin, then cygwin is the default value
of target-os -- and I presume your are not actually creating cygwin binaries.
Let me know if you want an extra value of target-os, or if you want a certain
error message if trying to you bfin toolset with inappropriate target os.

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

Re: changing file output suffixes

by McLemon, Sean :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

> Try adding
>
> target-os=linux
>
> to command line.
Thanks! It's good that my objects are now building - but supplying
target-os=linux does seem a little strange as I'm not really building
for any OS. Another target may be an idea, but it's not a huge deal:
target-os=none, or target-os=bare_metal perhaps.

Also, even though the object files are being created correctly I'm
getting "the system cannot find the path specified", eg:
 
    /c/analog/tools5.0_andromeda/ccblkfn -c   -DBOOST_ALL_NO_LIB=1
-DBOOST_MATH_TR1_DYN_LINK=1 -DNDEBUG -O -always-inline -threads -eh
-I"."  -o
"bin.v2\libs\math\build\bfin-8.0.7.1\release\target-os-linux\threading-m
ulti\acosh.doj" "libs\math\build\..\src\tr1\acosh.cpp"
-D_LITTLE_ENDIAN -c++ -full-cpplib

...failed bfin.compile.c++
bin.v2\libs\math\build\bfin-8.0.7.1\release\target-os-linux\threading-mu
lti\acosh.doj...
bfin.compile.c++
bin.v2\libs\math\build\bfin-8.0.7.1\release\target-os-linux\threading-mu
lti\asinh.doj
The system cannot find the path specified.

... etc

Afterwards I manually verified that the files exist, and they do.

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

Re: changing file output suffixes

by Vladimir Prus :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Friday 26 June 2009 McLemon, Sean wrote:

> > Try adding
> >
> > target-os=linux
> >
> > to command line.
> Thanks! It's good that my objects are now building - but supplying
> target-os=linux does seem a little strange as I'm not really building
> for any OS. Another target may be an idea, but it's not a huge deal:
> target-os=none, or target-os=bare_metal perhaps.

GCC uses 'eabi' and 'elf' on some targets to mean bare metal. We can either
use those, in indeed introduce 'bare' as target-os.

> Also, even though the object files are being created correctly I'm
> getting "the system cannot find the path specified", eg:
>  
>     /c/analog/tools5.0_andromeda/ccblkfn -c   -DBOOST_ALL_NO_LIB=1
> -DBOOST_MATH_TR1_DYN_LINK=1 -DNDEBUG -O -always-inline -threads -eh
> -I"."  -o
> "bin.v2\libs\math\build\bfin-8.0.7.1\release\target-os-linux\threading-m
> ulti\acosh.doj" "libs\math\build\..\src\tr1\acosh.cpp"
> -D_LITTLE_ENDIAN -c++ -full-cpplib
>
> ...failed bfin.compile.c++
> bin.v2\libs\math\build\bfin-8.0.7.1\release\target-os-linux\threading-mu
> lti\acosh.doj...
> bfin.compile.c++
> bin.v2\libs\math\build\bfin-8.0.7.1\release\target-os-linux\threading-mu
> lti\asinh.doj
> The system cannot find the path specified.
>
> ... etc
>
> Afterwards I manually verified that the files exist, and they do.

I'm confused. Are the object files created? (Which would suggest that error
message comes from compiler) Or the compilation fails, while the
/c/analog/tools5.0_andromeda/ccblkfn file exists? I'd suggest you try to
specify the path using Windows paths and see what happens.

- Volodya





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

Re: changing file output suffixes

by McLemon, Sean :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

> GCC uses 'eabi' and 'elf' on some targets to mean bare metal. We can
> either
> use those, in indeed introduce 'bare' as target-os.

I think "elf" makes more sense. If it's possible that would be a useful
addition for us.

> I'm confused. Are the object files created? (Which would suggest that
> error
> message comes from compiler) Or the compilation fails, while the
> /c/analog/tools5.0_andromeda/ccblkfn file exists? I'd suggest you try
> to
> specify the path using Windows paths and see what happens.

Quite embarassingly I think we can chalk this one up to "User error" :)
When I changed the "using bfin: ..." line in my user-config.jam to the
below (i.e. using windows paths) I no longer get the message (I do get a
wonderful compiler crash, but that is due to using an non-mature
development compiler):

  using bfin : 8.0.7.1 : c:/analog/tools5.0_andromeda/ccblkfn ;

Thanks again for your help, Volodya

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

Re: changing file output suffixes

by Vladimir Prus :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Tuesday 30 June 2009 McLemon, Sean wrote:

> > GCC uses 'eabi' and 'elf' on some targets to mean bare metal. We can
> > either
> > use those, in indeed introduce 'bare' as target-os.

Hi Sean,

> I think "elf" makes more sense. If it's possible that would be a useful
> addition for us.

I've added 'elf' as a new value of target-os.

> > I'm confused. Are the object files created? (Which would suggest that
> > error
> > message comes from compiler) Or the compilation fails, while the
> > /c/analog/tools5.0_andromeda/ccblkfn file exists? I'd suggest you try
> > to
> > specify the path using Windows paths and see what happens.
>
> Quite embarassingly I think we can chalk this one up to "User error" :)
> When I changed the "using bfin: ..." line in my user-config.jam to the
> below (i.e. using windows paths) I no longer get the message (I do get a
> wonderful compiler crash, but that is due to using an non-mature
> development compiler):
>
>   using bfin : 8.0.7.1 : c:/analog/tools5.0_andromeda/ccblkfn ;

Good to know it's not Boost.Build fault :-). Should you need any further
tweaks from Boost.Build, let us know. Hopefully support for your compiler
can be added to SVN in near future.

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