Re: Windows build failure for gcc7 release candidates on 32-bit MinGW

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

 



On Sun, 30 Apr 2017, David Gressett wrote:

I'm working on getting the 32-bit MinGW platform on Windows updated
to a newer gcc than the gcc 5.3.0 thst is provided by the 32-bit  MinGW
installer Iwas able to build gcc 5.4.0 and 6.3.0 with only minor\difficulties,
but the 7.0.1 release candidates do not build.

The problem occurs when xgcc attempts to compile this:

libstdc++-v3/libsupc++/new_opa.cc

The error messages are as follows:

new_opa.cc: In function 'void* operator new(std::size_t, std::align_val_t)':
new_opa.cc:36:30: error: '_aligned_malloc' was not declared in this scope
#define aligned_alloc(al,sz) _aligned_malloc(sz,al)

new_opa.cc:103:33: note: in expansion of macro 'aligned_alloc'
  while (__builtin_expect ((p = aligned_alloc (align, sz)) == 0, false))
                                ^~~~~~~~~~~~~

new_opa.cc:36:30: note: suggested alternative: 'aligned_alloc'
#define aligned_alloc(al,sz) _aligned_malloc(sz,al)
                             ^

new_opa.cc:103:33: note: in expansion of macro 'aligned_alloc'
  while (__builtin_expect ((p = aligned_alloc (align, sz)) == 0, false))
                                ^~~~~~~~~~~~~
My searches in the source code for _aligned_malloc found a
changelog  entry for Bugzilla  PR libstdc++/79190, which is not for  Windows - it
is for HP-UX 11.00.  I did see, however, in comment 6 of bug report
79190, the following reference to Windows:

"We are using _aligned_malloc / _aligned_free on Windows, so it has to
be the case that alignment matches in allocation and deallocation."

There are no details about which kind of Windows gcc this is in (Cygwin?),  but
this suggests that a fix for MinGW should be simple. I would like to be able
to supply a fix for this before gcc 7 is released, but I don't know nearly enough
about the details of how gcc is configured to do that before the release date.

According to the documentation, we may be missing a #include <malloc.h> in new_opa.cc, but if that's the case, it is strange that noone noticed before... Does adding this #include help?

--
Marc Glisse



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux