[openssl-users] undefined symbol fabs in file test/ct_test.o in openssl 1.1.0e on solaris

Richard Levitte levitte at openssl.org
Fri Feb 17 19:57:00 UTC 2017


In message <1481BC8A-3E0C-4598-9556-0A83F78AC763 at dukhovni.org> on Fri, 17 Feb 2017 14:15:10 -0500, Viktor Dukhovni <openssl-users at dukhovni.org> said:

openssl-users> 
openssl-users> > On Feb 17, 2017, at 1:51 PM, Bill Smith <bsmith at progress.com> wrote:
openssl-users> > 
openssl-users> > I pulled down 1.1.0e and tried to build it on Solaris 64.  I ran into the following error:
openssl-users> > 
openssl-users> > 
openssl-users> > /tools/solaris/SunStudio12.2/bin/cc -xarch=v9 -mt -o test/ct_test test/ct_test.o test/testutil.o -L. -lcrypto -lresolv -lsocket -lnsl -ldl -lpthread
openssl-users> > cc: Warning: -xarch=v9 is deprecated, use -m64 to create 64-bit programs
openssl-users> > Undefined                 first referenced
openssl-users> > symbol                             in file
openssl-users> > fabs                                test/ct_test.o
openssl-users> > ld: fatal: Symbol referencing errors. No output written to test/ct_test
openssl-users> > 
openssl-users> > These diffs appear to fix the issue.  Added -lm to ex_libs for Solaris.
openssl-users> > 
openssl-users> > solaris64:117$ diff -c /scratch/bsmith/openssl/openssl-1.1.0e/Configurations/10-main.conf Configurations/10-main.conf
openssl-users> > *** /scratch/bsmith/openssl/openssl-1.1.0e/Configurations/10-main.conf    Thu Feb 16 06:58:20 2017
openssl-users> > --- Configurations/10-main.conf Fri Feb 17 11:06:45 2017
openssl-users> > ***************
openssl-users> > *** 179,185 ****
openssl-users> >          inherit_from     => [ "BASE_unix" ],
openssl-users> >          template         => 1,
openssl-users> >          cflags           => "-DFILIO_H",
openssl-users> > !         ex_libs          => add("-lresolv -lsocket -lnsl -ldl"),
openssl-users> >          dso_scheme       => "dlfcn",
openssl-users> >          thread_scheme    => "pthreads",
openssl-users> >          shared_target    => "solaris-shared",
openssl-users> > --- 179,185 ----
openssl-users> >          inherit_from     => [ "BASE_unix" ],
openssl-users> >          template         => 1,
openssl-users> >          cflags           => "-DFILIO_H",
openssl-users> > !         ex_libs          => add("-lresolv -lsocket -lnsl -ldl -lm"),
openssl-users> >          dso_scheme       => "dlfcn",
openssl-users> >          thread_scheme    => "pthreads",
openssl-users> >          shared_target    => "solaris-shared",
openssl-users> > solaris64:117$
openssl-users> 
openssl-users> I would avoid adding that library dependency to all the code just because
openssl-users> a test program uses fabs().  It is better to just avoid fabs() in the test
openssl-users> code, or add "-lm" for just that program (or perhaps just all the test
openssl-users> programs).

This would mean adding that in test/build.info.  Unfortunately, libm
is Unix and the build.info are meant to be platform agnostic, so it's
kind of a no can do.  I'll have a thought on this kind of thing.

Cheers,
Richard

-- 
Richard Levitte         levitte at openssl.org
OpenSSL Project         http://www.openssl.org/~levitte/


More information about the openssl-users mailing list