upgrade gcc + compiling ROOT - c++

I am working on ROOT v6.06.06 on ubuntu 14.04. Everything went OK.
Lately i did apt-get upgrade, and this affected the c++ compiler.
Since then, when i try to run my macros on ROOT, I have this error:
fatal error: file '/usr/include/c++/4.9/cmath' modified since it was first processed
I tried then to re-compile ROOT, but it's not working, I have this error:
[ 36%] Building CXX object interpreter/llvm/src/tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/ToolChains.cpp.o
.../root/interpreter/llvm/src/tools/clang/lib/Driver/ToolChains.cpp: In static member function ‘static std::string clang::driver::toolchains::Hexagon_TC::GetGnuDir(const string&, const llvm::opt::ArgList&)’:
.../root/root6/root/interpreter/llvm/src/tools/clang/lib/Driver/ToolChains.cpp:2110:42: error: ‘LLVM_PREFIX’ was not declared in this scope
std::string PrefixRelDir = std::string(LLVM_PREFIX) + "/../gnu";
^
make[2]: *** [interpreter/llvm/src/tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/ToolChains.cpp.o] Error 1
make[1]: *** [interpreter/llvm/src/tools/clang/lib/Driver/CMakeFiles/clangDriver.dir/all] Error 2
make: *** [all] Error 2
So I need either solving the c++ compiler so i can use the last compiled version of ROOT that I have,
Or succeed to solve the problem while compiling ROOT.
Can you help me please? I am blocked. Thanks a lot.

Related

can't compile a code with -m32 flag in makefile - missing opensslconf-i386.h centos 7

I am trying to compile a code that uses openssl libraries. however, if I compile with -m32 flag, I get the following error:
make > make.txt
In file included from /usr/include/openssl/e_os2.h:56:0,
from /usr/include/openssl/bio.h:62,
from /home/dolf/gsoap-linux-2.7.17/stdsoap2.h:665,
from obj/../otamStub.h:13,
from obj/../otamH.h:10,
from obj/../otamC.cpp:13:
/usr/include/openssl/opensslconf.h:13:30: fatal error: opensslconf-i386.h: No such file or directory
#include "opensslconf-i386.h"
^
compilation terminated.
make[1]: *** [obj/otamC.o] Error 1
make: *** [all] Error 2
I have CentOS version 7.9.2009
I have installed openssl-devel, openssl, openssl-libs, openssl-devel-1.0.2k-25.el7_9.x86_64
those packages should installed the header file I am missing.
any clue on how to fix such issue?
thanks,
Dolf

Cannot install OpenOnload on AWS Server

