Bug 33203 - [4.3 regression] libstdc++-v3 build broken on i386-pc-mingw32
Summary: [4.3 regression] libstdc++-v3 build broken on i386-pc-mingw32
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: libstdc++ (show other bugs)
Version: 4.3.0
: P1 blocker
Target Milestone: 4.3.0
Assignee: Not yet assigned to anyone
URL:
Keywords: build, patch
Depends on:
Blocks:
 
Reported: 2007-08-27 13:18 UTC by Francois-Xavier Coudert
Modified: 2007-09-07 04:21 UTC (History)
4 users (show)

See Also:
Host: i386-pc-mingw32
Target: i386-pc-mingw32
Build: i386-pc-mingw32
Known to work:
Known to fail:
Last reconfirmed: 2007-09-05 19:00:01


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Francois-Xavier Coudert 2007-08-27 13:18:01 UTC
A native i386-pc-mingw32 bootstrap of mainline fails in libstdc++-v3 with:

libtool: compile:  /home/FX/ibin/./gcc/xgcc -shared-libgcc -B/home/FX/ibin/./gcc -nostdinc++ -L/home/FX/ibin/i386-pc-mingw32/libstdc++-v3/src -L/home/FX/ibin/i386-pc-mingw32/libstdc++-v3/src/.libs -L/home/FX/ibin/i386-pc-mingw32/winsup/mingw -L/home/FX/ibin/i386-pc-mingw32/winsup/w32api/lib -isystem /home/FX/trunk/winsup/mingw/include -isystem /home/FX/trunk/winsup/w32api/include -B/mingw/i386-pc-mingw32/bin/ -B/mingw/i386-pc-mingw32/lib/ -isystem /mingw/i386-pc-mingw32/include -isystem /mingw/i386-pc-mingw32/sys-include -I/home/FX/ibin/i386-pc-mingw32/libstdc++-v3/include/i386-pc-mingw32 -I/home/FX/ibin/i386-pc-mingw32/libstdc++-v3/include -I/home/FX/trunk/libstdc++-v3/libsupc++ -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -fdiagnostics-show-location=once -std=gnu++0x -c ../../../../trunk/libstdc++-v3/src/system_error.cc  -DDLL_EXPORT -DPIC -o .libs/system_error.o
In file included from ../../../../trunk/libstdc++-v3/src/system_error.cc:32:
C:/msys/1.0.10/home/FX/ibin/i386-pc-mingw32/libstdc++-v3/include/system_error:58: error: 'EAFNOSUPPORT' was not declared in this scope
C:/msys/1.0.10/home/FX/ibin/i386-pc-mingw32/libstdc++-v3/include/system_error:59: error: 'EADDRINUSE' was not declared in this scope
C:/msys/1.0.10/home/FX/ibin/i386-pc-mingw32/libstdc++-v3/include/system_error:60: error: 'EADDRNOTAVAIL' was not declared in this scope

and lots others. The full list of missing macros is: EAFNOSUPPORT EADDRINUSE EADDRNOTAVAIL EISCONN EBADMSG ECONNABORTED EALREADY ECONNREFUSED ECONNRESET EDESTADDRREQ EHOSTUNREACH EIDRM EMSGSIZE ENETDOWN ENETRESET ENETUNREACH ENOBUFS ENOLINK ENODATA ENOMSG ENOPROTOOPT ENOSR ENOTSOCK ENOSTR ENOTCONN ENOTSUP ECANCELED EINPROGRESS EOPNOTSUPP EWOULDBLOCK EPROTO EPROTONOSUPPORT ETIME ETXTBSY ETIMEDOUT ELOOP EOVERFLOW EPROTOTYPE

It's been a long time since I last bootstrapped with C++ on i386-pc-mingw32, but this seems to have been introduced by:

2007-08-23  Benjamin Kosnik  <bkoz@redhat.com>

        * include/std/system_error: New file.
Comment 1 Benjamin Kosnik 2007-08-27 19:01:29 UTC
I'll have to come up with some other solution when these POSIX macros aren't available. 
Comment 2 Danny Smith 2007-09-05 19:00:01 UTC
A patch is at:
http://gcc.gnu.org/ml/gcc-patches/2007-09/msg00310.html
Danny
Comment 3 patchapp@dberlin.org 2007-09-06 11:55:43 UTC
Subject: Bug number PR libstdc++/33203

A patch for this bug has been added to the patch tracker.
The mailing list url for the patch is http://gcc.gnu.org/ml/gcc-patches/2007-09/msg00310.html
Comment 4 dannysmith@gcc.gnu.org 2007-09-07 04:18:58 UTC
Subject: Bug 33203

Author: dannysmith
Date: Fri Sep  7 04:18:40 2007
New Revision: 128228

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=128228
Log:
	PR libstdc++/33203
	* configure.host (error_constants_dir):  New variable,
	defaulting to os/generic.
	( mingw32*): Overide default.
	* configure.ac (ERROR_CONSTANTS_SRCDIR): New.
	* configure: Regenerate.
	* include/Makefile.am (host_headers): Add
	$(ERROR_CONSTANTS_SRCDIR)/error_constants.h .
	* include/Makefile.in: Regenerate.
	* include/std/system_error (enum posix_errno): Remove.
	Include <bits/error_constants.h> instead.
	* config/os/mingw32/error_constants.h: New.
	* config/os/generic/error_constants.h: New.

Added:
    trunk/libstdc++-v3/config/os/generic/error_constants.h
    trunk/libstdc++-v3/config/os/mingw32/error_constants.h
Modified:
    trunk/libstdc++-v3/ChangeLog
    trunk/libstdc++-v3/configure
    trunk/libstdc++-v3/configure.ac
    trunk/libstdc++-v3/configure.host
    trunk/libstdc++-v3/include/Makefile.am
    trunk/libstdc++-v3/include/Makefile.in
    trunk/libstdc++-v3/include/std/system_error

Comment 5 Danny Smith 2007-09-07 04:21:48 UTC
Fixed.
Danny