Dear all: My questions are: About target naming: 1. It seems the naming rule about target is located at http:// gcc.gnu.org/install/specific.html. And there are 4 parts we need to take care about cpu, manufacturer, kernel, os. Which one is necessary, except cpu? 2. Do the os and kernel have the same meaning? 3. why only mips have to use "el" to mention little-endian? Is that due to the gcc cannot support dynamically change endian like ARM does? 4. in the websie as 1 point out, the * of "arm-*-elf" mean we can fill any characters we like, like Glob in bash? about cross-compiling: 1. I try to cross compile gcc3-4-5 for arm. And during compiling the error comes from open function in collect2.c. I google the error and it seems the format of open is too old for what current fcntl2.h defined. My question is: How gcc find fcntl2.h? The log attach at the end of letter doesn't tell where it is. Thanks for your help in advance, miloody gcc -g -O2 -DIN_GCC -DCROSS_COMPILE -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -pedantic -Wno-long-long -DHAVE_CONFIG_H -I. -I. -I/media/sda6/uclinux/toolchain/crosstool-0.43/build/arm-9tdmi-linux-gnu/gcc-3.4.5-glibc-2.3.5/gcc-3.4.5/gcc -I/media/sda6/uclinux/toolchain/crosstool-0.43/build/arm-9tdmi-linux-gnu/gcc-3.4.5-glibc-2.3.5/gcc-3.4.5/gcc/. -I/media/sda6/uclinux/toolchain/crosstool-0.43/build/arm-9tdmi-linux-gnu/gcc-3.4.5-glibc-2.3.5/gcc-3.4.5/gcc/../include \ -DTARGET_MACHINE=\"arm-9tdmi-linux-gnu\" \ -c /media/sda6/uclinux/toolchain/crosstool-0.43/build/arm-9tdmi-linux-gnu/gcc-3.4.5-glibc-2.3.5/gcc-3.4.5/gcc/collect2.c -o collect2.o In function \u2018open\u2019, inlined from \u2018collect_execute\u2019 at /media/sda6/uclinux/toolchain/crosstool-0.43/build/arm-9tdmi-linux-gnu/gcc-3.4.5-glibc-2.3.5/gcc-3.4.5/gcc/collect2.c:1537: /usr/include/bits/fcntl2.h:51: error: call to `__open_missing_mode` declared with attribute error: open with O_CREAT in second argument needs 3 arguments make[1]: *** [collect2.o] Error 1 make[1]: Leaving directory `/media/sda6/uclinux/toolchain/crosstool-0.43/build/arm-9tdmi-linux-gnu/gcc-3.4.5-glibc-2.3.5/build-gcc-core/gcc' make: *** [all-gcc] Error 2