You are here

Error in compilation with rosetta.build_phenix_interface

7 posts / 0 new
Last post
Error in compilation with rosetta.build_phenix_interface
#1

I have installed the last version of phenix ( phenix-1.20rc2-4400) and then I have tried to compile the last weekly version of rosetta (rosetta_src_2021.07.61567_bundle) with 'rosetta.build_phenix_interface nproc=8'

The machine is Fedora 34 with gcc -v:

Using built-in specs.
COLLECT_GCC=/usr/bin/gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/11/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-redhat-linux
Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,objc,obj-c++,ada,go,d,lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bu
gurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunw
ind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --with-isl=/bui
lddir/build/BUILD/gcc-11.2.1-20210728/obj-x86_64-redhat-linux/isl-install --enable-offload-targets=nvptx-none --without-cuda-driver --enable-gnu-indirect-function --enable-cet --wit
h-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 11.2.1 20210728 (Red Hat 11.2.1-1) (GCC)
 

After hours of compilation I get this failure when linking AnchoredDesign.python.linuxgccrelease:

g++ -o build/src/release/linux/5.14/64/x86/gcc/11/python/libprotocols.8.so -Wl,--disable-new-dtags -shared -Wl,-rpath=/usr/local/rosetta_src_2021.07.61567_bundle/main/source/build/e
xternal/release/linux/5.14/64/x86/gcc/11/python -Wl,-rpath=\$ORIGIN -Wl,-rpath=\$ORIGIN/../lib build/src/release/linux/5.14/64/x86/gcc/11/python/protocols/init/init.os build/src/rel
ease/linux/5.14/64/x86/gcc/11/python/protocols/init/register1.os build/src/release/linux/5.14/64/x86/gcc/11/python/protocols/init/register2.os build/src/release/linux/5.14/64/x86/gc
c/11/python/protocols/init/register3.os build/src/release/linux/5.14/64/x86/gcc/11/python/protocols/init/register4.os -Lexternal/lib -Lbuild/src/release/linux/5.14/64/x86/gcc/11/pyt
hon -Lsrc -Lbuild/external/release/linux/5.14/64/x86/gcc/11/python -Lexternal -L/usr/local/phenix-1.20rc2-4400/build/lib -L/usr/local/phenix-1.20rc2-4400/conda_base/lib -L/usr/lib -
L/usr/local/lib -lprotocols.7 -lprotocols_e.6 -lprotocols_d.6 -lprotocols_c.6 -lprotocols_b.6 -lprotocols_a.6 -lprotocols_h.5 -lprotocols_g.5 -lprotocols_f.5 -lprotocols_e.5 -lproto
cols_d.5 -lprotocols_c.5 -lprotocols_b.5 -lprotocols_a.5 -lprotocols.4 -lprotocols.3 -lprotocols_b.2 -lprotocols_a.2 -lprotocols.1 -lcore.6 -lcore.5 -lcore.4 -lcore.3 -lcore.2 -lcor
e.1 -lbasic -lnumeric -lutility -lObjexxFCL -lz -lzlib -lcppdb -lsqlite3 -lcifparse -lxml2 -lzmq -lrdkit -lpython2.7 -ldl -lpthread -lutil
/usr/bin/ld: skipping incompatible /usr/lib/libdl.so when searching for -ldl
/usr/bin/ld: skipping incompatible /usr/lib/libpthread.so when searching for -lpthread
/usr/bin/ld: skipping incompatible /usr/lib/libutil.so when searching for -lutil
/usr/bin/ld: skipping incompatible /usr/lib/libm.so when searching for -lm
/usr/bin/ld: skipping incompatible /usr/lib/libc.so when searching for -lc
g++ -o build/src/release/linux/5.14/64/x86/gcc/11/python/libdevel.so -Wl,--disable-new-dtags -shared -Wl,-rpath=/usr/local/rosetta_src_2021.07.61567_bundle/main/source/build/externa
l/release/linux/5.14/64/x86/gcc/11/python -Wl,-rpath=\$ORIGIN -Wl,-rpath=\$ORIGIN/../lib build/src/release/linux/5.14/64/x86/gcc/11/python/devel/init.os -Lexternal/lib -Lbuild/src/r
elease/linux/5.14/64/x86/gcc/11/python -Lsrc -Lbuild/external/release/linux/5.14/64/x86/gcc/11/python -Lexternal -L/usr/local/phenix-1.20rc2-4400/build/lib -L/usr/local/phenix-1.20r
c2-4400/conda_base/lib -L/usr/lib -L/usr/local/lib -lprotocols.8 -lprotocols.7 -lprotocols_e.6 -lprotocols_d.6 -lprotocols_c.6 -lprotocols_b.6 -lprotocols_a.6 -lprotocols_h.5 -lprot
ocols_g.5 -lprotocols_f.5 -lprotocols_e.5 -lprotocols_d.5 -lprotocols_c.5 -lprotocols_b.5 -lprotocols_a.5 -lprotocols.4 -lprotocols.3 -lprotocols_b.2 -lprotocols_a.2 -lprotocols.1 -
lcore.6 -lcore.5 -lcore.4 -lcore.3 -lcore.2 -lcore.1 -lbasic -lnumeric -lutility -lObjexxFCL -lz -lcppdb -lsqlite3 -lz -lzlib -lcppdb -lsqlite3 -lcifparse -lxml2 -lzmq -lrdkit -lpyt
hon2.7 -ldl -lpthread -lutil
/usr/bin/ld: skipping incompatible /usr/lib/libdl.so when searching for -ldl
/usr/bin/ld: skipping incompatible /usr/lib/libpthread.so when searching for -lpthread
/usr/bin/ld: skipping incompatible /usr/lib/libutil.so when searching for -lutil
/usr/bin/ld: skipping incompatible /usr/lib/libm.so when searching for -lm
/usr/bin/ld: skipping incompatible /usr/lib/libc.so when searching for -lc
g++ -o build/src/release/linux/5.14/64/x86/gcc/11/python/AnchoredDesign.python.linuxgccrelease -Wl,--disable-new-dtags -Wl,-rpath=/usr/local/rosetta_src_2021.07.61567_bundle/main/so
urce/build/src/release/linux/5.14/64/x86/gcc/11/python -Wl,-rpath=/usr/local/rosetta_src_2021.07.61567_bundle/main/source/build/external/release/linux/5.14/64/x86/gcc/11/python -Wl,
-rpath=\$ORIGIN -Wl,-rpath=\$ORIGIN/../lib build/src/release/linux/5.14/64/x86/gcc/11/python/apps/public/interface_design/anchored_design/AnchoredDesign.o -Lexternal/lib -Lbuild/src
/release/linux/5.14/64/x86/gcc/11/python -Lsrc -Lbuild/external/release/linux/5.14/64/x86/gcc/11/python -Lexternal -L/usr/local/phenix-1.20rc2-4400/build/lib -L/usr/local/phenix-1.2
0rc2-4400/conda_base/lib -L/usr/lib -L/usr/local/lib -ldevel -lprotocols.8 -lprotocols.7 -lprotocols_e.6 -lprotocols_d.6 -lprotocols_c.6 -lprotocols_b.6 -lprotocols_a.6 -lprotocols_
h.5 -lprotocols_g.5 -lprotocols_f.5 -lprotocols_e.5 -lprotocols_d.5 -lprotocols_c.5 -lprotocols_b.5 -lprotocols_a.5 -lprotocols.4 -lprotocols.3 -lprotocols_b.2 -lprotocols_a.2 -lpro
tocols.1 -lcore.6 -lcore.5 -lcore.4 -lcore.3 -lcore.2 -lcore.1 -lbasic -lnumeric -lutility -lObjexxFCL -lz -lzlib -lcppdb -lsqlite3 -lcifparse -lxml2 -lzmq -lrdkit -lpython2.7 -ldl
-lpthread -lutil
/usr/bin/ld: skipping incompatible /usr/lib/libdl.so when searching for -ldl
/usr/bin/ld: skipping incompatible /usr/lib/libpthread.so when searching for -lpthread
/usr/bin/ld: skipping incompatible /usr/lib/libutil.so when searching for -lutil
/usr/bin/ld: skipping incompatible /usr/lib/libm.so when searching for -lm
/usr/bin/ld: skipping incompatible /usr/lib/libc.so when searching for -lc
/usr/bin/ld: build/src/release/linux/5.14/64/x86/gcc/11/python/libutility.so: undefined reference to `std::__exception_ptr::exception_ptr::_M_release()'
/usr/bin/ld: build/src/release/linux/5.14/64/x86/gcc/11/python/libprotocols.7.so: undefined reference to `std::__throw_bad_array_new_length()'
/usr/bin/ld: build/src/release/linux/5.14/64/x86/gcc/11/python/libcore.3.so: undefined reference to `std::__istream_extract(std::istream&, char*, long)'
/usr/bin/ld: build/src/release/linux/5.14/64/x86/gcc/11/python/libutility.so: undefined reference to `std::__exception_ptr::exception_ptr::_M_addref()'
collect2: error: ld returned 1 exit status
scons: *** [build/src/release/linux/5.14/64/x86/gcc/11/python/AnchoredDesign.python.linuxgccrelease] Error 1
g++: warning: switch '-ffor-scope' is no longer supported
g++: warning: switch '-ffor-scope' is no longer supported
g++: warning: switch '-ffor-scope' is no longer supported
scons: building terminated because of errors.

