Discussion:
[rescue] problems compiling istatd and/or Bjango istatserverlinux on Solaris 11.3
Jonathan Patschke
2018-05-21 18:59:05 UTC
Permalink
dns32 /usr/local/src/i/istatd-0.5.8 580 # ldd ./istatd
libstdc++.so.6 => /usr/lib/libstdc++.so.6
libstdc++.so.6 (GLIBCXX_3.4.20) => (version not found)
During the build, is it using ld as LD, or is it using g++? The Solaris
linker is occasionally simplistic, but the gcc toolchain should know how
to pass the right magic biscuit to the linker proper.
main.cpp:328:5: error: ``EC_KEY'' was not declared in this scope
EC_KEY *ecdh = EC_KEY_new_by_curve_name(NID_X9_62_prime256v1);
^
main.cpp:328:13: error: ``ecdh'' was not declared in this scope
EC_KEY *ecdh = EC_KEY_new_by_curve_name(NID_X9_62_prime256v1);
^
main.cpp:328:65: error: ``EC_KEY_new_by_curve_name'' was not declared in this
scope
EC_KEY *ecdh = EC_KEY_new_by_curve_name(NID_X9_62_prime256v1);
^
main.cpp:335:21: error: ``EC_KEY_free'' was not declared in this scope
EC_KEY_free(ecdh);
Your OpenSSL is either too old, or has elliptic curve cryptography
disabled. I just checked on a Solaris 11.3 box, and it doesn't have that
API call. You'll need at least 1.0.2 (Solaris ships with 1.0.0).

The world of POSIX SSL/TLS is even more of a dumpster fire than usual
right now, with the API breakages in OpenSSL 1.0 -> 1.1 and all the
competing forks (LibreSSL et al) compatibly breaking their APIs at
different points in development.
--
Jonathan Patschke
Austin, TX
USA
_______________________________________________
rescue list - http://www.sunhelp.org/mailman/listinfo/rescue
Jerry Kemp
2018-05-21 14:27:38 UTC
Permalink
Wording is a little confusing. Sorry about that. The iPhone app works great. Its the server/daemon end of things that I'm
experiencing compile issues on. Also, but not necessarily relevant, have got successful compiles on a couple of other (Unix) platforms.

