Subject: Setup a signal frame.

From: Carsten Langgaard <[email-masked]>
Date: Thu, 07 Dec 2000 16:59:07 +0100

I have a question regarding the setup_frame function in
arch/mips/kernel/signal.c.

If the setup fails we send a SIGSEGV to the current process, but before
doing that we check if signr == SIGSEGV, and if so install the default
handler.
But isn't we sending a SIGSEGV signal, and therefore always should
install the default handler and not check if the original signal was
SIGSEGV ?

In kernel 2.2.12 we always used do_exit(SIGSEGV) if the setup failed,
why has this changed in the 2.4.0 kernel ?

/Carsten

--
_    _ ____  ___   Carsten Langgaard   Mailto:[email-masked]
|\  /|||___)(___   MIPS Denmark        Direct: +45 4486 5527
| \/ |||    ____)  Lautrupvang 4B      Switch: +45 4486 5555
  TECHNOLOGIES     2750 Ballerup       Fax...: +45 4486 5556
                   Denmark             http://www.mips.com

---

From: "Steven J. Hill" <[email-masked]>
Date: Sun, 31 Dec 2000 23:41:52 -0600

Well, I almost have a complete toolchain. I succesfully got binutils,
first stage GCC-2.95.2 and GLIBC-2.2 installed just fine. I am having
problems with rebuilding GCC. Below is the configuration and make
directives that I am currently using along with the output. I have
verified that the header files are in /usr/local/mips/mipsel-linux-include.
Any help or thoughts are need and appreciated. Yes, I read the mailing
list archives. TIA.

-Steve

*************************************************************
AR=mipsel-linux-ar RANLIB=mipsel-linux-ranlib ../gcc-2.95.2/configure
--prefix=/usr/local/mips --target=mipsel-linux i686-pc-linux-gnu --enable-shared
--enable-threads --enable-languages=c

make LANGUAGES=c ALL_TARGET_MODULES= CONFIGURE_TARGET_MODULES=
INSTALL_TARGET_MODULES= SUBDIRS="libiberty gcc"

*************************************************************
make[2]: Leaving directory `/data/mips-stuff/build-gcc2/gcc/intl'
rm -f tmplibgcc2.a
for name in _muldi3 _divdi3 _moddi3 _udivdi3 _umoddi3 _negdi2 _lshrdi3 _ashldi3
_ashrdi3 _ffsdi2 _udiv_w_sdiv _udivmoddi4 _cmpdi2 _ucmpdi2 _floatdidf _floatdisf
_fixunsdfsi _fixunssfsi _fixunsdfdi _fixdfdi _fixunssfdi _fixsfdi _fixxfdi
_fixunsxfdi _floatdixf _fixunsxfsi _fixtfdi _fixunstfdi _floatditf __gcc_bcmp
_varargs __dummy _eprintf _bb _shtab _clear_cache _trampoline __main _exit
_ctors _pure; \
do \
  echo ${name}; \
  /data/mips-stuff/build-gcc2/gcc/xgcc -B/data/mips-stuff/build-gcc2/gcc/
-B/usr/local/mips/mipsel-linux/bin/ -I/usr/local/mips/mipsel-linux/include -O2 
-DCROSS_COMPILE -DIN_GCC     -g -O2 -I./include  -fPIC -g1 -DHAVE_GTHR_DEFAULT
-DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED   -I. -I../../gcc-2.95.2/gcc
-I../../gcc-2.95.2/gcc/config -I../../gcc-2.95.2/gcc/../include -c -DL${name} \
       ../../gcc-2.95.2/gcc/libgcc2.c -o ${name}.o; \
  if [ $? -eq 0 ] ; then true; else exit 1; fi; \
  mipsel-linux-ar rc tmplibgcc2.a ${name}.o; \
  rm -f ${name}.o; \
done
_muldi3
../../gcc-2.95.2/gcc/libgcc2.c:41: stdlib.h: No such file or directory
../../gcc-2.95.2/gcc/libgcc2.c:42: unistd.h: No such file or directory
make[1]: *** [libgcc2.a] Error 1
make[1]: Leaving directory `/data/mips-stuff/build-gcc2/gcc'
make: *** [all-gcc] Error 2

-- 
 Steven J. Hill - Embedded SW Engineer
 Public Key: 'finger [email-masked]'
 FPR1: E124 6E1C AF8E 7802 A815
 FPR2: 7D72 829C 3386 4C4A E17D