[cctbxbb] Building with system compilers

Winter, Graeme (DLSLtd,RAL,LSCI) Graeme.Winter at diamond.ac.uk
Tue May 4 06:44:53 PDT 2021


Hi Folks

Recent macOS / xcode update broke the version of clang in conda so I can no longer build (SCons decides that the compilers don’t support C++11) 

I can build just fine, and everything works and all the tests pass

However if I try and recompile anything SCons swears at me and dies as it decides that the perfectly valid C++11 compilers I have don’t compile C++11 because … some reason which makes no sense to me. Here is content of config.log

Grey-Area build :( $ cat config.log 
file /Users/graeme/git/dials/modules/cctbx_project/libtbx/SConscript,line 865:
	Configure(confdir = .sconf_temp)
scons: Configure: ".sconf_temp/conftest_171626668f451c9275a8effd06a8fea3_0.cpp" is up to date.
scons: Configure: The original builder output was:
  |.sconf_temp/conftest_171626668f451c9275a8effd06a8fea3_0.cpp <-
  |  |#include <iostream>    
  |  |int main() {           
  |  |  std::cout << "{";    
  |  |  #ifndef __llvm__
  |  |  #define __llvm__ ""
  |  |  #endif 
  |  |  std::cout << "\"llvm\":" << __llvm__ << ", "; 
  |  |  #ifndef __clang__
  |  |  #define __clang__ ""
  |  |  #endif 
  |  |  std::cout << "\"clang\":" << __clang__ << ", "; 
  |  |  #ifndef __clang_major__
  |  |  #define __clang_major__ ""
  |  |  #endif 
  |  |  std::cout << "\"clang_major\":" << __clang_major__ << ", "; 
  |  |  #ifndef __clang_minor__
  |  |  #define __clang_minor__ ""
  |  |  #endif 
  |  |  std::cout << "\"clang_minor\":" << __clang_minor__ << ", "; 
  |  |  #ifndef __clang_patchlevel__
  |  |  #define __clang_patchlevel__ ""
  |  |  #endif 
  |  |  std::cout << "\"clang_patchlevel\":" << __clang_patchlevel__ << ", "; 
  |  |  #ifndef __GNUC__
  |  |  #define __GNUC__ ""
  |  |  #endif 
  |  |  std::cout << "\"GNUC\":" << __GNUC__ << ", "; 
  |  |  #ifndef __GNUC_MINOR__
  |  |  #define __GNUC_MINOR__ ""
  |  |  #endif 
  |  |  std::cout << "\"GNUC_MINOR\":" << __GNUC_MINOR__ << ", "; 
  |  |  #ifndef __GNUC_PATCHLEVEL__
  |  |  #define __GNUC_PATCHLEVEL__ ""
  |  |  #endif 
  |  |  std::cout << "\"GNUC_PATCHLEVEL\":" << __GNUC_PATCHLEVEL__ << ", "; 
  |  |  #ifndef __clang_version__
  |  |  #define __clang_version__ ""
  |  |  #endif 
  |  |  std::cout << "\"clang_version\": \"" << __clang_version__ << "\", "; 
  |  |  #ifndef __VERSION__
  |  |  #define __VERSION__ ""
  |  |  #endif 
  |  |  std::cout << "\"VERSION\": \"" << __VERSION__ << "\", "; 
  |  |  std::cout << "}"; 
  |  |  return 0;         
  |  |}                   
  |
scons: Configure: ".sconf_temp/conftest_171626668f451c9275a8effd06a8fea3_0.o" is up to date.
scons: Configure: The original builder output was:
  |/usr/bin/c++ -o .sconf_temp/conftest_171626668f451c9275a8effd06a8fea3_0.o -c .sconf_temp/conftest_171626668f451c9275a8effd06a8fea3_0.cpp
  |
scons: Configure: ".sconf_temp/conftest_171626668f451c9275a8effd06a8fea3_0_79477a053ab4616bb93a6d1a8e51fb1f" is up to date.
scons: Configure: The original builder output was:
  |/usr/bin/c++ -o .sconf_temp/conftest_171626668f451c9275a8effd06a8fea3_0_79477a053ab4616bb93a6d1a8e51fb1f .sconf_temp/conftest_171626668f451c9275a8effd06a8fea3_0.o
  |
scons: Configure: ".sconf_temp/conftest_171626668f451c9275a8effd06a8fea3_0_79477a053ab4616bb93a6d1a8e51fb1f.out" is up to date.
scons: Configure: The original builder output was:
  |.sconf_temp/conftest_171626668f451c9275a8effd06a8fea3_0_79477a053ab4616bb93a6d1a8e51fb1f > .sconf_temp/conftest_171626668f451c9275a8effd06a8fea3_0_79477a053ab4616bb93a6d1a8e51fb1f.out
  |

file /Users/graeme/git/dials/modules/cctbx_project/libtbx/SConscript,line 1143:
	Configure(confdir = .sconf_temp)
scons: Configure: ".sconf_temp/conftest_e73942b1e04111dec1918a18e43ee693_0.cpp" is up to date.
scons: Configure: The original builder output was:
  |.sconf_temp/conftest_e73942b1e04111dec1918a18e43ee693_0.cpp <-
  |  |#include <iostream>
  |  |#include <vector>
  |  |#include <array>
  |  |#include <utility>
  |  |std::vector<int> func(std::vector<int> && in) {std::vector<int> r = std::move(in); return r;}
  |  |int main() {std::vector<int> x(9); for(auto & i : x) {i=7; std::cout << i << std::endl;}
  |  | x = func(std::vector<int>(2)); return 0;}
  |  |
  |
scons: Configure: ".sconf_temp/conftest_e73942b1e04111dec1918a18e43ee693_0.o" is up to date.
scons: Configure: The original builder output was:
  |/usr/bin/c++ -o .sconf_temp/conftest_e73942b1e04111dec1918a18e43ee693_0.o -c -std=c++11 -stdlib=libc++ -mmacosx-version-min=10.9 -I/Users/graeme/git/dials/conda_base/include -I/Users/graeme/git/dials/modules -I/Users/graeme/git/dials/modules/cctbx_project -Iannlib_adaptbx/include -I/Users/graeme/git/dials/modules/annlib_adaptbx/include -I/Users/graeme/git/dials/modules/cctbx_project/annlib_adaptbx/include .sconf_temp/conftest_e73942b1e04111dec1918a18e43ee693_0.cpp
  |
/usr/bin/c++ -o .sconf_temp/conftest_e73942b1e04111dec1918a18e43ee693_0_3b63d4473a8f41665bd62af890bf3763 -w -stdlib=libc++ -mmacosx-version-min=10.9 -std=c++11 -stdlib=libc++ -mmacosx-version-min=10.9 .sconf_temp/conftest_e73942b1e04111dec1918a18e43ee693_0.o -L/Users/graeme/git/dials/conda_base/lib -Llib -L/Users/graeme/git/dials/modules/lib -L/Users/graeme/git/dials/modules/cctbx_project/lib
clang: error: no such file or directory: '.sconf_temp/conftest_e73942b1e04111dec1918a18e43ee693_0.o'
clang: error: no input files

Key point is this: I can blow away the build directory and it all compiles correctly, but if I touch a file and type make I get build failures as so

Has anyone a clue about this? Should I add an issue on GitHub?

Thanks Graeme
-- 
This e-mail and any attachments may contain confidential, copyright and or privileged material, and are for the use of the intended addressee only. If you are not the intended addressee or an authorised recipient of the addressee please notify us of receipt by returning the e-mail and do not use, copy, retain, distribute or disclose the information in or attached to the e-mail.
Any opinions expressed within this e-mail are those of the individual and not necessarily of Diamond Light Source Ltd. 
Diamond Light Source Ltd. cannot guarantee that this e-mail or any attachments are free from viruses and we cannot accept liability for any damage which you may sustain as a result of software viruses which may be transmitted in or with the message.
Diamond Light Source Limited (company no. 4375679). Registered in England and Wales with its registered office at Diamond House, Harwell Science and Innovation Campus, Didcot, Oxfordshire, OX11 0DE, United Kingdom



More information about the cctbxbb mailing list