Hi, I am workingon a new port. Target: 16 bits, no hard mul. My problem is when I try to compile libgcc2, it finishes with error: __________________________________________________________________ /home/guest1/gcc/build_target/./gcc/xgcc -B/home/guest1/gcc/build_target/./gcc/ -B/home/guest1/target/target/bin/ -B/home/guest1/target/target/lib/ -isystem /home/guest1/target/target/include -isystem /home/guest1/target/target/sys-include -O2 -g -g -O2 -O2 -O2 -g -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -g -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc -I. -I. -I../.././gcc -I../../../gcc-4.3.3/libgcc -I../../../gcc-4.3.3/libgcc/. -I../../../gcc-4.3.3/libgcc/../gcc -I../../../gcc-4.3.3/libgcc/../include -o _muldi3.o -MT _muldi3.o -MD -MP -MF _muldi3.dep -DL_muldi3 -c ../../../gcc-4.3.3/libgcc/../gcc/libgcc2.c \ xgcc: Internal error: Segmentation fault (program cc1) Please submit a full bug report. See <http://gcc.gnu.org/bugs.html> for instructions. make: *** [_muldi3.o] Error 1 _________________________________________________________________ Here is the piece of code in libgcc2.c which provokes the crash: _________________________________________________________________ #ifdef L_muldi3 DWtype __muldi3 (DWtype u, DWtype v) { const DWunion uu = {.ll = u}; const DWunion vv = {.ll = v}; DWunion w = {.ll = __umulsidi3 (uu.s.low, vv.s.low)}; w.s.high += ((UWtype) uu.s.low * (UWtype) vv.s.high + (UWtype) uu.s.high * (UWtype) vv.s.low); return w.ll; } #endif _________________________________________________________________ More precisely the crash is on this line: DWunion w = {.ll = __umulsidi3 (uu.s.low, vv.s.low)}; I don't know what's wrong in my machine description. I tried to include a pattern "umulsidi3" but it does not change anything. I do not find the definition of this __umulsidi3. Has someone any idea ? any clue ? Thank you. Regards. Florent