Boost logo

Boost Users :

From: Rene Rivera (grafik.list_at_[hidden])
Date: 2005-11-27 23:58:28


Boris Gubenko wrote:
> Tried it -- see attached. "don't know how to make [.modules]order.c"
> is because there is no order.c module in 1.31.0.

Makes sense.

> The real problem though is the one I've fixed in build_vms.com : on
> VMS, you cannot compile sources in modules subdirectory unless you cd
> into this subdirectory. This is because these sources include header
> files from the parent directory using '#include "../native.h"'
> directive. This is what I did in build_vms.com:
>
> $ set def [.modules]
> $ cc 'CC_FLAGS -
> path.c, -
> property-set.c, -
> regex.c, -
> sequence.c, -
> set.c
> $ set def [-]
>
> btw, it would be the same if the sources used a VMS-style notation:
> '#include "[-]native.h"'. In both cases, when compiled from *parent*
> directory, the compiler would not find include file.

Many compilers support changing the way user includes (#include "") are
handled. They let you specify if the paths should be interpreted
relative to the source point or relative to the include path, for
example. Does VMS have such an option? Does it understand relative
include paths at all? Barring that those includes could be changed to
plain '#include "native.h"' and adding the appropriate include path.
What is the option for adding an include path? The other solution is to
move the files themselves out of the modules dir, and that's a painful
alternative.

> A couple of comments:
>
> Instead of /STANDARD=VAXC I suggest /WARN=NOINFO which would silence
> all informational messages or /WARN=DISABLE=IMPLICITFUNC As far as I
> can tell, the only compiler diagnostics for jam sources was
> "%CC-I-IMPLICITFUNC the identifier ... is implicitly declared as a
> function". You don't really need to place compiler in the VAXC mode
> to compile modern sources :-) This is not a bug, of course.

If I remember correctly, I would have to search the boost.build list
archives to be sure, if it's not in the VAXC mode it would not just
generate warnings but errors. Don't remember what or why though.

> A bug which you cannot see before the link phase is multiply defined
> symbol for glob. On modern VMS systems, there is a glob function in
> libc (CRTL in VMS terms). If you want to continue to use your own
> implementation of glob (which, I think, is a good idea), you need to
> specify /PREFIX_LIBRARY_ENTRIES=(ALL,EXCEPT=GLOB) instead of
> /PREFIX_LIBRARY_ENTRIES=ALL_ENTRIES (there is no symbol preemption on
> VMS). I stumble across this bug when linking bootstrap jam. It is
> fixed in build_vms.com I sent you.

OK. Thanks. Hopefully Philip will post his version of the script so I
can compare and merge.

[...]

>>#~ Copyright 2002-2005 Rene Rivera.

[...]

You really don't need to quote my entire message with the attachment ;-)

-- 
-- Grafik - Don't Assume Anything
-- Redshift Software, Inc. - http://redshift-software.com
-- rrivera/acm.org - grafik/redshift-software.com
-- 102708583/icq - grafikrobot/aim - Grafik/jabber.org

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net