This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug libstdc++/17755] New: Can't compile djgpp cross-compiler
- From: "psychonaut at nothingisreal dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 30 Sep 2004 18:57:05 -0000
- Subject: [Bug libstdc++/17755] New: Can't compile djgpp cross-compiler
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
I am trying to compile gcc as a cross-compiler for MS-DOS/Windows. I am
essentially using the same steps as presented at
<http://users.erols.com/praccompsol/djgpp/linux-x-djgpp-revised.txt>, except
with binuitls-2.15 and gcc-3.4.2. That is, I have done the following:
1) configured and installed a separate copy of binutils for target
i586-pc-msdosdjgpp
2) obtained the gcc-3.4.2 source
3) obtained and applied the djgpp patches for gcc-3.4.2 from
<ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/gcc342s2.zip>
4) configure --prefix=/usr/local/compiler/cross/djgpp
--target=i586-pc-msdosdjgpp
--with-headers=/usr/local/compiler/cross/djgpp/i586-pc-msdosdjgpp/include
5) make
Compilation fails in two places. First I get the following error:
/home/psy/software/cross-compiler/src/gnu/gcc-3.4.2-obj/gcc/xgcc
-B/home/psy/software/cross-compiler/src/gnu/gcc-3.4.2-obj/gcc/
-B/usr/local/compiler/cross/djgpp/i586-pc-msdosdjgpp/bin/
-B/usr/local/compiler/cross/djgpp/i586-pc-msdosdjgpp/lib/ -isystem
/usr/local/compiler/cross/djgpp/i586-pc-msdosdjgpp/include -isystem
/usr/local/compiler/cross/djgpp/i586-pc-msdosdjgpp/sys-include -c
-DHAVE_CONFIG_H -O2 -g -O2 -I. -I../../../gcc-3.4.2/libiberty/../include -W
-Wall -Wtraditional -pedantic ../../../gcc-3.4.2/libiberty/getpwd.c -o getpwd.o
../../../gcc-3.4.2/libiberty/getpwd.c: In function `getpwd':
../../../gcc-3.4.2/libiberty/getpwd.c:86: error: `PATH_MAX' undeclared (first
use in this function)
../../../gcc-3.4.2/libiberty/getpwd.c:86: error: (Each undeclared identifier
isreported only once
../../../gcc-3.4.2/libiberty/getpwd.c:86: error: for each function it appears in.)
make[1]: *** [getpwd.o] Error 1
make[1]: Leaving directory
`/var/software_backup/cross-compiler/src/gnu/gcc-3.4.2-obj/i586-pc-msdosdjgpp/libiberty'
make: *** [all-target-libiberty] Error 2
PATH_MAX is in <limits.h>, but I believe the definition is in the false branch
of a conditional block, so it does not get #defined. (That is, adding #include
<limits.h> to getpwd.c has no effect.) Manually adding a #define PATH_MAX 512
to getpwd.c allows compilation to continue until the next error, which I cannot
surmount:
/home/psy/software/cross-compiler/src/gnu/gcc-3.4.2-obj/gcc/xgcc
-shared-libgcc-B/home/psy/software/cross-compiler/src/gnu/gcc-3.4.2-obj/gcc/
-nostdinc++
-L/home/psy/software/cross-compiler/src/gnu/gcc-3.4.2-obj/i586-pc-msdosdjgpp/libstdc++-v3/src
-L/home/psy/software/cross-compiler/src/gnu/gcc-3.4.2-obj/i586-pc-msdosdjgpp/libstdc++-v3/src/.libs
-B/usr/local/compiler/cross/djgpp/i586-pc-msdosdjgpp/bin/
-B/usr/local/compiler/cross/djgpp/i586-pc-msdosdjgpp/lib/ -isystem
/usr/local/compiler/cross/djgpp/i586-pc-msdosdjgpp/include -isystem
/usr/local/compiler/cross/djgpp/i586-pc-msdosdjgpp/sys-include
-I/var/software_backup/cross-compiler/src/gnu/gcc-3.4.2-obj/i586-pc-msdosdjgpp/libstdc++-v3/include/i586-pc-msdosdjgpp
-I/var/software_backup/cross-compiler/src/gnu/gcc-3.4.2-obj/i586-pc-msdosdjgpp/libstdc++-v3/include
-I/var/software_backup/cross-compiler/src/gnu/gcc-3.4.2/libstdc++-v3/libsupc++
-O2 -g -O2 -g -O2 -fno-implicit-templates -Wall -W -Wwrite-strings -Wcast-qual
-fdiagnostics-show-location=once -c
../../../../gcc-3.4.2/libstdc++-v3/src/allocator.cc -o allocator.o
In file included from
/var/software_backup/cross-compiler/src/gnu/gcc-3.4.2-obj/i586-pc-msdosdjgpp/libstdc++-v3/include/bits/postypes.h:46,
from
/var/software_backup/cross-compiler/src/gnu/gcc-3.4.2-obj/i586-pc-msdosdjgpp/libstdc++-v3/include/iosfwd:50,
from
/var/software_backup/cross-compiler/src/gnu/gcc-3.4.2-obj/i586-pc-msdosdjgpp/libstdc++-v3/include/bits/stl_algobase.h:70,
from
/var/software_backup/cross-compiler/src/gnu/gcc-3.4.2-obj/i586-pc-msdosdjgpp/libstdc++-v3/include/memory:54,
from ../../../../gcc-3.4.2/libstdc++-v3/src/allocator.cc:35:
/var/software_backup/cross-compiler/src/gnu/gcc-3.4.2-obj/i586-pc-msdosdjgpp/libstdc++-v3/include/cwchar:65:
error: conflicting declaration 'typedef struct mbstate_t mbstate_t'
/usr/local/compiler/cross/djgpp/i586-pc-msdosdjgpp/include/wchar.h:27: error:
'mbstate_t' has a previous declaration as `typedef struct mbstate_t mbstate_t'
/var/software_backup/cross-compiler/src/gnu/gcc-3.4.2-obj/i586-pc-msdosdjgpp/libstdc++-v3/include/cwchar:65:
error: declaration of `typedef struct mbstate_t mbstate_t'
/usr/local/compiler/cross/djgpp/i586-pc-msdosdjgpp/include/wchar.h:27: error:
conflicts with previous declaration `typedef struct mbstate_t mbstate_t'
/var/software_backup/cross-compiler/src/gnu/gcc-3.4.2-obj/i586-pc-msdosdjgpp/libstdc++-v3/include/cwchar:65:
error: declaration of `typedef struct mbstate_t mbstate_t'
/usr/local/compiler/cross/djgpp/i586-pc-msdosdjgpp/include/wchar.h:27: error:
conflicts with previous declaration `typedef struct mbstate_t mbstate_t'
/var/software_backup/cross-compiler/src/gnu/gcc-3.4.2-obj/i586-pc-msdosdjgpp/libstdc++-v3/include/cwchar:65:
error: declaration of `typedef struct mbstate_t mbstate_t'
/usr/local/compiler/cross/djgpp/i586-pc-msdosdjgpp/include/wchar.h:27: error:
conflicts with previous declaration `typedef struct mbstate_t mbstate_t'
make[3]: *** [allocator.lo] Error 1
make[3]: Leaving directory
`/var/software_backup/cross-compiler/src/gnu/gcc-3.4.2-obj/i586-pc-msdosdjgpp/libstdc++-v3/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory
`/var/software_backup/cross-compiler/src/gnu/gcc-3.4.2-obj/i586-pc-msdosdjgpp/libstdc++-v3'
make[1]: *** [all] Error 2
make[1]: Leaving directory
`/var/software_backup/cross-compiler/src/gnu/gcc-3.4.2-obj/i586-pc-msdosdjgpp/libstdc++-v3'
make: *** [all-target-libstdc++-v3] Error 2
--
Summary: Can't compile djgpp cross-compiler
Product: gcc
Version: 3.4.2
Status: UNCONFIRMED
Severity: critical
Priority: P2
Component: libstdc++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: psychonaut at nothingisreal dot com
CC: dhazeghi at yahoo dot com,gcc-bugs at gcc dot gnu dot
org,psychonaut at nothingisreal dot com
GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i586-pc-msdosdjgpp
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17755