Jerry
I recently discovered a neat iPhone app for viewing server statistics, and have been playing around with it at home. There are
several versions/forks, and for this part, I'm referencing these (2) source code downloads
https://github.com/tiwilliam/istatd
and
https://github.com/tiwilliam/istatd/downloads
specifically, the latest code, version 0.5.8
/usr/local/src/i/istatd-0.5.8 579 # file istatd
istatd: ELF 32-bit LSB executable 80386 Version 1, dynamically linked, not stripped
dns32 /usr/local/src/i/istatd-0.5.8 580 # ldd ./istatd
libsocket.so.1 => /usr/lib/libsocket.so.1
libnsl.so.1 => /usr/lib/libnsl.so.1
libxml2.so.2 => /usr/lib/libxml2.so.2
libkstat.so.1 => /usr/lib/libkstat.so.1
libstdc++.so.6 => /usr/lib/libstdc++.so.6
libstdc++.so.6 (GLIBCXX_3.4.20) => (version not found)
libm.so.2 => /usr/lib/libm.so.2
librt.so.1 => /usr/lib/librt.so.1
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1
libc.so.1 => /usr/lib/libc.so.1
libmp.so.2 => /usr/lib/libmp.so.2
libucrypto.so.1 => /lib/libucrypto.so.1
libpthread.so.1 => /usr/lib/libpthread.so.1
libz.so.1 => /usr/lib/libz.so.1
libelf.so.1 => /usr/lib/libelf.so.1
libcryptoutil.so.1 => /usr/lib/libcryptoutil.so.1
/usr/local/src/i/istatd-0.5.8 581 # ./istatd --help
ld.so.1: istatd: fatal: libstdc++.so.6: version 'GLIBCXX_3.4.20' not found (required by file istatd)
ld.so.1: istatd: fatal: libstdc++.so.6: open failed: No such file or directory
Killed
/usr/local/src/i/istatd-0.5.8 582 #
The story starts out similar, once Pre-reqs are met, the configure goes fine, however, the compile doesn't get past the first line
before generating, what appears to be SSL related errors.
/usr/local/src/i/istatserverlinux-master 586 # gmake
gmake all-recursive
gmake[1]: Entering directory `/usr/local/src/i/istatserverlinux-master'
Making all in .
gmake[2]: Entering directory `/usr/local/src/i/istatserverlinux-master'
gmake[2]: Leaving directory `/usr/local/src/i/istatserverlinux-master'
Making all in src
gmake[2]: Entering directory `/usr/local/src/i/istatserverlinux-master/src'
gmake[3]: Entering directory `/usr/local/src/i/istatserverlinux-master/src'
depbase=`echo main.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
c++ -DHAVE_CONFIG_H -I. -I.. -Wall -I /usr/local/include -I/usr/include/libxml2 -g -O2 -MT main.o -MD -MP -MF $depbase.Tpo -c -o
main.o main.cpp &&\
mv -f $depbase.Tpo $depbase.Po
main.cpp:328:5: error: EC_KEY was not declared in this scope
EC_KEY *ecdh = EC_KEY_new_by_curve_name(NID_X9_62_prime256v1);
^
main.cpp:328:13: error: ecdh was not declared in this scope
EC_KEY *ecdh = EC_KEY_new_by_curve_name(NID_X9_62_prime256v1);
^
main.cpp:328:65: error: EC_KEY_new_by_curve_name was not declared in this scope
EC_KEY *ecdh = EC_KEY_new_by_curve_name(NID_X9_62_prime256v1);
^
main.cpp:335:21: error: EC_KEY_free was not declared in this scope
EC_KEY_free(ecdh);
^
gmake[3]: *** [main.o] Error 1
gmake[3]: Leaving directory `/usr/local/src/i/istatserverlinux-master/src'
gmake[2]: *** [all-recursive] Error 1
gmake[2]: Leaving directory `/usr/local/src/i/istatserverlinux-master/src'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/usr/local/src/i/istatserverlinux-master'
gmake: *** [all] Error 2
/usr/local/src/i/istatserverlinux-master 587 #
=================================================================================================================
Wondering if anyone see's anything obvious I'm looking over, or has located another istat server that functionally compiles on Solaris?
Thanks,
Jerry
_______________________________________________
rescue list - http://www.sunhelp.org/mailman/listinfo/rescue
_______________________________________________
rescue list - http://www.sunhelp.org/mailman/listinfo/rescue
Jerry Kemp
2018-05-21 19:22:23 UTC
Permalink
breaking this into (2) parts, an istatd part, and a Bjango istatserverlinux part for easier readability.

Jonathan,

here is a copy-n-paste of the compile. I don't see LD being called, so I am presuming that it is the latter suggestion.



The complete compile process here:
===================================
/usr/local/src/i/istatd-0.5.8 593 # make
make all-recursive
Making all in probes
gcc -DHAVE_CONFIG_H -I. -I.. -Wall -I/usr/include/libxml2 -g -O2 -MT kstat.o -MD -MP -MF .deps/kstat.Tpo -c -o kstat.o kstat.c
mv -f .deps/kstat.Tpo .deps/kstat.Po
gcc -DHAVE_CONFIG_H -I. -I.. -Wall -I/usr/include/libxml2 -g -O2 -MT swapctl.o -MD -MP -MF .deps/swapctl.Tpo -c -o swapctl.o
swapctl.c
mv -f .deps/swapctl.Tpo .deps/swapctl.Po
gcc -DHAVE_CONFIG_H -I. -I.. -Wall -I/usr/include/libxml2 -g -O2 -MT procfs.o -MD -MP -MF .deps/procfs.Tpo -c -o procfs.o procfs.c
mv -f .deps/procfs.Tpo .deps/procfs.Po
gcc -DHAVE_CONFIG_H -I. -I.. -Wall -I/usr/include/libxml2 -g -O2 -MT getloadavg.o -MD -MP -MF .deps/getloadavg.Tpo -c -o
getloadavg.o getloadavg.c
mv -f .deps/getloadavg.Tpo .deps/getloadavg.Po
gcc -DHAVE_CONFIG_H -I. -I.. -Wall -I/usr/include/libxml2 -g -O2 -MT statfs.o -MD -MP -MF .deps/statfs.Tpo -c -o statfs.o statfs.c
mv -f .deps/statfs.Tpo .deps/statfs.Po
gcc -DHAVE_CONFIG_H -I. -I.. -Wall -I/usr/include/libxml2 -g -O2 -MT kvm.o -MD -MP -MF .deps/kvm.Tpo -c -o kvm.o kvm.c
mv -f .deps/kvm.Tpo .deps/kvm.Po
gcc -DHAVE_CONFIG_H -I. -I.. -Wall -I/usr/include/libxml2 -g -O2 -MT sysctl.o -MD -MP -MF .deps/sysctl.Tpo -c -o sysctl.o sysctl.c
mv -f .deps/sysctl.Tpo .deps/sysctl.Po
gcc -DHAVE_CONFIG_H -I. -I.. -Wall -I/usr/include/libxml2 -g -O2 -MT lm_sensors3.o -MD -MP -MF .deps/lm_sensors3.Tpo -c -o
lm_sensors3.o lm_sensors3.c
mv -f .deps/lm_sensors3.Tpo .deps/lm_sensors3.Po
gcc -DHAVE_CONFIG_H -I. -I.. -Wall -I/usr/include/libxml2 -g -O2 -MT lm_sensors4.o -MD -MP -MF .deps/lm_sensors4.Tpo -c -o
lm_sensors4.o lm_sensors4.c
mv -f .deps/lm_sensors4.Tpo .deps/lm_sensors4.Po
gcc -DHAVE_CONFIG_H -I. -I.. -Wall -I/usr/include/libxml2 -g -O2 -MT qnap_temp.o -MD -MP -MF .deps/qnap_temp.Tpo -c -o
qnap_temp.o qnap_temp.c
mv -f .deps/qnap_temp.Tpo .deps/qnap_temp.Po
gcc -DHAVE_CONFIG_H -I. -I.. -Wall -I/usr/include/libxml2 -g -O2 -MT perfstat.o -MD -MP -MF .deps/perfstat.Tpo -c -o perfstat.o
perfstat.c
mv -f .deps/perfstat.Tpo .deps/perfstat.Po
rm -f libprobes.a
ar cru libprobes.a kstat.o swapctl.o procfs.o getloadavg.o statfs.o kvm.o sysctl.o lm_sensors3.o lm_sensors4.o qnap_temp.o
perfstat.o
ranlib libprobes.a
Making all in libfslabel
gcc -DHAVE_CONFIG_H -I. -I.. -Wall -I/usr/include/libxml2 -g -O2 -MT fslabel.o -MD -MP -MF .deps/fslabel.Tpo -c -o fslabel.o
fslabel.c
mv -f .deps/fslabel.Tpo .deps/fslabel.Po
gcc -DHAVE_CONFIG_H -I. -I.. -Wall -I/usr/include/libxml2 -g -O2 -MT ext.o -MD -MP -MF .deps/ext.Tpo -c -o ext.o ext.c
mv -f .deps/ext.Tpo .deps/ext.Po
rm -f libfslabel.a
ar cru libfslabel.a fslabel.o ext.o
ranlib libfslabel.a
gcc -DHAVE_CONFIG_H -I. -I.. -Wall -I/usr/include/libxml2 -g -O2 -MT fsident.o -MD -MP -MF .deps/fsident.Tpo -c -o fsident.o
fsident.c
mv -f .deps/fsident.Tpo .deps/fsident.Po
gcc -g -O2 -rdynamic -o fsident fsident.o libfslabel.a -lsocket -lnsl -lxml2 -lkstat
Making all in .
g++ -DHAVE_CONFIG_H -I. -Wall -I/usr/include/libxml2 -g -O2 -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.cpp
mv -f .deps/main.Tpo .deps/main.Po
g++ -DHAVE_CONFIG_H -I. -Wall -I/usr/include/libxml2 -g -O2 -MT conf.o -MD -MP -MF .deps/conf.Tpo -c -o conf.o conf.cpp
mv -f .deps/conf.Tpo .deps/conf.Po
g++ -DHAVE_CONFIG_H -I. -Wall -I/usr/include/libxml2 -g -O2 -MT argument.o -MD -MP -MF .deps/argument.Tpo -c -o argument.o
argument.cpp
mv -f .deps/argument.Tpo .deps/argument.Po
g++ -DHAVE_CONFIG_H -I. -Wall -I/usr/include/libxml2 -g -O2 -MT switchboard.o -MD -MP -MF .deps/switchboard.Tpo -c -o
switchboard.o switchboard.cpp
mv -f .deps/switchboard.Tpo .deps/switchboard.Po
g++ -DHAVE_CONFIG_H -I. -Wall -I/usr/include/libxml2 -g -O2 -MT socket.o -MD -MP -MF .deps/socket.Tpo -c -o socket.o socket.cpp
mv -f .deps/socket.Tpo .deps/socket.Po
g++ -DHAVE_CONFIG_H -I. -Wall -I/usr/include/libxml2 -g -O2 -MT socketset.o -MD -MP -MF .deps/socketset.Tpo -c -o socketset.o
socketset.cpp
mv -f .deps/socketset.Tpo .deps/socketset.Po
g++ -DHAVE_CONFIG_H -I. -Wall -I/usr/include/libxml2 -g -O2 -MT clientset.o -MD -MP -MF .deps/clientset.Tpo -c -o clientset.o
clientset.cpp
mv -f .deps/clientset.Tpo .deps/clientset.Po
g++ -DHAVE_CONFIG_H -I. -Wall -I/usr/include/libxml2 -g -O2 -MT isr.o -MD -MP -MF .deps/isr.Tpo -c -o isr.o isr.cpp
mv -f .deps/isr.Tpo .deps/isr.Po
g++ -DHAVE_CONFIG_H -I. -Wall -I/usr/include/libxml2 -g -O2 -MT daemon.o -MD -MP -MF .deps/daemon.Tpo -c -o daemon.o daemon.cpp
mv -f .deps/daemon.Tpo .deps/daemon.Po
g++ -DHAVE_CONFIG_H -I. -Wall -I/usr/include/libxml2 -g -O2 -MT stats.o -MD -MP -MF .deps/stats.Tpo -c -o stats.o stats.cpp
mv -f .deps/stats.Tpo .deps/stats.Po
g++ -DHAVE_CONFIG_H -I. -Wall -I/usr/include/libxml2 -g -O2 -MT token.o -MD -MP -MF .deps/token.Tpo -c -o token.o token.cpp
mv -f .deps/token.Tpo .deps/token.Po
g++ -DHAVE_CONFIG_H -I. -Wall -I/usr/include/libxml2 -g -O2 -MT utility.o -MD -MP -MF .deps/utility.Tpo -c -o utility.o utility.cpp
mv -f .deps/utility.Tpo .deps/utility.Po
g++ -g -O2 -rdynamic -o istatd main.o conf.o argument.o switchboard.o socket.o socketset.o clientset.o isr.o daemon.o stats.o
token.o utility.o probes/libprobes.a libfslabel/libfslabel.a -lsocket -lnsl -lxml2 -lkstat
Making all in resource
/usr/local/src/i/istatd-0.5.8 594 #
Post by Jonathan Patschke
dns32 /usr/local/src/i/istatd-0.5.8 580 # ldd ./istatd
libstdc++.so.6 => /usr/lib/libstdc++.so.6
libstdc++.so.6 (GLIBCXX_3.4.20) => (version not found)
During the build, is it using ld as LD, or is it using g++? The Solaris
linker is occasionally simplistic, but the gcc toolchain should know how
to pass the right magic biscuit to the linker proper.
_______________________________________________
rescue list - http://www.sunhelp.org/mailman/listinfo/rescue
Jonathan Patschke
2018-05-21 20:11:22 UTC
Permalink
Post by Jerry Kemp
here is a copy-n-paste of the compile. I don't see LD being called, so I am
presuming that it is the latter suggestion.
That looks reasonble. Is your gcc the one in /usr/bin or some other gcc?

