Closed piyushrpt closed 5 years ago
Following your suggestion, COMPILER_CXX_NAME works for building pyre. However, I'm running into an error that I haven't seen before. Has to do with forward.h in lib/pyre/memory
std-builds.def:80: /home/piyushrpt/miniconda3/envs/recipe/conda-bld/pyre_1550737717308/work/pyre/builds/Linux-4.x_x86_64-debug/tmp/pyre/lib/journal/.config: No such file or directory
std-builds.def:80: /home/piyushrpt/miniconda3/envs/recipe/conda-bld/pyre_1550737717308/work/pyre/builds/Linux-4.x_x86_64-debug/tmp/pyre/lib/pyre/.config: No such file or directory
In file included from MemoryMap.cc:14:0:
forward.h:24:10: fatal error: pyre/journal.h: No such file or directory
#include <pyre/journal.h>
^~~~~~~~~~~~~~~~
compilation terminated.
Here is the compile line for MemoryMap.cc
make[5]: Entering directory '$SRC_DIR/pyre/lib/pyre/memory'
$BUILD_PREFIX/bin/x86_64-conda_cos6-linux-gnu-c++ -MMD -fvisibility-inlines-hidden -std=c++17 -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -I$PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pyre-1.0 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -c -o $SRC_DIR/pyre/builds/Linux-4.x_x86_64-debug/tmp/pyre/lib/pyre/MemoryMap.o MemoryMap.cc
std-cpp.def:47: recipe for target '$SRC_DIR/pyre/builds/Linux-4.x_x86_64-debug/tmp/pyre/lib/pyre/MemoryMap.o' failed
I don't see anything on the command line that suggests memory is aware of journal. From the screen log, it looks like it is possible that mm entered journal after working through memory.
Attached is the log file associated with the current recipe here: https://github.com/isce-framework/recipes-test/tree/condacompiler/recipes/pyre
The error is in Line 276. Going through the screen output, it looks like mm visited memory before journal. The log was generated using tee (both stderr and stdout)
According to the log, conda is setting its own environment variable CXXFLAGS
:
CXXFLAGS=-fvisibility-inlines-hidden -std=c++17 -fmessage-length=0 -march=nocona
mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections
pipe -I$PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/pyre-1.0 -fdebug
prefix-map=$PREFIX=/usr/local/src/conda-prefix
It looks like mm
is pulling in these options which do not include the right include path.
Can mm be modified to respect the conda environment and append additional include folders / flags instead of attempting to overwrite it in a simple manner?
Looks like the conflict is here: https://github.com/aivazis/config/blob/fef85ff268f3423fccd81a81c31586f5d00278db/make/std-cpp.def#L37-L40
I think so. We can try the two or three solutions that come to mind tomorrow.
-- Michael
On Feb 27, 2019, at 6:34 PM, piyushrpt notifications@github.com wrote:
Can mm be modified to respect the conda environment and append additional include folders / flags instead of attempting to overwrite it in a simple manner?
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.
CC=clang CXX=clang++ mm
as suggested in https://github.com/pyre/pyre/issues/21 no longer works with the recent updates. mm now seems to use gcc-4.x-Darwin for clang and this is causing linking issues in the timers. What would be the correct syntax to use to build pyre with clang?
The recommendation in pyre/pyre#21 is not the right way. Try
TARGET_CXX=clang-4 TARGET_CC=clang-4 mm
with config v3.5.1 or later
How can I force config to use a specific compiler installed in a non-standard location with a non-standard name?
Example: x86_64-conda_cos6-linux-gnu-cpp