part-cw / lambdanative

LambdaNative is a cross-platform development environment written in Scheme, supporting Android, iOS, BlackBerry 10, OS X, Linux, Windows, OpenBSD, NetBSD, FreeBSD and OpenWrt.
http://www.lambdanative.org
Other
1.4k stars 86 forks source link

OSX Yosemite build fail when using "curl" #75

Closed emacstheviking closed 9 years ago

emacstheviking commented 9 years ago

Hi,

I have a linker error when trying to use "curl" module. Full output is after the end of this message, I am using OSX/Yosemite building a native Mac application for now until I have learned my way around the libraries.

I think it is a 32/64 bit library mismatch but I am not sure, I wondered if somebody could help me figure it out!

Thanks, Sean Charles.

========== full ouput ========== === using profile your profile name here [/Users/seancharles/Documents/RUNTIMES/lambdanative/PROFILE].. === configured to build tcprepl version 1.0 for macosx on macosx in normal mode lambdanative: 839292e ==> checking for required tools.. ==> checking for required libraries.. ==> checking for lambdanative tools.. ==> creating libraries needed for tcprepl.. => liblambdanative.. => cleaning up.. => exploding library liblambdanative.. => compiling scheme payload.. => done compiling scheme payload => generating hook.. => assembling payload.. ==> creating macosx loader needed for tcprepl.. => processing sounds needed for tcprepl.. => compiling application.. gcc -DMACOSX -m64 -framework ApplicationServices -framework CoreAudio -framework AudioUnit -framework AudioToolbox -framework CoreFoundation -framework CoreServices -framework Foundation -I/Users/seancharles/Library/Caches/lambdanative/macosx/include -L/Users/seancharles/Library/Caches/lambdanative/macosx/lib -DUSECONSOLE -o /Users/seancharles/Library/Caches/lambdanative/macosx/tcprepl.app/tcprepl -lpayload Undefined symbols for architecture x86_64: "_RTMP_Alloc", referenced from: _rtmp_setup_connection in libpayload.a(libcurl_la-curl_rtmp.o) "_RTMP_Close", referenced from: _rtmp_disconnect in libpayload.a(libcurl_la-curl_rtmp.o) "_RTMP_Connect1", referenced from: _rtmp_connect in libpayload.a(libcurl_la-curl_rtmp.o) "_RTMP_ConnectStream", referenced from: _rtmp_do in libpayload.a(libcurl_la-curl_rtmp.o) "_RTMP_Free", referenced from: _rtmp_setup_connection in libpayload.a(libcurl_la-curl_rtmp.o) _rtmp_disconnect in libpayload.a(libcurl_la-curl_rtmp.o) "_RTMP_Init", referenced from: _rtmp_setup_connection in libpayload.a(libcurl_la-curl_rtmp.o) "_RTMP_Read", referenced from: _rtmp_recv in libpayload.a(libcurl_la-curl_rtmp.o) "_RTMP_SetBufferMS", referenced from: _rtmp_setup_connection in libpayload.a(libcurl_la-curl_rtmp.o) "_RTMP_SetupURL", referenced from: _rtmp_setup_connection in libpayload.a(libcurl_la-curl_rtmp.o) "_RTMP_Write", referenced from: _rtmp_send in libpayload.a(libcurl_la-curl_rtmp.o) "_20_2894338914", referenced from: linkertbl in libpayload.a(2719806302_.o) "_idn_free", referenced from: _Curl_disconnect in libpayload.a(libcurl_la-url.o) _fix_hostname in libpayload.a(libcurl_la-url.o) "_idna_strerror", referenced from: _Curl_idn_strerror in libpayload.a(libcurl_la-strerror.o) "_idna_to_ascii_lz", referenced from: _fix_hostname in libpayload.a(libcurl_la-url.o) "_idna_to_unicode_lzlz", referenced from: _fix_hostname in libpayload.a(libcurl_la-url.o) "_libssh2_agent_connect", referenced from: _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o) "_libssh2_agent_disconnect", referenced from: _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o) "_libssh2_agent_free", referenced from: _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o) "_libssh2_agent_get_identity", referenced from: _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o) "_libssh2_agent_init", referenced from: _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o) "_libssh2_agent_list_identities", referenced from: _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o) "_libssh2_agent_userauth", referenced from: _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o) "_libssh2_channel_free", referenced from: _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o) "_libssh2_channel_read_ex", referenced from: _scp_recv in libpayload.a(libcurl_la-ssh.o) "_libssh2_channel_send_eof", referenced from: _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o) "_libssh2_channel_wait_closed", referenced from: _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o) "_libssh2_channel_wait_eof", referenced from: _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o) "_libssh2_channel_write_ex", referenced from: _scp_send in libpayload.a(libcurl_la-ssh.o) "_libssh2_exit", referenced from: _curl_global_cleanup in libpayload.a(libcurl_la-easy.o) "_libssh2_hostkey_hash", referenced from: _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o) "_libssh2_init", referenced from: _curl_global_init in libpayload.a(libcurl_la-easy.o) "_libssh2_knownhost_add", referenced from: _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o) "_libssh2_knownhost_checkp", referenced from: _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o) "_libssh2_knownhost_free", referenced from: _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o) "_libssh2_knownhost_init", referenced from: _ssh_connect in libpayload.a(libcurl_la-ssh.o) "_libssh2_knownhost_readfile", referenced from: _ssh_connect in libpayload.a(libcurl_la-ssh.o) "_libssh2_knownhost_writefile", referenced from: _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o) "_libssh2_scp_recv", referenced from: _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o) "_libssh2_scp_send64", referenced from: _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o) "_libssh2_session_block_directions", referenced from: _ssh_multi_statemach in libpayload.a(libcurl_la-ssh.o) _scp_recv in libpayload.a(libcurl_la-ssh.o) _scp_send in libpayload.a(libcurl_la-ssh.o) _sftp_recv in libpayload.a(libcurl_la-ssh.o) _sftp_send in libpayload.a(libcurl_la-ssh.o) _ssh_block_statemach in libpayload.a(libcurl_la-ssh.o) "_libssh2_session_disconnect_ex", referenced from: _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o) "_libssh2_session_free", referenced from: _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o) "_libssh2_session_handshake", referenced from: _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o) "_libssh2_session_hostkey", referenced from: _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o) "_libssh2_session_init_ex", referenced from: _ssh_connect in libpayload.a(libcurl_la-ssh.o) "_libssh2_session_last_errno", referenced from: _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o) "_libssh2_session_last_error", referenced from: _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o) "_libssh2_session_set_blocking", referenced from: _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o) "_libssh2_sftp_close_handle", referenced from: _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o) "_libssh2_sftp_init", referenced from: _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o) "_libssh2_sftp_last_error", referenced from: _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o) "_libssh2_sftp_mkdir_ex", referenced from: _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o) "_libssh2_sftp_open_ex", referenced from: _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o) "_libssh2_sftp_read", referenced from: _sftp_recv in libpayload.a(libcurl_la-ssh.o) "_libssh2_sftp_readdir_ex", referenced from: _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o) "_libssh2_sftp_rename_ex", referenced from: _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o) "_libssh2_sftp_rmdir_ex", referenced from: _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o) "_libssh2_sftp_seek64", referenced from: _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o) "_libssh2_sftp_shutdown", referenced from: _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o) "_libssh2_sftp_stat_ex", referenced from: _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o) "_libssh2_sftp_symlink_ex", referenced from: _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o) "_libssh2_sftp_unlink_ex", referenced from: _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o) "_libssh2_sftp_write", referenced from: _sftp_send in libpayload.a(libcurl_la-ssh.o) "_libssh2_userauth_authenticated", referenced from: _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o) "_libssh2_userauth_keyboard_interactive_ex", referenced from: _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o) "_libssh2_userauth_list", referenced from: _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o) "_libssh2_userauth_password_ex", referenced from: _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o) "_libssh2_userauth_publickey_fromfile_ex", referenced from: _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o) "_stringprep_check_version", referenced from: _fix_hostname in libpayload.a(libcurl_la-url.o) "_stringprep_locale_charset", referenced from: _fix_hostname in libpayload.a(libcurl_la-url.o) "_tld_check_lz", referenced from: _fix_hostname in libpayload.a(libcurl_la-url.o) "_tld_strerror", referenced from: _fix_hostname in libpayload.a(libcurl_la-url.o) ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) ERROR: failed on file /Users/seancharles/Library/Caches/lambdanative/macosx/tcprepl.app/tcprepl BUILD FAILED - configure with verbose option for more information make: *\ [all] Error 1 iMac:~/Documents/RUNTIMES/lambdanative seancharles $

