User Tools

Site Tools


informatica:hp_xw4300_500_topspin13_au_compilation

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
informatica:hp_xw4300_500_topspin13_au_compilation [2015/09/29 13:36]
miquel [Segon intent de compilació]
informatica:hp_xw4300_500_topspin13_au_compilation [2015/09/29 15:49]
miquel [Migració de /lib32 a /lib/i386-linux-gnu]
Line 414: Line 414:
   * [[https://wiki.debian.org/EnvironmentVariables]]   * [[https://wiki.debian.org/EnvironmentVariables]]
   * [[http://unix.stackexchange.com/questions/117467/how-to-permanently-set-environmental-variables]]   * [[http://unix.stackexchange.com/questions/117467/how-to-permanently-set-environmental-variables]]
 +
 +===== Canvis al TopSpin =====
 +
 +==== /opt/topspin1.3/prog/bin/topspin ====
 +
 +Afegeixo la variable //$LD_LIBRARY_PATH// al final de la definició de la variable LD_LIBRARY_PATH,
 +
 +<code diff>
 +# diff topspin topspin.ORIG-20150824 
 +62c62
 +<     export LD_LIBRARY_PATH="$szProgPath"/pvshlib:"$szProgPath"/shlib:$LD_LIBRARY_PATH
 +---
 +>     export LD_LIBRARY_PATH="$szProgPath"/pvshlib:"$szProgPath"/shlib
 +</code>
 +
 +==== /etc/profile.d/topspin_compile_au.sh ====
 +
 +Creo el fitxer ///# more /etc/profile.d/topspin_compile_au.sh// que contindrà la definició de les variables d'entorn necessàries perquè funcioni la compilació dels programes AU,
 +
 +<code bash>
 +# MCE - 20150925 - Library path environment variables added to allow
 +# compilating TopSpin 1.3 AU programs in newer GNU/Linux versions
 +
 +export PATH=$PATH:/opt/topspin1.3/gnu/bin
 +export LIBRARY_PATH=/usr/lib32:$LIBRARY_PATH
 +export LD_LIBRARY_PATH=/usr/lib32:/lib32:$LD_LIBRARY_PATH
 +</code>
 +
 +===== Nova compilació dels programes AU =====
 +
 +Executo la comanda ''cplbruk all'' per compilar tots els programes AU i els compila tots excepte els esmentats a [[https://www.bruker.com/cgi-bin/bkb/show_bug.cgi?id=9641 | l'Item#: 9641. Some AU programs do not compile with native compiler]]
 +
 +<file>
 +/opt/topspin1.3/exp/stan/nmr/au/src/coiltemp:42:5: error: conflicting types for 'coiltemp_program'
 +/opt/topspin1.3/exp/stan/nmr/au/src/coiltemp:43:1: note: an argument type that has a default promotion can't match an empty parameter name list declaration
 +/opt/topspin1.3/exp/stan/nmr/au/src/coiltemp:31:9: note: previous implicit declaration of 'coiltemp_program' was here
 +exit 1
 +/opt/topspin1.3/exp/stan/nmr/au/src/decra: In function 'AU_program':
 +/opt/topspin1.3/exp/stan/nmr/au/src/decra:112:12: error: invalid storage class for function 'DECRA_program'
 +/opt/topspin1.3/exp/stan/nmr/au/src/decra: At top level:
 +/opt/topspin1.3/exp/stan/nmr/au/src/decra:293:12: error: static declaration of 'DECRA_program' follows non-static declaration
 +/opt/topspin1.3/exp/stan/nmr/au/src/decra:115:9: note: previous implicit declaration of 'DECRA_program' was here
 +exit 1
 +/opt/topspin1.3/exp/stan/nmr/au/src/disconv: In function 'AU_program':
 +/opt/topspin1.3/exp/stan/nmr/au/src/disconv:128:12: error: invalid storage class for function 'DISNMR_program'
 +/opt/topspin1.3/exp/stan/nmr/au/src/disconv: At top level:
 +/opt/topspin1.3/exp/stan/nmr/au/src/disconv:878:12: error: static declaration of 'DISNMR_program' follows non-static declaration
 +/opt/topspin1.3/exp/stan/nmr/au/src/disconv:131:9: note: previous implicit declaration of 'DISNMR_program' was here
 +exit 1
 +/opt/topspin1.3/exp/stan/nmr/au/src/disinfo: In function 'AU_program':
 +/opt/topspin1.3/exp/stan/nmr/au/src/disinfo:106:12: error: invalid storage class for function 'DISNMR_program'
 +/opt/topspin1.3/exp/stan/nmr/au/src/disinfo: At top level:
 +/opt/topspin1.3/exp/stan/nmr/au/src/disinfo:832:12: error: static declaration of 'DISNMR_program' follows non-static declaration
 +/opt/topspin1.3/exp/stan/nmr/au/src/disinfo:109:9: note: previous implicit declaration of 'DISNMR_program' was here
 +exit 1
 +/opt/topspin1.3/exp/stan/nmr/au/src/lcsino:46:7: error: conflicting types for 'lcsino'
 +/opt/topspin1.3/exp/stan/nmr/au/src/lcsino:40:7: note: previous implicit declaration of 'lcsino' was here
 +exit 1
 +/opt/topspin1.3/exp/stan/nmr/au/src/multi_zgvd: In function 'AU_program':
 +/opt/topspin1.3/exp/stan/nmr/au/src/multi_zgvd:47:13: error: invalid storage class for function 'PrintExpTime'
 +exit 1
 +/opt/topspin1.3/exp/stan/nmr/au/src/multi_zgvt: In function 'AU_program':
 +/opt/topspin1.3/exp/stan/nmr/au/src/multi_zgvt:54:13: error: invalid storage class for function 'PrintExpTime'
 +exit 1
 +/opt/topspin1.3/exp/stan/nmr/au/src/multicmd: In function 'AU_program':
 +/opt/topspin1.3/exp/stan/nmr/au/src/multicmd:39:13: error: invalid storage class for function 'PrintExpTime'
 +exit 1
 +/opt/topspin1.3/exp/stan/nmr/au/src/multiexpt: In function 'AU_program':
 +/opt/topspin1.3/exp/stan/nmr/au/src/multiexpt:29:13: error: invalid storage class for function 'PrintExpTime'
 +exit 1
 +/opt/topspin1.3/exp/stan/nmr/au/src/multizg: In function 'AU_program':
 +/opt/topspin1.3/exp/stan/nmr/au/src/multizg:38:13: error: invalid storage class for function 'PrintExpTime'
 +exit 1
 +/opt/topspin1.3/exp/stan/nmr/au/src/noemult: In function 'AU_program':
 +/opt/topspin1.3/exp/stan/nmr/au/src/noemult:53:13: error: invalid storage class for function 'PrintExpTime'
 +exit 1
 +/opt/topspin1.3/exp/stan/nmr/au/src/pulsecalib: In function 'AU_program':
 +/opt/topspin1.3/exp/stan/nmr/au/src/pulsecalib:123:16: error: invalid storage class for function 'pulsecalib'
 +/opt/topspin1.3/exp/stan/nmr/au/src/pulsecalib: At top level:
 +/opt/topspin1.3/exp/stan/nmr/au/src/pulsecalib:290:1: error: static declaration of 'pulsecalib' follows non-static declaration
 +/opt/topspin1.3/exp/stan/nmr/au/src/pulsecalib:124:12: note: previous implicit declaration of 'pulsecalib' was here
 +exit 1
 +/opt/topspin1.3/exp/stan/nmr/au/src/setproj:149:5: error: conflicting types for 'sorter'
 +/opt/topspin1.3/exp/stan/nmr/au/src/setproj:35:5: note: previous declaration of 'sorter' was here
 +exit 1
 +/opt/topspin1.3/exp/stan/nmr/au/src/simplex: In function 'AU_program':
 +/opt/topspin1.3/exp/stan/nmr/au/src/simplex:262:12: error: invalid storage class for function 'SIMPLEX_program'
 +/opt/topspin1.3/exp/stan/nmr/au/src/simplex: At top level:
 +/opt/topspin1.3/exp/stan/nmr/au/src/simplex:468:12: error: static declaration of 'SIMPLEX_program' follows non-static declaration
 +/opt/topspin1.3/exp/stan/nmr/au/src/simplex:265:9: note: previous implicit declaration of 'SIMPLEX_program' was here
 +exit 1
 +</file>
 +
 +<note important>
 +Ara que els programes AU s'han compilat correctament, el problema és que quan els executo, tots donen el següent missatge d'error:
 +
 +<file>
 +ILLEGAL TERMINATION of process 28469
 +due to signal 11
 +</file>
 +
 +potser pels motius explicats [[http://superuser.com/questions/908377/ldd-with-32-bit-binaries-on-64-bit-system-runs-but-wont-report | aquí]]: //ldd with 32-bit binaries on 64-bit system - runs but won't report//.
 +</note>
 +
 +===== Canvi de /lib32 a /lib/i386-linux-gnu? =====
 +
 +Fins ara he provat a compilar/enllaçar els programes amb les biblioteques disponibles a ///lib32///, però a les futures versions de Debian multiarquitectura (per exemple, 32- i 64-bits) les biblioteques de 32-bits estaran a ///lib/i386-linux-gnu///.
 +
 +Potser convindria redefinir les variables d'entorn //LIBRARY_PATH// i //LD_LIBRARY_PATH// per fer servir aquesta nova carpeta, i recompilar els programes AU amb les noves biblioteques. Podria ser que això resolgués els problemes de segmentation fault?
 +
 +La definició actual de la variable d'entorn //LD_LIBRARY_PATH// és
 +
 +<file>
 +# topspin -e echo $LD_LIBRARY_PATH
 +/usr/lib32:/lib32::/opt/topspin1.3/prog/shlib:/opt/topspin1.3/prog/lib:/opt/topspin1.3/prog/shlib:/opt/topspin1.3/prog/lib:/opt/topspin1.3/gnu/lib
 +</file>
 +
 +i les biblioteques emprades pel programa AU ''au_zg'' estan disponibles a ///lib32// i ///lib/i386-linux-gnu///
 +
 +<file>
 +# ls -l /lib32/libm* /lib/i386-linux-gnu/libm*
 +-rw-r--r-- 1 root root 148920 Feb 22  2015 /lib32/libm-2.13.so
 +-rw-r--r-- 1 root root  13884 Feb 22  2015 /lib32/libmemusage.so
 +lrwxrwxrwx 1 root root     12 Feb 22  2015 /lib32/libm.so.6 -> libm-2.13.so
 +-rw-r--r-- 1 root root 148992 Feb 22  2015 /lib/i386-linux-gnu/libm-2.13.so
 +-rw-r--r-- 1 root root  13960 Feb 22  2015 /lib/i386-linux-gnu/libmemusage.so
 +lrwxrwxrwx 1 root root     12 Feb 22  2015 /lib/i386-linux-gnu/libm.so.6 -> libm-2.13.so
 +
 +# ls -l /lib32/libdl* /lib/i386-linux-gnu/libdl*
 +-rw-r--r-- 1 root root 9768 Feb 22  2015 /lib32/libdl-2.13.so
 +lrwxrwxrwx 1 root root   13 Feb 22  2015 /lib32/libdl.so.2 -> libdl-2.13.so
 +-rw-r--r-- 1 root root 9844 Feb 22  2015 /lib/i386-linux-gnu/libdl-2.13.so
 +lrwxrwxrwx 1 root root   13 Feb 22  2015 /lib/i386-linux-gnu/libdl.so.2 -> libdl-2.13.so
 +
 +# ls -l /lib32/libc* /lib/i386-linux-gnu/libc*
 +-rwxr-xr-x 1 root root 1445980 Feb 22  2015 /lib32/libc-2.13.so
 +-rw-r--r-- 1 root root  185852 Feb 22  2015 /lib32/libcidn-2.13.so
 +lrwxrwxrwx 1 root root      15 Feb 22  2015 /lib32/libcidn.so.1 -> libcidn-2.13.so
 +-rw-r--r-- 1 root root   38336 Feb 22  2015 /lib32/libcrypt-2.13.so
 +lrwxrwxrwx 1 root root      16 Feb 22  2015 /lib32/libcrypt.so.1 -> libcrypt-2.13.so
 +lrwxrwxrwx 1 root root      12 Feb 22  2015 /lib32/libc.so.6 -> libc-2.13.so
 +-rwxr-xr-x 1 root root 1360008 Feb 22  2015 /lib/i386-linux-gnu/libc-2.13.so
 +-rw-r--r-- 1 root root  185928 Feb 22  2015 /lib/i386-linux-gnu/libcidn-2.13.so
 +lrwxrwxrwx 1 root root      15 Feb 22  2015 /lib/i386-linux-gnu/libcidn.so.1 -> libcidn-2.13.so
 +lrwxrwxrwx 1 root root      17 Feb 22  2015 /lib/i386-linux-gnu/libcom_err.so.2 -> libcom_err.so.2.1
 +-rw-r--r-- 1 root root   13836 Feb 22  2015 /lib/i386-linux-gnu/libcom_err.so.2.1
 +-rw-r--r-- 1 root root   38416 Feb 22  2015 /lib/i386-linux-gnu/libcrypt-2.13.so
 +lrwxrwxrwx 1 root root      16 Feb 22  2015 /lib/i386-linux-gnu/libcrypt.so.1 -> libcrypt-2.13.so
 +lrwxrwxrwx 1 root root      12 Feb 22  2015 /lib/i386-linux-gnu/libc.so.6 -> libc-2.13.so
 +</file>
 +
 +===== Canvi de /lib32 a /lib/i386-linux-gnu =====
 +
 +Provo a canviar a multiarch amb la instal·lació de paquets de l'arquitectura //i386//. Això hauria de comportar l'eliminació de les biblioteques a ///lib32// i ///usr/lib32// entre altres.
 +
 +Instal·lo //libxmu-dev//
 +
 +<file>
 +n# apt-get -s install libxmu-dev
 +Reading package lists... Done
 +Building dependency tree       
 +Reading state information... Done
 +The following extra packages will be installed:
 +  libice-dev libpthread-stubs0 libpthread-stubs0-dev libsm-dev libx11-dev libx11-doc libxau-dev libxcb1-dev libxdmcp-dev libxext-dev libxmu-headers libxt-dev x11proto-core-dev
 +  x11proto-input-dev x11proto-kb-dev x11proto-xext-dev xorg-sgml-doctools xtrans-dev
 +Suggested packages:
 +  libice-doc libsm-doc libxcb-doc libxext-doc libxt-doc
 +The following NEW packages will be installed:
 +  libice-dev libpthread-stubs0 libpthread-stubs0-dev libsm-dev libx11-dev libx11-doc libxau-dev libxcb1-dev libxdmcp-dev libxext-dev libxmu-dev libxmu-headers libxt-dev
 +  x11proto-core-dev x11proto-input-dev x11proto-kb-dev x11proto-xext-dev xorg-sgml-doctools xtrans-dev
 +0 upgraded, 19 newly installed, 0 to remove and 0 not upgraded.
 +</file>
 +
 +i //libxmu-dev:i386//
 +
 +<file>
 +# apt-get -s install libxmu-dev:i386
 +Reading package lists... Done
 +Building dependency tree       
 +Reading state information... Done
 +The following extra packages will be installed:
 +  libice-dev:i386 libpthread-stubs0:i386 libpthread-stubs0-dev:i386 libsm-dev:i386 libx11-dev:i386 libxau-dev:i386 libxcb1-dev:i386 libxdmcp-dev:i386 libxext-dev:i386
 +  libxt-dev:i386
 +Suggested packages:
 +  libice-doc:i386 libsm-doc:i386 libxcb-doc:i386 libxext-doc:i386 libxt-doc:i386
 +The following NEW packages will be installed:
 +  libice-dev:i386 libpthread-stubs0:i386 libpthread-stubs0-dev:i386 libsm-dev:i386 libx11-dev:i386 libxau-dev:i386 libxcb1-dev:i386 libxdmcp-dev:i386 libxext-dev:i386
 +  libxmu-dev:i386 libxt-dev:i386
 +0 upgraded, 11 newly installed, 0 to remove and 0 not upgraded.
 +</file>
 +
 +Miro de substituir els paquets instal·lats que contenen //lib32// al nom,
 +  * lib32gcc1 - GCC support library (32 bit Version)
 +  * lib32gomp1 - GCC OpenMP (GOMP) support library (32bit)
 +  * lib32itm1 - GNU Transactional Memory Library (32bit)
 +  * lib32quadmath0 - GCC Quad-Precision Math Library (32bit)
 +
 +==== lib32gcc1 i lib32itm1 ====
 +
 +L'eliminació del paquet //lib32gcc1// comporta l'eliminació de:
 +   * gcc-4.7-multilib
 +   * gcc-multilib
 +   * lib32gcc1
 +   * lib32itm1
 +
 +però l'eliminació de //lib32itm1// també comporta l'eliminació de //gcc-4.7-multilib// i //gcc-multilib//. Així doncs, tiro endavant,
 +
 +<file>
 +# apt-get remove lib32gcc1
 +Reading package lists... Done
 +Building dependency tree       
 +Reading state information... Done
 +The following packages will be REMOVED:
 +  gcc-4.7-multilib gcc-multilib lib32gcc1 lib32itm1
 +0 upgraded, 0 newly installed, 4 to remove and 0 not upgraded.
 +:
 +Removing gcc-multilib [4:4.7.2-1]
 +Removing gcc-4.7-multilib [4.7.2-5]
 +Removing lib32itm1 [4.7.2-5]
 +Removing lib32gcc1 [1:4.7.2-5]
 +</file>
 +
 +==== lib32gomp1 i lib32quadmath0 ====
 +
 +L'eliminació del paquet //lib32gomp1// fa que el paquet //lib32quadmath0// ja no sigui necessari i que també es pugui eliminar. Així doncs, elimino //lib32gomp1//
 +
 +<file>
 +# apt-get remove lib32gomp1
 +Reading package lists... Done
 +Building dependency tree       
 +Reading state information... Done
 +The following package was automatically installed and is no longer required:
 +  lib32quadmath0
 +Use 'apt-get autoremove' to remove it.
 +The following packages will be REMOVED:
 +  lib32gomp1
 +0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
 +Removing lib32gomp1 [4.7.2-5]
 +</file>
 +
 +i //lib32quadmath0//
 +
 +<file>
 +# apt-get remove lib32quadmath0
 +Reading package lists... Done
 +Building dependency tree       
 +Reading state information... Done
 +The following packages will be REMOVED:
 +  lib32quadmath0
 +0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
 +Removing lib32quadmath0 [4.7.2-5]
 +</file>
 +
 +==== Migració de /lib32 a /lib/i386-linux-gnu ====
 +
 +Miro de substituir les biblioteques instal·lades a la carpeta ///lib32// per les seves equivalents a instal·lar dins la carpeta ///lib/i386-linux-gnu//.
 +
 +<file>
 +# ls /lib32
 +ld-2.13.so               libc-2.13.so      libdl-2.13.so   libnsl.so.1            libnss_files.so.2       libnss_nis.so.2     librt-2.13.so        libutil.so.1
 +ld-linux.so.2            libcidn-2.13.so   libdl.so.2      libnss_compat-2.13.so  libnss_hesiod-2.13.so   libpcprofile.so     librt.so.1
 +libanl-2.13.so           libcidn.so.1      libm-2.13.so    libnss_compat.so.2     libnss_hesiod.so.2      libpthread-2.13.so  libSegFault.so
 +libanl.so.1              libcrypt-2.13.so  libmemusage.so  libnss_dns-2.13.so     libnss_nis-2.13.so      libpthread.so.0     libthread_db-1.0.so
 +libBrokenLocale-2.13.so  libcrypt.so.1     libm.so.6       libnss_dns.so.2        libnss_nisplus-2.13.so  libresolv-2.13.so   libthread_db.so.1
 +libBrokenLocale.so.1     libc.so.6         libnsl-2.13.so  libnss_files-2.13.so   libnss_nisplus.so.2     libresolv.so.2      libutil-2.13.so
 +</file>
 +
 +=== libc6-i386 ===
 +
 +Vull eliminar //libc6-i386// perquè el paquet equivalent //libc6:i386// ja està instal·lat, però quan provo de fer-ho em surt el missatge "The following packages will be REMOVED: libc6-dev-i386 libc6-i386" i això comportaria substituir //libc6-dev-i386// per //libc6-dev-i386//, però la instal·lació de //libc6-dev:i386// comportaria alhora canvis addicionals,
 +
 +<file>
 +# apt-get -s install libc6:i386 libc6-dev:i386
 +Reading package lists... Done
 +Building dependency tree       
 +Reading state information... Done
 +libc6:i386 is already the newest version.
 +libc6:i386 set to manually installed.
 +Suggested packages:
 +  glibc-doc:i386 manpages-dev:i386
 +Recommended packages:
 +  gcc:i386 c-compiler:i386
 +The following packages will be REMOVED:
 +  binutils flashplugin-nonfree gcc gcc-4.7
 +The following NEW packages will be installed:
 +  libc6-dev:i386 linux-libc-dev:i386
 +0 upgraded, 2 newly installed, 4 to remove and 0 not upgraded.
 +Remv flashplugin-nonfree [1:3.2+wheezy1]
 +Remv gcc [4:4.7.2-1]
 +Remv gcc-4.7 [4.7.2-5]
 +Remv binutils [2.22-8+deb7u2]
 +Inst linux-libc-dev:i386 (3.2.68-1+deb7u4 Debian-Security:7.0/oldstable [i386])
 +Inst libc6-dev:i386 (2.13-38+deb7u8 Debian-Security:7.0/oldstable, Debian:7.9/oldstable [i386])
 +Conf linux-libc-dev:i386 (3.2.68-1+deb7u4 Debian-Security:7.0/oldstable [i386])
 +Conf libc6-dev:i386 (2.13-38+deb7u8 Debian-Security:7.0/oldstable, Debian:7.9/oldstable [i386])
 +</file>
 +
 +que van més enllà del que considero raonable.
 +
 +Així doncs,
 +  * per ara elimino els paquets //libc6-i386// i //libc6-dev-i386//, i
 +  * no instal·lo el paquet //libc6-devel:i386//.
 + 
 +Com que s'ha instal·lat el paquet //libc6:i386//, confio en que moltes de les biblioteques estaran disponibles a la nova ubicació ///lib/i386-linux-gnu//.
 +
 +<file>
 +# apt-get remove libc6-dev-i386
 +Reading package lists... Done
 +Building dependency tree       
 +Reading state information... Done
 +The following package was automatically installed and is no longer required:
 +  libc6-i386
 +Use 'apt-get autoremove' to remove it.
 +The following packages will be REMOVED:
 +  libc6-dev-i386
 +0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
 +After this operation, 5,473 kB disk space will be freed.
 +Do you want to continue [Y/n]? 
 +(Reading database ... 136418 files and directories currently installed.)
 +Removing libc6-dev-i386 ...
 +
 +# apt-get autoremove
 +Reading package lists... Done
 +Building dependency tree       
 +Reading state information... Done
 +The following packages will be REMOVED:
 +  libc6-i386
 +0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
 +After this operation, 9,239 kB disk space will be freed.
 +Do you want to continue [Y/n]? 
 +(Reading database ... 136282 files and directories currently installed.)
 +Removing libc6-i386 ...
 +</file>
  
informatica/hp_xw4300_500_topspin13_au_compilation.txt · Last modified: 2020/07/09 12:02 by miquel