Boost logo

Boost Testing :

From: Jim Douglas (jim_at_[hidden])
Date: 2005-11-06 05:23:56


Rene,

I have attached the tools.jam files I have been using for the QNX tests.
There are a few points I would like to discuss:

1. As it stands the qcc-tools.jam file represents a 'virtual' tool and
will produce undefined results if used on its own. Is there some way we
can insert some default values for GXX/GCC in case this happens?

2. I have overloaded the "gcc-C++-action" (should it be qcc-C++-action?)
because of the explicit "-W" & "-f" options that need to be prefixed. Is
the text processing of bjam good enough to scan the command and insert a
"-Wc," in front of every gcc "-W" & "-f" option? I note that other
libraries sometimes use additional compiler options and these should be
prefixed also.

3. The "-Wno-non-virtual-dtor" option is there to suppress the blizzard
of warnings produced by 'serialization'. Is there a way of making this
library specific?

4. The "gcc-Link-action" (qcc-?) is overloaded because I needed to add
an explicit instruction to link against libm. For some reason QNX does
not include libm on the default list of libraries. It is tacked onto the
end of the command for now. What is the correct way of specifying
additional link libraries so that we can use the rule inherited from the
gcc tools?

5. Where is the "ar" rule defined. Theoretically QCC can be used to
build archives, so I thought I might try it sometime.

6. Any further suggestions as to optimisation are welcome.

PS Where should I be testing now?

Regards
Jim


# Copyright (c) 2005 Rene Rivera.
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)

extends-toolset gcc ;

CFLAGS = [ difference $(CFLAGS) : -fno-inline -Wno-inline -finline-functions -g ] ;
flags qcc CFLAGS <inlining>off : -Wc,-fno-inline ;
flags qcc CFLAGS <inlining>on : -Wc,-Wno-inline ;
flags qcc CFLAGS <inlining>full : -Wc,-finline-functions,-Wno-inline ;
flags qcc CFLAGS <debug-symbols>on : -gstabs+ ;

LINKFLAGS = [ difference $(LINKFLAGS) : -g ] ;
flags qcc LINKFLAGS <debug-symbols>on : -gstabs+ ;

actions gcc-C++-action
{
    $(.SET_EXIT)
    "$(.GXX[1]:R=$(GCC_BIN_DIR))" $(.GXX[2-]) -c -Wc,-Wall,-Wno-non-virtual-dtor,-ftemplate-depth-255 -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) $(C++FLAGS) -I"$(HDRS)" -I$(_)"$(STDHDRS)" -I$(_)"$(SYSHDRS)" -o "$(<)" "$(>)"
    "$(.OBJCOPY[1])"$(_)$(OBJCOPY_FLAGS)$(_)"$(<)"
}

actions gcc-Link-action bind NEEDLIBS NEEDIMPS
{
    $(.SET_EXIT)
    $(SHELL_SET)$(gSHELL_LIBPATH)=$(LINK_LIBPATH)$(gAPPEND_LD_LIBRARY_PATH)
    $(SHELL_EXPORT)$(gSHELL_LIBPATH)
    "$(.GXX[1]:R=$(GCC_BIN_DIR))" $(.GXX[2-]) "$(DLL_LINK_FLAGS)" "$(IMPLIB_COMMAND)$(<[2])" $(LINKFLAGS) -o "$(<[1])$(OUTTAG)" -L"$(LIBPATH:T)" -L"$(STDLIBPATH:T)" "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" "$(IMPLIB_FLAGS)$(NEEDIMPS)" -l$(FINDLIBS) $(LNOPT)$(RPATH_LINK). $(LNOPT)$(SONAME)$(<[1]:D=)$(SOTAG) -lm
    $(ACTION_1)$(LN)$(_)-fs$(_)"$(<[1]:D=)$(OUTTAG)"$(_)"$(<[1])"
}


# Copyright (c) 2005 Rene Rivera.
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)

{
    local GXX = QCC -V2.95.3,gcc_ntox86_cpp ;
    local GCC = qcc -V2.95.3,gcc_ntox86_cpp ;
    extends-toolset qcc ;
}

# Copyright (c) 2005 Rene Rivera.
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)

{
        local GXX = QCC -V2.95.3,gcc_ntox86_gpp ;
        local GCC = qcc -V2.95.3,gcc_ntox86_gpp ;
        extends-toolset qcc ;
}

# Copyright (c) 2005 Rene Rivera.
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)

{
        local GXX = QCC -V3.3.5,gcc_ntox86_cpp ;
        local GCC = qcc -V3.3.5,gcc_ntox86_cpp ;
        extends-toolset qcc ;
}


# Copyright (c) 2005 Rene Rivera.
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)

{
    local GXX = QCC -V3.3.5,gcc_ntox86_gpp ;
    local GCC = qcc -V3.3.5,gcc_ntox86_gpp ;
    extends-toolset qcc ;
}


Boost-testing list run by mbergal at meta-comm.com