Skip to content
This repository has been archived by the owner on Dec 2, 2021. It is now read-only.

scons build issues #204

Open
chuckcranor opened this issue Aug 29, 2019 · 0 comments
Open

scons build issues #204

chuckcranor opened this issue Aug 29, 2019 · 0 comments

Comments

@chuckcranor
Copy link

Building cart on ubuntu18, but had some issues with scons as it is currently configured.

[1] the build is not looking in PREFIX for libraries like "libevent" so we get errors about
libevent not being installed even when it is available in PREFIX/lib. This is because
it isn't putting "-L${PREFIX}/lib" on the link command line:

h0:src/cart % scons PREFIX=/tmp/cart
scons: Reading SConscript files ...
Checking whether gcc program exists.../usr/bin/gcc
Checking whether g++ program exists.../usr/bin/g++
Checking for C header file stdatomic.h... yes
Checking for C library open-rte... yes
Checking for C header file pmix.h... yes
Checking for C library pmix... yes
Checking for C header file hwloc.h... yes
Checking for C library hwloc... yes
Checking for C library event... no
MissingTargets: Package libevent-devel is required. Check config.log:
  File "/tmp/c2/src/cart/SConstruct", line 142:
    scons()
  File "/tmp/c2/src/cart/SConstruct", line 94:
    'pmix', 'boost'])
  File "/tmp/c2/src/cart/scons_local/prereq_tools/base.py", line 1071:
    self.require(env, comp)
  File "/tmp/c2/src/cart/scons_local/prereq_tools/base.py", line 1139:
    raise error
h0:src/cart % ls /tmp/cart/lib/*event*
/tmp/cart/lib/libevent-2.2.so
/tmp/cart/lib/libevent-2.2.so.1
/tmp/cart/lib/libevent-2.2.so.1.0.0
/tmp/cart/lib/libevent.a
/tmp/cart/lib/libevent.so
/tmp/cart/lib/libevent_core-2.2.so
/tmp/cart/lib/libevent_core-2.2.so.1
/tmp/cart/lib/libevent_core-2.2.so.1.0.0
/tmp/cart/lib/libevent_core.a
/tmp/cart/lib/libevent_core.so
/tmp/cart/lib/libevent_extra-2.2.so
/tmp/cart/lib/libevent_extra-2.2.so.1
/tmp/cart/lib/libevent_extra-2.2.so.1.0.0
/tmp/cart/lib/libevent_extra.a
/tmp/cart/lib/libevent_extra.so
/tmp/cart/lib/libevent_openssl-2.2.so
/tmp/cart/lib/libevent_openssl-2.2.so.1
/tmp/cart/lib/libevent_openssl-2.2.so.1.0.0
/tmp/cart/lib/libevent_openssl.a
/tmp/cart/lib/libevent_openssl.so
/tmp/cart/lib/libevent_pthreads-2.2.so
/tmp/cart/lib/libevent_pthreads-2.2.so.1
/tmp/cart/lib/libevent_pthreads-2.2.so.1.0.0
/tmp/cart/lib/libevent_pthreads.a
/tmp/cart/lib/libevent_pthreads.so
h0:src/cart % tail -20 config-Linux.log
        Configure(confdir = .sconf-temp-Linux)
scons: Configure: Checking for C library event... 
.sconf-temp-Linux/conftest_6.c <-
  |
  |
  |
  |int
  |main() {
  |  
  |return 0;
  |}
  |
gcc -o .sconf-temp-Linux/conftest_6.o -c -Werror -I/usr/include .sconf-temp-Linux/conftest_6.c
gcc -o .sconf-temp-Linux/conftest_6 -Wl,--enable-new-dtags .sconf-temp-Linux/conftest_6.o -levent -levent
/usr/bin/ld: cannot find -levent
/usr/bin/ld: cannot find -levent
collect2: error: ld returned 1 exit status
scons: Configure: no

How do I get it to use a libevent installed in PREFIX or some other non-system directory?

[2] for some depends, --build-deps=yes assumes you have root access and can install
system-level packages rather than actually the building missing as you would expect.

h0:src/cart % scons PREFIX=/tmp/cart --build-deps=yes
...
Checking for C library hwloc... yes
Checking for C library event... no
MissingTargets: Package libevent-devel is required. Check config.log:
  File "/tmp/cart/src/cart/SConstruct", line 142:
    scons()
  File "/tmp/cart/src/cart/SConstruct", line 94:
    'pmix', 'boost'])
  File "/tmp/cart/src/cart/scons_local/prereq_tools/base.py", line 1071:
    self.require(env, comp)
  File "/tmp/cart/src/cart/scons_local/prereq_tools/base.py", line 1139:
    raise error
h0:src/cart % 

Can't "--build-deps=yes" build libevent itself?

also, on ubuntu the package name is "libevent-dev" not "libevent-devel" ... so if you
do have root access and attempt "apt-get install libevent-devel" it is going to fail
with an unknown package error:

E: Unable to locate package libevent-devel

(same package naming issue for uuid and yaml)

[3] the README.md says you need the OpenMPI run environment (and --build-deps=yes
builds OpenMPI). Does this mean that you cannot use cart with other MPIs? (e.g. MPICH)
That isn't really clear from the README.md, maybe it could be clarified in the README.md?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant