Opened 5 years ago

Last modified 5 years ago

#13449 new Bugs

Execution of boost_mpl_preprocess.py fails if $(boost_root) path contains the string "linux"

Reported by: Mihai Pop <mihaipop11@…> Owned by: Aleksey Gurtovoy
Milestone: To Be Determined Component: mpl
Version: Boost 1.63.0 Severity: Problem
Keywords: Cc:

Description

How to reproduce:

Build System: Ubuntu 16.04.0 LTS GCC: all

Let's say that we have the boost sources in /tmp/boost-linux/boost_1_X_X

The important thing is to have the string linux in the boost-root variable.

Error log:

python boost_mpl_preprocess.py             
In file included from /tmp/boost-linux/boost_1_63_0/libs/mpl/preprocessed/vector/vector40.cpp:15:0:
/tmp/boost-linux/boost_1_63_0/boost/config.hpp:30:29: fatal error: /tmp/boost-1/boost_1_63_0/libs/mpl/preprocessed/include/plain/user.hpp: No such file or directory
compilation terminated.
In file included from /tmp/boost-linux/boost_1_63_0/libs/mpl/preprocessed/vector/vector70.cpp:15:0:
/tmp/boost-linux/boost_1_63_0/boost/config.hpp:30:29: fatal error: /tmp/boost-1/boost_1_63_0/libs/mpl/preprocessed/include/plain/user.hpp: No such file or directory
compilation terminated.
In file included from /tmp/boost-linux/boost_1_63_0/libs/mpl/preprocessed/vector/vector30.cpp:15:0:
/tmp/boost-linux/boost_1_63_0/boost/config.hpp:30:29: fatal error: /tmp/boost-1/boost_1_63_0/libs/mpl/preprocessed/include/plain/user.hpp: No such file or directory
compilation terminated.

Problem: This appears because in preprocess.cmd gcc is invoked with include files included with angle brackets, so if we have the string linux it will be evaluated to 1 because it is a macro

Change History (1)

comment:1 by Mihai Pop <mihaipop11@…>, 5 years ago

linux is a macro defined to 1. In <> case the macro is expanded while in "" case, the token is a string.

Note: See TracTickets for help on using tickets.