OVH Cloud OVH Cloud

segfault compilation noyau . Que faire ?

10 réponses
Avatar
Rakotomandimby
Bonjour , j'ai un segfault lors de la compilation de mon noyau .

Je suis dans l'obligation de metre a jour a cause d'une faille :

http://www.silicon.fr/getarticle.asp?ID=3193
http://lwn.net/Articles/60772/

Dont j'ignore l'importance mais du moment que c'est un faille , c'est une
faille , d'autant plus que mon serveur web tourne avec le 2.4.22

Comment eliminer cette faille ?
J'avoue avoir repris le fichier de conf du 2.4.22 pour configurer ce
2.4.23 , mais bon ...

D'apres ce que je vois ça a un rapport avec "serial.c"

Dans quelle section ( du menu de configuration) ça se trouve ce truc ?

Voici les dernieres lignes du make bzImage :
[...]
make[4]: Leaving directory `/usr/src/linux-2.4.23/drivers/char/pcmcia'
make[3]: Leaving directory `/usr/src/linux-2.4.23/drivers/char/pcmcia'
make all_targets
make[3]: Entering directory `/usr/src/linux-2.4.23/drivers/char'
gcc -D__KERNEL__ -I/usr/src/linux-2.4.23/include -Wall -Wstrict-prototypes
-Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer
-pipe -mpreferred-stack-boundary=2 -march=athlon -nostdinc -iwithprefix
include -DKBUILD_BASENAME=mem -c -o mem.o mem.c
gcc -D__KERNEL__ -I/usr/src/linux-2.4.23/include -Wall -Wstrict-prototypes
-Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer
-pipe -mpreferred-stack-boundary=2 -march=athlon -nostdinc -iwithprefix
include -DKBUILD_BASENAME=tty_io -DEXPORT_SYMTAB -c tty_io.c
gcc -D__KERNEL__ -I/usr/src/linux-2.4.23/include -Wall -Wstrict-prototypes
-Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer
-pipe -mpreferred-stack-boundary=2 -march=athlon -nostdinc -iwithprefix
include -DKBUILD_BASENAME=n_tty -c -o n_tty.o n_tty.c
gcc -D__KERNEL__ -I/usr/src/linux-2.4.23/include -Wall -Wstrict-prototypes
-Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer
-pipe -mpreferred-stack-boundary=2 -march=athlon -nostdinc -iwithprefix
include -DKBUILD_BASENAME=tty_ioctl -DEXPORT_SYMTAB -c tty_ioctl.c
gcc -D__KERNEL__ -I/usr/src/linux-2.4.23/include -Wall -Wstrict-prototypes
-Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer
-pipe -mpreferred-stack-boundary=2 -march=athlon -nostdinc -iwithprefix
include -DKBUILD_BASENAME=raw -c -o raw.o raw.c
gcc -D__KERNEL__ -I/usr/src/linux-2.4.23/include -Wall -Wstrict-prototypes
-Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer
-pipe -mpreferred-stack-boundary=2 -march=athlon -nostdinc -iwithprefix
include -DKBUILD_BASENAME=pty -DEXPORT_SYMTAB -c pty.c
gcc -D__KERNEL__ -I/usr/src/linux-2.4.23/include -Wall -Wstrict-prototypes
-Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer
-pipe -mpreferred-stack-boundary=2 -march=athlon -nostdinc -iwithprefix
include -DKBUILD_BASENAME=misc -DEXPORT_SYMTAB -c misc.c
gcc -D__KERNEL__ -I/usr/src/linux-2.4.23/include -Wall -Wstrict-prototypes
-Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer
-pipe -mpreferred-stack-boundary=2 -march=athlon -nostdinc -iwithprefix
include -DKBUILD_BASENAME=random -DEXPORT_SYMTAB -c random.c
gcc -D__KERNEL__ -I/usr/src/linux-2.4.23/include -Wall -Wstrict-prototypes
-Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer
-pipe -mpreferred-stack-boundary=2 -march=athlon -nostdinc -iwithprefix
include -DKBUILD_BASENAME=vt -c -o vt.o vt.c
gcc -D__KERNEL__ -I/usr/src/linux-2.4.23/include -Wall -Wstrict-prototypes
-Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer
-pipe -mpreferred-stack-boundary=2 -march=athlon -nostdinc -iwithprefix
include -DKBUILD_BASENAME=vc_screen -c -o vc_screen.o vc_screen.c
gcc -D__KERNEL__ -I/usr/src/linux-2.4.23/include -Wall -Wstrict-prototypes
-Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer
-pipe -mpreferred-stack-boundary=2 -march=athlon -nostdinc -iwithprefix
include -DKBUILD_BASENAME=consolemap -c -o consolemap.o consolemap.c
gcc -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -o conmakehash
conmakehash.c
./conmakehash cp437.uni > consolemap_deftbl.c
gcc -D__KERNEL__ -I/usr/src/linux-2.4.23/include -Wall -Wstrict-prototypes
-Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer
-pipe -mpreferred-stack-boundary=2 -march=athlon -nostdinc -iwithprefix
include -DKBUILD_BASENAME=consolemap_deftbl -c -o consolemap_deftbl.o
consolemap_deftbl.c
gcc -D__KERNEL__ -I/usr/src/linux-2.4.23/include -Wall -Wstrict-prototypes
-Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer
-pipe -mpreferred-stack-boundary=2 -march=athlon -nostdinc -iwithprefix
include -DKBUILD_BASENAME=console -DEXPORT_SYMTAB -c console.c
gcc -D__KERNEL__ -I/usr/src/linux-2.4.23/include -Wall -Wstrict-prototypes
-Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer
-pipe -mpreferred-stack-boundary=2 -march=athlon -nostdinc -iwithprefix
include -DKBUILD_BASENAME=selection -DEXPORT_SYMTAB -c selection.c
gcc -D__KERNEL__ -I/usr/src/linux-2.4.23/include -Wall -Wstrict-prototypes
-Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer
-pipe -mpreferred-stack-boundary=2 -march=athlon -nostdinc -iwithprefix
include -DKBUILD_BASENAME=serial -DEXPORT_SYMTAB -c serial.c
serial.c: In function `shutdown':
serial.c:1592: internal error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
make[3]: *** [serial.o] Error 1
make[3]: Leaving directory `/usr/src/linux-2.4.23/drivers/char'
make[2]: *** [first_rule] Error 2
make[2]: Leaving directory `/usr/src/linux-2.4.23/drivers/char'
make[1]: *** [_subdir_char] Error 2
make[1]: Leaving directory `/usr/src/linux-2.4.23/drivers'
make: *** [_dir_drivers] Error 2

--
http://mrakotom.free.fr

10 réponses

Avatar
Julien Delange
Rakotomandimby wrote:

Bonjour , j'ai un segfault lors de la compilation de mon noyau .

Je suis dans l'obligation de metre a jour a cause d'une faille :

http://www.silicon.fr/getarticle.asp?ID193
http://lwn.net/Articles/60772/

Dont j'ignore l'importance mais du moment que c'est un faille , c'est une
faille , d'autant plus que mon serveur web tourne avec le 2.4.22

Comment eliminer cette faille ?
J'avoue avoir repris le fichier de conf du 2.4.22 pour configurer ce
2.4.23 , mais bon ...


On commence :
- Quel distribution tu as ?
- Pourquoi avoir ton ancien .config et pas utilisé d'autres alternatives
(make oldconfig il me semble, mais depuis que je suis en 2.6, je me
souviens plus trop bien de tout ça ) ?
- As tu essayé avec une autre archive ?
- Pour finir, as tu changé de compilateur depuis que tu as compilé ton
ancien noyal ?

Avatar
J. Mayer
On Thu, 04 Dec 2003 12:48:26 +0100, Rakotomandimby wrote:

Bonjour , j'ai un segfault lors de la compilation de mon noyau .

Je suis dans l'obligation de metre a jour a cause d'une faille :

http://www.silicon.fr/getarticle.asp?ID193
http://lwn.net/Articles/60772/

Dont j'ignore l'importance mais du moment que c'est un faille , c'est une
faille , d'autant plus que mon serveur web tourne avec le 2.4.22

Comment eliminer cette faille ?
J'avoue avoir repris le fichier de conf du 2.4.22 pour configurer ce
2.4.23 , mais bon ...


2 possibilités:
- Si c'est reproductible (quand tu relances la compil, ça re-crashe
toujours au même endroit), la version de gcc que tu utilise est buggée.

- soit tu as un problème matériel. Les suspects sont
1/ La RAM
2/ Le cache
3/ Le CPU.
dans 90% des cas, c'est la RAM, sinon le CPU qui est buggé.
Mais dans ce cas, tu n'aurais jamais pu compiler quoi que ce soit
de conséquent.

Avatar
Rakotomandimby
Pascal H. wrote:

Le Thu, 04 Dec 2003 12:48:26 +0100, Rakotomandimby a écrit :

Bonjour , j'ai un segfault lors de la compilation de mon noyau .


[...]

J'avoue avoir repris le fichier de conf du 2.4.22 pour configurer
ce

2.4.23 , mais bon ...

D'apres ce que je vois ça a un rapport avec "serial.c"


Quelle version de gcc ?(gcc-2.95.3 est recommandé pour la compilation du
noyau)


gcc 3.2.3

Comment as-tu fait la mise à jour des sources du noyau 2.4.22 ->
2.4.23 (patch ou récupération du paquet source complet) ?


tarball complet de chez kernel.org
je ne sais pas encore utiliser les patches .
(oui ...)

Comment as-tu repris le fichier de conf du 2.4.22 (make oldconfig, make
menuconfig et puis chargement du fichier de config...) ?


non .
make menuconfig
puis chargement d'un fichier de conf que j'ai conservé dans un repertoire de
mon home .

les erreurs ne sont pas reproductibles .

c'est a dire , le make bzImage s'arrete sur un segfault, puis si je re-fais
un make bzImage directement a la suite , tout se passe bien jusqu'au
prochain segfault ...

--
http://mrakotom.free.fr


Avatar
Rakotomandimby
J. Mayer wrote:
2 possibilités:
- Si c'est reproductible (quand tu relances la compil, ça re-crashe
toujours au même endroit), la version de gcc que tu utilise est buggée.


les erreurs ne sont pas reproductibles .

c'est a dire , le make bzImage s'arrete sur un segfault, puis si je re-fais
un make bzImage directement a la suite , tout se passe bien jusqu'au
prochain segfault ...

- soit tu as un problème matériel. Les suspects sont
1/ La RAM
2/ Le cache
3/ Le CPU.
dans 90% des cas, c'est la RAM, sinon le CPU qui est buggé.
Mais dans ce cas, tu n'aurais jamais pu compiler quoi que ce soit
de conséquent.


J'ai pas eu a compiler grand chose , les packages de la slackware sont des
binaires , et ce sont des applis sans grandes importance que j'ai eu a
compiler ...
--
http://mrakotom.free.fr

Avatar
Rakotomandimby
Julien Delange wrote:

On commence :
- Quel distribution tu as ?


Slackware 9.1
un noyau est disponible avec les modules qui vont avec , mais il me plait
pas , je prefere compiler le mien.

- Pourquoi avoir ton ancien .config et pas utilisé d'autres alternatives
(make oldconfig il me semble, mais depuis que je suis en 2.6, je me
souviens plus trop bien de tout ça ) ?


J'ai utilisé un fichier de conf que je sauve avant de quitter menuconfig .
Je l'ai gardé au frais et j'en ai un peu partout dans mes partitions
histoire de pas mettre mes ouefs dans le meme panier .

- As tu essayé avec une autre archive ?


non . Mais si une archive bzip2 est "corrompue", j'ai du mal a croire
qu'elle ce serai desarchivée sans problemes .
Je tente quand meme avec une aute archive.

- Pour finir, as tu changé de compilateur depuis que tu as compilé ton
ancien noyal ?


j'ai pas changé de compilateur .qui est le gcc 3.2.3 par default dans la
slack 9.1.
notons que les erreurs sont pas reproductibles , donc j'ai remouliné un make
bzImage a chaque erreur puis ça l'emmenne toujours plus loin ... jusqu'a
cette erreur-ci , ou meme si je re make bzImage , elle s'arrete ici :

[...]

make[3]: Leaving directory `/usr/src/linux-2.4.23/net/ipv4/netfilter'
make[2]: Leaving directory `/usr/src/linux-2.4.23/net/ipv4/netfilter'
make -C ipv6
make[2]: Entering directory `/usr/src/linux-2.4.23/net/ipv6'
make all_targets
make[3]: Entering directory `/usr/src/linux-2.4.23/net/ipv6'
gcc -D__KERNEL__ -I/usr/src/linux-2.4.23/include -Wall -Wstrict-prototypes
-Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer
-pipe -mpreferred-stack-boundary=2 -march=athlon -nostdinc -iwithprefix
include -DKBUILD_BASENAME¯_inet6 -c -o af_inet6.o af_inet6.c
In file included from /usr/src/linux-2.4.23/include/net/sock.h:43,
from /usr/src/linux-2.4.23/include/net/ip.h:39,
from af_inet6.c:51:
/usr/src/linux-2.4.23/include/linux/ipv6.h:24: internal error: Segmentation
fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
make[3]: *** [af_inet6.o] Error 1
make[3]: Leaving directory `/usr/src/linux-2.4.23/net/ipv6'
make[2]: *** [first_rule] Error 2
make[2]: Leaving directory `/usr/src/linux-2.4.23/net/ipv6'
make[1]: *** [_subdir_ipv6] Error 2
make[1]: Leaving directory `/usr/src/linux-2.4.23/net'
make: *** [_dir_net] Error 2

