<div dir="ltr"><div>Να ενημερώσω πως ακολουθώντας τα προτεινόμενα βήματα η εγκατάσταση ολοκληρώθηκε ομαλά (χρειάστηκε όμως να εγκαταστήσω και τα επιπλέον πακέτα libxtst-dev και xorg-dev).<br><br></div><div>Ευχαριστώ πολύ για την άμεση βοήθεια κύριε Σιακαβάρα!<br><br><br></div><div>Με εκτίμηση,<br><br></div><div>Γιάννης Χορτομάνης<br></div><div><br><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">Στις 21 Μαρτίου 2016 - 11:42 μ.μ., ο χρήστης Dimitrios Siakavaras <span dir="ltr"><<a href="mailto:jimsiak@cslab.ece.ntua.gr" target="_blank">jimsiak@cslab.ece.ntua.gr</a>></span> έγραψε:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Καλησπέρα Γιάννη,<br>
<span class=""><br>
> Καλησπέρα σας,<br>
><br>
> Κατ' αρχήν να επισημάνω πως έχω σχετικά παλιό υπολογιστή (διπύρηνο αλλά<br>
</span>> των *32<br>
> bit*).<br>
<span class="">><br>
> Επίσης για λόγους που έχουν να κάνουν με δουλειά έχω μείνει εσκεμμένα<br>
> στην<br>
</span>> έκδοση *11.04 (natty)* του Ubuntu με έκδοση πυρήνα *2.6.38-16-generic*<br>
<span class="">> και<br>
> δεν έχω μεταβεί σε κάποια νεότερη.<br>
><br>
> Αυτά τα χαρακτηριστικά είναι λογικά η πηγή των δεινών μου...<br>
><br>
<br>
</span>Ναι, αυτή είναι η πηγή των δεινών σου αλλά ας τα πάρουμε με τη σειρά :)<br>
<span class=""><br>
> Κατ' αρχήν η εγκατάσταση του PIN ολοκληρώθηκε κανονικά (για να το<br>
> επιβεβαιώσω χρειάστηκε να εκτελέσω το pin με το παράδειγμα<br>
</span>> παραλλαγμένο ως "*./pin.sh<br>
<span class="">> -injection child -t ./source/tools/ManualExamples/obj-ia32/inscount0.so<br>
> -o<br>
</span>> ls.inscount0.output -- /bin/ls -aF*").<br>
><br>
<br>
Μιά χαρά ως εδώ, το PIN εκτελείται χωρίς πρόβλημα και σε 32-bit<br>
αρχιτεκτονικές.<br>
Το μόνο που αλλάζει όπως φαίνεται και από το παράδειγμά που δίνεις είναι<br>
το όνομα του<br>
φακέλου στον οποίο μεταγλωττίζονται τα pintools. Σε 32-bit cpu είναι<br>
obj-ia32 αντί<br>
για obj-intel64 που είναι σε 64-bit cpu.<br>
<br>
<br>
> Κατόπιν, με την εκτέλεση της εντολής "*sudo apt-get update*" έλαβα κάποια<br>
> αποτελέσματα του στιλ:<br>
><br>
><br>
><br>
><br>
><br>
><br>
><br>
> *Err <a href="http://gr.archive.ubuntu.com" rel="noreferrer" target="_blank">http://gr.archive.ubuntu.com</a> <<a href="http://gr.archive.ubuntu.com" rel="noreferrer" target="_blank">http://gr.archive.ubuntu.com</a>><br>
<span class="">> natty/main<br>
> Sources 404 Not FoundErr <a href="http://security.ubuntu.com" rel="noreferrer" target="_blank">http://security.ubuntu.com</a><br>
> <<a href="http://security.ubuntu.com" rel="noreferrer" target="_blank">http://security.ubuntu.com</a>> natty-security/restricted Sources 404 Not<br>
> Found [IP: 2001:67c:1560:8001::11 80]W: Failed to fetch<br>
> <a href="http://http//download.virtualbox.org/virtualbox/debian/dists/natty/InRelease" rel="noreferrer" target="_blank">http://http//download.virtualbox.org/virtualbox/debian/dists/natty/InRelease</a><br>
</span>> <<a href="http://http//download.virtualbox.org/virtualbox/debian/dists/natty/InRelease" rel="noreferrer" target="_blank">http://http//download.virtualbox.org/virtualbox/debian/dists/natty/InRelease</a>>*<br>
<span class="">> κλπ.<br>
><br>
><br>
> Προχωρώντας στην επόμενη εντολή "<br>
</span>> *sudo apt-get install make g++ libx11-dev libxext-dev libxaw7<br>
> \x11proto-xext-dev libglu1-mesa-dev libxi-dev libxmu-dev*"<br>
<span class="">><br>
> μετά από κάποιες σωστές εγκαταστάσεις έλαβα τις παρακάτω επισημάνσεις:<br>
><br>
><br>
><br>
><br>
><br>
><br>
><br>
><br>
><br>
><br>
><br>
</span>> *You might want to run 'apt-get -f install' to correct these:The<br>
<span class="">> following<br>
> packages have unmet dependencies: libglu1-mesa-dev : Depends:<br>
> libgl1-mesa-dev but it is not going to be installed<br>
> or libgl-dev libxi-dev : Depends:<br>
> xorg-sgml-doctools (>= 1:1.5) but it is not going to be<br>
> installed virtualbox-4.1 : Depends: libqt4-network (>= 4:4.5.3) but it is<br>
> not going to be installed Depends: libqt4-opengl (>=<br>
> 4:4.7.0~rc1) but it is not going to be installed<br>
> Depends:<br>
> libqtcore4 (>= 4:4.7.0~beta1) but it is not going to be<br>
> installed Depends: libqtgui4 (>= 4:4.7.0~beta1) but it<br>
> is<br>
> not going to be installed Recommends: libsdl-ttf2.0-0<br>
> but<br>
</span>> it is not going to be installedE: Unmet dependencies. Try 'apt-get -f<br>
> install' with no packages (or specify a solution).*<br>
<span class="">><br>
><br>
> Να σημειώσω ότι παρόμοιες απαντήσεις είχα λάβει και με την εντολή της<br>
> αρχικής εκφώνησης της άσκησης όπου κάποιες βιβλιοθήκες ήταν διαφορετικές.<br>
><br>
</span>> Μετά την σχετική προτροπή εκτέλεσα την εντολή "*apt-get -f install*"<br>
> οπότε<br>
> έλαβα:<br>
><br>
><br>
> *E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission<br>
> denied)E: Unable to lock the administration directory (/var/lib/dpkg/),<br>
> are<br>
> you root?*<br>
><br>
><br>
> Εκτελώντας την ξανά σαν root (μετά από *sudo su*) έλαβα παρόμοιες<br>
> απαντήσεις με νωρίτερα:<br>
><br>
><br>
><br>
><br>
><br>
><br>
><br>
><br>
><br>
><br>
><br>
><br>
><br>
><br>
> *WARNING: The following packages cannot be authenticated! libqtcore4<br>
<span class="">> libqt4-xml libqt4-dbus libqt4-network libqtgui4 libqt4-opengl<br>
</span>> libdbusmenu-qt2 appmenu-qtInstall these packages without verification<br>
<span class="">> [y/N]? yErr <a href="http://gr.archive.ubuntu.com/ubuntu/" rel="noreferrer" target="_blank">http://gr.archive.ubuntu.com/ubuntu/</a><br>
> <<a href="http://gr.archive.ubuntu.com/ubuntu/" rel="noreferrer" target="_blank">http://gr.archive.ubuntu.com/ubuntu/</a>> natty-updates/main libqtcore4 i386<br>
> 4:4.7.2-0ubuntu6.4 404 Not FoundErr<br>
> <a href="http://gr.archive.ubuntu.com/ubuntu/" rel="noreferrer" target="_blank">http://gr.archive.ubuntu.com/ubuntu/</a><br>
> <<a href="http://gr.archive.ubuntu.com/ubuntu/" rel="noreferrer" target="_blank">http://gr.archive.ubuntu.com/ubuntu/</a>> natty/main libdbusmenu-qt2 i386<br>
> 0.8.2-0ubuntu2 404 Not FoundFailed to fetch<br>
> <a href="http://security.ubuntu.com/ubuntu/pool/main/q/qt4-x11/libqtcore4_4.7.2-0ubuntu6.4_i386.deb" rel="noreferrer" target="_blank">http://security.ubuntu.com/ubuntu/pool/main/q/qt4-x11/libqtcore4_4.7.2-0ubuntu6.4_i386.deb</a><br>
> <<a href="http://security.ubuntu.com/ubuntu/pool/main/q/qt4-x11/libqtcore4_4.7.2-0ubuntu6.4_i386.deb" rel="noreferrer" target="_blank">http://security.ubuntu.com/ubuntu/pool/main/q/qt4-x11/libqtcore4_4.7.2-0ubuntu6.4_i386.deb</a>><br>
> 404 Not Found [IP: 2001:67c:1562::15 80]Failed to fetch<br>
> <a href="http://security.ubuntu.com/ubuntu/pool/main/q/qt4-x11/libqt4-xml_4.7.2-0ubuntu6.4_i386.deb" rel="noreferrer" target="_blank">http://security.ubuntu.com/ubuntu/pool/main/q/qt4-x11/libqt4-xml_4.7.2-0ubuntu6.4_i386.deb</a><br>
> <<a href="http://security.ubuntu.com/ubuntu/pool/main/q/qt4-x11/libqt4-xml_4.7.2-0ubuntu6.4_i386.deb" rel="noreferrer" target="_blank">http://security.ubuntu.com/ubuntu/pool/main/q/qt4-x11/libqt4-xml_4.7.2-0ubuntu6.4_i386.deb</a>><br>
> 404 Not Found [IP: 2001:67c:1562::15 80]Failed to fetch<br>
> <a href="http://security.ubuntu.com/ubuntu/pool/main/q/qt4-x11/libqt4-dbus_4.7.2-0ubuntu6.4_i386.deb" rel="noreferrer" target="_blank">http://security.ubuntu.com/ubuntu/pool/main/q/qt4-x11/libqt4-dbus_4.7.2-0ubuntu6.4_i386.deb</a><br>
> <<a href="http://security.ubuntu.com/ubuntu/pool/main/q/qt4-x11/libqt4-dbus_4.7.2-0ubuntu6.4_i386.deb" rel="noreferrer" target="_blank">http://security.ubuntu.com/ubuntu/pool/main/q/qt4-x11/libqt4-dbus_4.7.2-0ubuntu6.4_i386.deb</a>><br>
</span>> 404 Not Found [IP: 2001:67c:1562::15 80]*<br>
<span class="">> κλπ (δεν αντιγράφω όλο το κατεβατό).<br>
><br>
><br>
<br>
</span>Εδώ το πρόβλημα έχει να κάνει με το ότι το natty ubuntu είναι τόσο παλιό<br>
που έχουν μεταφερθεί όλα<br>
τα repositories του. Δες και το παρακάτω thread από τα ubuntu forums:<br>
<a href="http://ubuntuforums.org/showthread.php?t=2150989" rel="noreferrer" target="_blank">http://ubuntuforums.org/showthread.php?t=2150989</a><br>
<br>
Σε 32-bit VM με natty ubuntu κατάφερα να εγκαταστήσω όλα τα απαιτούμενα<br>
πακέτα αλλάζοντας<br>
στο αρχείο /etc/apt/sources.list όλα τα entries<br>
'<a href="http://gr.archive.ubuntu.com/ubuntu/" rel="noreferrer" target="_blank">http://gr.archive.ubuntu.com/ubuntu/</a>' σε<br>
'<a href="http://old-releases.ubuntu.com/ubuntu/" rel="noreferrer" target="_blank">http://old-releases.ubuntu.com/ubuntu/</a>'<br>
<span class=""><br>
> Ευχόμενος να μπορώ να προχωρήσω παρ' όλα αυτά, εκτέλεσα την<br>
</span>> "*./bin/parsecmgmt<br>
<span class="">> -a build -c gcc-serial -p blackscholes bodytrack canneal facesim ferret<br>
</span>> fluidanimate freqmine raytrace swaptions streamcluster*" όπου το αρχικό<br>
<span class="">> build των packages φαινόταν να ολοκληρώνεται κανονικά αλλά στο τέλος<br>
> έλαβα<br>
><br>
><br>
><br>
><br>
><br>
><br>
><br>
><br>
><br>
><br>
><br>
><br>
><br>
><br>
><br>
</span>> *checking pkg-config files for X11 are available... yeschecking for<br>
> XLIBGL... yeschecking for GLW... yeschecking for GLUT... configure:<br>
<span class="">> error:<br>
> Package requirements (x11 xmu xi) were not met:No package 'xi'<br>
</span>> foundConsider adjusting the PKG_CONFIG_PATH environment variable if<br>
> youinstalled software in a non-standard prefix.Alternatively, you may set<br>
> the environment variables GLUT_CFLAGSand GLUT_LIBS to avoid the need to<br>
> call pkg-config.See the pkg-config man page for more details.[PARSEC]<br>
<span class="">> Error: 'env ./configure --with-driver=xlib --enable-glut --enable-static<br>
> --disable-shared<br>
> --prefix=/home/giannis/parsec-3.0/pkgs/libs/mesa/inst/i686-linux.gcc-serial'<br>
</span>> failed.*<br>
><br>
<br>
Αυτό σημαίνει πως λείπουν κάποια πακέτα, προφανώς κάποια που δεν βρέθηκαν<br>
κατά<br>
το 'apt-get install ...'. Για ξαναδοκίμασε να κάνεις build έχοντας επιτυχώς<br>
εγκαταστήσει όλα τα απαιτούμενα πακέτα.<br>
<br>
><br>
> Τα επόμενα βήματα σχετικά με το "*cslab_create_parsec_workspace.sh*"<br>
<span class="">> κύλισαν κανονικά (δημιουργήθηκε ο φάκελος parsec_workspace με τα<br>
> εκτελέσιμα<br>
</span>> και με την εκτέλεση της εντολής "*cat cmds_simlarge.txt*" έλαβα τα<br>
<span class="">> αποτελέσματα που αναγράφονται και στην εκφώνηση).<br>
><br>
> Κατόπιν όρισα την μεταβλητή περιβάλλοντος LD_LIBRARY_PATH με την<br>
</span>> τροποποίηση "*i686-linux.gcc-serial*" καθώς είδα ότι υπήρχε αυτός ο<br>
> φάκελος<br>
> αντί του "*amd64-linux.gcc*" όπου και φαίνεται πως έγινε κανονικά.<br>
><br>
<br>
Εδώ χρειάζεται να κάνεις μία αλλαγή στο script<br>
cslab_create_parsec_workspace.sh.<br>
Συγκεκριμένα, μέσα στο script θα πρέπει να αλλάξεις τη γραμμή 14:<br>
<br>
από<br>
cp pkgs/{apps,kernels}/*/inst/amd64-linux.gcc-serial/bin/*<br>
${WORKSPACE_DIR}/executables/<br>
<br>
σε<br>
cp pkgs/{apps,kernels}/*/inst/i686-linux.gcc-serial/bin/*<br>
${WORKSPACE_DIR}/executables/<br>
<br>
ώστε να πάει στους σωστούς φακέλους και να πάρει τα εκτελέσιμα.<br>
<br>
Επίσης, όπως σωστά αναφέρεις η εντολή:<br>
export<br>
LD_LIBRARY_PATH=~/parsec-3.0/pkgs/libs/hooks/inst/amd64-linux.gcc-serial/lib<br>
<br>
σε 32-bit μηχάνημα πρέπει να γίνει:<br>
export<br>
LD_LIBRARY_PATH=~/parsec-3.0/pkgs/libs/hooks/inst/i686-linux.gcc-serial/lib<br>
<br>
Θυμήσου να κάνεις την ίδια αλλαγή και στο run_l1.sh που δίνεται στον<br>
βοηθητικό κώδικα.<br>
<span class=""><br>
> Όσον αφορά την μεταγλώττιση του cslab_cache.cpp, δίνοντας<br>
</span>> "*PIN_ROOT=/home/giannis/pin-2.14-71313-gcc.4.4.7-linux<br>
> make obj-intel64/cslab_cache.so*" έλαβα<br>
><br>
> *make: *** No rule to make target `obj-intel64/cslab_cache.so'. Stop.*<br>
<span class="">><br>
><br>
> Αντιλαμβανόμενος (νομίζω...) τι συνέβαινε δημιούργησα φάκελο με την<br>
> ονομασία "obj-ia32" μέσα στον φάκελο "pintool" και εκτέλεσα ξανά την<br>
> εντολή<br>
</span>> παραλλαγμένη ως "*PIN_ROOT=/home/giannis/pin-2.14-71313-gcc.4.4.7-linux<br>
> make obj-ia32/cslab_cache.so*"<br>
><br>
> Η μεταγλώττιση φαίνεται πως πέτυχε και στον φάκελο "*obj-ia32*"<br>
> δημιουργήθηκαν τα αρχεία *cslab_cache.o* και *cslab_cache.so*. Στο<br>
> terminal<br>
> έλαβα<br>
><br>
><br>
<br>
Πολύ σωστά έπραξες εδώ. Για να μεταγλωττιστεί το cslab_cache.so για 32-bit<br>
αρχιτεκτονική θα πρέπει να φτιάξετε έναν φάκελο obj-ia32 και να δώσετε<br>
<br>
PIN_ROOT=/path/to/pin-2.14-71313-gcc.4.4.7-linux make obj-ia32/cslab_cache.so<br>
<br>
><br>
><br>
> *g++ -DBIGARRAY_MULTIPLIER=1 -Wall -Werror -Wno-unknown-pragmas<br>
<span class="">> -fno-stack-protector -DTARGET_IA32 -DHOST_IA32 -DTARGET_LINUX<br>
> -I/home/giannis/pin-2.14-71313-gcc.4.4.7-linux/source/include/pin<br>
> -I/home/giannis/pin-2.14-71313-gcc.4.4.7-linux/source/include/pin/gen<br>
> -I/home/giannis/pin-2.14-71313-gcc.4.4.7-linux/extras/components/include<br>
> -I/home/giannis/pin-2.14-71313-gcc.4.4.7-linux/extras/xed-ia32/include<br>
> -I/home/giannis/pin-2.14-71313-gcc.4.4.7-linux/source/tools/InstLib -O3<br>
> -fomit-frame-pointer -fno-strict-aliasing -c -o obj-ia32/cslab_cache.o<br>
</span>> cslab_cache.cppg++ -shared -Wl,--hash-style=sysv -Wl,-Bsymbolic<br>
<span class="">> -Wl,--version-script=/home/giannis/pin-2.14-71313-gcc.4.4.7-linux/source/include/pin/pintool.ver<br>
> -o obj-ia32/cslab_cache.so obj-ia32/cslab_cache.o<br>
> -L/home/giannis/pin-2.14-71313-gcc.4.4.7-linux/ia32/lib<br>
> -L/home/giannis/pin-2.14-71313-gcc.4.4.7-linux/ia32/lib-ext<br>
> -L/home/giannis/pin-2.14-71313-gcc.4.4.7-linux/ia32/runtime/glibc<br>
> -L/home/giannis/pin-2.14-71313-gcc.4.4.7-linux/extras/xed-ia32/lib -lpin<br>
</span>> -lxed -lpindwarf -ldl*<br>
<span class="">><br>
> Προσπαθώντας πλέον να χρησιμοποιήσω το cslab_cache pintool με την<br>
</span>> εντολή "*/home/giannis/pin-2.14-71313-gcc.4.4.7-linux/pin.sh<br>
<span class="">> -t<br>
> /home/giannis/advcomparch-2015-16-ex1-helpcode/pintool/obj-ia32/cslab_cache.so<br>
> -o my_output.out -L1c 64 -L1a 8 -L1b 64 -L2c 256 -L2a 8 -L2b 64 --<br>
> /home/giannis/parsec-3.0/parsec_workspace/executables/blackscholes 1<br>
</span>> /home/giannis/parsec-3.0/parsec_workspace/inputs/in_64K.txt prices.txt*"<br>
><br>
> έλαβα<br>
><br>
><br>
><br>
><br>
><br>
><br>
><br>
><br>
> *E: Attach to pid 4209 failed. E: The Operating System configuration<br>
> prevents Pin from using the default (parent) injection mode.E: To<br>
<span class="">> resolve<br>
> this, either execute the following (as root):E: $ echo 0 ><br>
</span>> /proc/sys/kernel/yama/ptrace_scopeE: Or use the "-injection child"<br>
> option.E: For more information, regarding child injection, see<br>
> Injection<br>
> section in the Pin User Manual.E: Killed*<br>
><br>
><br>
> Προσθέτοντας την παράμετρο "*-injection child*" και εκτελώντας ξανά την<br>
> προηγούμενη εντολή έλαβα:<br>
><br>
> */home/giannis/parsec-3.0/parsec_workspace/executables/blackscholes : No<br>
> such file or directory*<br>
<span class="">><br>
> Γενικώς ο φάκελος executables είναι άδειος οπότε φαντάζομαι πως δεν έχουν<br>
> δημιουργηθεί τα απαιτούμενα εκτελέσιμα.<br>
><br>
<br>
</span>Νομίζω πως έχοντας ακολουθήσει τα βήματα που σου προτείνω παραπάνω πλέον δεν<br>
πρέπει να έχεις αυτά τα προβήματα(;)<br>
<span class=""><br>
><br>
> Τι έχει συμβεί και πως το ξεπερνάω; Έχει σχέση με τις βιβλιοθήκες που δεν<br>
> εγκαταστάθηκαν ή με την δημιουργία των packages; Μήπως αφού έχω<br>
> παλαιότερο<br>
> σύστημα έπρεπε να χρησιμοποιήσω κάποια παλαιότερη έκδοση του PIN και όχι<br>
> την 71313;<br>
><br>
> Γενικώς οποιαδήποτε βοήθεια προς εμάς που έχουμε 32-bit μηχανήματα ή/και<br>
> παλαιότερη έκδοση Linux θα ήταν ιδιαίτερα ευπρόσδεκτη!<br>
><br>
><br>
> Σας ευχαριστώ - με εκτίμηση,<br>
><br>
> Γιάννης Χορτομάνης<br>
</span>> _______________________________________________<br>
> Advcomparch mailing list<br>
> <a href="mailto:Advcomparch@lists.cslab.ece.ntua.gr">Advcomparch@lists.cslab.ece.ntua.gr</a><br>
> <a href="http://lists.cslab.ece.ntua.gr/mailman/listinfo/advcomparch" rel="noreferrer" target="_blank">http://lists.cslab.ece.ntua.gr/mailman/listinfo/advcomparch</a><br>
><br>
<br>
Καλή συνέχεια,<br>
Δημήτρης<br>
<br>
</blockquote></div><br></div>