I'm using mips-elf-gcc 3.4.0 for cygwin. I wish the output code relocatable, so I use '-mlong-calls' options when compiling C files. Unfortunately when I check the disassembled list file, I find there are still 'jal' instructions. And I try mipsel-linux-gcc 3.4.4 for linux, everything is okay. Is it a bug of mips-elf-gcc 3.4.0? The mips-elf-gcc tool is available on http://www.macraigor.com/cgi_bin/counters/unicounter.pl?name=counters/gnu_win_mips&deliver=http://www.ocdemon.com/gnutools-mips-elf-2.05.exe mips-elf-gcc -v shows ------------------------------------------------- Reading specs from /usr/local/lib/gcc/mips-elf/3.4.0-macraigor1/specs Configured with: /rel/share/gnu/src/gcc-3.4.0-macraigor1/configure --host=i686-pc-cygwin --target=mips-elf --disable-nls --with-stabs --disable-install-libiberty --disable-install-libbfd --disable-dependency-tracking --enable-64-bit-bfd --enable-languages=c,c++ --with-gnu-as --with-gnu-ld Thread model: single gcc version 3.4.0-macraigor1 -------------------------------------------------