I've just spun up a Solaris 11.3 VM and installed gcc, gnu-make, autoconf,
automake, libtool, and git. I checked out the repository you pointed out
and got slightly simpler compilation output (mo -M[TDPF] flags).

I then got this from ldd:

***@ai-vm:~/build/istatd$ ldd istatd
libsocket.so.1 => /lib/libsocket.so.1
libnsl.so.1 => /lib/libnsl.so.1
libxml2.so.2 => /lib/libxml2.so.2
libkstat.so.1 => /lib/libkstat.so.1
libstdc++.so.6 => /usr/lib/libstdc++.so.6
libm.so.2 => /lib/libm.so.2
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1
libc.so.1 => /lib/libc.so.1
libmp.so.2 => /lib/libmp.so.2
libucrypto.so.1 => /lib/libucrypto.so.1
libpthread.so.1 => /lib/libpthread.so.1
libz.so.1 => /lib/libz.so.1
libelf.so.1 => /lib/libelf.so.1
libcryptoutil.so.1 => /lib/libcryptoutil.so.1

This makes me think that you have competing libraries/tools installed.
--
Jonathan Patschke
Austin, TX
USA
_______________________________________________
rescue list - http://www.sunhelp.org/mailman/listinfo/rescue
Jerry Kemp
2018-05-21 20:18:33 UTC
Permalink
please see inline comments
Post by Jerry Kemp
here is a copy-n-paste of the compile. I don't see LD being called, so I am presuming that it is the latter suggestion.
That looks reasonble. Is your gcc the one in /usr/bin or some other gcc? <--yes
/root 503 # which gcc
/bin/gcc