I guess the problem has somethig to do with python incompatibility...any hint?

Thanks

 

Vito

Category: 
Post Situation: 
Fri, 2021-10-29 22:35
vcalderone

I'm not entirely sure, but from what I can gather, it sounds like it might be related to a compiler (well, a C++ standard library) version issue.

I'd check which compilers you're using to build all of the various components. If you have different compilers (or different compiler versions), that might be playing into this. (e.g. if your Python & Phenix installations were built with Clang or GCC 10, you might be having issues with compiling Rosetta with GCC 11 -- They *should* be compatible, normally, but you might be running up against an odd edge case.)

 

 

Sat, 2021-10-30 09:45
rmoretti

I only have the native system compilers (gcc and g++) built in with fedora 34. I have never installed other compilers o other compiler versions.

Concerning python I have the built in version which is 3.9...and then I have installed the 2.7 version.

I have no idea how phenix was built...

So...what could I do in this respect? 

Sun, 2021-10-31 01:29
vcalderone

Oh, the other big "gotcha" for compiling Rosetta is that the compiler that Scons uses is not necessarily the compiler that you get at the command line. Scons (deliberately) strips off a bunch of environmental information unless you tell it otherwise. This means that if you've adjusted what "g++" means with aliases or path changes, you might not be getting the compiler you expect. (We should have the release settings set up to handle most common situations, but it might vary on your machine.)