emacstheviking commented 9 years ago

I can add that "make tcprepl android" builds fine so it must just be to do with the OS X libcurl distribution, I will look at the version it is picking up and see what symbols are in it with nm, otool etc and report back... something is wrong!

I am learning by adding things to tcprepl, I've written a small emacs extension that runs alongside the scheme mode to allow my to dynamically compile on the device. Tested on android but a lot of work needed yet!

clpetersen commented 9 years ago

This looks like a missing libcrypto/libssh dependency to me.. I cannot reproduce it on my mac (Mavericks). The curl module does look to have the right dependencies. What is the content of your MODULES / LIBRARIES files in the app directory? I suppose it is possible that the libssl build did not complete correctly.. if so you could try removing the libcrypto.a and libssl.a from the cache directory (~/Library/Caches/lambdanative/macosx/lib) and rebuild. I'll see if we have Yosemite installed anywhere, to reproduce the problem.

Your work on tcprepl+emacs sounds really interesting btw!

emacstheviking commented 9 years ago

Chris,

I added some build options to pin it down, I switched of the RTMP and libidn and things got better but I had to stop there and get on with my day job!

As the the emacs thing; I can't claim the concept as original. A few years back a chap released an iPhone ap written with Gambit scheme and he did a lot of work with the REPL. However, bit-rot appears to have set in and I couldn't get it to work.

Having used SBCL+SLIME a lot, I figured, "Hey, I'll roll my own" and do the simplest thing possible and so far, I have been able to change the colour and corner rounding of "DemoRedSquare" on my Moto G Android phone while it is running in front of me.

I have some polish to add to it but it's not far off "usable"; I just have to make it more user friendly that's all. The goal is Emacs+Scheme-mode+My-Helper and off you go. I'll let you know when it is ready, I'll send you a GitHub link.

All the best, lambdanative is a truly breathtaking piece of abstraction that just worked first time out of the box for me! Well done everybody there, I have been a hacker for 30+ years and I know how hard it can be to abstract hardware!!!

All the best, Sean Charles.