/root 504 # which g++
/bin/g++

/root 505 # /usr/bin/gcc -v

Using built-in specs.
COLLECT_GCC=/usr/bin/gcc
COLLECT_LTO_WRAPPER=/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4/lto-wrapper
Target: i386-pc-solaris2.11
Configured with: /export/home/ulhg/workspace/nightly-evaluation-build/build/i386-evaluation/components/gcc4/gcc-4.9.4/configure
--prefix=/usr/gcc/4.9 --mandir=/usr/gcc/4.9/share/man --bindir=/usr/gcc/4.9/bin --sbindir=/usr/gcc/4.9/sbin
--libdir=/usr/gcc/4.9/lib --infodir=/usr/gcc/4.9/share/info --libexecdir=/usr/gcc/4.9/lib --enable-languages=c,c++,fortran,objc
--enable-shared --enable-initfini-array --disable-rpath --with-system-zlib --with-build-config=no
--with-gmp-include=/usr/include/gmp --with-mpfr-include=/usr/include/mpfr --without-gnu-ld --with-ld=/usr/bin/ld --with-gnu-as
--with-as=/usr/gnu/bin/as --enable-tls 'BOOT_CFLAGS=-g -O2' i386-pc-solaris2.11
Thread model: posix
gcc version 4.9.4 (GCC)

/root 506 # /usr/bin/g++ -v

Using built-in specs.
COLLECT_GCC=/usr/bin/g++
COLLECT_LTO_WRAPPER=/usr/gcc/4.9/lib/gcc/i386-pc-solaris2.11/4.9.4/lto-wrapper
Target: i386-pc-solaris2.11
Configured with: /export/home/ulhg/workspace/nightly-evaluation-build/build/i386-evaluation/components/gcc4/gcc-4.9.4/configure
--prefix=/usr/gcc/4.9 --mandir=/usr/gcc/4.9/share/man --bindir=/usr/gcc/4.9/bin --sbindir=/usr/gcc/4.9/sbin
--libdir=/usr/gcc/4.9/lib --infodir=/usr/gcc/4.9/share/info --libexecdir=/usr/gcc/4.9/lib --enable-languages=c,c++,fortran,objc
--enable-shared --enable-initfini-array --disable-rpath --with-system-zlib --with-build-config=no
--with-gmp-include=/usr/include/gmp --with-mpfr-include=/usr/include/mpfr --without-gnu-ld --with-ld=/usr/bin/ld --with-gnu-as
--with-as=/usr/gnu/bin/as --enable-tls 'BOOT_CFLAGS=-g -O2' i386-pc-solaris2.11
Thread model: posix
gcc version 4.9.4 (GCC)

