Intel Quartus 16.1: Fix for, “Inconsistency detected by ld.so: dl-close.c”
If you stumbled on this via Google, I hope you found it useful in your specific use case.
While using intelFPGA (Quartus) Lite v16.1 on my Ubuntu Linux 16.x system, I was seeing this shared library-related error …
Inconsistency detected by ld.so: dl-close.c: 811: _dl_close: Assertion `map->l_init_called' failed!
The problem turned out to be some kind of incompatibility with libboost_system.so. Quartus supplies and indeed requires v1.59.0, while my system has v1.58.0 installed, being the latest pkg manager version at the time.
It turns out that the Quartus command-line tools refer to plain libboost_system.so
file, which is in fact a sym-link to libboost_system.so.1.59.0
. Meanwhile, the GUI tools explicitly require the latter. Hmmm.
Damn the torpedos! FULL STEAM AHEAD!
The easiest fix I could see in my busy little day was to simply remove the symlink, such that the Quartus command-line tools would use the system lib (found by ld-linux.so
, in the normal fashion) …
~$ cd ~/intelFPGA_lite/16.1/quartus/linux64/
~/intelFPGA_lite/16.1/quartus/linux64/$ rm -f libboost_system.so
cd ~/intelFPGA_lite/16.1/quartus/linux64/ rm -f libboost_system.so
… and that actually did the trick, for once! Astonishing! 🙂
#YMMV
Hi Gruvin,
Unfortunately the suggested fix results in the following problem when reading the altera_emif_a10_hps in qsys.
Tested with the GHRD example design:
https://releases.rocketboards.org/release/2016.10/gsrd/hw/a10_soc_devkit_ghrd.tar.gz
And performed these steps:
https://rocketboards.org/foswiki/view/Documentation/A10GSRDCompilingHardwareDesign
In qsys this error occurs:
…
Info: /opt/vq16.1p/quartus/sopc_builder/bin/root_components.ipx described 0 plugins, 13 paths, in 0.63 seconds
Info: /opt/vq16.1p/quartus/sopc_builder/bin/root_components.ipx matched 1 files in 0.63 seconds
Error:
while executing
“__altera__safe_source /opt/vq16.1p/quartus/../ip/altera/emif/util/../util/device_family.tcl”
(“uplevel” body line 1)
invoked from within
“uplevel 1 [list __altera__safe_source {*}$args]”
(procedure “source” line 2)
invoked from within
“source /opt/vq16.1p/quartus/../ip/altera/emif/util/../util/device_family.tcl”
(“package ifneeded altera_emif::util::device_family 0.1” script)
invoked from within
“package require altera_emif::util::device_family”
Warning: emif_a10_hps_0: Component type altera_emif_a10_hps is not in the library
Info: Replacing ghrd_10as066n2.ILC with generic component
…
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.5 LTS
Release: 14.04
Codename: trusty
quartus –version
Quartus Prime Design Software
Version 16.1.0 Build 196 10/24/2016 SJ Pro Edition
Copyright (C) 2016 Intel Corporation. All rights reserved.
@Andre … well that’s annoying. :-/ Thanks for letting us know. Alas, I’m not sure how we would best communicate this to Intel™ to have them look into it. Shared libraries are often troublesome like this. Quartus, being such a huge program, should in my opinion be fully statically linked … no matter what the Ubuntu gurus would advise. (They officially dislike static libraries nowadays!)
I’m not sure if this will fix your issue but it worked for me:
$ mv libccl_curl_drl.so libccl_curl_drl.so.bak
in that same directory (quartus/linux64)
I’m running Quartus 15.1 with Ubuntu 16.04