PS: I will try to install the missing deps and try again.

PPS: Here is the diff on the libraries file I altered

diff --git a/libraries/libcurl/make.sh b/libraries/libcurl/make.sh

index c7b3279..d5f40c9 100755

--- a/libraries/libcurl/make.sh +++ b/libraries/libcurl/make.sh @@ -10,7 +10,7 @@ if [ ! $SYS_PLATFORM = $SYS_HOSTPLATFORM ]; then EXTRACONF=--host=$SYS_ARCH fi

-package_configure $EXTRACONF --disable-ldap --disable-shared --enable-static +packageconfigure $EXTRACONF --disable-ldap --disable-shared --enable-static --without-librtmp --without-libidn_

On 28 September 2015 at 16:56, Chris Petersen notifications@github.com wrote:

This looks like a missing libcrypto/libssh dependency to me.. I cannot reproduce it on my mac (Mavericks). The curl module does look to have the right dependencies. What is the content of your MODULES / LIBRARIES files in the app directory? I suppose it is possible that the libssl build did not complete correctly.. if so you could try removing the libcrypto.a and libssl.a from the cache directory ( ~/Library/Caches/lambdanative/macosx/lib) and rebuild. I'll see if we have Yosemite installed anywhere, to reproduce the problem.

Your work on tcprepl+emacs sounds really interesting btw!

— Reply to this email directly or view it on GitHub https://github.com/part-cw/lambdanative/issues/75#issuecomment-143787029 .

emacstheviking commented 9 years ago

I forgot to mention that I am just tinkering with the code in the "tcprepl" application folder as I build me Emacs interface...stuff follows...

iMac:lambdanative vosabristol$ cat apps/tcprepl/MODULES _config lncore graph curl

There is no LIBRARIES file... maybe I should read the documentation a little more closely as it smells like that could be useful to know about!

Thanks again,

Sean.

On 28 September 2015 at 18:18, emacstheviking objitsu@gmail.com wrote:

Chris,

I added some build options to pin it down, I switched of the RTMP and libidn and things got better but I had to stop there and get on with my day job!

As the the emacs thing; I can't claim the concept as original. A few years back a chap released an iPhone ap written with Gambit scheme and he did a lot of work with the REPL. However, bit-rot appears to have set in and I couldn't get it to work.

Having used SBCL+SLIME a lot, I figured, "Hey, I'll roll my own" and do the simplest thing possible and so far, I have been able to change the colour and corner rounding of "DemoRedSquare" on my Moto G Android phone while it is running in front of me.

I have some polish to add to it but it's not far off "usable"; I just have to make it more user friendly that's all. The goal is Emacs+Scheme-mode+My-Helper and off you go. I'll let you know when it is ready, I'll send you a GitHub link.

All the best, lambdanative is a truly breathtaking piece of abstraction that just worked first time out of the box for me! Well done everybody there, I have been a hacker for 30+ years and I know how hard it can be to abstract hardware!!!

All the best, Sean Charles.

PS: I will try to install the missing deps and try again.

PPS: Here is the diff on the libraries file I altered

diff --git a/libraries/libcurl/make.sh b/libraries/libcurl/make.sh

index c7b3279..d5f40c9 100755

--- a/libraries/libcurl/make.sh +++ b/libraries/libcurl/make.sh @@ -10,7 +10,7 @@ if [ ! $SYS_PLATFORM = $SYS_HOSTPLATFORM ]; then EXTRACONF=--host=$SYS_ARCH fi

-package_configure $EXTRACONF --disable-ldap --disable-shared --enable-static +packageconfigure $EXTRACONF --disable-ldap --disable-shared --enable-static --without-librtmp --without-libidn_

On 28 September 2015 at 16:56, Chris Petersen notifications@github.com wrote:

This looks like a missing libcrypto/libssh dependency to me.. I cannot reproduce it on my mac (Mavericks). The curl module does look to have the right dependencies. What is the content of your MODULES / LIBRARIES files in the app directory? I suppose it is possible that the libssl build did not complete correctly.. if so you could try removing the libcrypto.a and libssl.a from the cache directory ( ~/Library/Caches/lambdanative/macosx/lib) and rebuild. I'll see if we have Yosemite installed anywhere, to reproduce the problem.

Your work on tcprepl+emacs sounds really interesting btw!

— Reply to this email directly or view it on GitHub https://github.com/part-cw/lambdanative/issues/75#issuecomment-143787029 .

emacstheviking commented 9 years ago

OK, I removed the two libraries and did a rebuild, here is the full output from running make, hope it helps, I am still trying to solve it for myself too!


iMac:lambdanative vosabristol$ rm ~/Library/Caches/lambdanative/macosx/lib/libcrypto.a

iMac:lambdanative vosabristol$ rm ~/Library/Caches/lambdanative/macosx/lib/libssl.a

iMac:lambdanative vosabristol$ ./configure tcprepl

==> configured to build tcprepl for macosx in normal mode

== using source in /Users/vosabristol/Downloads/lambdanative/apps/tcprepl

iMac:lambdanative vosabristol$ make

=== using profile your profile name here [/Users/vosabristol/Downloads/lambdanative/PROFILE]..

=== configured to build tcprepl version 1.0 for macosx on macosx in normal mode

lambdanative: 71a494d

==> checking for required tools..

==> checking for required libraries..

==> checking for lambdanative tools..

==> creating libraries needed for tcprepl..

