裝EDA tools (GLIBC_2.0 not defined問題) - Linux

Ethan avatar
By Ethan
at 2009-08-21T09:54

Table of Contents

※ [本文轉錄自 Electronics 看板]

作者: zxvc (修行) 看板: Electronics
標題: Re: [心得] 裝EDA tools (GLIBC_2.0 not defined問題)
時間: Fri Aug 21 09:54:30 2009

最近我管理的EDA Linux工作站(Ubuntu 9.04 amd64)將要製作image,
還原到別的工作站。
為了避免有些EDA tools沒設定好、後來才發現的話,
我就必需一台一台改設定,很麻煩。
所以我就開始對每套安裝過的tool作測試,看能不能正常啟動。

不幸的有一套tool - SynTest DFT-PRO Plus 2009.03 (64-bit)有點問題。
DFT-PRO Plus大部分的程式都可以執行,也都是64-bit的版本!?
為什麼我要強調一個64-bit的軟體(組)大多是64-bit?
這是因為,沒想到DFT-PRO Plus 2009.03 64-bit
就是有一個舊軟體是32-bit - TurboCheck-RTL(vlog123) XD
32-bit也沒有關係,反正64-bit OS + 32-bit Libraries應該就可以執行
32-bit application!?

但不幸的一執行vlog123就掛了:
$ vlog123
vlog123: relocation error: vlog123: symbol errno, version GLIBC_2.0
not defined in file libc.so.6 with link time reference

但我用這個指令一看:
$ strings /lib32/libc.so.6|grep GLIBC

的確有GLIBC_2.0啊!

這是我處理過的EDA tools問題中目前最棘手的,
坦白來講我大約在2006-2007年就遇到過這個問題,
當時無解、搜google許多解法也無效,
只好乖乖的灌EDA tools指定的Linux distribution就沒事。

但如今又遇上這個問題,偏偏在我每套tools都搞定、
Linux的環境也設定完畢,才叫我砍掉重練!? T.T

後來不死心,昨天又花了一天的時間,
跟這個問題從早上戰鬥到晚上,不知在google上搜了多少篇有用沒用的文章,
終於在睡覺前搞定了。

要想出解這個問題的方法要有一定的Linux知識、經驗背景,
否則我想我也不太可能會想得出來。

簡單來說的解法如下:
首先要知道Linux上thread libraries主要有兩個,Linuxthread、
Native POSIX Thread Library(NPTL)。Linuxthread是比較舊的。
Ubuntu 6.06(2006年06月)之前支援Linuxthread,
Ubuntu 6.10(2006年10月)之後不支援Linuxthread、只支援NPTL。
---------------------這段有點假設的成分--------------------
許多舊的EDA tools當初在compiled時是去呼叫Linuxthread,
所以拿到一些新的Linux distributions不支援Linuxthread libs就會出問題,
即使有NPTL的libs,ld(dynamic linker)也會當作沒有(用) XD
這也就是上面仍會有GLIBC_2.0 not defined的原因。
-----------------------------------------------------------
解決的方法是,我們裝上支援Linuxthread的舊libraries。
Ubuntu可以去這個地方找到2006年的舊lib:
ftp://free.nchc.org.tw/ubuntu/pool/main/

例如vlog123需要這些packages:
libc6_2.3.6-0ubuntu20_i386.deb
libx11-6_1.0.0-0ubuntu9_i386.deb
libxau6_1.0.0-0ubuntu4_i386.deb

用GNOME的壓縮管理程式解壓這些package後,
只要把lib收集起來丟到同一個目錄(方便管理,如:/lib32old)。

然後設定舊程式(如vlog123)啟動時優先讀這些舊libs的環境變數
(LD_LIBRARY_PATH),再用舊版的ld-linux.so.2去執行vlog123.exe就可以了。
我為了方便,把原先的vlog123改名成vlog123.exe,
然後寫一個script (vlog123)去執行原本的vlog123。如下:
$ cat /usr/cad/syntest/syntest/cur/tc_rtl/bin/vlog123
#!/bin/sh
# Startup script for real vlog123. Written by [email protected], 08/21/2009.

LIB32_OLD_PATH=/lib32old
LD_LIBRARY_PATH=${LIB32_OLD_PATH}

${LIB32_OLD_PATH}/ld-linux.so.2 ${VLOG123_HOME}/bin/vlog123.exe $1

真像在這裡:
http://0u28vw.blu.livefilestore.com/y1pqZwa9thyUB8MqrjlCrmuHem-uEzKqM76Y9flM2HBoQNDdmSrsA1TId2u3VNnQ8PsLnxG7ndF-SYyPDmrUbVDWJiDuXu9YNI-/vlog123.png

