Hallo. Alexander Harm <cont...@aharm.de> 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)