When I run “make install,” it does not create an executable named “emptiness”

90 views
Skip to first unread message

hong yang

unread,
Jan 30, 2019, 5:05:25 AM1/30/19
to Spatial Users
I tried to install Spatial on my linux server which is running Unbuntu 16.04.5 LTS. When I run “make install,” it does not create an executable named “emptiness” . I tried to simulate HelloSpatial but get error message as the file atatched. Please help. Thanks...
spatial_debug1.PNG

Matt F

unread,
Jan 30, 2019, 1:43:00 PM1/30/19
to Spatial Users
Hi.  The emptiness executable should be created as part of running bin/spatial for the first time (it checks if emptiness is on the path, otherwise it calls a background process to compile it).  It looks like there is something called /home/jason/bin/emptiness, but you don't have permission to access it.  Can you check if this is the case, and try chmod to make it accessible?

For quick testing, you can compile emptiness yourself by going to spatial/poly/resources and running `gcc emptiness.c -lisl -o ~/bin/emptiness`



hong yang

unread,
Jan 30, 2019, 9:50:12 PM1/30/19
to Spatial Users
Hi Matt F,

Thank you for your help. I can get sim passed by creating ~/bin/emptiness by  `gcc emptiness.c -lisl -o ~/bin/emptiness`. Actually when I run bin/spatial at the first time, it did  not create emptiness, instead of creating emptiness.lock. Do you know the reasons?

Regards
Yang Hong 

Aaron Shields

unread,
Feb 4, 2019, 12:02:55 AM2/4/19
to Spatial Users
Hey Hong,

Would you be willing to help me install Spatial on the same type of linux server? I'm stuck with emptiness.lock not being recognized and can't seem to get it to compile. Would you be able to email me your step by step installation guide?

stan...@stanford.edu

unread,
Feb 4, 2019, 6:17:19 PM2/4/19
to Spatial Users
Nathan here,

emptiness.lock is used to prevent multiple threads from all trying to compile emptiness at the same time. This is handled through Java's lock mechanisms so it shouldn't be buggy on most systems. Could you send me a log?

You can bypass this by manually compiling emptiness into ~/bin.

hong yang

unread,
Feb 6, 2019, 8:55:26 PM2/6/19
to Spatial Users
Hi Aaron,

did you try to do "gcc emptiness.c -lisl -o ~/bin/emptiness" to create the emptiness?

Regard
Yang Hong

Aaron Shields

unread,
Feb 7, 2019, 2:40:51 AM2/7/19
to Spatial Users
Hey guys,

Sorry for the late reply I was out of town. I figured I'd put together a doc explaining what I've done to make it easier to understand. It's short and sweet. Any advice you guys have after reading it would be fantastic. I'm a bit of a newbie in Linux so forgive me if I've followed some wrong steps or typed things in wrong.
Issues.pdf

David Koeplinger

unread,
Feb 7, 2019, 3:59:35 AM2/7/19
to Spatial Users
The error in your second screenshot says that you're missing pkg-config, a common helper tool for locating library dependencies. 
Admittedly we didn't list this as a dependency for Spatial, we should add that to our documentation.

To install pkg-config for Ubuntu: 
sudo apt-get install pkg-config

After you get that working you may also need to do:
sudo apt-get install libisl-dev


Aaron Shields

unread,
Feb 7, 2019, 1:20:24 PM2/7/19
to Spatial Users
Thanks for the info David,

I've never been trained in Linux/Unix so it's kind of a learn as I go at the moment. If that was common knowledge I apologize. After performing both of those recommended installations and running "$ bin/spatial HelloSpatial --sim" these images are the top and bottom of the console logs. Emptiness seems to still be an issue...anyone have any recommendations?
log1.png
log2.png

David Koeplinger

unread,
Feb 7, 2019, 1:57:02 PM2/7/19
to Spatial Users
Another missing library. 

Try:

sudo apt-get install libgmp3-dev

Aaron Shields

unread,
Feb 7, 2019, 2:46:36 PM2/7/19
to Spatial Users
Awesome that worked and it created an 'emptiness' executable. Thanks for the help! It'd be cool to update the dependencies on the GitHub too!

David Koeplinger

unread,
Feb 7, 2019, 2:49:41 PM2/7/19
to Spatial Users
Haha agreed. It can be easy to forget that you installed a library to get things working for yourself. Thanks for your patience!

Fisher Li

unread,
Jan 28, 2020, 6:21:53 PM1/28/20
to Spatial Users
Hi Nathan, I hit similar issue when using sbt to compile spatial into scala, it complaint about the emptiness.lock, and not emptiness file:

sbt:example_student_code> runMain HelloSpatial --sim
[warn] Multiple main classes detected.  Run 'show discoveredMainClasses' to see the list
[info] running HelloSpatial --sim
[warn] No target specified. Specify target using: --fpga <device> or
[warn] override val target = <device>
[warn] Defaulting to 'Default' device.
[warn] Area model file Zynq_Area.csv for target Zynq was missing expected fields: 
[warn] BRAM
[info] Compiling HelloSpatial to /home/fisher/cs217/linear-algebra-cs217_pb_fl_2020/gen/HelloSpatial/
Emptiness: false, /home/fisher/bin/emptiness
Pkg Config: -lisl -lgmp
/*
 * Adapted from ISL's isl_polyhedron_sample example
 */
...

fisher@fisher-VirtualBox:~$ ls -lat /home/fisher/bin
total 8
drwxr-xr-x  2 fisher fisher 4096 Jan 28 14:48 .
drwxr-xr-x 19 fisher fisher 4096 Jan 28 14:30 ..
-rw-r--r--  1 fisher fisher    0 Jan 26 17:21 emptiness.lock

And I wanna try the suggestion of "gcc emptiness.c -lisl -o ~/bin/emptiness" to create the emptiness, but  can't find this emptiness.c file


Matt F

unread,
Jan 28, 2020, 6:36:12 PM1/28/20
to Spatial Users
emptiness.c should be in spatial/poly/resources
Reply all
Reply to author
Forward
0 new messages