http://tinyurl.com/mn63o5

--
Tags: Linux

All Comments

George avatar
By George
at 2009-08-24T18:40
另外提供一些參考資訊。Linux kernel是從2.6開始支援NPTL,
glibc好像是從2.4開始。
Anonymous avatar
By Anonymous
at 2009-08-26T13:33
帥耶 不過EDA tools還是在某些特定的Linux上面比較好裝
要不然搞對應的lib 就可以弄到抓狂了orz
James avatar
By James
at 2009-08-27T10:56
當初也想灌在EDA tools建議的Linux distributions,但被推薦
Daph Bay avatar
By Daph Bay
at 2009-08-30T11:15
的distribution往往都很舊,有的更新又要錢(RHEL)。
Blanche avatar
By Blanche
at 2009-09-01T11:45
新的distribution對硬體支援度也比較高。
Ida avatar
By Ida
at 2009-09-01T18:07
其實我也有灌過比較像RHEL的distribution,如CentOS,但一灌
好也是缺一堆lib XD
Valerie avatar
By Valerie
at 2009-09-05T19:30
只是我遇到這個問題不止是缺lib,還牽涉到binary comptiable
Hedda avatar
By Hedda
at 2009-09-08T22:56
的問題。
Cara avatar
By Cara
at 2009-09-11T23:56
我灌CentOs沒遇到啥問題,EDA TOOL都ok!
Gary avatar
By Gary
at 2009-09-14T20:38
我也都是灌CentOS 幾乎都可以跑~
Damian avatar
By Damian
at 2009-09-17T15:43
直接export LD_ASSUME_KERNEL=2.4.19 Call LT不行嗎?
Caitlin avatar
By Caitlin
at 2009-09-22T10:05
Ubuntu 6.10後沒有Linuxthread的libraries,所以不能用
LD_ASSUME_KERNEL。
Harry avatar
By Harry
at 2009-09-26T23:31
我不知道CentOS還有沒有使用Linuxthread的libraries。
Zora avatar
By Zora
at 2009-10-01T08:00
就我所知道RHEL 5 Ent版本依然保留這個特色
Dora avatar
By Dora
at 2009-10-05T05:29
當初的確也是與版大遇到類似的問題 也是透過Call LT解的
Eden avatar
By Eden
at 2009-10-07T08:57
Ubuntu 6.06似乎是最後一個同時支援NPTL & TH的版本
so sad
Odelette avatar
By Odelette
at 2009-10-10T04:16
當然我後來遇到的問題反而是NPTL 與 TH效能的比較問題
辛苦原PO的分享了

debian抓不到 usb

Suhail Hany avatar
By Suhail Hany
at 2009-08-20T23:40
各位板友好! 我的 Debian 也怪怪的,抓不到任何 USB……。 情況如下: 前幾天,我的 Debian 用起來怪怪的(以前是正常可用的),聽不到任何音樂; 我重開機幾次來檢查是什麼原因,結果主機板也順便壞了(不明原因,非重開機)。 那個主機板是 ASUS M2N-E SLI; 音樂不能聽,跟 USB ...

windows7下是否有可讀取ext2磁區的軟體

Robert avatar
By Robert
at 2009-08-20T21:37
之前用過ext2ifs,在Vista下用的頗順 但最近玩windows7 卻發現ext2ifs不支援w7 ext2fsd可以裝,但無法起作用 請問目前還有其他軟體支援嗎? - ...

怎麼只 mount 在某一個使用者內

Elma avatar
By Elma
at 2009-08-20T20:30
我想要 mount 一個 NTFS 磁區在 A 使用者 而 B 使用者登入時, 這個 NTFS 磁區是 unmount 的 不過我現在的情況是不管是 A 或是 B mount 這個磁區後 A 和 B 都可以存取這個磁區。 我在 mount 的時候有勾選 for this session only 這個是指 ...

請問光碟「自我檢證」的機制

Poppy avatar
By Poppy
at 2009-08-20T18:02
推 asimon:他主要應該是防止在下載過程中出問題造成安裝失敗吧? 08/17 18:20 推 buganini:程式載入道記憶體執行 整張光碟就是資料了 08/17 23:24 → buganini:程式本身有問題又能誤判成正確的機率應該比 08/17 23:26 → buganini:checksum ...

請問 Dummy write 以及 BurnFree

Heather avatar
By Heather
at 2009-08-20T17:58
噓 orochu:我是在想你是想衝文數為主吧,問問題為輔吧 08/17 18:17 → orochu:所以找一些能問的問題來問,就算是我誤會了,那請問妳作過 08/17 18:18 → orochu:功課了嗎?google了嗎? 08/17 18:18 → bob770717:名詞解釋其實google就有了 ...