acadia-newlib/winsup
Corinna Vinschen 264b5e137e Move definition of wsadata into wsock_init
The problem this patch fixes showed up after updating to gcc-5.3.0.  The
cuplrit is a change in gcc when emitting section attributes.  It only
shows up when building without optimization.  Effect in Cygwin: ws2_32
functions failed to load.

In the original code the definition of "NO_COPY wsadata" was preceeding
an __asm__ block (the definition of the _wsock_init wrapper), while the
definition of "NO_COPY here" immediately follows the same assembler
block.  When gcc-5.3.0 emits assembler code for the wsadata definition,
it emits the .data_cygwin_nocopy section attribute.

Next it emits the assembler output for the __asm_ block, entirely ignoring
its content.  The __asm__ block adds a .text section definition.

Eventually gcc emits assembler code for the here definition.  However,
apparently gcc still "knows" that it just emitted the .data_cygwin_nocopy
section attribute and so doesn't redefine it.  Remember the __asm__?  It
changed the section to .text.

So with gcc-4.9.3 we got:

    .section .data_cygwin_nocopy,"w"
  wsadata:

  __asm__ block:
    .text

    .section .data_cygwin_nocopy,"w"
  here:

With gcc 5.3.0 we now get:

    .section .data_cygwin_nocopy,"w"
  wsadata:

  __asm__ block:
    .text

  here:

So "here" is now in the .text segment which is read-only.  Hilarity ensues.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-03-09 22:55:28 +01:00
..
cygserver Deprecate all winsup ChangeLog files 2016-01-07 21:16:01 +01:00
cygwin Move definition of wsadata into wsock_init 2016-03-09 22:55:28 +01:00
doc Cygwin: Document new POSIX ACL API 2016-03-08 17:33:08 +01:00
lsaauth cyglsa: Drop code handling Windows 2000 and earlier 2016-02-17 16:08:59 +01:00
testsuite Deprecate all winsup ChangeLog files 2016-01-07 21:16:01 +01:00
utils Implement POSIX.1e ACL functions 2016-03-08 13:56:40 +01:00
COPYING * COPYING: Replace with the GPLv3 definition. 2011-04-19 16:52:51 +00:00
CYGWIN_LICENSE * COPYING: Replace with the GPLv3 definition. 2011-04-19 16:52:51 +00:00
ChangeLog Deprecate all winsup ChangeLog files 2016-01-07 21:16:01 +01:00
ChangeLog-2015 Deprecate all winsup ChangeLog files 2016-01-07 21:16:01 +01:00
Makefile.common * Makefile.common (COMPILE.cc): Add -fno-use-cxa-atexit. 2014-08-07 16:19:09 +00:00
Makefile.in * Makefile.in: Ignore errors on doc install. 2014-02-18 19:58:39 +00:00
README
acinclude.m4 ChangeLog: 2012-11-23 13:22:47 +00:00
aclocal.m4 winsup/ChangeLog: 2013-11-07 00:19:52 +00:00
autogen.sh ChangeLog: 2012-11-23 13:22:47 +00:00
c++wrap ChangeLog: 2012-11-23 13:22:47 +00:00
ccwrap ccwrap: fix build with non-english locale set (v2) 2016-02-29 14:44:23 +01:00
config.guess ChangeLog: 2012-11-23 13:22:47 +00:00
config.sub ChangeLog: 2012-11-23 13:22:47 +00:00
configure * configure.ac: Convert to new AC_INIT style. 2014-11-13 12:12:56 +00:00
configure.ac * configure.ac: Convert to new AC_INIT style. 2014-11-13 12:12:56 +00:00
configure.cygwin winsup/ChangeLog: 2013-11-07 00:19:52 +00:00
install-sh ChangeLog: 2012-11-23 13:22:47 +00:00

README

THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

Cygwin documentation is available on the net at http://cygwin.com
You might especially be interested in

http://cygwin.com/faq/faq.programming.html#faq.programming.building-cygwin