=> liblambdanative..

=> cleaning up..

=> libcrypto..

=> extracting /Users/vosabristol/Library/Caches/lambdanative/packages/openssl-1.0.2d.tar.gz..

=> patching source...

=> applying patches from ../sigatomic.patch

cp: configure and Configure are identical (not copied).

=> configuring source..

=> compiling source..

=> cleaning up..

=> exploding library liblambdanative..

=> exploding library libcrypto..

=> exploding library libssl..

=> compiling scheme payload..

=> done compiling scheme payload

=> generating hook..

=> assembling payload..

==> creating macosx loader needed for tcprepl..

=> processing sounds needed for tcprepl..

=> compiling application..

gcc -DMACOSX -m64 -framework ApplicationServices -framework CoreAudio -framework AudioUnit -framework AudioToolbox -framework CoreFoundation -framework CoreServices -framework Foundation -I/Users/vosabristol/Library/Caches/lambdanative/macosx/include -L/Users/vosabristol/Library/Caches/lambdanative/macosx/lib -DUSECONSOLE -o /Users/vosabristol/Library/Caches/lambdanative/macosx/tcprepl.app/tcprepl -lpayload

Undefined symbols for architecture x86_64:

"_libssh2_agent_connect", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_agent_disconnect", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_agent_free", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_agent_get_identity", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_agent_init", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_agent_list_identities", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_agent_userauth", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_channel_free", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_channel_read_ex", referenced from:

  _scp_recv in libpayload.a(libcurl_la-ssh.o)

"_libssh2_channel_send_eof", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_channel_wait_closed", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_channel_wait_eof", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_channel_write_ex", referenced from:

  _scp_send in libpayload.a(libcurl_la-ssh.o)

"_libssh2_exit", referenced from:

  _curl_global_cleanup in libpayload.a(libcurl_la-easy.o)

"_libssh2_hostkey_hash", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_init", referenced from:

  _curl_global_init in libpayload.a(libcurl_la-easy.o)

"_libssh2_knownhost_add", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_knownhost_checkp", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_knownhost_free", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_knownhost_init", referenced from:

  _ssh_connect in libpayload.a(libcurl_la-ssh.o)

"_libssh2_knownhost_readfile", referenced from:

  _ssh_connect in libpayload.a(libcurl_la-ssh.o)

"_libssh2_knownhost_writefile", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_scp_recv", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_scp_send64", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_session_block_directions", referenced from:

  _ssh_multi_statemach in libpayload.a(libcurl_la-ssh.o)

  _scp_recv in libpayload.a(libcurl_la-ssh.o)

  _scp_send in libpayload.a(libcurl_la-ssh.o)

  _sftp_recv in libpayload.a(libcurl_la-ssh.o)

  _sftp_send in libpayload.a(libcurl_la-ssh.o)

  _ssh_block_statemach in libpayload.a(libcurl_la-ssh.o)

"_libssh2_session_disconnect_ex", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_session_free", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_session_handshake", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_session_hostkey", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_session_init_ex", referenced from:

  _ssh_connect in libpayload.a(libcurl_la-ssh.o)

"_libssh2_session_last_errno", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_session_last_error", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_session_set_blocking", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_close_handle", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_init", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_last_error", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_mkdir_ex", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_open_ex", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_read", referenced from:

  _sftp_recv in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_readdir_ex", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_rename_ex", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_rmdir_ex", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_seek64", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_shutdown", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_stat_ex", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_symlink_ex", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_unlink_ex", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_write", referenced from:

  _sftp_send in libpayload.a(libcurl_la-ssh.o)

"_libssh2_userauth_authenticated", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_userauth_keyboard_interactive_ex", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_userauth_list", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_userauth_password_ex", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_userauth_publickey_fromfile_ex", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

ld: symbol(s) not found for architecture x86_64

clang: error: linker command failed with exit code 1 (use -v to see invocation)

ERROR: failed on file /Users/vosabristol/Library/Caches/lambdanative/macosx/tcprepl.app/tcprepl

BUILD FAILED - configure with verbose option for more information

make: *\ [all] Error 1

iMac:lambdanative vosabristol$

On 28 September 2015 at 18:21, emacstheviking objitsu@gmail.com wrote:

I forgot to mention that I am just tinkering with the code in the "tcprepl" application folder as I build me Emacs interface...stuff follows...

iMac:lambdanative vosabristol$ cat apps/tcprepl/MODULES _config lncore graph curl

There is no LIBRARIES file... maybe I should read the documentation a little more closely as it smells like that could be useful to know about!

Thanks again,

Sean.

On 28 September 2015 at 18:18, emacstheviking objitsu@gmail.com wrote:

Chris,

I added some build options to pin it down, I switched of the RTMP and libidn and things got better but I had to stop there and get on with my day job!

As the the emacs thing; I can't claim the concept as original. A few years back a chap released an iPhone ap written with Gambit scheme and he did a lot of work with the REPL. However, bit-rot appears to have set in and I couldn't get it to work.

Having used SBCL+SLIME a lot, I figured, "Hey, I'll roll my own" and do the simplest thing possible and so far, I have been able to change the colour and corner rounding of "DemoRedSquare" on my Moto G Android phone while it is running in front of me.

I have some polish to add to it but it's not far off "usable"; I just have to make it more user friendly that's all. The goal is Emacs+Scheme-mode+My-Helper and off you go. I'll let you know when it is ready, I'll send you a GitHub link.