--
http://mrakotom.free.fr

Avatar
Léo Wauters
On Thu, 04 Dec 2003 14:13:54 +0100, Rakotomandimby
wrote:

J. Mayer wrote:
2 possibilités:
- Si c'est reproductible (quand tu relances la compil, ça re-crashe
toujours au même endroit), la version de gcc que tu utilise est buggée.


les erreurs ne sont pas reproductibles .
Tu veux dire par la que la compilation ne s'arrete pas au meme endroit

?
Si c'est le cas, passe un coup de memtest86. Ta ram doit etre buggée.

Léo.
#Si ce problème t'interesse, tu es bien sur un collaborateur
#bienvenu...
#(et pi c interessant les raw sockets ethernet en C non ? ;) )
# - Vu sur fr.comp.reseaux.ip


Avatar
geaorge
On Thu, 04 Dec 2003 12:48:26 +0100, Rakotomandimby wrote:

Bonjour , j'ai un segfault lors de la compilation de mon noyau .


je voudrais pas t'inquieter mais il est possible qu un rootkit foute la
merde

Avatar
J. Mayer
On Thu, 04 Dec 2003 14:13:54 +0100, Rakotomandimby wrote:

J. Mayer wrote:
2 possibilités:
- Si c'est reproductible (quand tu relances la compil, ça re-crashe
toujours au même endroit), la version de gcc que tu utilise est buggée.


