A bit of help needed, and much appreciated (Thanks
to Brian and Andrew for clues already provided)...
Background:
I'm trying to build a cygwin cross-compiler for MIPS.
Why ? Our chip vendor provided a GCC C, but no C++.
I've got a lot of C++ code I'd like to run on the part.
The vendor released per GPL the sources they used.
I'm using 3.4.4 as the build compiler, and the
vendor-provided source for the cross-compiler is also
3.4.4-based.
Other background:
In decades past I have written compilers, and I have
adapted another C++ compiler to run bare-metal and
later on an embedded OS I wrote. Thus the low-level
concepts are all very familiar, but I'm just starting
to learn about GCC.
So far:
I have, despite a snarl of dependency traps, stuff
not distributed via cygwin (or distributed non-working)
and guile-less... never mind. So far, I have built a
cross-compiler that compiles C++ OK, and for trivial
test classes runs C++ on my target hardware. I've included
the configure parameters below (provided by the vendor
and mostly matching that reported by gcc -v, which is
also reported below as requested by Andrew).
I'm confused about the supporting libraries.
I hoped (OK, wished) that "make" would create a ready-
to-package cross-compiler including:
- executables (OK so far)
- set of libraries for the target (built by running the
newly-built cross-compiler)
- the set of include files required for the selected
language targets
I hoped that the includes/libraries would implement
C and C++ as possible bare-metal. That is, minus file
IO etc. or with harmless stubs to be replaced later
as needed. The vendor has the bare metal adaption for
malloc-level utilities in libgcc.
While I did get a complete set of executables from
the make, I didn't get libgcc, libstdc++, nor did I get
the include files. What am I missing here ?
I need to get the C++ libraries built (and then I'll
see what work I must do to adapt to the bare-metal
environment).
I'd be grateful for any pointers, directions to
documentation I should study, etc...
=== Configure parameters:
../src/configure \
--target=pic32mx \
--program-prefix=pic32- \
--enable-languages=c,c++ \
--prefix=$WORKING_DIR/release \
--libexecdir=$WORKING_DIR/release/pic32mx/bin \
--disable-nls \
--disable-tui --disable-gdbtk --disable-shared --enable-static \
--disable-threads --with-dwarf2 --enable-multilib \
--with-lib-path=: --without-headers \
==== Existing cross-compiler -v output:
Configured with: ../src/configure --target=pic32mx --program-prefix=pic32-
--enable-languages=c
--prefix
=/home/c11067/src/MPLABC32/pic32-microchip-release-1.04-freeze-20080915/pic32-tools
--libexecdir=/home/c11067/src/MPLABC32/pic32-microchip-release-1.04-freeze-20080915/pic32-tools/pic32mx/bin
--build=i686-pc-linux-gnu --host=i586-mingw32msvc
--disable-nls --disable-tui --disable-gdbtk --disable-shared
--enable-static --disable-threads
--disable-bootstrap --with-dwarf2 --enable-multilib --without-newlib
--with-lib-path=:
Thread model: posix
gcc version 3.4.4 Microchip MPLAB C Compiler for PIC32 MCUs v1.04-20080908
Dave Nadler, USA East Coast voice (978) 263-0097, drn@xxxxxxxxxx