/root 507 #
I've just spun up a Solaris 11.3 VM and installed gcc, gnu-make, autoconf,
automake, libtool, and git. I checked out the repository you pointed out
and got slightly simpler compilation output (mo -M[TDPF] flags).
libsocket.so.1 => /lib/libsocket.so.1
libnsl.so.1 => /lib/libnsl.so.1
libxml2.so.2 => /lib/libxml2.so.2
libkstat.so.1 => /lib/libkstat.so.1
libstdc++.so.6 => /usr/lib/libstdc++.so.6
libm.so.2 => /lib/libm.so.2
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1
libc.so.1 => /lib/libc.so.1
libmp.so.2 => /lib/libmp.so.2
libucrypto.so.1 => /lib/libucrypto.so.1
libpthread.so.1 => /lib/libpthread.so.1
libz.so.1 => /lib/libz.so.1
libelf.so.1 => /lib/libelf.so.1
libcryptoutil.so.1 => /lib/libcryptoutil.so.1
This makes me think that you have competing libraries/tools installed.
certainly possible.

not sure where the GLIBCXX stuff is originating from

/usr/local/src/i 511 # cd istatd-0.5.8
dns32 /usr/local/src/i/istatd-0.5.8 512 # ldd ./istatd
libsocket.so.1 => /usr/lib/libsocket.so.1
libnsl.so.1 => /usr/lib/libnsl.so.1
libxml2.so.2 => /usr/lib/libxml2.so.2
libkstat.so.1 => /usr/lib/libkstat.so.1
libstdc++.so.6 => /usr/lib/libstdc++.so.6
libstdc++.so.6 (GLIBCXX_3.4.20) => (version not found)

Similar to your environment, this is also a recently spun up VM on VirtualBox.

Jerry
_______________________________________________
rescue list - http://www.sunhelp.org/mailman/listinfo/rescue
Jerry Kemp
2018-05-21 19:22:48 UTC
Permalink
Hello Jonathan,

OK, here is the default output from Solaris 11.3. Seems it ships with 1.0.1.p

===============================================
/usr/local/src/i/istatd-0.5.8 603 # openssl version

OpenSSL 1.0.1p 9 Jul 2015

/usr/local/src/i/istatd-0.5.8 604 #

===============================================

Not sure how to determine if elliptic curve cryptography has been disabled. Will need to read up on that on.

It seems that if I understand your comments correctly, a compile of a current OpenSSL, then pointing my compile towards that
installation, should fix my compile issue of the Bjango istatserverlinux, or, minimally, get me to the next issue.

Thank you for the reply,

Jerry
Post by Jonathan Patschke
main.cpp:328:5: error: ``EC_KEY'' was not declared in this scope
EC_KEY *ecdh = EC_KEY_new_by_curve_name(NID_X9_62_prime256v1);
^
main.cpp:328:13: error: ``ecdh'' was not declared in this scope
EC_KEY *ecdh = EC_KEY_new_by_curve_name(NID_X9_62_prime256v1);
^
main.cpp:328:65: error: ``EC_KEY_new_by_curve_name'' was not declared in this scope
EC_KEY *ecdh = EC_KEY_new_by_curve_name(NID_X9_62_prime256v1);
^
main.cpp:335:21: error: ``EC_KEY_free'' was not declared in this scope
EC_KEY_free(ecdh);
Your OpenSSL is either too old, or has elliptic curve cryptography
disabled. I just checked on a Solaris 11.3 box, and it doesn't have that
API call. You'll need at least 1.0.2 (Solaris ships with 1.0.0).
The world of POSIX SSL/TLS is even more of a dumpster fire than usual
right now, with the API breakages in OpenSSL 1.0 -> 1.1 and all the
competing forks (LibreSSL et al) compatibly breaking their APIs at
different points in development.
_______________________________________________
rescue list - http://www.sunhelp.org/mailman/listinfo/rescue
Jonathan Patschke
2018-05-21 20:23:25 UTC
Permalink
Post by Jerry Kemp
OK, here is the default output from Solaris 11.3. Seems it ships with 1.0.1.p
1.0.1p9 is correct.
Post by Jerry Kemp
Not sure how to determine if elliptic curve cryptography has been
disabled. Will need to read up on that on.
I've checked the header files in my Solaris 11.3 VM. The calls aren't
there. They were removed by Oracle as a result of how the OpenSSL package
was configured:

