How to build ProB?

12 views
Skip to first unread message

yefremo...@gmail.com

unread,
Jul 4, 2020, 2:01:35 PM7/4/20
to ProB Users
I downloaded the sources from https://www3.hhu.de/stups/downloads/prob/source/ProB_src.tgz and installed SICStus Prolog.
Next:
$ mkdir prob
$ cd prob
$ tar xf ../ProB_src.tgz
$ make

# First errors are because -fno-common flag is enabled by default in GCC10 (https://gcc.gnu.org/gcc-10/porting_to.html).

/usr/bin/ld: internal_functions.o:(.bss+0x0): multiple definition of `global_is_set'; interface.o:(.bss+0x18): first defined here
/usr/bin/ld: internal_functions.o:extensions/nauty/interface.h:35: multiple definition of `counter'; interface.o:extensions/nauty/interface.h:35: first defined here
/usr/bin/ld: graph_tree.o:(.bss+0x0): multiple definition of `global_number_of_colours'; interface.o:(.bss+0x28): first defined here
/usr/bin/ld: graph_tree.o:extensions/nauty/graph_tree.c:15: multiple definition of `tree_node_counter'; interface.o:extensions/nauty/interface.c:48: first defined here
/usr/bin/ld: graph_tree.o:extensions/nauty/interface.h:35: multiple definition of `counter'; interface.o:extensions/nauty/interface.h:35: first defined here

I tried to fix the compilation with:
$ make CFLAGS="-fcommon" 
However, it doesn't work.

So, I've patched the sources with fno-common.patch in attachment.

Next errors are because Makefile explicitly relies on that sources are cloned from git:
git rev-parse HEAD > src/revision
fatal: not a git repository (or any parent up to mount point /)

I've just created stub git repo to workaround it:
$ git init && git add . && git commit -m init

Next, I faced these errors:
buildscripts/check_glibc_versions.sh probcli lib/*.so
Unsupported clibc version in 'lib/ltsmin.so' detected:
2.7
Unsupported clibc version in 'lib/zmq.so' detected:
2.7
Well, I think this check makes no sense on my personal machine. I have no plans to use compiled binaries on other machines and I have glibc 2.31 on Fedora 32.
Thus, I've added 2.7 to supported versions:
$ echo 2.7 >> buildscripts/supported_glibc_versions

This helped me to successfully finish make command.
But when I try to execute:
$ ./probcli.sh --version
chmod: cannot access './send_user_interrupt': No such file or directory

*** Exception in counter library, probably not yet initialized: error(existence_error(procedure,prob_cli:inc_counter/1),existence_error($@(prob_cli:inc_counter(cli_errors),140021671499452),0,procedure,prob_cli:inc_counter/1,0)).

How this error can be resolved?
README states that:
Note: before starting probcli or ProB Tcl/Tk from sources for the first time you need
to build the extensions. Type "make" in the prob_prolog directory.

However, there is no prob_prolog directory.

Regards,
Denis

fno-common.patch
Reply all
Reply to author
Forward
0 new messages