I am trying to install OpenOnload on an AWS server running Ubuntu server 18.04.3. I downloaded the DEB release package from version 7.1.0.265 (the latest) from here: https://support.solarflare.com/index.php/component/cognidox/?view=categories&id=361
and then extract out of it just the folder \onload_7.1.0.265-debiansource.tgz\onload_7.1.0.265.orig.tar.gz and untar that. Then I can run
$ ./scripts/onload_install
as per the instructions in the README file. On Ubuntu 20 on my local machine this all worked and installed OpenOnload fine but on an AWS server instance this error is thrown:
onload_install: Building Onload.
Build tree made for linux as x86_64_linux-4.15.0-1057-aws
make: Entering directory '/home/ubuntu/onload-7.1.0.265/build/x86_64_linux-4.15.0-1057-aws'
# Build both autocompat.h files: linux_net and linux_affinity.
make -C driver/linux_net
make[1]: Entering directory '/home/ubuntu/onload-7.1.0.265/build/x86_64_linux-4.15.0-1057-aws/driver/linux_net'
make -C /usr/src/linux-headers-4.15.0-1057-aws CC="cc" M=$(pwd)
make[2]: Entering directory '/usr/src/linux-headers-4.15.0-1057-aws'
/home/ubuntu/onload-7.1.0.265/src/driver/linux_net/Makefile:61: SFE4001/Falcon is no longer supported
CHK /home/ubuntu/onload-7.1.0.265/build/x86_64_linux-4.15.0-1057-aws/driver/linux_net/autocompat.h
UPD /home/ubuntu/onload-7.1.0.265/build/x86_64_linux-4.15.0-1057-aws/driver/linux_net/autocompat.h
CHK /home/ubuntu/onload-7.1.0.265/build/x86_64_linux-4.15.0-1057-aws/driver/linux_net/config.h
UPD /home/ubuntu/onload-7.1.0.265/build/x86_64_linux-4.15.0-1057-aws/driver/linux_net/config.h
CC [M] /home/ubuntu/onload-7.1.0.265/build/x86_64_linux-4.15.0-1057-aws/driver/linux_net/efx.o
/home/ubuntu/onload-7.1.0.265/build/x86_64_linux-4.15.0-1057-aws/driver/linux_net/efx.c: In function ‘efx_init_struct’:
/home/ubuntu/onload-7.1.0.265/build/x86_64_linux-4.15.0-1057-aws/driver/linux_net/efx.c:5225:2: error: implicit declaration of function ‘efx_mtd_free’; did you mean ‘efx_mtd_probe’? [-Werror=implicit-function-declaration]
efx_mtd_free(efx);
^~~~~~~~~~~~
efx_mtd_probe
/home/ubuntu/onload-7.1.0.265/build/x86_64_linux-4.15.0-1057-aws/driver/linux_net/efx.c:5224:1: warning: label ‘fail’ defined but not used [-Wunused-label]
fail:
^~~~
/home/ubuntu/onload-7.1.0.265/build/x86_64_linux-4.15.0-1057-aws/driver/linux_net/efx.c: In function ‘efx_fini_struct’:
/home/ubuntu/onload-7.1.0.265/build/x86_64_linux-4.15.0-1057-aws/driver/linux_net/efx.c:5247:9: error: ‘struct efx_nic’ has no member named ‘mtd_struct’
if (efx->mtd_struct) {
^~
/home/ubuntu/onload-7.1.0.265/build/x86_64_linux-4.15.0-1057-aws/driver/linux_net/efx.c:5248:6: error: ‘struct efx_nic’ has no member named ‘mtd_struct’
efx->mtd_struct->efx = NULL;
^~
/home/ubuntu/onload-7.1.0.265/build/x86_64_linux-4.15.0-1057-aws/driver/linux_net/efx.c:5249:6: error: ‘struct efx_nic’ has no member named ‘mtd_struct’
efx->mtd_struct = NULL;
^~
cc1: some warnings being treated as errors
scripts/Makefile.build:330: recipe for target '/home/ubuntu/onload-7.1.0.265/build/x86_64_linux-4.15.0-1057-aws/driver/linux_net/efx.o' failed
make[3]: *** [/home/ubuntu/onload-7.1.0.265/build/x86_64_linux-4.15.0-1057-aws/driver/linux_net/efx.o] Error 1
Makefile:1580: recipe for target '_module_/home/ubuntu/onload-7.1.0.265/build/x86_64_linux-4.15.0-1057-aws/driver/linux_net' failed
make[2]: *** [_module_/home/ubuntu/onload-7.1.0.265/build/x86_64_linux-4.15.0-1057-aws/driver/linux_net] Error 2
make[2]: Leaving directory '/usr/src/linux-headers-4.15.0-1057-aws'
/home/ubuntu/onload-7.1.0.265/src/driver/linux_net/Makefile:300: recipe for target 'modules' failed
make[1]: *** [modules] Error 2
make[1]: Leaving directory '/home/ubuntu/onload-7.1.0.265/build/x86_64_linux-4.15.0-1057-aws/driver/linux_net'
../../src/mmake.mk:57: recipe for target 'all' failed
make: *** [all] Error 2
make: Leaving directory '/home/ubuntu/onload-7.1.0.265/build/x86_64_linux-4.15.0-1057-aws'
onload_build: ERROR: Failed to build driver components.
onload_install: ERROR: Build failed. Not installing.
Could this be due to incompatibility with some specific features on AWS? I checked the version compatibility for the downloaded source and it says compatible with Ubuntu server 18.04. Any ideas on how to fix it would be greatly appreciated!
Based on the comments.
The solution was to use Onload-7.0.0.176 instead of Onload-7.1.0.265.
Seems version Onload-7.1.0.265 has some compilation bugs on Ubuntu 18.04.

certain headers arent being found, even though I've included them. Aside from using quotes, how can I fix this?

Ive downloaded the SDL2 library using brew install SDL2 but when I am trying to compile melonDS for Mac, I keep banging my head against the wall of the annoying error of
bash-3.2$ make
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/bigman/melonDS/build
[ 1%] Building CXX object CMakeFiles/melonDS.dir/src/libui_sdl/main.cpp.o
/Users/bigman/melonDS/src/libui_sdl/main.cpp:24:10: fatal error:
'SDL2/SDL.h' file not found
#include <SDL2/SDL.h>
^~~~~~~~~~~~
1 error generated.
make[2]: *** [CMakeFiles/melonDS.dir/src/libui_sdl/main.cpp.o] Error 1
make[1]: *** [CMakeFiles/melonDS.dir/all] Error 2
make: *** [all] Error 2
bash-3.2$
I've uninstalled, reinstalled, tried to use compiler flags in the makefile (which did't work because the project uses cmake) but to no avail. Any other reccomendations would be great.