All the best, lambdanative is a truly breathtaking piece of abstraction that just worked first time out of the box for me! Well done everybody there, I have been a hacker for 30+ years and I know how hard it can be to abstract hardware!!!

All the best, Sean Charles.

PS: I will try to install the missing deps and try again.

PPS: Here is the diff on the libraries file I altered

diff --git a/libraries/libcurl/make.sh b/libraries/libcurl/make.sh

index c7b3279..d5f40c9 100755

--- a/libraries/libcurl/make.sh +++ b/libraries/libcurl/make.sh @@ -10,7 +10,7 @@ if [ ! $SYS_PLATFORM = $SYS_HOSTPLATFORM ]; then EXTRACONF=--host=$SYS_ARCH fi

-package_configure $EXTRACONF --disable-ldap --disable-shared --enable-static +packageconfigure $EXTRACONF --disable-ldap --disable-shared --enable-static --without-librtmp --without-libidn_

On 28 September 2015 at 16:56, Chris Petersen notifications@github.com wrote:

This looks like a missing libcrypto/libssh dependency to me.. I cannot reproduce it on my mac (Mavericks). The curl module does look to have the right dependencies. What is the content of your MODULES / LIBRARIES files in the app directory? I suppose it is possible that the libssl build did not complete correctly.. if so you could try removing the libcrypto.a and libssl.a from the cache directory ( ~/Library/Caches/lambdanative/macosx/lib) and rebuild. I'll see if we have Yosemite installed anywhere, to reproduce the problem.

Your work on tcprepl+emacs sounds really interesting btw!

— Reply to this email directly or view it on GitHub https://github.com/part-cw/lambdanative/issues/75#issuecomment-143787029 .

emacstheviking commented 9 years ago

Been reading around and looking.... if I am building for macosx why is libpayload even mentioned?

On 28 September 2015 at 18:26, emacstheviking objitsu@gmail.com wrote:

OK, I removed the two libraries and did a rebuild, here is the full output from running make, hope it helps, I am still trying to solve it for myself too!


iMac:lambdanative vosabristol$ rm ~/Library/Caches/lambdanative/macosx/lib/libcrypto.a

iMac:lambdanative vosabristol$ rm ~/Library/Caches/lambdanative/macosx/lib/libssl.a

iMac:lambdanative vosabristol$ ./configure tcprepl

==> configured to build tcprepl for macosx in normal mode

== using source in /Users/vosabristol/Downloads/lambdanative/apps/tcprepl

iMac:lambdanative vosabristol$ make

=== using profile your profile name here [/Users/vosabristol/Downloads/lambdanative/PROFILE]..

=== configured to build tcprepl version 1.0 for macosx on macosx in normal mode

lambdanative: 71a494d

==> checking for required tools..

==> checking for required libraries..

==> checking for lambdanative tools..

==> creating libraries needed for tcprepl..

=> liblambdanative..

=> cleaning up..

=> libcrypto..

=> extracting /Users/vosabristol/Library/Caches/lambdanative/packages/openssl-1.0.2d.tar.gz..

=> patching source...

=> applying patches from ../sigatomic.patch

cp: configure and Configure are identical (not copied).

=> configuring source..

=> compiling source..

=> cleaning up..

=> exploding library liblambdanative..

=> exploding library libcrypto..

=> exploding library libssl..

=> compiling scheme payload..

=> done compiling scheme payload

=> generating hook..

=> assembling payload..

==> creating macosx loader needed for tcprepl..

=> processing sounds needed for tcprepl..

=> compiling application..

gcc -DMACOSX -m64 -framework ApplicationServices -framework CoreAudio -framework AudioUnit -framework AudioToolbox -framework CoreFoundation -framework CoreServices -framework Foundation -I/Users/vosabristol/Library/Caches/lambdanative/macosx/include -L/Users/vosabristol/Library/Caches/lambdanative/macosx/lib -DUSECONSOLE -o /Users/vosabristol/Library/Caches/lambdanative/macosx/tcprepl.app/tcprepl -lpayload

Undefined symbols for architecture x86_64:

"_libssh2_agent_connect", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_agent_disconnect", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_agent_free", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_agent_get_identity", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_agent_init", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_agent_list_identities", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_agent_userauth", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_channel_free", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_channel_read_ex", referenced from:

  _scp_recv in libpayload.a(libcurl_la-ssh.o)

"_libssh2_channel_send_eof", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_channel_wait_closed", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_channel_wait_eof", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_channel_write_ex", referenced from:

  _scp_send in libpayload.a(libcurl_la-ssh.o)

"_libssh2_exit", referenced from:

  _curl_global_cleanup in libpayload.a(libcurl_la-easy.o)

"_libssh2_hostkey_hash", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_init", referenced from:

  _curl_global_init in libpayload.a(libcurl_la-easy.o)

"_libssh2_knownhost_add", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_knownhost_checkp", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_knownhost_free", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_knownhost_init", referenced from:

  _ssh_connect in libpayload.a(libcurl_la-ssh.o)

"_libssh2_knownhost_readfile", referenced from:

  _ssh_connect in libpayload.a(libcurl_la-ssh.o)

