Skip to contentSkip to conversation

Setup a signal frame.

DISCUSSION Carsten Langgaard 3 participants 4 messages Dec 7, 2000 – Nov 24, 2001 MIPS

lore
Share & tools
lore
#0 lore raw

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 protected]
|\  /|||___)(___   MIPS Denmark        Direct: +45 4486 5527
| \/ |||    ____)  Lautrupvang 4B      Switch: +45 4486 5555
  TECHNOLOGIES     2750 Ballerup       Fax...: +45 4486 5556
                   Denmark             http://www.mips.com
#1 lore raw

Simple problem with second stage MIPS GCC compiler...

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

Signature · 4 lines
 Steven J. Hill - Embedded SW Engineer
 Public Key: 'finger [email protected]'
 FPR1: E124 6E1C AF8E 7802 A815
 FPR2: 7D72 829C 3386 4C4A E17D
#2 lore raw

Re: Simple problem with second stage MIPS GCC compiler...

The problem you have is that gcc doesn't know where the glibc headers are. You probably need to pass "--with-includes=/usr/local/mips/mipsel-linux-include" or alternatively put the headers in {prefix}/sys-include .

There is also another list for cross compiling with gcc ([email protected]) which might give more informative answers than the simple one I have...

good luck with it!

Quoted 45 lines · Steven J. Hill

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/

(quoted diff) +0 -4
-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

Signature · 6 lines
Joe deBlaquiere
Red Hat, Inc.
307 Wynn Drive
Huntsville AL, 35805
voice : (256)-704-9200
fax   : (256)-837-3839
#3 lore raw

Philips Nino pre-compiled kernel image available...

In reply to Carsten Langgaard

Greetings.

I have uploaded a pre-compiled kernel image for the Philips Nino to my FTP site. It is the most recent kernel from the SGI MIPS kernel with a 512KB ramdisk image linked into it containing a stand alone shell. Simply upload to your Nino and use the PocketBSD bootloader to boot with. It is available at:

ftp://ftp.cotw.com/Nino/kernel/vmlinux.bz2

-Steve

Signature · 1 line
 Steven J. Hill - Embedded SW Engineer