From: Lee <ler762@gmail.com>
To: Anthony Webber <akwebber@reckeng.com>
Cc: cygwin@cygwin.com
Subject: Re: Setting up toolchains
Date: Mon, 27 Sep 2021 10:27:40 -0400 [thread overview]
Message-ID: <CAD8GWstOqVhJeZKUvf=VfGjAaYZDNeJe3j3R58tP2K-cUNgs7Q@mail.gmail.com> (raw)
In-Reply-To: <3034fa70-ad4c-3e8a-31da-d892c7deb3b7@reckeng.com>
On 9/27/21, Anthony Webber wrote:
> Please excuse the naivety of this question, but I've looked elsewhere
> and can't find a good answer. Perhaps a good answer is to install MSYS2
> alongside Cygwin.
that seems to be the usual answer here :(
> Anyway, I am trying to set up my gcc toolchains in Cygwin, by which I
> mean that I'm trying to set up the environment so that the right
> programs are called at the right time by build systems like cmake and
> waf,
cmake supposedly supports cross-compilation. I've never figured out
how to do it :(
> or if I want to build in a more manual fashion. Particularly, I
> want to be able to switch between toolchains easily.
GNU autoconf. Switching between toolchains is as easy as
autoconf
autoheader
./configure --host=i686-w64-mingw32
> I have installed both the x86_64-pc-cygwin-gcc/g++ and
> x86_64-w64-mingw32-gcc/g++ packages using setup-x86_64.exe.
>
> The first thing I notice is that the gcc/g++ programs in /bin are
> identical to x86_64-pc-cygwin-gcc/g++, and that symbolic links aren't
> being used. I presume it's being done this way because this is
> considered the default, native Cygwin toolchain, and that there should
> be be relatively little to do in the way of configuration if I want to
> build Cygwin software.
>
> If I do want to cross-compile using x86_64-w64-mingw32-gcc/g++, then I
> imagine that the very least I should do is set a bunch of environment
> variables like CC and CXX (perhaps by sourcing a shell script), but
> really I'd like some advice here. What do you guys do?
I've never written anything that needed a make file; I just use the
correct compiler. eg
$ tail -3 getenv.c
}
/* i686-w64-mingw32-gcc -o getenv.exe getenv.c
*/
The only time I've had to use environment variables was for building mbedtls:
export WINDOWS_BUILD=1
# build for a Windows platform
export SHARED=1
# want the shared libraries created
export CC=i686-w64-mingw32-gcc
export LD=i686-w64-mingw32-gcc
export CFLAGS="-O2 -fstack-protector-strong -D_FORTIFY_SOURCE=2"
export LDFLAGS="${LDFLAGS} -fstack-protector-strong"
make lib
# build the libraries
PATH="${PWD}/library:/usr/i686-w64-mingw32/sys-root/mingw/bin:${PATH}"
# so the tests are able to find the mbedtls and mingw libraries
make check
# run the test suite
Regards,
Lee
next prev parent reply other threads:[~2021-09-27 14:27 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-27 11:27 Anthony Webber
2021-09-27 14:27 ` Lee [this message]
2021-09-27 17:10 ` Brian Inglis
2021-09-27 21:06 ` Hans-Bernhard Bröker
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAD8GWstOqVhJeZKUvf=VfGjAaYZDNeJe3j3R58tP2K-cUNgs7Q@mail.gmail.com' \
--to=ler762@gmail.com \
--cc=akwebber@reckeng.com \
--cc=cygwin@cygwin.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).