"_libssh2_knownhost_writefile", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_scp_recv", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_scp_send64", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_session_block_directions", referenced from:

  _ssh_multi_statemach in libpayload.a(libcurl_la-ssh.o)

  _scp_recv in libpayload.a(libcurl_la-ssh.o)

  _scp_send in libpayload.a(libcurl_la-ssh.o)

  _sftp_recv in libpayload.a(libcurl_la-ssh.o)

  _sftp_send in libpayload.a(libcurl_la-ssh.o)

  _ssh_block_statemach in libpayload.a(libcurl_la-ssh.o)

"_libssh2_session_disconnect_ex", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_session_free", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_session_handshake", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_session_hostkey", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_session_init_ex", referenced from:

  _ssh_connect in libpayload.a(libcurl_la-ssh.o)

"_libssh2_session_last_errno", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_session_last_error", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_session_set_blocking", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_close_handle", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_init", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_last_error", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_mkdir_ex", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_open_ex", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_read", referenced from:

  _sftp_recv in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_readdir_ex", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_rename_ex", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_rmdir_ex", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_seek64", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_shutdown", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_stat_ex", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_symlink_ex", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_unlink_ex", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_write", referenced from:

  _sftp_send in libpayload.a(libcurl_la-ssh.o)

"_libssh2_userauth_authenticated", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_userauth_keyboard_interactive_ex", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_userauth_list", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_userauth_password_ex", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_userauth_publickey_fromfile_ex", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

ld: symbol(s) not found for architecture x86_64

clang: error: linker command failed with exit code 1 (use -v to see invocation)

ERROR: failed on file /Users/vosabristol/Library/Caches/lambdanative/macosx/tcprepl.app/tcprepl

BUILD FAILED - configure with verbose option for more information

make: *\ [all] Error 1

iMac:lambdanative vosabristol$

On 28 September 2015 at 18:21, emacstheviking objitsu@gmail.com wrote:

I forgot to mention that I am just tinkering with the code in the "tcprepl" application folder as I build me Emacs interface...stuff follows...

iMac:lambdanative vosabristol$ cat apps/tcprepl/MODULES _config lncore graph curl

There is no LIBRARIES file... maybe I should read the documentation a little more closely as it smells like that could be useful to know about!

Thanks again,

Sean.

On 28 September 2015 at 18:18, emacstheviking objitsu@gmail.com wrote:

Chris,

I added some build options to pin it down, I switched of the RTMP and libidn and things got better but I had to stop there and get on with my day job!

As the the emacs thing; I can't claim the concept as original. A few years back a chap released an iPhone ap written with Gambit scheme and he did a lot of work with the REPL. However, bit-rot appears to have set in and I couldn't get it to work.

Having used SBCL+SLIME a lot, I figured, "Hey, I'll roll my own" and do the simplest thing possible and so far, I have been able to change the colour and corner rounding of "DemoRedSquare" on my Moto G Android phone while it is running in front of me.

I have some polish to add to it but it's not far off "usable"; I just have to make it more user friendly that's all. The goal is Emacs+Scheme-mode+My-Helper and off you go. I'll let you know when it is ready, I'll send you a GitHub link.

All the best, lambdanative is a truly breathtaking piece of abstraction that just worked first time out of the box for me! Well done everybody there, I have been a hacker for 30+ years and I know how hard it can be to abstract hardware!!!

All the best, Sean Charles.

PS: I will try to install the missing deps and try again.

PPS: Here is the diff on the libraries file I altered

diff --git a/libraries/libcurl/make.sh b/libraries/libcurl/make.sh

index c7b3279..d5f40c9 100755

--- a/libraries/libcurl/make.sh +++ b/libraries/libcurl/make.sh @@ -10,7 +10,7 @@ if [ ! $SYS_PLATFORM = $SYS_HOSTPLATFORM ]; then EXTRACONF=--host=$SYS_ARCH fi

-package_configure $EXTRACONF --disable-ldap --disable-shared --enable-static +packageconfigure $EXTRACONF --disable-ldap --disable-shared --enable-static --without-librtmp --without-libidn_

On 28 September 2015 at 16:56, Chris Petersen notifications@github.com wrote:

This looks like a missing libcrypto/libssh dependency to me.. I cannot reproduce it on my mac (Mavericks). The curl module does look to have the right dependencies. What is the content of your MODULES / LIBRARIES files in the app directory? I suppose it is possible that the libssl build did not complete correctly.. if so you could try removing the libcrypto.a and libssl.a from the cache directory ( ~/Library/Caches/lambdanative/macosx/lib) and rebuild. I'll see if we have Yosemite installed anywhere, to reproduce the problem.

Your work on tcprepl+emacs sounds really interesting btw!

— Reply to this email directly or view it on GitHub https://github.com/part-cw/lambdanative/issues/75#issuecomment-143787029 .

emacstheviking commented 9 years ago

If I cut and paste the incantation to gcc and remove -lpayload from the end, all those errors go away but then the missing symbol "_main" error is there, which is understandable.... so, do you still use libpayload even for a native build then? That's the part I don't know I guess.... still digging...

Sean

On 28 September 2015 at 18:36, emacstheviking objitsu@gmail.com wrote:

Been reading around and looking.... if I am building for macosx why is libpayload even mentioned?

On 28 September 2015 at 18:26, emacstheviking objitsu@gmail.com wrote:

OK, I removed the two libraries and did a rebuild, here is the full output from running make, hope it helps, I am still trying to solve it for myself too!


iMac:lambdanative vosabristol$ rm ~/Library/Caches/lambdanative/macosx/lib/libcrypto.a

