I'm trying to upgrade my yottadb 1.30, which runs perfect on my raspi 4 to 1.38.
But the installation fails and when i try to start yottadb i get the following message:
root@RASPI4:/usr/local/lib/yottadb/r138# ./yottadb -di
%YDB-E-DLLNOOPEN, Failed to load external dynamic library /usr/local/lib/yottadb/r138/libyottadb.so
%YDB-E-TEXT, /usr/local/lib/yottadb/r138/libyottadb.so: cannot open shared object file: No such file or directory
libyottadb.so is at the right place, but i can't be loaded.
As you see in the output below the 1.30-version is a "PIE executable", while the 1.38-version is a "shared library". I suspect a wrong compilation.
Can anyone help?
root@RASPI4:/usr/lib/arm-linux-gnueabihf# file /usr/local/lib/yottadb/r138/libyottadb.so
/usr/local/lib/yottadb/r138/libyottadb.so: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, BuildID[sha1]=883ffad004b0b87df2407f62384a39d9d7482dff, not stripped
root@RASPI4:/usr/lib/arm-linux-gnueabihf# file /usr/local/lib/yottadb/r130/libyottadb.so
/usr/local/lib/yottadb/r130/libyottadb.so: ELF 32-bit LSB pie executable, ARM, EABI5 version 1 (SYSV), dynamically linked, BuildID[sha1]=22a1a2cc3bf12b4e0056cc24bf7c41488324f3f2, not stripped
The full log seems to be too long so I try the post the relevant parts: root-RASPI4:/tmp/tmp# ./ydbinstall.sh --force-install --utf8m _LCASE.m _LCLCOL.m _MPIECE.m _OD.m _OH.m _PATCODE.m _PEEKBYNAME.m _RANDSTR.m _RCE.m _RD.m _RI.m _RO.m _RSE.m _RSEL.m _SQROOT.m _T.m _TI.m _TO.m _TRIM.m _UCASE.m _UTF2HEX.m _XCMD.m _YDBENV.m _YDBJNLF.m _YDBPROCSTUCKEXEC.m _YGBLSTAT.m _ZMVALID.m _
configure.sh failed. Output follows
YottaDB Configuration Script
Copyright 2009, 2014 Fidelity Information Services, Inc. Use of this software is restricted by the provisions of your license agreement. Copyright (c) 2017-2019 YottaDB LLC and/or its subsidiaries.
All rights reserved.
What user account should own the files? (root) root
What group should own the files? (root) root
Should execution of YottaDB be restricted to this group? (y or n) N
In what directory should YottaDB be installed? /usr/local/lib/yottadb/r138
Directory /usr/local/lib/yottadb/r138 does not exist. Do you wish to create it as part of
this installation? (y or n) y
Installing YottaDB....
Should UTF-8 support be installed? (y or n) y
Should an ICU version other than the default be used? (y or n) y
Enter ICU version (at least ICU version 3.6 is required. Enter as <major-ver>.<minor-ver>): 65
Should deprecated components be installed? (y or n) y
All of the YottaDB MUMPS routines are distributed with uppercase names.
You can create lowercase copies of these routines if you wish, but
to avoid problems with compatibility in the future, consider keeping
only the uppercase versions of the files.
Do you want uppercase and lowercase versions of the MUMPS routines? (y or n) Y
...
+ cp -p ydb_tls_interface.h /usr/local/lib/yottadb/r138
+ chown root /usr/local/lib/yottadb/r138/ydb_tls_interface.h
+ cp -p ydbcrypt_interface.h /usr/local/lib/yottadb/r138
+ chown root /usr/local/lib/yottadb/r138/ydbcrypt_interface.h
+ [ -f /usr/bin/chcon ]
+ chcon -t texrel_shlib_t /usr/local/lib/yottadb/r138/libyottadb.so
chcon: der unvollständige Kontext kann nicht auf Datei '/usr/local/lib/yottadb/r138/libyottadb.so' ohne Label angewendt werden
+ exit 0
+ mkdir /usr/local/lib/yottadb/r138/plugin
mkdir: das Verzeichnis „/usr/local/lib/yottadb/r138/plugin“ kann nicht angelegt werden: Die Datei existiert bereits
...
+ ./yottadb -noignore DECOMMENT.m GTMHELP.m SCANTYPEDEFS.m _CONVBASEUTIL.m _D.m _DATE.m _DH.m _DO.m _DSEWRAP.m _DUMPFHEAD.m _EXP.m _FL.m _FREECNT.m _G.m _GBLDEF.m _GC.m _GCE.m _GD.m _GED.m _GI.m _GO.m _GSE.m _GSEL.m _H.m _HD.m _HEX2UTF.m _HO.m _JSWRITE.
%YDB-E-DLLNOOPEN, Failed to load external dynamic library /usr/local/lib/yottadb/r138/libyottadb.so
%YDB-E-TEXT, /usr/local/lib/yottadb/r138/libyottadb.so: cannot open shared object file: No such file or directory
...
+ /bin/echo -e YottaDB installation FAILED -- please review error messages
+ /bin/echo -e
+ chmod -R a-x /usr/local/lib/yottadb/r138
+ exit 1
YottaDB installation aborted due to above error. Run ydbinstall.sh --help for detailed option list
root-RASPI4:/tmp/tmp# uname -a
Linux RASPI4 5.10.103-v7l+ #1529 SMP Tue Mar 8 12:24:00 GMT 2022 armv7l GNU/Linux
# ulimit -n 4096 <-- I have to do this, else the compilation fails earlier
# ./ydbinstall.sh --from-source --utf8
...
[100%] Generating gdehelp.dat, gdehelp.gld
[100%] Generating mupiphelp.dat, mupiphelp.gld
%YDB-E-INVOBJFILE, Cannot ZLINK object file /tmp/tmp.rdZkMRDdL5/YDB/build/GDE.o due to unexpected format
%YDB-I-TEXT, Object compiled with CHSET=M which is different from $ZCHSET CMake Error at /tmp/tmp.rdZkMRDdL5/YDB/sr_unix/mumps.cmake:43 (message): Command </tmp/tmp.rdZkMRDdL5/YDB/build/yottadb -run;GDE INPUT_FILE;/tmp/tmp.rdZkMRDdL5/YDB/build/gtmhelp.in1 > failed with result ='253'
make[2]: *** [CMakeFiles/place_files.dir/build.make:1142: gtmhelp.dat] Fehler 1
make[2]: *** Es wird auf noch nicht beendete Prozesse gewartet....
[100%] Generating dsehelp.dat, dsehelp.gld
%YDB-E-INVOBJFILE, Cannot ZLINK object file /tmp/tmp.rdZkMRDdL5/YDB/build/GDE.o due to unexpected format
%YDB-I-TEXT, Object compiled with CHSET=M which is different from $ZCHSET CMake Error at /tmp/tmp.rdZkMRDdL5/YDB/sr_unix/mumps.cmake:43 (message): Command </tmp/tmp.rdZkMRDdL5/YDB/build/yottadb -run;GDE INPUT_FILE;/tmp/tmp.rdZkMRDdL5/YDB/build/gdehelp.in1 > failed with result ='253'
make[2]: *** [CMakeFiles/place_files.dir/build.make:1259: gdehelp.dat] Fehler 1
%YDB-E-INVOBJFILE, Cannot ZLINK object file /tmp/tmp.rdZkMRDdL5/YDB/build/GDE.o due to unexpected format
%YDB-I-TEXT, Object compiled with CHSET=M which is different from $ZCHSET CMake Error at /tmp/tmp.rdZkMRDdL5/YDB/sr_unix/mumps.cmake:43 (message): Command </tmp/tmp.rdZkMRDdL5/YDB/build/yottadb -run;GDE INPUT_FILE;/tmp/tmp.rdZkMRDdL5/YDB/build/mupiphelp.in1 > failed with result ='253'
make[2]: *** [CMakeFiles/place_files.dir/build.make:1376: mupiphelp.dat] Fehler 1
%YDB-E-INVOBJFILE, Cannot ZLINK object file /tmp/tmp.rdZkMRDdL5/YDB/build/GDE.o due to unexpected format
%YDB-I-TEXT, Object compiled with CHSET=M which is different from $ZCHSET CMake Error at /tmp/tmp.rdZkMRDdL5/YDB/sr_unix/mumps.cmake:43 (message): Command </tmp/tmp.rdZkMRDdL5/YDB/build/yottadb -run;GDE INPUT_FILE;/tmp/tmp.rdZkMRDdL5/YDB/build/dsehelp.in1 > failed with result ='253'
make[2]: *** [CMakeFiles/place_files.dir/build.make:1493: dsehelp.dat] Fehler 1
make[1]: *** [CMakeFiles/Makefile2:139: CMakeFiles/place_files.dir/all] Fehler 2
make: *** [Makefile:130: all] Fehler 2
Build failed. Exiting. Temporary directory /tmp/tmp.rdZkMRDdL5 will not be deleted.
YottaDB installation aborted due to above error. Run ydbinstall.sh --help for detailed option list
Okay, then I tried:
# ulimit -n 4096
# export ydb_chset=M
# ./ydbinstall.sh --from-source --utf8
that worked, but before running my routines I had to set
# export ydb_chset=UTF-8
Thank you Bhaskar for pointing me to this option.
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 493 |
Nodes: | 16 (2 / 14) |
Uptime: | 30:45:57 |
Calls: | 9,740 |
Calls today: | 30 |
Files: | 13,741 |
Messages: | 6,183,133 |
Posted today: | 2 |