diff --git a/src/tools/cray.jam b/src/tools/cray.jam index a37fe23b2..a7d3b51c3 100644 --- a/src/tools/cray.jam +++ b/src/tools/cray.jam @@ -1,6 +1,7 @@ # Copyright 2001 David Abrahams. # Copyright 2004, 2005 Markus Schoepflin. # Copyright 2011, John Maddock +# Copyright 2013, Cray, Inc. # 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) @@ -47,24 +48,31 @@ generators.register-c-compiler cray.compile.c++ : CPP : OBJ : cray ; generators.register-c-compiler cray.compile.c : C : OBJ : cray ; - -# No static linking as far as I can tell. +# unlike most compliers, Cray defaults to static linking. # flags cxx LINKFLAGS static : -bstatic ; -flags cray.compile OPTIONS on : -Gn ; -flags cray.link OPTIONS on : -Gn ; +flags cray.compile OPTIONS on : -G0 ; +flags cray.link OPTIONS on : -G0 ; flags cray.compile OPTIONS off : -O0 ; -flags cray.compile OPTIONS speed : -O3 ; +flags cray.compile OPTIONS speed : -O2 ; flags cray.compile OPTIONS space : -O1 ; +# flags cray.compile OPTIONS off : -hipa0 ; +# flags cray.compile OPTIONS on : ; +# flags cray.compile OPTIONS full : -hipa5 ; + flags cray.compile OPTIONS ; flags cray.compile.c++ OPTIONS ; flags cray.compile DEFINES ; flags cray.compile INCLUDES ; flags cray.link OPTIONS ; -flags cray.compile OPTIONS shared : -fPIC ; -flags cray.link OPTIONS shared : -fPIC ; +flags cray.compile OPTIONS : -hgnu -fPIC -h system_alloc -h tolerant -h ipa0 ; +flags cray.compile OPTIONS shared : -dynamic ; +flags cray.compile OPTIONS static : -static ; +flags cray.link OPTIONS static : -static ; +flags cray.link OPTIONS shared : ; +flags cray.link LOPTIONS shared : -dynamic ; flags cray.link LIBPATH ; flags cray.link LIBRARIES ; @@ -73,7 +81,7 @@ flags cray.link FINDLIBS-SA ; actions link bind LIBRARIES { - $(CONFIG_COMMAND) $(OPTIONS) -o "$(<)" -L$(LIBPATH) "$(>)" "$(LIBRARIES)" -l$(FINDLIBS-ST) -l$(FINDLIBS-SA) + $(CONFIG_COMMAND) $(OPTIONS) $(LOPTIONS) -o "$(<)" -L$(LIBPATH) "$(>)" "$(LIBRARIES)" -l$(FINDLIBS-ST) -l$(FINDLIBS-SA) } # When creating dynamic libraries, we don't want to be warned about unresolved @@ -83,7 +91,7 @@ actions link bind LIBRARIES actions link.dll bind LIBRARIES { - $(CONFIG_COMMAND) -shared $(OPTIONS) -o "$(<[1])" -L$(LIBPATH) "$(>)" "$(LIBRARIES)" -l$(FINDLIBS-ST) -l$(FINDLIBS-SA) + $(CONFIG_COMMAND) -o "$(<[1])" -Wl,-h -Wl,$(<[-1]:D=) -shared -L$(LIBPATH) "$(>)" "$(LIBRARIES)" -l$(FINDLIBS-ST) -l$(FINDLIBS-SA) $(OPTIONS) } @@ -103,7 +111,7 @@ actions compile.c actions compile.c++ { - $(CONFIG_COMMAND) -c -h gnu $(OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -o "$(<)" "$(>)" + $(CONFIG_COMMAND) -c $(OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -o "$(<)" "$(>)" } # Always create archive from scratch. See the gcc toolet for rationale. diff --git a/src/tools/types/cpp.jam b/src/tools/types/cpp.jam index 29d8faaa8..846ba5356 100644 --- a/src/tools/types/cpp.jam +++ b/src/tools/types/cpp.jam @@ -30,7 +30,7 @@ class c-scanner : scanner rule pattern ( ) { - return "#[ \t]*include[ ]*(<(.*)>|\"(.*)\")" ; + return "#[ \t]*include[ \t]*(<(.*)>|\"(.*)\")" ; } rule process ( target : matches * : binding )