[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[msmtp-users] cross compile is a bit weird



First off, thanks goes to Martin for msmtp.

I am very much a beginner and I tend to just learn as much as I need to get a job done, so if I am missing some of the basics here you will have to give me a bit of latitude.  I am working on getting msmtp to cross compile for embedded  computers made by Moxa (www.moxa.com).  The computer on which the cross compilers are installed is OpenSuse running in Virtualbox.  There are three different embedded computers meaning three different cross compilers.

The cross compile process seems a bit weird to me, I would expect that host would be the computer on which the cross compiler is installed and target would be the device that the cross compiled program will run on.  However if I leave out --host or set it to --host=i686-pc-linux-gnu and then use --target=xscale-linux, configure runs but doesn't cross compile  The only way I can get it to cross compile is to set --host=xscale-linux.

export PATH=$PATH:/usr/local/mxscaleb/bin
./configure --with-ssl=openssl --with-libidn=no --target=xscale-linux
-----
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking target system type... arm-unknown-linux-gnu
----
checking whether we are cross compiling... no


export PATH=$PATH:/usr/local/mxscaleb/bin
./configure --with-ssl=openssl --with-libidn=no --host=xscale-linux
configure: WARNING: if you wanted to set the --build type, don't use --host.
    If a cross compiler is detected then cross compile mode will be used
-----
checking build system type... i686-pc-linux-gnu
checking host system type... arm-unknown-linux-gnu
checking target system type... arm-unknown-linux-gn
----
checking whether we are cross compiling... yes

Not a tragedy, just a bit strange.  Though it did give me a problem on one computer, for that one -gcc is called xscale_be-gcc and configure doesn't know what to do.  I tried using the cc= option but couldn't get it to cross compile, eventually I created a file xscale-linux-gcc with a shell script pointing to xscale_be-gcc and configure was happy.

#!/bin/sh
xscale_be-gcc $@


Another issue, when I 'make', each of the cross compilers throws out a warning, though I didn't get any warnings when I configured and made for OpenSuse.
  CC     aliases.o
  CC     tls.o
tls.c: In function `tls_init':
tls.c:1234: warning: passing arg 1 of `SSL_CTX_new' discards qualifiers from pointer target type
  CC     base64.o
  CC     md5.o
  CC     md5-apps.o
  CCLD   msmtp

Two of the system are emailing perfectly, the third gives a segmentation fault if tls=on.  I will play some more and maybe post again on that problem.

Regards

Bryan