Hallo.
Alexander Harm <[email protected]> wrote:
|I’m trying to build s-nail/s-mailx on macOS to ultimately create a \
|Homebrew formula for it.
This is great, thank you very much!
|While configure works fine, the build process fails as soon as OpenSSL \
|is involved:
|
|* make CONFIG=NULL: works
|* make CONFIG=MINIMAL: works
|* make CONFIG=MEDIUM: works
|* make CONFIG=NETSEND: fails
|* make CONFIG=MAXIMUM: fails
|
|The output of
|
|C_INCLUDE_PATH="${C_INCLUDE_PATH}:/usr/local/opt/openssl/include"
|LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/local/opt/openssl/lib"
|export C_INCLUDE_PATH LD_LIBRARY_PATH
|make CONFIG=NETSEND OPT_DEBUG=yes all
|
|is
|
|Undefined symbols for architecture x86_64:
| "_PKCS7_final", referenced from:
| _smime_sign in xssl.o
| "_PKCS7_sign_add_signer", referenced from:
| _smime_sign in xssl.o
|ld: symbol(s) not found for architecture x86_64
|clang: error: linker command failed with exit code 1 (use -v to see \
|invocation)
|
|The linked OpenSSL version is
|
|/usr/local/opt/openssl/bin/openssl version
|OpenSSL 1.0.2l 25 May 2017
|
|Attached all files from the process.
Thank you. (The huge mk-config.log reminds me of not storing
error number conversion output there. Sorry!)
I do not have any Mac OS with development tools since about two
years, but that problem is mysterious, hmmm ...
Well for one i think you should change the order of
LD_LIBRARY_PATH and C_INCLUDE_PATH and place your specific OpenSSL
installation path first, since otherwise the system headers will
surely be found first. This shoots a [edited: multiple, as below]
thought[s] through what is in between my ears, however.
Is this /usr/local/opt a standard Homebrew installation? With
/include and /lib and /bin etc.? I wonder whether i should add
that for automatic detection, then. Or drop support of pkgsrc
path detection. Or add support for Homebrew on MacOS (`uname -s`
== Darwin that is), we actually even need special rules for
Solaris (and OpenCSW), so why not Homebrew, too? What do you say?
And then i wonder what is wrong. If i do something comparable
$ LD_LIBRARY_PATH=/home/steffen/usr/opt/.ressl/lib:$LD_LIBRARY_PATH \
C_INCLUDE_PATH=/home/steffen/usr/opt/.ressl/include:$C_INCLUDE_PATH \
make CONFIG=NETSEND config CC=tcc &&
cat mk-config.inc mk-config.lib
-I./ -I/home/steffen/usr/opt/.ressl/include -I/home/steffen/usr/include
-I/home/steffen/usr/opt/tcc-mob/include -I/usr/local/include -I/usr/include
-L/home/steffen/usr/opt/.ressl/lib/ -L/home/steffen/usr/lib
-L/home/steffen/usr/opt/tcc-mob/lib -L/home/steffen/usr/opt/pcc/lib -L/lib
-L/usr/local/lib -L/usr/lib -lssl -lcrypto -lgssapi_krb5 -lkrb5 -lk5crypto
-lcom_err -lidn
and compare this output with the files you have sent:
-I/usr/local/opt/openssl/include
-liconv -lssl -lcrypto -dynamic -Wl,-search_paths_first -lkrb5
then this is fundamentally different?
And oh! Our configuration does exactly this for OpenCSW as well
as pkgsrc, and places those package paths last! I will fix this
in a minute. Also INSTALL should mention this. Ditto.
As a side note i wondered shortly before the v14.9.0 release
whether i should remove all the CONFIG= stuff, at least the public
documentation. But even if not, i really should change them to
"require" all announced features. So, ok, also in a minute,
i will do that and only keep NULL, NULLI, MINIMAL and NETSEND, and
MINIMAL will gain the MLE command line editor. Thanks for
mentioning this! You made my saturday! ^.^
Does this help a bit on Mac OS?
Ciao!
--steffen
|
|Der Kragenbaer, The moon bear,
|der holt sich munter he cheerfully and one by one
|einen nach dem anderen runter wa.ks himself off
|(By Robert Gernhardt)