iMac:lambdanative vosabristol$ rm ~/Library/Caches/lambdanative/macosx/lib/libssl.a

iMac:lambdanative vosabristol$ ./configure tcprepl

==> configured to build tcprepl for macosx in normal mode

== using source in /Users/vosabristol/Downloads/lambdanative/apps/tcprepl

iMac:lambdanative vosabristol$ make

=== using profile your profile name here [/Users/vosabristol/Downloads/lambdanative/PROFILE]..

=== configured to build tcprepl version 1.0 for macosx on macosx in normal mode

lambdanative: 71a494d

==> checking for required tools..

==> checking for required libraries..

==> checking for lambdanative tools..

==> creating libraries needed for tcprepl..

=> liblambdanative..

=> cleaning up..

=> libcrypto..

=> extracting /Users/vosabristol/Library/Caches/lambdanative/packages/openssl-1.0.2d.tar.gz..

=> patching source...

=> applying patches from ../sigatomic.patch

cp: configure and Configure are identical (not copied).

=> configuring source..

=> compiling source..

=> cleaning up..

=> exploding library liblambdanative..

=> exploding library libcrypto..

=> exploding library libssl..

=> compiling scheme payload..

=> done compiling scheme payload

=> generating hook..

=> assembling payload..

==> creating macosx loader needed for tcprepl..

=> processing sounds needed for tcprepl..

=> compiling application..

gcc -DMACOSX -m64 -framework ApplicationServices -framework CoreAudio -framework AudioUnit -framework AudioToolbox -framework CoreFoundation -framework CoreServices -framework Foundation -I/Users/vosabristol/Library/Caches/lambdanative/macosx/include -L/Users/vosabristol/Library/Caches/lambdanative/macosx/lib -DUSECONSOLE -o /Users/vosabristol/Library/Caches/lambdanative/macosx/tcprepl.app/tcprepl -lpayload

Undefined symbols for architecture x86_64:

"_libssh2_agent_connect", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_agent_disconnect", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_agent_free", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_agent_get_identity", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_agent_init", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_agent_list_identities", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_agent_userauth", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_channel_free", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_channel_read_ex", referenced from:

  _scp_recv in libpayload.a(libcurl_la-ssh.o)

"_libssh2_channel_send_eof", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_channel_wait_closed", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_channel_wait_eof", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_channel_write_ex", referenced from:

  _scp_send in libpayload.a(libcurl_la-ssh.o)

"_libssh2_exit", referenced from:

  _curl_global_cleanup in libpayload.a(libcurl_la-easy.o)

"_libssh2_hostkey_hash", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_init", referenced from:

  _curl_global_init in libpayload.a(libcurl_la-easy.o)

"_libssh2_knownhost_add", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_knownhost_checkp", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_knownhost_free", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_knownhost_init", referenced from:

  _ssh_connect in libpayload.a(libcurl_la-ssh.o)

"_libssh2_knownhost_readfile", referenced from:

  _ssh_connect in libpayload.a(libcurl_la-ssh.o)

"_libssh2_knownhost_writefile", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_scp_recv", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_scp_send64", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_session_block_directions", referenced from:

  _ssh_multi_statemach in libpayload.a(libcurl_la-ssh.o)

  _scp_recv in libpayload.a(libcurl_la-ssh.o)

  _scp_send in libpayload.a(libcurl_la-ssh.o)

  _sftp_recv in libpayload.a(libcurl_la-ssh.o)

  _sftp_send in libpayload.a(libcurl_la-ssh.o)

  _ssh_block_statemach in libpayload.a(libcurl_la-ssh.o)

"_libssh2_session_disconnect_ex", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_session_free", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_session_handshake", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_session_hostkey", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_session_init_ex", referenced from:

  _ssh_connect in libpayload.a(libcurl_la-ssh.o)

"_libssh2_session_last_errno", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_session_last_error", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_session_set_blocking", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_close_handle", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_init", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_last_error", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_mkdir_ex", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_open_ex", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_read", referenced from:

  _sftp_recv in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_readdir_ex", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_rename_ex", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_rmdir_ex", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_seek64", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_shutdown", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_stat_ex", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_symlink_ex", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_unlink_ex", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_sftp_write", referenced from:

  _sftp_send in libpayload.a(libcurl_la-ssh.o)

"_libssh2_userauth_authenticated", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_userauth_keyboard_interactive_ex", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_userauth_list", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_userauth_password_ex", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

"_libssh2_userauth_publickey_fromfile_ex", referenced from:

  _ssh_statemach_act in libpayload.a(libcurl_la-ssh.o)

ld: symbol(s) not found for architecture x86_64

clang: error: linker command failed with exit code 1 (use -v to see invocation)

ERROR: failed on file /Users/vosabristol/Library/Caches/lambdanative/macosx/tcprepl.app/tcprepl

BUILD FAILED - configure with verbose option for more information

make: *\ [all] Error 1

iMac:lambdanative vosabristol$

On 28 September 2015 at 18:21, emacstheviking objitsu@gmail.com wrote:

I forgot to mention that I am just tinkering with the code in the "tcprepl" application folder as I build me Emacs interface...stuff follows...

iMac:lambdanative vosabristol$ cat apps/tcprepl/MODULES _config lncore graph curl

There is no LIBRARIES file... maybe I should read the documentation a little more closely as it smells like that could be useful to know about!

