Aquesta part és tan llarga i específica que s'ha mogut a una pàgina a part.
Al procés de configuració del TopSpin vaig deixar per més endavant la compilació dels programes AU
cplbruk all per compilar tots els programes AU de Bruker.cpluser all per compilar tots els programes AU dels usuaris.però alguns d'aquests programes són necessaris per adquirir espectres i no puc comprovar el funcionament del programa i espectròmetre fins completar aquest pas.
A la base de dades Bruker Knowledge Base hi ha dos registres relacionats amb la compilació de programes AU,
Executo la comanda cplbruk per compilar programes AU de Bruker i provo a compilar el programa 2df1shift però dóna el següent error,
/opt/topspin1.3/gnu/bin/../lib/gcc-lib/i686-pc-linux-gnu/3.3.5/../../../../i686-pc-linux-gnu/bin/ld: crt1.o: No such file: No such file or directory collect2: ld returned 1 exit status
Aquest error està relacionat amb l'Item #9557 esmentat més amunt, i per resoldre'l em descarrego la nova versió del programa makeau.
Per evitar altres problemes, també em descarrego les noves versions d'algunes programes AU disponibles a l'Item #9641
L'intent de compilació amb la nova versió del programa makeau tampoc funciona, però en aquest cas la solució és trivial: a la nova versió s'assumeix que el directori d'instal·lació del TopSpin és /opt/topspin mentre que en el nostre cas és /opt/topspin1.3. L'error es resol editant la primera línia del programa makeau,
# diff makeau makeau.BKUP-20150923 1c1 < #! /opt/topspin1.3/perl/bin/perl -I/opt/topspin1.3/perl/lib/perl5 --- > #! /opt/topspin/perl/bin/perl -I/opt/topspin/perl/lib/perl5
Per altra banda, per tenir més informació sobre el procés de compilació, decideixo executar el programa makeau directament des d'una terminal i no des de dins del TopSpin. Per això cal definir algunes variables d'entorn,
# export XWINNMRHOME=/opt/topspin1.3 # export PATH=$PATH:/opt/topspin1.3/gnu/bin/ # export LD_LIBRARY_PATH=/usr/lib32 # export LIBRARY_PATH=/usr/lib32:$LIBRARY_PATH # printenv LIBRARY_PATH LD_LIBRARY_PATH XWINNMRHOME PATH /usr/lib32: /usr/lib32 /opt/topspin1.3 /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/topspin1.3/gnu/bin/
Un cop definides aquestes variables, torno a executar el programa, però encara no aconsegueix compilar el programa i dóna el següent error,
# ./makeau -show -verbose au_zg makeau ($Revision: 1.108.2.2 $ ) OperatingSystem=LINUX Using GNU Compiler /opt/topspin1.3/gnu/bin/gcc and /opt/topspin1.3/gnu/bin/c++ Setup for native compiler CC=gcc LD=c++ : /opt/topspin1.3/gnu/bin/../lib/gcc-lib/i686-pc-linux-gnu/3.3.5/../../../../i686-pc-linux-gnu/bin/ld:/usr/lib32/libc.so: file format not recognized; treating as linker script /opt/topspin1.3/gnu/bin/../lib/gcc-lib/i686-pc-linux-gnu/3.3.5/../../../../i686-pc-linux-gnu/bin/ld:/usr/lib32/libc.so:5: parse error collect2: ld returned 1 exit status exit status is: 256 1
Provo el suggeriment que trobo aquí i aquí, i faig el següent canvi al fitxer /usr/lib32/libc.so
# diff libc.so libc.so.BKUP-20150924 5c5 < GROUP ( /lib32/libc.so.6 /usr/lib32/libc_nonshared.a ) --- > GROUP ( /lib32/libc.so.6 /usr/lib32/libc_nonshared.a AS_NEEDED ( /lib32/ld-linux.so.2 ) )
Llavors, finalment aconsegueixo compilar el programa au_zg,
# ./makeau -show -verbose au_zg
makeau ($Revision: 1.108.2.2 $ )
OperatingSystem=LINUX
Using GNU Compiler /opt/topspin1.3/gnu/bin/gcc and /opt/topspin1.3/gnu/bin/c++
Setup for native compiler
CC=gcc
LD=c++
Installed RPM packages:
Can't exec "rpm": No such file or directory at ./makeau line 312.
used kernel release: 3.2.0-4-amd64
Known paths:
Known paths:
.
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
/opt/topspin1.3/gnu/bin/
/opt/topspin1.3/prog/bin
Current environment:
HOME=/root
XAUTHORITY=/var/run/gdm3/auth-for-sermnadmin-MBTzen/database
SUDO_GID=1000
LD_LIBRARY_PATH=/usr/lib32:/lib32
DISPLAY=:0
LIBRARY_PATH=/usr/lib32
_RLD_ARGS=-ignore_unresolved
MAIL=/var/mail/root
PWD=/opt/topspin1.3/exp/stan/nmr/au
LANG=en_US.utf8
USER=root
XWINNMRHOME=/opt/topspin1.3
LOGNAME=root
USERNAME=root
SHLVL=1
OLDPWD=/opt/topspin1.3/exp/stan/nmr
_=./makeau
PATH=.:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/topspin1.3/gnu/bin/:/opt/topspin1.3/prog/bin
COLORTERM=gnome-terminal
SUDO_USER=sermnadmin
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;4
1:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=
01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31
:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01
;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=
01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*
.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01
;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=0
1;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.fla
c=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*
.spx=00;36:*.xspf=00;36:
SHELL=/bin/bash
TERM=screen
SUDO_COMMAND=/bin/bash
SUDO_UID=1000
LibraryExtension: .so
StaticLibraryExtension: .a
SharedLibraryExtension: .so
LibraryPath: shlib
StaticLibraryPath: lib
SharedLibraryPath: shlib
ObjectExtension: .o
BinaryExtension:
BinaryExtension:
Check for /opt/topspin1.3/exp/stan/nmr/au/paravision_1.3.pl
Check for /opt/topspin1.3/exp/stan/nmr/au/user_1.3.pl
submacro(/opt/topspin1.3/prog/include/inc /opt/topspin1.3/exp/stan/nmr/au/src/au_zg /opt/topspin1.3/prog/au/bin/au_zg.E)
No INC_FLAGS found: using default library list
Used libraries:
auliba
aulibp
chparmod
sxutil
libhpcu
libBpsu
ConvSf
libSwish
libVtu
lib_sbsb
lib_tty
librrs
liblrs
Bis
convpw
editpar
libacq
util
aulibp
uni
par
libPath
libcb
libUtil
libCUtil
libShapeIO
libFunc
libJCamp
libCt
libQTP
Included Libraries
auliba.so
aulibp.so
chparmod.so
sxutil.so
libhpcu.so
libBpsu.so
ConvSf.so
libSwish.so
libVtu.so
lib_sbsb.so
lib_tty.so
librrs.so
liblrs.so
Bis.so
convpw.so
editpar.so
libacq.so
util.so
aulibp.so
uni.so
par.so
libPath.so
libcb.so
libUtil.so
libCUtil.so
libShapeIO.so
libFunc.so
libJCamp.so
libCt.so
libQTP.so
auliba.a
aulibp.a
chparmod.a
libacq.a
editpar.a
util.a
uni.a
libPath.a
libcb.a
Combine /opt/topspin1.3/exp/stan/nmr/au/vorspann /opt/topspin1.3/prog/au/bin/au_zg.E > /opt/topspin1.3/prog/au/bin/au_zg.c
Include Option: -I/opt/topspin1.3/prog/include
chdir /opt/topspin1.3/prog/au/bin
Opersys=LINUX
gcc -c -DLINUX_INTEL -D_REENTRANT -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -g -m32 -w -v -I/opt/topspin1.3/prog/include au_zg
.c
Using built-in specs.
COLLECT_GCC=gcc
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.7.2-5' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs -
-enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.7 --enable-shared --enable-linker-build-id --wi
th-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.
7 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --ena
ble-gnu-unique-object --enable-plugin --enable-objc-gc --with-arch-32=i586 --with-tune=generic --enable-checking=release --build=
x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.7.2 (Debian 4.7.2-5)
COLLECT_GCC_OPTIONS='-c' '-D' 'LINUX_INTEL' '-D' '_REENTRANT' '-D' '_FILE_OFFSET_BITS=64' '-D' '_LARGEFILE_SOURCE' '-g' '-m32' '-
w' '-v' '-I' '/opt/topspin1.3/prog/include' '-mtune=generic' '-march=i586'
/usr/lib/gcc/x86_64-linux-gnu/4.7/cc1 -quiet -v -I /opt/topspin1.3/prog/include -imultilib 32 -imultiarch i386-linux-gnu -D LINU
X_INTEL -D _REENTRANT -D _FILE_OFFSET_BITS=64 -D _LARGEFILE_SOURCE au_zg.c -quiet -dumpbase au_zg.c -m32 -mtune=generic -march=i5
86 -auxbase au_zg -g -w -version -o /tmp/cc4rFa4B.s
GNU C (Debian 4.7.2-5) version 4.7.2 (x86_64-linux-gnu)
compiled by GNU C version 4.7.2, GMP version 5.0.5, MPFR version 3.1.0-p10, MPC version 0.9
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring nonexistent directory "/usr/local/include/i386-linux-gnu"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../x86_64-linux-gnu/include"
ignoring nonexistent directory "/usr/include/i386-linux-gnu"
#include "..." search starts here:
#include <...> search starts here:
/opt/topspin1.3/prog/include
/usr/lib/gcc/x86_64-linux-gnu/4.7/include
/usr/local/include
/usr/lib/gcc/x86_64-linux-gnu/4.7/include-fixed
/usr/include
End of search list.
GNU C (Debian 4.7.2-5) version 4.7.2 (x86_64-linux-gnu)
compiled by GNU C version 4.7.2, GMP version 5.0.5, MPFR version 3.1.0-p10, MPC version 0.9
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 7fa7c2a970be5e19ce72b2057c14800d
COLLECT_GCC_OPTIONS='-c' '-D' 'LINUX_INTEL' '-D' '_REENTRANT' '-D' '_FILE_OFFSET_BITS=64' '-D' '_LARGEFILE_SOURCE' '-g' '-m32' '-
w' '-v' '-I' '/opt/topspin1.3/prog/include' '-mtune=generic' '-march=i586'
as -v -W -I /opt/topspin1.3/prog/include --32 -o au_zg.o /tmp/cc4rFa4B.s
GNU assembler version 2.22 (x86_64-linux-gnu) using BFD version (GNU Binutils for Debian) 2.22
COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x
86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/
LIBRARY_PATH=/usr/lib32/../lib32/:/usr/lib/gcc/x86_64-linux-gnu/4.7/32/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../i386-linux-gnu
/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib32/:/lib/i386-linux-gnu/:/lib/../lib32/:/usr/lib/i386-linux-gnu/:/usr/lib/../l
ib32/:/usr/lib32/:/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../i386-linux-gnu/:/usr/lib/gcc/x86_
64-linux-gnu/4.7/../../../:/lib/i386-linux-gnu/:/lib/:/usr/lib/i386-linux-gnu/:/usr/lib/
COLLECT_GCC_OPTIONS='-c' '-D' 'LINUX_INTEL' '-D' '_REENTRANT' '-D' '_FILE_OFFSET_BITS=64' '-D' '_LARGEFILE_SOURCE' '-g' '-m32' '-
w' '-v' '-I' '/opt/topspin1.3/prog/include' '-mtune=generic' '-march=i586'
exit=0 sig=0 dump=0
Used Libraries
auliba.so aulibp.so chparmod.so sxutil.so libhpcu.so libBpsu.so ConvSf.so libSwish.so libVtu.so lib_sbsb.so lib_tty.so librrs.so
liblrs.so Bis.so convpw.so editpar.so libacq.so util.so aulibp.so uni.so par.so libPath.so libcb.so libUtil.so libCUtil.so libSha
peIO.so libFunc.so libJCamp.so libCt.so libQTP.so auliba.a aulibp.a chparmod.a libacq.a editpar.a util.a uni.a par.a libPath.a li
bcb.a
c++ -m32 -Wl,-warn-common,-warn-constructors -L/opt/topspin1.3/prog/shlib -lstdc++ -v -s /opt/topspin1.3/prog/au/bin/au_zg.o
/opt/topspin1.3/prog/shlib/auliba.so /opt/topspin1.3/prog/shlib/aulibp.so /opt/topspin1.3/prog/shlib/chparmod.so /opt/topspin1.3/
prog/shlib/sxutil.so /opt/topspin1.3/prog/shlib/libhpcu.so /opt/topspin1.3/prog/shlib/libBpsu.so /opt/topspin1.3/prog/shlib/ConvS
f.so /opt/topspin1.3/prog/shlib/libSwish.so /opt/topspin1.3/prog/shlib/libVtu.so /opt/topspin1.3/prog/shlib/lib_sbsb.so /opt/tops
pin1.3/prog/shlib/lib_tty.so /opt/topspin1.3/prog/shlib/librrs.so /opt/topspin1.3/prog/shlib/liblrs.so /opt/topspin1.3/prog/shlib
/Bis.so /opt/topspin1.3/prog/shlib/convpw.so /opt/topspin1.3/prog/shlib/editpar.so /opt/topspin1.3/prog/shlib/libacq.so /opt/tops
pin1.3/prog/shlib/util.so /opt/topspin1.3/prog/shlib/aulibp.so /opt/topspin1.3/prog/shlib/uni.so /opt/topspin1.3/prog/shlib/par.s
o /opt/topspin1.3/prog/shlib/libPath.so /opt/topspin1.3/prog/shlib/libcb.so /opt/topspin1.3/prog/shlib/libUtil.so /opt/topspin1.3
/prog/shlib/libCUtil.so /opt/topspin1.3/prog/shlib/libShapeIO.so /opt/topspin1.3/prog/shlib/libFunc.so /opt/topspin1.3/prog/shlib
/libJCamp.so /opt/topspin1.3/prog/shlib/libCt.so /opt/topspin1.3/prog/shlib/libQTP.so /opt/topspin1.3/prog/lib/auliba.a /opt/tops
pin1.3/prog/lib/aulibp.a /opt/topspin1.3/prog/lib/chparmod.a /opt/topspin1.3/prog/lib/libacq.a /opt/topspin1.3/prog/lib/editpar.a
/opt/topspin1.3/prog/lib/util.a /opt/topspin1.3/prog/lib/uni.a /opt/topspin1.3/prog/lib/par.a /opt/topspin1.3/prog/lib/libPath.a
/opt/topspin1.3/prog/lib/libcb.a -lm -ldl -o au_zg
c++ -m32 -Wl,-warn-common,-warn-constructors -L/opt/topspin1.3/prog/shlib -lstdc++ -v -s /opt/topspin1.3/prog/au/bin/au_zg.o
/opt/topspin1.3/prog/shlib/auliba.so /opt/topspin1.3/prog/shlib/aulibp.so /opt/topspin1.3/prog/shlib/chparmod.so /opt/topspin1.3/
prog/shlib/sxutil.so /opt/topspin1.3/prog/shlib/libhpcu.so /opt/topspin1.3/prog/shlib/libBpsu.so /opt/topspin1.3/prog/shlib/ConvS
f.so /opt/topspin1.3/prog/shlib/libSwish.so /opt/topspin1.3/prog/shlib/libVtu.so /opt/topspin1.3/prog/shlib/lib_sbsb.so /opt/tops
pin1.3/prog/shlib/lib_tty.so /opt/topspin1.3/prog/shlib/librrs.so /opt/topspin1.3/prog/shlib/liblrs.so /opt/topspin1.3/prog/shlib
/Bis.so /opt/topspin1.3/prog/shlib/convpw.so /opt/topspin1.3/prog/shlib/editpar.so /opt/topspin1.3/prog/shlib/libacq.so /opt/tops
pin1.3/prog/shlib/util.so /opt/topspin1.3/prog/shlib/aulibp.so /opt/topspin1.3/prog/shlib/uni.so /opt/topspin1.3/prog/shlib/par.s
o /opt/topspin1.3/prog/shlib/libPath.so /opt/topspin1.3/prog/shlib/libcb.so /opt/topspin1.3/prog/shlib/libUtil.so /opt/topspin1.3
/prog/shlib/libCUtil.so /opt/topspin1.3/prog/shlib/libShapeIO.so /opt/topspin1.3/prog/shlib/libFunc.so /opt/topspin1.3/prog/shlib
/libJCamp.so /opt/topspin1.3/prog/shlib/libCt.so /opt/topspin1.3/prog/shlib/libQTP.so /opt/topspin1.3/prog/lib/auliba.a /opt/tops
pin1.3/prog/lib/aulibp.a /opt/topspin1.3/prog/lib/chparmod.a /opt/topspin1.3/prog/lib/libacq.a /opt/topspin1.3/prog/lib/editpar.a
/opt/topspin1.3/prog/lib/util.a /opt/topspin1.3/prog/lib/uni.a /opt/topspin1.3/prog/lib/par.a /opt/topspin1.3/prog/lib/libPath.a
/opt/topspin1.3/prog/lib/libcb.a -lm -ldl -o au_zg
Reading specs from /opt/topspin1.3/gnu/bin/../lib/gcc-lib/i686-pc-linux-gnu/3.3.5/specs
Configured with: ../gcc-3.3.5/configure --prefix=/pr/gnu --enable-threads=posix --enable-__cxa_atexit --enable-languages=c,c++ --
with-cpu=pentium4
Thread model: posix
gcc version 3.3.5
/opt/topspin1.3/gnu/bin/../lib/gcc-lib/i686-pc-linux-gnu/3.3.5/collect2 --eh-frame-hdr -m elf_i386 -dynamic-linker /lib/ld-linux
.so.2 -o au_zg -s /usr/lib32/crt1.o /usr/lib32/crti.o /opt/topspin1.3/gnu/bin/../lib/gcc-lib/i686-pc-linux-gnu/3.3.5/crtbegin.o -
L/opt/topspin1.3/prog/shlib -L/opt/topspin1.3/gnu/bin/../lib/gcc-lib/i686-pc-linux-gnu/3.3.5 -L/opt/topspin1.3/gnu/bin/../lib/gcc
-lib -L/usr/lib32 -L/opt/topspin1.3/gnu/bin/../lib/gcc-lib/i686-pc-linux-gnu/3.3.5/../../../../i686-pc-linux-gnu/lib -L/opt/topsp
in1.3/gnu/bin/../lib/gcc-lib/i686-pc-linux-gnu/3.3.5/../../.. -warn-common -warn-constructors -lstdc++ /opt/topspin1.3/prog/au/bi
n/au_zg.o /opt/topspin1.3/prog/shlib/auliba.so /opt/topspin1.3/prog/shlib/aulibp.so /opt/topspin1.3/prog/shlib/chparmod.so /opt/t
opspin1.3/prog/shlib/sxutil.so /opt/topspin1.3/prog/shlib/libhpcu.so /opt/topspin1.3/prog/shlib/libBpsu.so /opt/topspin1.3/prog/s
hlib/ConvSf.so /opt/topspin1.3/prog/shlib/libSwish.so /opt/topspin1.3/prog/shlib/libVtu.so /opt/topspin1.3/prog/shlib/lib_sbsb.so
/opt/topspin1.3/prog/shlib/lib_tty.so /opt/topspin1.3/prog/shlib/librrs.so /opt/topspin1.3/prog/shlib/liblrs.so /opt/topspin1.3/
prog/shlib/Bis.so /opt/topspin1.3/prog/shlib/convpw.so /opt/topspin1.3/prog/shlib/editpar.so /opt/topspin1.3/prog/shlib/libacq.so
/opt/topspin1.3/prog/shlib/util.so /opt/topspin1.3/prog/shlib/aulibp.so /opt/topspin1.3/prog/shlib/uni.so /opt/topspin1.3/prog/s
hlib/par.so /opt/topspin1.3/prog/shlib/libPath.so /opt/topspin1.3/prog/shlib/libcb.so /opt/topspin1.3/prog/shlib/libUtil.so /opt/
topspin1.3/prog/shlib/libCUtil.so /opt/topspin1.3/prog/shlib/libShapeIO.so /opt/topspin1.3/prog/shlib/libFunc.so /opt/topspin1.3/
prog/shlib/libJCamp.so /opt/topspin1.3/prog/shlib/libCt.so /opt/topspin1.3/prog/shlib/libQTP.so /opt/topspin1.3/prog/lib/auliba.a
/opt/topspin1.3/prog/lib/aulibp.a /opt/topspin1.3/prog/lib/chparmod.a /opt/topspin1.3/prog/lib/libacq.a /opt/topspin1.3/prog/lib
/editpar.a /opt/topspin1.3/prog/lib/util.a /opt/topspin1.3/prog/lib/uni.a /opt/topspin1.3/prog/lib/par.a /opt/topspin1.3/prog/lib
/libPath.a /opt/topspin1.3/prog/lib/libcb.a -ldl -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /opt/topspin1.3/gnu/bin/../lib/gcc-
lib/i686-pc-linux-gnu/3.3.5/crtend.o /usr/lib32/crtn.o
exit status is: 0 0
i quan comprovo el fitxer creat trobo que és un executable de 32-bits
# file /opt/topspin1.3/prog/au/bin/au_zg /opt/topspin1.3/prog/au/bin/au_zg: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.26, stripped
i si afegim a la variable LD_LIBRARY_PATH les carpetes definides a l'entorn d'execució del TopSpin (veure fitxer /opt/topspin1.3/prog/bin/topspin)
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/topspin1.3/prog/pvshlib:/opt/topspin1.3/prog/shlib
el programa ldd ens mostra que totes les biblioteques emprades pel programa au_zg estan disponibles,
# ldd /opt/topspin1.3/prog/au/bin/au_zg
linux-gate.so.1 => (0xf77e0000)
libstdc++.so.5 => /opt/topspin1.3/prog/shlib/libstdc++.so.5 (0xf7723000)
auliba.so => /opt/topspin1.3/prog/shlib/auliba.so (0xf76ed000)
aulibp.so => /opt/topspin1.3/prog/shlib/aulibp.so (0xf76df000)
chparmod.so => /opt/topspin1.3/prog/shlib/chparmod.so (0xf76d7000)
sxutil.so => /opt/topspin1.3/prog/shlib/sxutil.so (0xf7681000)
libhpcu.so => /opt/topspin1.3/prog/shlib/libhpcu.so (0xf7671000)
libBpsu.so => /opt/topspin1.3/prog/shlib/libBpsu.so (0xf7666000)
ConvSf.so => /opt/topspin1.3/prog/shlib/ConvSf.so (0xf7660000)
libSwish.so => /opt/topspin1.3/prog/shlib/libSwish.so (0xf7657000)
libVtu.so => /opt/topspin1.3/prog/shlib/libVtu.so (0xf764e000)
lib_sbsb.so => /opt/topspin1.3/prog/shlib/lib_sbsb.so (0xf763a000)
lib_tty.so => /opt/topspin1.3/prog/shlib/lib_tty.so (0xf762a000)
librrs.so => /opt/topspin1.3/prog/shlib/librrs.so (0xf7621000)
liblrs.so => /opt/topspin1.3/prog/shlib/liblrs.so (0xf761f000)
Bis.so => /opt/topspin1.3/prog/shlib/Bis.so (0xf75f5000)
convpw.so => /opt/topspin1.3/prog/shlib/convpw.so (0xf75ef000)
editpar.so => /opt/topspin1.3/prog/shlib/editpar.so (0xf757c000)
libacq.so => /opt/topspin1.3/prog/shlib/libacq.so (0xf754f000)
util.so => /opt/topspin1.3/prog/shlib/util.so (0xf7535000)
uni.so => /opt/topspin1.3/prog/shlib/uni.so (0xf7527000)
par.so => /opt/topspin1.3/prog/shlib/par.so (0xf751b000)
libPath.so => /opt/topspin1.3/prog/shlib/libPath.so (0xf7510000)
libcb.so => /opt/topspin1.3/prog/shlib/libcb.so (0xf7505000)
libUtil.so => /opt/topspin1.3/prog/shlib/libUtil.so (0xf74df000)
libCUtil.so => /opt/topspin1.3/prog/shlib/libCUtil.so (0xf74dd000)
libShapeIO.so => /opt/topspin1.3/prog/shlib/libShapeIO.so (0xf74ca000)
libFunc.so => /opt/topspin1.3/prog/shlib/libFunc.so (0xf7491000)
libJCamp.so => /opt/topspin1.3/prog/shlib/libJCamp.so (0xf745e000)
libCt.so => /opt/topspin1.3/prog/shlib/libCt.so (0xf745a000)
libQTP.so => /opt/topspin1.3/prog/shlib/libQTP.so (0xf744c000)
libdl.so.2 => /lib32/libdl.so.2 (0xf7448000)
libm.so.6 => /lib32/libm.so.6 (0xf7422000)
libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf7404000)
libc.so.6 => /lib32/libc.so.6 (0xf729f000)
/lib/ld-linux.so.2 (0xf77e1000)
De totes formes, ara hauré d'esperar a tenir accés al TopSpin per poder comprovar si realment funciona el programa au_zg i l'adquisició d'espectres.
Per poder compilar els programes AU des de dins el TopSpin, caldrà comprovar si cal afegir al programa makeau les definicions de variables d'entorn
o si n'hi ha prou amb definir-les al fitxer de configuració de l'entorn de l'usuari (fitxers ~/.bashrc o ~/.bash_profile).
Consultar:
declare -xp per veure les variables d'entorn definides a la sessió de Gnome.Afegeixo la variable $LD_LIBRARY_PATH al final de la definició de la variable LD_LIBRARY_PATH,
# 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
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,
# 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
Executo la comanda cplbruk all per compilar tots els programes AU i els compila tots excepte els esmentats a l'Item#: 9641. Some AU programs do not compile with native compiler
/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
Ara que els programes AU s'han compilat correctament, el problema és que quan els executo, tots donen el següent missatge d'error:
ILLEGAL TERMINATION of process 28469 due to signal 11
potser pels motius explicats aquí: ldd with 32-bit binaries on 64-bit system - runs but won't report.
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
# 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
i les biblioteques emprades pel programa AU au_zg estan disponibles a /lib32 i /lib/i386-linux-gnu/
# 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
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
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.
i libxmu-dev:i386
# 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.
Miro de substituir els paquets instal·lats que contenen lib32 al nom,
L'eliminació del paquet lib32gcc1 comporta l'eliminació de:
però l'eliminació de lib32itm1 també comporta l'eliminació de gcc-4.7-multilib i gcc-multilib. Així doncs, tiro endavant,
# 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]
L'eliminació del paquet lib32gomp1 fa que el paquet lib32quadmath0 ja no sigui necessari i que també es pugui eliminar. Així doncs, elimino lib32gomp1
# 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]
i lib32quadmath0
# 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]
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.
# 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
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,
# 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])
que van més enllà del que considero raonable.
Així doncs,
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.
# 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 ...