les erreurs ne sont pas reproductibles .

c'est a dire , le make bzImage s'arrete sur un segfault, puis si je re-fais
un make bzImage directement a la suite , tout se passe bien jusqu'au
prochain segfault ...

- soit tu as un problème matériel. Les suspects sont
1/ La RAM
2/ Le cache
3/ Le CPU.
dans 90% des cas, c'est la RAM, sinon le CPU qui est buggé.
Mais dans ce cas, tu n'aurais jamais pu compiler quoi que ce soit
de conséquent.


J'ai pas eu a compiler grand chose , les packages de la slackware sont des
binaires , et ce sont des applis sans grandes importance que j'ai eu a
compiler ...


C'est donc un problème hardware.
Teste la RAM...
Tu dis aussi que tu as gcc 3.2.3.
Tu as intérêt à l'updater: la série 3.2 est buggée de façon assez
"subtile".
Le 3.3 ne pose pas de problèmes, à ma connaissance.


Avatar
Rakotomandimby
Ben c'est la carte mere qui etait en phase finale ...
Donc je change de matos en esperant que je n'ai pas corrompu mon systeme en
général en utilisant du matos defaillant.
Merci a tous et a plus .
--
http://mrakotom.free.fr
Avatar
Jean-Louis Noel
Bonjour Rakotomandimby,

Rakotomandimby écrivait le Thu, 04 Dec 2003 14:29:56 +0100:

R> notons que les erreurs sont pas reproductibles , donc j'ai remouliné un make

La machine n'est-elle pas overclockée?
Le ventillo processeur est-il correct?

Bye,
Jean-Louis