The way to address that is to uncomment (remove the '#') from the "ENV" line in source/tools/build/site.settings You can even be explicit about which compiler you want with the cxx and cc lines.

 

Sat, 2021-10-30 09:52
rmoretti

I have now uncommented the ENV line and I have specified /usr/bin/gcc and /usr/bin/g++ below that line...I am recompiling now.

Sun, 2021-10-31 01:31
vcalderone

No way...after uncommenting ENV and stating the path to the system built in gcc and g++ I got the very same error.

 

Sun, 2021-10-31 06:15
vcalderone

After several attempts and hours of machine time I could finally compile rosetta.build_phenix_interface successfully on Fedora 34. I would say the real problem seems to be the compiler version.

I will give some info for those who might be interested:

I have used rosetta_src_2021.07.61567_bundle.

I have not been able to compile using the Fedora 34 built-in gcc version 11 with no matter what tweak in the user.settings and site.settings.

I have tried to install the binary version of gcc 10 and compiled rosetta with it...but it failed.

I have then downloaded gcc version 9.4.0 source, compiled it and installed it as a second compiler on my pc along with version 11.

Then I have copied the site.settings suggested on phenix website to tools/build.

Then a couple of tweaks to files src/protocols/features/FeaturesReporter.fwd.hh and src/protocols/features/FeaturesReporter.hh. I added  '#include <cstdint>' to both of them (compilation would otherwise fail). 

And then compiled using gcc 9.4.0 (modifying tools/build/site.settings accordingly).

Then...finally...the dream comes true:

scons: done building targets.

 

 

Tue, 2021-11-02 08:12
vcalderone