Цитата(Вовка_Бызов @ Nov 24 2008, 13:27)

mipsisa32-elf-g++
Я Вас удивлю.
ЭТО И ЕСТЬ C++ (Си Плюс Плюс) компилятор от GCC.
Цитата
Проблема в том, что линкер начинает выдавать кучу разных необнаруженных ссылок (видимо - специфика C++):
__rethrow
__builtin_new
__builtin_delete
__builtin_vec_new
__builtin_vec_delete
А это либо ключи выставлены неправильно, либо нехватает библиотеки libstdc++
Ее можно и самому скомпилить.
А что говорит
Код
mipsisa32-elf-g++ -v
Чем он отличается от SDE предлагаемого самим mips.com?
Попробуйте его (в смысле SDE). MIPS там много полезностей сделала (оптимизация, спец-ключи для архитектур ...).
Для сранения
Код
$sde-g++ -v
Reading specs from /opt/toolchains/mips-sde/bin/../lib/gcc/sde/3.4.4/specs
Configured with: /var/tmp/releasetool.tmp/bank-20070420-1231/B-i386-linux/toolchain/mipssde-6.06.01/configure --target=sde --prefix=/usr/local/sde6 --enable-languages=c,c++ --without-newlib --disable-shared --disable-nls --disable-tui --disable-multilib
Thread model: mipssde
gcc version 3.4.4 mipssde-6.06.01-20070420
$sde-g++ --target-help
Target specific options:
-mno-xgot Do not lift restrictions on GOT size
-mxgot Lift restrictions on GOT size
-mips16e Generate mips16e code
-mno-mips16 Generate normal-mode code
-mips16 Generate mips16 code
-mno-explicit-relocs Use assembler macros instead of relocation operators
-mexplicit-relocs Use NewABI-style %reloc() assembly operators
-mno-check-zero-division Don't trap on integer divide by zero
-mcheck-zero-division Trap on integer divide by zero
-mno-fix-24k-e48 Don't work around the 24K errata no. 48
-mfix-24k-e48 Work around the 24K errata no. 48
-mno-fix-sb1 Don't work around errata for early SB-1 revision 2 cores
-mfix-sb1 Work around errata for early SB-1 revision 2 cores
-mno-fix4300 Don't work around early 4300 hardware bug
-mfix4300 Work around early 4300 hardware bug
-mfused-madd Generate fused multiply/add instructions
-mno-fused-madd Don't generate fused multiply/add instructions
-mno-mad Don't use multiply accumulate
-mmad Use multiply accumulate
-mno-dsp Don't use MIPS DSP ASE instructions
-mdsp Use MIPS DSP ASE instructions
-mno-smartmips Don't use SmartMIPS instructions
-msmartmips Use SmartMIPS instructions
-mno-mips3d Don't use MIPS-3D instructions
-mips3d Use MIPS-3D instructions
-mno-paired-single Don't use paired-single floating point instructions
-mpaired-single Use paired-single floating point instructions
-mdouble-float Don't use single (32-bit) FP only
-msingle-float Use single (32-bit) FP only
-mel Use little-endian byte order
-meb Use big-endian byte order
-mno-uninit-const-in-rodata Don't put uninitialized constants in ROM
-muninit-const-in-rodata Put uninitialized constants in ROM (needs -membedded-data)
-mno-embedded-data Don't use ROM instead of RAM
-membedded-data Use ROM instead of RAM
-mno-embedded-pic Don't use embedded PIC
-membedded-pic Use embedded PIC
-mno-long-calls Don't use indirect calls
-mlong-calls Use indirect calls
-mno-abicalls Don't use Irix PIC
-mabicalls Use Irix PIC
-mgp32 Use 32-bit general registers
-mgp64 Use 64-bit general registers
-mfp32 Use 32-bit FP registers
-mfp64 Use 64-bit FP registers
-mhard-float Use hardware floating point
-msoft-float Use software floating point
-mno-mips-tfile Don't use mips-tfile asm postpass
-mmips-tfile Use mips-tfile asm postpass
-mno-memcpy Optimize block moves
-mmemcpy Don't optimize block moves
-mno-stats Don't output compiler statistics
-mstats Output compiler statistics (now ignored)
-mno-gpopt Don't use GP relative sdata/sbss sections (now ignored)
-mno-gpOPT Don't use GP relative sdata/sbss sections (now ignored)
-mgpopt Use GP relative sdata/sbss sections (now ignored)
-mgpOPT Use GP relative sdata/sbss sections (now ignored)
-mno-rnames Don't use symbolic register names
-mrnames Use symbolic register names
-mgas Use GNU as
-mmips-as Use MIPS as
-mno-split-addresses Don't optimize lui/addiu address loads
-msplit-addresses Optimize lui/addiu address loads
-mlong32 Use 32-bit long type
-mlong64 Use 64-bit long type
-mint64 Use 64-bit int type
-mno-float Don't use floating point libraries
-mcode-xonly Execute-only MIPS16 code, strings and jump tables in data seg
-mno-data-in-code Don't place MIPS16 constant data in the code section
-mbranch-cost= Specify cost of branch instructions
-mno-branch-likely Alias for -mbranch-likely=no
-mbranch-likely Specify when to use branch likely instructions
-mflush-func= Specify cache flush function
-mno-flush-func Don't call any cache flush functions
-mips Specify a Standard MIPS ISA
-mabi= Specify an ABI
-march= Specify CPU for code generation purposes
-mtune= Specify CPU for scheduling purposes
There are undocumented target specific options as well.
MIPS options:
-EB generate big endian output
-EL generate little endian output
-g, -g2 do not remove unneeded NOPs or swap branches
-G NUM allow referencing objects up to NUM bytes
implicitly with the gp register [default 8]
-mips1 generate MIPS ISA I instructions
-mips2 generate MIPS ISA II instructions
-mips3 generate MIPS ISA III instructions
-mips4 generate MIPS ISA IV instructions
-mips5 generate MIPS ISA V instructions
-mips32 generate MIPS32 ISA instructions
-mips32r2 generate MIPS32 release 2 ISA instructions
-mips64 generate MIPS64 ISA instructions
-mips64r2 generate MIPS64 release 2 ISA instructions
-march=CPU/-mtune=CPU generate code/schedule for CPU, where CPU is one of:
mips1, mips2, mips3, mips4, mips5, mips32,
mips32r2, mips64, mips64r2, r3000, r2000, r3900,
r6000, r4000, r4010, vr4100, vr4111, vr4120,
vr4130, vr4181, vr4300, r4400, r4600, orion,
r4650, r8000, r10000, r12000, vr5000, vr5400,
vr5500, rm5200, rm5230, rm5231, rm5261, rm5721,
rm7000, rm9000, 4kc, 4km, 4kp, 4ksc, 4kec, 4kem,
4kep, 4ksd, m4k, m4kp, 24k, 24kc, 24kf2_1, 24kf,
24kf1_1, 24kfx, 24kx, 24ke, 24kec, 24kef2_1,
24kef, 24kef1_1, 24kefx, 24kex, 34k, 34kc,
34kf2_1, 34kf, 34kf1_1, 34kfx, 34kx, 74kc,
74kf2_1, 74kf, 74kf1_1, 74kfx, 74kx, 74kf3_2,
5kc, 5kf, 20kc, 25kf, sb1, from-abi
-mCPU equivalent to -march=CPU -mtune=CPU. Deprecated.
-no-mCPU don't generate code specific to CPU.
For -mCPU and -no-mCPU, CPU must be one of:
3900, 4010, 4100, 4650
-mips16 generate mips16 instructions
-no-mips16 do not generate mips16 instructions
-mips16e generate mips16e instructions
-no-mips16e do not generate mips16e instructions
-smartmips generate smartmips instructions
-no-smartmips do not generate smartmips instructions
-mfix-vr4120 work around certain VR4120 errata
-mgp32 use 32-bit GPRs, regardless of the chosen ISA
-mfp32 use 32-bit FPRs, regardless of the chosen ISA
-O0 remove unneeded NOPs, do not swap branches
-O remove unneeded NOPs and swap branches
--[no-]construct-floats [dis]allow floating point values to be constructed
--trap, --no-break trap exception on div by 0 and mult overflow
--break, --no-trap break exception on div by 0 and mult overflow
-KPIC, -call_shared generate SVR4 position independent code
-non_shared do not generate position independent code
-xgot assume a 32 bit GOT
-mpdr, -mno-pdr enable/disable creation of .pdr sections
-mabi=ABI create ABI conformant object file for:
32, o64, n32, 64, eabi
-32 create o32 ABI object file (default)
-n32 create n32 ABI object file
-64 create 64 ABI object file
elf32ebmip:
-Bgroup Selects group name lookup rules for DSO
--disable-new-dtags Disable new dynamic tags
--enable-new-dtags Enable new dynamic tags
--eh-frame-hdr Create .eh_frame_hdr section
-z combreloc Merge dynamic relocs into one section and sort
-z defs Report unresolved symbols in object files.
-z execstack Mark executable as requiring executable stack
-z initfirst Mark DSO to be initialized first at runtime
-z interpose Mark object to interpose all DSOs but executable
-z loadfltr Mark object requiring immediate process
-z muldefs Allow multiple definitions
-z nocombreloc Don't merge dynamic relocs into one section
-z nocopyreloc Don't create copy relocs
-z nodefaultlib Mark object not to use default search paths
-z nodelete Mark DSO non-deletable at runtime
-z nodlopen Mark DSO not available to dlopen
-z nodump Mark DSO not available to dldump
-z noexecstack Mark executable as not requiring executable stack
-z norelro Don't create RELRO program header
-z now Mark object non-lazy runtime binding
-z origin Mark object requiring immediate $ORIGIN processing
at runtime
-z relro Create RELRO program header
-z KEYWORD Ignored for Solaris compatibility
elf32elmip:
-Bgroup Selects group name lookup rules for DSO
--disable-new-dtags Disable new dynamic tags
--enable-new-dtags Enable new dynamic tags
--eh-frame-hdr Create .eh_frame_hdr section
-z combreloc Merge dynamic relocs into one section and sort
-z defs Report unresolved symbols in object files.
-z execstack Mark executable as requiring executable stack
-z initfirst Mark DSO to be initialized first at runtime
-z interpose Mark object to interpose all DSOs but executable
-z loadfltr Mark object requiring immediate process
-z muldefs Allow multiple definitions
-z nocombreloc Don't merge dynamic relocs into one section
-z nocopyreloc Don't create copy relocs
-z nodefaultlib Mark object not to use default search paths
-z nodelete Mark DSO non-deletable at runtime
-z nodlopen Mark DSO not available to dlopen
-z nodump Mark DSO not available to dldump
-z noexecstack Mark executable as not requiring executable stack
-z norelro Don't create RELRO program header
-z now Mark object non-lazy runtime binding
-z origin Mark object requiring immediate $ORIGIN processing
at runtime
-z relro Create RELRO program header
-z KEYWORD Ignored for Solaris compatibility
elf32ltsmip:
-Bgroup Selects group name lookup rules for DSO
--disable-new-dtags Disable new dynamic tags
--enable-new-dtags Enable new dynamic tags
--eh-frame-hdr Create .eh_frame_hdr section
-z combreloc Merge dynamic relocs into one section and sort
-z defs Report unresolved symbols in object files.
-z execstack Mark executable as requiring executable stack
-z initfirst Mark DSO to be initialized first at runtime
-z interpose Mark object to interpose all DSOs but executable
-z loadfltr Mark object requiring immediate process
-z muldefs Allow multiple definitions
-z nocombreloc Don't merge dynamic relocs into one section
-z nocopyreloc Don't create copy relocs
-z nodefaultlib Mark object not to use default search paths
-z nodelete Mark DSO non-deletable at runtime
-z nodlopen Mark DSO not available to dlopen
-z nodump Mark DSO not available to dldump
-z noexecstack Mark executable as not requiring executable stack
-z norelro Don't create RELRO program header
-z now Mark object non-lazy runtime binding
-z origin Mark object requiring immediate $ORIGIN processing
at runtime
-z relro Create RELRO program header
-z KEYWORD Ignored for Solaris compatibility
elf32ltsmipn32:
-Bgroup Selects group name lookup rules for DSO
--disable-new-dtags Disable new dynamic tags
--enable-new-dtags Enable new dynamic tags
--eh-frame-hdr Create .eh_frame_hdr section
-z combreloc Merge dynamic relocs into one section and sort
-z defs Report unresolved symbols in object files.
-z execstack Mark executable as requiring executable stack
-z initfirst Mark DSO to be initialized first at runtime
-z interpose Mark object to interpose all DSOs but executable
-z loadfltr Mark object requiring immediate process
-z muldefs Allow multiple definitions
-z nocombreloc Don't merge dynamic relocs into one section
-z nocopyreloc Don't create copy relocs
-z nodefaultlib Mark object not to use default search paths
-z nodelete Mark DSO non-deletable at runtime
-z nodlopen Mark DSO not available to dlopen
-z nodump Mark DSO not available to dldump
-z noexecstack Mark executable as not requiring executable stack
-z norelro Don't create RELRO program header
-z now Mark object non-lazy runtime binding
-z origin Mark object requiring immediate $ORIGIN processing
at runtime
-z relro Create RELRO program header
-z KEYWORD Ignored for Solaris compatibility
elf64ltsmip:
-Bgroup Selects group name lookup rules for DSO
--disable-new-dtags Disable new dynamic tags
--enable-new-dtags Enable new dynamic tags
--eh-frame-hdr Create .eh_frame_hdr section
-z combreloc Merge dynamic relocs into one section and sort
-z defs Report unresolved symbols in object files.
-z execstack Mark executable as requiring executable stack
-z initfirst Mark DSO to be initialized first at runtime
-z interpose Mark object to interpose all DSOs but executable
-z loadfltr Mark object requiring immediate process
-z muldefs Allow multiple definitions
-z nocombreloc Don't merge dynamic relocs into one section
-z nocopyreloc Don't create copy relocs
-z nodefaultlib Mark object not to use default search paths
-z nodelete Mark DSO non-deletable at runtime
-z nodlopen Mark DSO not available to dlopen
-z nodump Mark DSO not available to dldump
-z noexecstack Mark executable as not requiring executable stack
-z norelro Don't create RELRO program header
-z now Mark object non-lazy runtime binding
-z origin Mark object requiring immediate $ORIGIN processing
at runtime
-z relro Create RELRO program header
-z KEYWORD Ignored for Solaris compatibility
elf32btsmip:
-Bgroup Selects group name lookup rules for DSO
--disable-new-dtags Disable new dynamic tags
--enable-new-dtags Enable new dynamic tags
--eh-frame-hdr Create .eh_frame_hdr section
-z combreloc Merge dynamic relocs into one section and sort
-z defs Report unresolved symbols in object files.
-z execstack Mark executable as requiring executable stack
-z initfirst Mark DSO to be initialized first at runtime
-z interpose Mark object to interpose all DSOs but executable
-z loadfltr Mark object requiring immediate process
-z muldefs Allow multiple definitions
-z nocombreloc Don't merge dynamic relocs into one section
-z nocopyreloc Don't create copy relocs
-z nodefaultlib Mark object not to use default search paths
-z nodelete Mark DSO non-deletable at runtime
-z nodlopen Mark DSO not available to dlopen
-z nodump Mark DSO not available to dldump
-z noexecstack Mark executable as not requiring executable stack
-z norelro Don't create RELRO program header
-z now Mark object non-lazy runtime binding
-z origin Mark object requiring immediate $ORIGIN processing
at runtime
-z relro Create RELRO program header
-z KEYWORD Ignored for Solaris compatibility
elf32btsmipn32:
-Bgroup Selects group name lookup rules for DSO
--disable-new-dtags Disable new dynamic tags
--enable-new-dtags Enable new dynamic tags
--eh-frame-hdr Create .eh_frame_hdr section
-z combreloc Merge dynamic relocs into one section and sort
-z defs Report unresolved symbols in object files.
-z execstack Mark executable as requiring executable stack
-z initfirst Mark DSO to be initialized first at runtime
-z interpose Mark object to interpose all DSOs but executable
-z loadfltr Mark object requiring immediate process
-z muldefs Allow multiple definitions
-z nocombreloc Don't merge dynamic relocs into one section
-z nocopyreloc Don't create copy relocs
-z nodefaultlib Mark object not to use default search paths
-z nodelete Mark DSO non-deletable at runtime
-z nodlopen Mark DSO not available to dlopen
-z nodump Mark DSO not available to dldump
-z noexecstack Mark executable as not requiring executable stack
-z norelro Don't create RELRO program header
-z now Mark object non-lazy runtime binding
-z origin Mark object requiring immediate $ORIGIN processing
at runtime
-z relro Create RELRO program header
-z KEYWORD Ignored for Solaris compatibility
elf64btsmip:
-Bgroup Selects group name lookup rules for DSO
--disable-new-dtags Disable new dynamic tags
--enable-new-dtags Enable new dynamic tags
--eh-frame-hdr Create .eh_frame_hdr section
-z combreloc Merge dynamic relocs into one section and sort
-z defs Report unresolved symbols in object files.
-z execstack Mark executable as requiring executable stack
-z initfirst Mark DSO to be initialized first at runtime
-z interpose Mark object to interpose all DSOs but executable
-z loadfltr Mark object requiring immediate process
-z muldefs Allow multiple definitions
-z nocombreloc Don't merge dynamic relocs into one section
-z nocopyreloc Don't create copy relocs
-z nodefaultlib Mark object not to use default search paths
-z nodelete Mark DSO non-deletable at runtime
-z nodlopen Mark DSO not available to dlopen
-z nodump Mark DSO not available to dldump
-z noexecstack Mark executable as not requiring executable stack
-z norelro Don't create RELRO program header
-z now Mark object non-lazy runtime binding
-z origin Mark object requiring immediate $ORIGIN processing
at runtime
-z relro Create RELRO program header
-z KEYWORD Ignored for Solaris compatibility