This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug libstdc++/17755] New: Can't compile djgpp cross-compiler


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]