[patch] Update build flags for new compiler feature
Corinna Vinschen
corinna-cygwin@cygwin.com
Sat Oct 3 13:07:00 GMT 2009
On Oct 3 14:03, Dave Korn wrote:
> Corinna Vinschen wrote:
>
> > I just built a gcc 4.3.4 Linux->Cygwin cross compiler using the sources
> > from the Cygwin 1.7 distro. I used the following build flags:
> >
> > --disable-bootstrap --enable-version-specific-runtime-libs \
> > --enable-static --enable-shared --enable-shared-libgcc \
> > --disable-__cxa_atexit --with-gnu-ld --with-gnu-as --with-dwarf2 \
> > --disable-sjlj-exceptions --enable-languages=c,c++ --disable-symvers \
> > --enable-threads=posix --with-arch=i686 --with-tune=generic \
> > --with-newlib
> ^^^^^^^^^^^^^^
>
> Are you doing something tricky w.r.t. the headers and libs you supply to the
> build process? You appear to be using none-at-all out of --with-headers,
> --with-includes and --with-sysroot.
Nothing special. I need the --with-newlib, otherwise the libstdc++ build
fails with
configure:<lineno>: error: No support for this host/target combination.
We talked about this in PM already, back in January.
Btw., I also had to set --disable-__cxa_atexit in contrast to your
--enable-__cxa_atexit. If I don't do that, I get undefined reference
errors (some dso_foo and cxa_foo functions) when building libstdc++.
> > When I try to build Cygwin I get:
> >
> > cc1plus: error: command line option '-muse-libstdc-wrappers' is not
> > supported by this configuration
> >
> > What am I doing wrong?
>
> Take a look in $objdir/gcc/config.log; what happened during the "checking
> for __wrap__Znaj" test? Hmmmmm, I may have the config set up wrong so it only
> works in bootstrap, not crossbuilds. You could try manually hacking
Apparently. There's no line containing __wrap__Znaj in config.log.
> "-DUSE_CYGWIN_LIBSTDCXX_WRAPPERS=1" into the CFLAGS. Meanwhile, I need to go
Thanks, I'll try that.
> figure out how to make sure and check the target rather than host libraries
> for the presence of a function. (It's worth adding fixing this to the to-do
> list for -2).
While you're at it, there is another problem. When building gcc-4.3.4
as cross, the auto-host.h file contains
#ifndef USED_FOR_TARGET
/* #undef HAVE_GAS_ALIGNED_COMM */
#endif
afterwards. That's quite unlucky, since options.c contains an
unconditional
int use_pe_aligned_common = HAVE_GAS_ALIGNED_COMM;
So, right now I had to define HAVE_GAS_ALIGNED_COMM to 1 manually in
auto-host.h.
And, while we're at it, how do I switch on the TSAWARE flag by default?
Corinna
--
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Project Co-Leader cygwin AT cygwin DOT com
Red Hat
More information about the Cygwin-patches
mailing list