4

I am trying to install stunnel software on Mac OS 10.10 and I am getting the following error

Undefined symbols for architecture x86_64

while executing make command from terminal.

below are the detailed logs:

Making all in src
/Applications/Xcode.app/Contents/Developer/usr/bin/make  all-am
/bin/sh ../libtool  --tag=CC   --mode=link gcc  -g -O2 -D_THREAD_SAFE -pthread -Wall -Wextra -Wpedantic     -Wformat=2 -Wconversion -Wno-long-long -Wno-deprecated-declarations -fstack-protector -fPIE -   D_FORTIFY_SOURCE=2 -L/usr/local/openssl/lib64 -L/usr/local/openssl/lib -lssl -lcrypto -fPIE -pie -o     stunnel  stunnel-tls.o stunnel-str.o stunnel-file.o stunnel-client.o stunnel-log.o stunnel-options.o    stunnel-protocol.o stunnel-network.o stunnel-resolver.o stunnel-ssl.o stunnel-ctx.o stunnel-verify.o    stunnel-sthreads.o stunnel-fd.o stunnel-dhparam.o stunnel-cron.o stunnel-stunnel.o stunnel-pty.o    stunnel-libwrap.o stunnel-ui_unix.o  -lz  
libtool: link: gcc -g -O2 -D_THREAD_SAFE -pthread -Wall -Wextra -Wpedantic -Wformat=2 -Wconversion -    Wno-long-long -Wno-deprecated-declarations -fstack-protector -fPIE -D_FORTIFY_SOURCE=2 -fPIE -pie -o    stunnel stunnel-tls.o stunnel-str.o stunnel-file.o stunnel-client.o stunnel-log.o stunnel-options.o     stunnel-protocol.o stunnel-network.o stunnel-resolver.o stunnel-ssl.o stunnel-ctx.o stunnel-verify.o    stunnel-sthreads.o stunnel-fd.o stunnel-dhparam.o stunnel-cron.o stunnel-stunnel.o stunnel-pty.o    stunnel-libwrap.o stunnel-ui_unix.o  -L/usr/local/openssl/lib64 -L/usr/local/openssl/lib -lssl -lcrypto     -lz -pthread
clang: warning: argument unused during compilation: '-pthread'
clang: warning: argument unused during compilation: '-pie'
clang: warning: argument unused during compilation: '-pthread'
ld: warning: directory not found for option '-L/usr/local/openssl/lib64'
ld: warning: directory not found for option '-L/usr/local/openssl/lib'
Undefined symbols for architecture x86_64:
"_CRYPTO_THREADID_set_callback", referenced from:
  _sthreads_init in stunnel-sthreads.o
"_CRYPTO_THREADID_set_numeric", referenced from:
  _threadid_func in stunnel-sthreads.o
"_ERR_remove_thread_state", referenced from:
  _client_run in stunnel-client.o
"_SSL_CTX_set_psk_client_callback", referenced from:
  _context_init in stunnel-ctx.o
"_SSL_CTX_set_psk_server_callback", referenced from:
  _context_init in stunnel-ctx.o
"_TLSv1_1_client_method", referenced from:
  _parse_service_option in stunnel-options.o
"_TLSv1_1_server_method", referenced from:
  _parse_service_option in stunnel-options.o
"_TLSv1_2_client_method", referenced from:
  _parse_service_option in stunnel-options.o
"_TLSv1_2_server_method", referenced from:
  _parse_service_option in stunnel-options.o
"_X509_STORE_get1_certs", referenced from:
  _verify_callback in stunnel-verify.o
"_X509_check_email", referenced from:
  _verify_callback in stunnel-verify.o
"_X509_check_host", referenced from:
  _verify_callback in stunnel-verify.o
"_X509_check_ip_asc", referenced from:
  _verify_callback in stunnel-verify.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [stunnel] Error 1
make[1]: *** [all] Error 2
make: *** [all-recursive] Error 1
Andrea
  • 11,801
  • 17
  • 65
  • 72
sahas
  • 315
  • 4
  • 15
  • `brew install stunnel` and you're done ([Homebrew](http://brew.sh)). Linker says that it can't found symbols for x86_64 architecture. Also if you read your log carefully (`ld: warning: directory not found for option '-L/usr/local/openssl/lib64'`) it also says that it can't find openssl directory (for both 32 & 64 bit). Install openssl as well and try to build it again. Or just install Homebrew and `brew install stunnel`. – zrzka Jul 13 '15 at 10:35

2 Answers2

2

You need to pass arguments to link with pthread and pie not -pthread but -lpthread and not -pie but -lpie

Also there are no libs in /usr/local/openssl/ try to install them with brew or macports or just download the binaries.

The hints are there, right in front of You:

clang: warning: argument unused during compilation: '-pthread'

...

ld: warning: directory not found for option '-L/usr/local/openssl/lib64'

Community
  • 1
  • 1
riodoro1
  • 1,246
  • 7
  • 14
2

This problem was coming since installable has dependency on OpenSSL and it was not able to find libraries related to OpenSSL.

There can be two possible reasons for this problem- 1. OpenSSL is not installed in the system. In this case , OpenSSL needs to be installed first before installing stunnel.

  1. OpenSSL is not installed in standard path.
sahas
  • 315
  • 4
  • 15