Sign In

Don't have a Xilinx account yet?

  • Choose to receive important news and product information
  • Gain access to special content
  • Personalize your web experience on Xilinx.com

Create Account

Username

Password

Forgot your password?
XClose Panel
Xilinx Home
Reply
Visitor
abyszuk
Posts: 7
Registered: ‎02-06-2012

Xilinx ISE segmentation fault (solution)

[ Edited ]

Hello everyone,

 

I just wanted to post solution to problems with numerous segfaults that can happen (they did happen whole time for me, at least) while using ISE on non-supported OS like Ubuntu or openSuse.

 

1.  'unset KDE_SESSION_VERSION'

Run this command in the same terminal you are starting ISE.

Surpisingly, it can solve a whole lot of problems with weird segfaults - be it installer, simulator or project manager.

 

2. LD_PRELOAD

With this command you can force linker to use selected library version instead of version bundled with ISE.

Especially useful when replacing libstdc++.so.6 or Qt libraries.

 

Below is small scripts that takes care of it:

adrian@adrian-pc:~> cat Xilinx.sh 
#!/bin/bash

ISE_DS_DIR=/opt/Xilinx/13.4/ISE_DS

#prevent segmentation faults
unset KDE_SESSION_VERSION

cd "$ISE_DS_DIR"
source "$ISE_DS_DIR"/settings64.sh

# reset locale to English to fix decimal/comma seperation
export LANG=''

# fix missing symbol problems (linker bugs?) at cost of longer startup of each process
# can help if e.g. Core Generator isn't starting when modyfying generated core
# otherwise, leave it commented
#export LD_BIND_NOW=true

# forcing particular lib version is particularly useful when trying to run ISim,
# or using external editor instead of Xilinx's NOTEPAD
# but sometimes (depending on moon phase and weather) may break something
LD_PRELOAD=/usr/lib64/libstdc++.so.6 "$ISE_DS_DIR"/ISE/bin/lin64/ise
#"$ISE_DS_DIR"/ISE/bin/lin64/ise

#TASKS:
# -check sysgen/settings(32/64).sh file for correct library paths (missing lin/lin64 part)

 

I hope it helps anyone, because it took me DAYS to get this whole **bleep** thing running reliably.

 

EDIT:

15-02-2012: script updated

Super Contributor
eschabor
Posts: 100
Registered: ‎08-12-2011
0

Re: Xilinx ISE segmentation fault (solution)

Thanks for sharing this solution!
Visitor
eisnerd
Posts: 3
Registered: ‎02-10-2012
0

Re: Xilinx ISE segmentation fault (solution)

Thx for this hint. It helped me a bit further, without the LS_PRELOAD _ipguilauncher were segfaulting, now wtih it, it runs forever loading my cpu (1 Thread 100%). Somebody a hint for me?
Visitor
eisnerd
Posts: 3
Registered: ‎02-10-2012
0

Re: Xilinx ISE segmentation fault (solution)

I found that the segfault seems to happen in: #0 0x00007fffea65d5e1 in QFontPrivate::~QFontPrivate() () from /usr/lib64/qt4/libQtGui.so.4 #1 0x00007fffea65d963 in QFont::~QFont() () from /usr/lib64/qt4/libQtGui.so.4 #2 0x00007fffea472555 in ?? () from /usr/lib64/qt4/libQtGui.so.4 #3 0x00007ffff174f92c in QFormInternal::QFormBuilder::applyProperties(QObject*, QList<:domproperty> const&) () from /opt/Xilinx/13.4/ISE_DS/ISE/lib/lin64/libSim_IpGui.so ... Maybe this helps to find a fix.
Visitor
eisnerd
Posts: 3
Registered: ‎02-10-2012
0

Re: Xilinx ISE segmentation fault (solution)

Ok, I have found the root of the evil, it is a typo in /opt/Xilinx/13.4/ISE_DS/SysGen/.settings64.sh it adds /opt/Xilinx/13.4/ISE_DS/ISE/sysgen/lib to LD-LIBRARY_PATH instead of /opt/Xilinx/13.4/ISE_DS/ISE/sysgen/lib/lin64, with the binaries it is the same comparing to the other .settings64.sh files. With this change no LD_PRELOAD is needed anymore.
Visitor
abyszuk
Posts: 7
Registered: ‎02-06-2012
0

Re: Xilinx ISE segmentation fault (solution)

[ Edited ]

@eisnerd:
I've found a moment to look into your problem, and updated my script (see first post).
You were right, there is a problem with incorrect LD_LIBRARY_PATH (@Xilinx: it's a bug, a *big bug*), hovewer your fix triggered another bug in my (propably) linker.

So here's even more radical, but working solution.

Newbie
ust_ramiller
Posts: 1
Registered: ‎11-07-2012
0

Re: Xilinx ISE segmentation fault (solution)

As the comment in your script said, setting LD_PRELOAD may cause errors. It did for me but I just toggled a comment on that line and uncommented the line after it:

 

# LD_PRELOAD=/usr/lib64/libstdc++.so.6 "$ISE_DS_DIR"/ISE/bin/lin64/ise
"$ISE_DS_DIR"/ISE/bin/lin64/ise

 

Leaving it at (what I assume) the original version of your script worked best for me on 64-bit Ubuntu 12.04 LTS.

 

Thank you so much for posting this thread and coming back to your solution. You saved me tonight, writing my lab report for university the day before it's due ;)