Thanks again,

Sean.

On 28 September 2015 at 18:18, emacstheviking objitsu@gmail.com wrote:

Chris,

I added some build options to pin it down, I switched of the RTMP and libidn and things got better but I had to stop there and get on with my day job!

As the the emacs thing; I can't claim the concept as original. A few years back a chap released an iPhone ap written with Gambit scheme and he did a lot of work with the REPL. However, bit-rot appears to have set in and I couldn't get it to work.

Having used SBCL+SLIME a lot, I figured, "Hey, I'll roll my own" and do the simplest thing possible and so far, I have been able to change the colour and corner rounding of "DemoRedSquare" on my Moto G Android phone while it is running in front of me.

I have some polish to add to it but it's not far off "usable"; I just have to make it more user friendly that's all. The goal is Emacs+Scheme-mode+My-Helper and off you go. I'll let you know when it is ready, I'll send you a GitHub link.

All the best, lambdanative is a truly breathtaking piece of abstraction that just worked first time out of the box for me! Well done everybody there, I have been a hacker for 30+ years and I know how hard it can be to abstract hardware!!!

All the best, Sean Charles.

PS: I will try to install the missing deps and try again.

PPS: Here is the diff on the libraries file I altered

diff --git a/libraries/libcurl/make.sh b/libraries/libcurl/make.sh

index c7b3279..d5f40c9 100755

--- a/libraries/libcurl/make.sh +++ b/libraries/libcurl/make.sh @@ -10,7 +10,7 @@ if [ ! $SYS_PLATFORM = $SYS_HOSTPLATFORM ]; then EXTRACONF=--host=$SYS_ARCH fi

-package_configure $EXTRACONF --disable-ldap --disable-shared --enable-static +packageconfigure $EXTRACONF --disable-ldap --disable-shared --enable-static --without-librtmp --without-libidn_

On 28 September 2015 at 16:56, Chris Petersen <notifications@github.com

wrote:

This looks like a missing libcrypto/libssh dependency to me.. I cannot reproduce it on my mac (Mavericks). The curl module does look to have the right dependencies. What is the content of your MODULES / LIBRARIES files in the app directory? I suppose it is possible that the libssl build did not complete correctly.. if so you could try removing the libcrypto.a and libssl.a from the cache directory ( ~/Library/Caches/lambdanative/macosx/lib) and rebuild. I'll see if we have Yosemite installed anywhere, to reproduce the problem.

Your work on tcprepl+emacs sounds really interesting btw!

— Reply to this email directly or view it on GitHub https://github.com/part-cw/lambdanative/issues/75#issuecomment-143787029 .

mgorges commented 9 years ago

Commit a1effd0 removes IDN and RTMP from curl and now build (and runs) properly on my Mac with version 10.10.5. Thanks @emacstheviking

mgorges commented 9 years ago

When you deleted libcrypto.a and libssl.a by hand you didn't also remove the libcurl.a, hence it didn't rebuild the curl library. Try this and recompile to see if that fixes things?

clpetersen commented 9 years ago

Hi Sean,

@mgorges has Yosemite installed, and we managed to replicate the problem, or parts of it at least. Your suggested additions to libraries/libcurl/make.sh did the trick for us, now committed. I'm not sure why you still have problems. Try removing libcurl.a, since as @mgorges points out, otherwise the recompiled ssl libraries will not be used.

I think your work on the emacs thing would be very useful to a lot of people - having a slime equivalent for lambdanative would be awesome. Please submit a pull request when you have something working.

And thanks for the kind words about the project!

Cheers Chris

emacstheviking commented 9 years ago

Unreal. My patch works for you but not for me!

I..

Anyway, to cut out the next or or so... I have forked it and created a pull request for another change to the same file:

https://github.com/part-cw/lambdanative/pull/76

This also adds libssh2 to the list of things to leave out when building. I can report that I have now managed to check out and finally build the "tcprepl" to run natively on my iMac. Hurrah!

:) Thanks... I am revisiting my "emacs" integration. I found that somebody has written a swank backend but it is four years old and no longer talks to the latest slime but I have other ideas.... something more portable than Eamacs+Slime.... HTTP!

I am working on the worlds smallest web server and a simple API so that anything that speaks HTTP could be used to help develop the code in a "live" manner. So, any editor with a macro system that can send the current selection to a shell command for example, can update the code.

Stay tuned etc.

Thanks for your support, Sean.

On 28 September 2015 at 18:59, Chris Petersen notifications@github.com wrote:

Hi Sean,

@mgorges https://github.com/mgorges has Yosemite installed, and we managed to replicate the problem, or parts of it at least. Your suggested additions to libraries/libcurl/make.sh did the trick for us, now committed. I'm not sure why you still have problems. Try removing libcurl.a, since as @mgorges https://github.com/mgorges points out, otherwise the recompiled ssl libraries will not be used.

I think your work on the emacs thing would be very useful to a lot of people - having a slime equivalent for lambdanative would be awesome. Please submit a pull request when you have something working.

And thanks for the kind words about the project!

Cheers Chris

— Reply to this email directly or view it on GitHub https://github.com/part-cw/lambdanative/issues/75#issuecomment-143826395 .

mgorges commented 9 years ago

I'll close this for now as we solved the original curl problem - Thanks for the patch and troubleshooting advice. Feel free to open a new issue once your Emacs integration / REPL is working.