***@ai-vm:/usr/include/openssl$ grep ECDH opensslconf.h
#ifndef OPENSSL_NO_ECDH
# define OPENSSL_NO_ECDH
# if defined(OPENSSL_NO_ECDH) && !defined(NO_ECDH)
# define NO_ECDH
Post by Jerry Kemp
It seems that if I understand your comments correctly, a compile of a
current OpenSSL, then pointing my compile towards that installation,
should fix my compile issue of the Bjango istatserverlinux, or,
minimally, get me to the next issue.
Be careful in doing that, if this is a machine you care about and
frequently build software for. Multiple installed versions of OpenSSL can
cause all sorts of subtle pain.

Make sure you install your side-compile in somewhere that ld.so and the
compiler will never look unless specifically asked.
--
Jonathan Patschke
Austin, TX
USA
_______________________________________________
rescue list - http://www.sunhelp.org/mailman/listinfo/rescue
Jerry Kemp
2018-05-21 20:30:52 UTC
Permalink
Hello Jonathan,

see reply at bottom,

sorry for bottom posting
Post by Jonathan Patschke
Post by Jerry Kemp
OK, here is the default output from Solaris 11.3. Seems it ships with 1.0.1.p
1.0.1p9 is correct.
Post by Jerry Kemp
Not sure how to determine if elliptic curve cryptography has been
disabled. Will need to read up on that on.
I've checked the header files in my Solaris 11.3 VM. The calls aren't
there. They were removed by Oracle as a result of how the OpenSSL package
#ifndef OPENSSL_NO_ECDH
# define OPENSSL_NO_ECDH
# if defined(OPENSSL_NO_ECDH) && !defined(NO_ECDH)
# define NO_ECDH
Post by Jerry Kemp
It seems that if I understand your comments correctly, a compile of a
current OpenSSL, then pointing my compile towards that installation,
should fix my compile issue of the Bjango istatserverlinux, or,
minimally, get me to the next issue.
Be careful in doing that, if this is a machine you care about and
frequently build software for. Multiple installed versions of OpenSSL can
cause all sorts of subtle pain.
Make sure you install your side-compile in somewhere that ld.so and the
compiler will never look unless specifically asked.
Thanks for the comment. and yes, I'm playing with this stuff in a quick-n-dirty VM at $HOME.

There may be some older version of the Bjango specific code, that doesn't specifically require these OpenSSL parts, but if they
exist and are available on the public Internet, I have not found them.

Short of finding an older version of the code that doesn't require these specific, new parts, I'm not sure that there is a way
around this to produce working code.

Again, this is on a VM I put together at $HOME, and certainly not an operational or production system.

Thanks again for the comments,

Jerry
_______________________________________________
rescue list - http://www.sunhelp.org/mailman/listinfo/rescue
Jonathan Patschke
2018-05-21 20:42:47 UTC
Permalink
Post by Jerry Kemp
Thanks for the comment. and yes, I'm playing with this stuff in a
quick-n-dirty VM at $HOME.
There may be some older version of the Bjango specific code, that
doesn't specifically require these OpenSSL parts, but if they exist and
are available on the public Internet, I have not found them.
It looks more to do with how the iPhone application handshakes with the
server. You won't get much choice without rebuilding the iPhone
application.

There are workarounds to dealing with a lack of the newer APIs
(EC_KEY_new_by_curve_name is a convenience routine that can be synthesized
from older APIs), but the lack of ECDH support entirely is a deal-breaker.

You will have to fetch either a newer OpenSSL (the istatserver code looks
like it supports the new 1.1.x API) or the same version, which you can
compile with ECDH enabled.
--
Jonathan Patschke
Austin, TX
USA
_______________________________________________
rescue list - http://www.sunhelp.org/mailman/listinfo/rescue
Loading...