CGREEN compilation error: ‘assertion_tests’ does not name a type

When I try to compile cgreen unit testing framework in cygwin64 I get this error:
[ 34%] Building CXX object tests/CMakeFiles/cgreen_cpp_tests.dir/assertion_tests.cpp.o
/home/Administrator/cgreen/tests/assertion_tests.cpp:1:1: error: ‘assertion_tests’ does not name a type
assertion_tests.c
^~~~~~~~~~~~~~~
make[2]: *** [tests/CMakeFiles/cgreen_cpp_tests.dir/build.make:63: tests/CMakeFiles/cgreen_cpp_tests.dir/assertion_tests.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1615: tests/CMakeFiles/cgreen_cpp_tests.dir/all] Error 2 make: *** [Makefile:161: all] Error 2
I have searched on google with no result.
I am using cygwin64 with cmake 3.6.2 and gcc 7.3.0
Any help will be appreciated!
The assertion_tests.cpp file is a symlink, see github cgreen repo. Sadly, on windows symlink is converted into textfile with the path to the file it should link to. You need to convert the file into actual link, as well all the others links in the cgreen repo, and there are some. Some help on how to do it may be better found on this thread.

Unable to Compile KAA C++ SDK

While compiling C++ SDK I am getting the following error
**
ERROR LOGS
**
fatal error: kaa/gen/EndpointGen.hpp: No such file or directory
[ 1%] Building CXX object kaa/CMakeFiles/kaacpp.dir/impl/event/registration/EndpointRegistrationManager.cpp.o
In file included from /home/vidhi/Projects/Kaa/kaaCppApp/kaa/kaa/channel/ITransportConnectionInfo.hpp:25:0,
from /home/vidhi/Projects/Kaa/kaaCppApp/kaa/kaa/KaaDefaults.hpp:28,
from /home/vidhi/Projects/Kaa/kaaCppApp/kaa/kaa/event/registration/EndpointRegistrationManager.hpp:20,
from /home/vidhi/Projects/Kaa/kaaCppApp/kaa/impl/event/registration/EndpointRegistrationManager.cpp:17:
/home/vidhi/Projects/Kaa/kaaCppApp/kaa/kaa/channel/TransportProtocolId.hpp:22:35: fatal error: kaa/gen/EndpointGen.hpp: No such file or directory
#include "kaa/gen/EndpointGen.hpp"
^
compilation terminated.
make[2]: * [kaa/CMakeFiles/kaacpp.dir/impl/event/registration/EndpointRegistrationManager.cpp.o] Error 1
make[1]: * [kaa/CMakeFiles/kaacpp.dir/all] Error 2
make: *** [all] Error 2
Manually I place EndpointGen.hpp file but again while compiling it's giving the same error for different file. Later I found files inside kaa/CMakeFiles/kaacpp.dir/impl/ were missing.
Could anyone please help me to resolve this issue?
This issue was resolved in v2.0.0 by adding compile-client-cpp option to the maven goals when compiling Kaa.
See the reference for this.