[odb-users] Strange Problems Building ODB Compiler From Source

Brian Coggins becoggins at hotmail.com
Wed Mar 20 12:53:40 EDT 2019


Could you try replacing the above two gxx_name
assignments with the following and see if that helps:

if ($cxx.target.cpu    == $build.host.cpu && \
    $cxx.target.system == $build.host.system)
{
  gxx_name = $recall($cxx.path)
  gxx_name = $regex.replace($gxx_name, '\\', '\\\\') # Escape back slashes.
}
else
  gxx_name = g++

That fixed it!  It builds fine, and the resulting odb executable works correctly.  Many thanks!

Brian


________________________________
From: Boris Kolpackov <boris at codesynthesis.com>
Sent: Wednesday, March 20, 2019 11:54 AM
To: Brian Coggins
Cc: odb-users at codesynthesis.com
Subject: Re: [odb-users] Strange Problems Building ODB Compiler From Source

Brian Coggins <becoggins at hotmail.com> writes:

> # Unless cross-compiling, pass the C++ compiler's recall path as g++ name. At
> # some point we should also make it configurable.
> #
> gxx_name = ($cxx.target != $build.host ? g++ : $recall($cxx.path))
> gxx_name = $regex.replace($gxx_name, '\\', '\\\\') # Escape back slashes.
>
> # ADDED FOR DEBUG
> info $cxx.target
> info $build.host
>
> And here's the output:
>
> odb/buildfile:43:1: info: x86_64-apple-darwin17.3.0
> odb/buildfile:44:1: info: x86_64-apple-darwin17.7.0

Ok, looks like the compiler is targeting an older version of the
runtime than what you are running. I guess we need to relax the
comparison a bit. Could you try replacing the above two gxx_name
assignments with the following and see if that helps:

if ($cxx.target.cpu    == $build.host.cpu && \
    $cxx.target.system == $build.host.system)
{
  gxx_name = $recall($cxx.path)
  gxx_name = $regex.replace($gxx_name, '\\', '\\\\') # Escape back slashes.
}
else
  gxx_name = g++



More information about the odb-users mailing list