tk - couldn't load file "/usr/lib/x86_64-linux-gnu/magic/tcl/tclmagic.so" -


i have problem running magic vlsi. problem

couldn't load file "/usr/lib/x86_64-linux-gnu/magic/tcl/tclmagic.so": /usr/lib/x86_64-linux-gnu/magic/tcl/tclmagic.so: undefined symbol: tk_getcursorfromdata 

i think caused by:

 /usr/lib/x86_64-linux-gnu/magic/tcl/magic.tcl in line 13: load /usr/lib/x86_64-linux-gnu/magic/tcl/tclmagic.so 

the file /usr/lib/x86_64-linux-gnu/magic/tcl/tclmagic.so exists

the error source in running magic qflow in shellscript display.sh:

#!/bin/tcsh -f #---------------------------------------------------------- # qflow layout display script using magic-8.0 #---------------------------------------------------------- # tim edwards, april 2013 #----------------------------------------------------------  if ($#argv < 2)    echo usage:  display.sh [options] <project_path> <source_name>    exit 1 endif  # split out options main arguments (no options---placeholder only) set argline=(`getopt "" $argv[1-]`) set cmdargs=`echo "$argline" | awk 'begin {fs = "-- "} end {print $2}'` set argc=`echo $cmdargs | wc -w`  if ($argc == 2)    set argv1=`echo $cmdargs | cut -d' ' -f1`    set argv2=`echo $cmdargs | cut -d' ' -f2` else    echo usage:  display.sh [options] <project_path> <source_name>    echo      echo       <project_path> name of project directory containing    echo                 file called qflow_vars.sh.    echo       <source_name> root name of verilog file, ,    exit 1 endif  foreach option (${argline})    switch (${option})       case --:   break    endsw end  set projectpath=$argv1 set sourcename=$argv2 set rootname=${sourcename:h}  # script called first argument <project_path>, should # have file "qflow_vars.sh".  of our standard variable definitions # qflow_vars.sh file.  if (! -f ${projectpath}/qflow_vars.sh )    echo "error:  cannot find file qflow_vars.sh in path ${projectpath}"    exit 1 endif  source ${projectpath}/qflow_vars.sh source ${techdir}/${techname}.sh cd ${projectpath}  #---------------------------------------------------------- # copy .magicrc file tech directory # layout directory, if not have one.  file # automatically loads correct technology file. #----------------------------------------------------------  if (! -f ${layoutdir}/.magicrc )    if ( -f ${techdir}/${magicrc} )       cp ${techdir}/${magicrc} ${layoutdir}/.magicrc    endif endif  #---------------------------------------------------------- # done initialization #----------------------------------------------------------  cd ${layoutdir}  #--------------------------------------------------- # create magic layout (.mag file) using # technology lef file determine route widths # , other parameters. #---------------------------------------------------  if ($techleffile == "")    set lefcmd="lef read ${techdir}/${leffile}" else    set lefcmd="lef read ${techdir}/${techleffile}\nlef read ${techdir}/${techleffile}" endif  # timestamp handling:  if .mag file more recent # .def file, print message , not # overwrite.  set docreate=1 if ( -f ${rootname}.def && -f ${rootname}.mag)    set defstamp=`stat --format="%y" ${rootname}.def`    set magstamp=`stat --format="%y" ${rootname}.mag`    if ( $magstamp > $defstamp )       echo "magic database file ${rootname}.mag more recent def file."       echo "if want recreate .mag file, remove or rename existing one."       set docreate=0    endif endif  # following script reads in def file , modifies labels # rotated outward cell, since def files don't # indicate label geometry.  if ( ${docreate} == 1) ${bindir}/magic -dnull -noconsole <<eof drc off box 0 0 0 0 snap int ${lefcmd} def read ${rootname} select top cell select area labels setlabel font freesans setlabel size 0.3um box grow s -[box height] box grow s 100 select area labels setlabel rotate 90 setlabel e select top cell box height 100 select area labels setlabel rotate 270 setlabel w select top cell box width 100 select area labels setlabel w select top cell box grow w -[box width] box grow w 100 select area labels setlabel e save ${sourcename} quit -noprompt eof  endif  # run magic , query graphics device types # available.  use opengl if available, fall on # x11, or else exit message  ${bindir}/magic -noconsole -d <<eof >& .magic_displays exit eof  set magicogl=`cat .magic_displays | grep ogl | wc -l` set magicx11=`cat .magic_displays | grep x11 | wc -l`  rm -f .magic_displays  # run magic again, time interactively.  script # exits when user exits magic.   #if ( ${magicogl} >= 1 )    magic -d ogl ${rootname}  if ( ${magicx11} >= 1)    magic -d x11 ${rootname} else    echo "magic not support opengl or x11 graphics on host." endif  #------------------------------------------------------------ # done! #------------------------------------------------------------ 

enter image description here

how can fix problem?

i should amend answer, since sounds magic may invoking tcl 8.5 instead of 8.6, may have happened if downloaded magic package. "-lazy" option "load" implemented in tcl 8.6, it's not going work @ in tcl 8.5. suggest getting magic opencircuitdesign.com , compiling source, has no problems on linux systems. autoconf script should able find tcl version 8.6.

you can ignore "display" option in qflow , run magic interactively. use "lef read" command read in standard cell definitions, "def read" read in routed layout qflow.


Comments

Popular posts from this blog

wordpress - (T_ENDFOREACH) php error -

Export Excel workseet into txt file using vba - (text and numbers with formulas) -

Using django-mptt to get only the categories that have items -