linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jan-Benedict Glaw <jbglaw@lug-owl.de>
To: lkml <linux-kernel@vger.kernel.org>
Subject: Re: Emulating i486 on i386 (was: TSCs are a no-no on i386)
Date: Thu, 31 Jul 2003 14:14:48 +0200	[thread overview]
Message-ID: <20030731121448.GW1873@lug-owl.de> (raw)
In-Reply-To: <1059652268.16608.8.camel@dhcp22.swansea.linux.org.uk>

[-- Attachment #1: Type: text/plain, Size: 2463 bytes --]

On Thu, 2003-07-31 12:51:09 +0100, Alan Cox <alan@lxorguk.ukuu.org.uk>
wrote in message <1059652268.16608.8.camel@dhcp22.swansea.linux.org.uk>:
> On Iau, 2003-07-31 at 12:38, Jan-Benedict Glaw wrote:
> > Thanks for that. In the meantime, I've started to give a try to the
> > userspace version (using a LD_PRELOAD lib). My current Problem:
> > 
> > amtus:~/sigill_catcher# LD_PRELOAD=./libsigill.so ls
> > sigill.c:_init():69: sigill started, sigaction() = 0
> > build.sh  intercept.h  libsigill.so  run.sh  sigill.c  sigill.o
> > amtus:~/sigill_catcher# LD_PRELOAD=./libsigill.so apt-get update
> > Illegal instruction
> > 
> > See? It's loaded at the "ls" call, but it seems to be not loaded for
> > apt-get.
> 
> Remember you need to overload signal setting functions like sigaction.
> My guess is apt decided to disable your signal and you didnt stop it

I thought about that. Though, strace shows this is straight after ldso
mapped all libs. So apt-get's main() didn't yet start.

amtus:~/sigill_catcher# cat run.sh 
#!/bin/sh

LD_PRELOAD=./libsigill.so apt-get update

amtus:~/sigill_catcher# strace -o xxx -f -ff ./run.sh 
Process 681 attached (waiting for parent)
Process 681 resumed (parent 680 ready)
Process 680 suspended
Process 680 resumed
Process 681 detached
./run.sh: line 3:   681 Illegal instruction LD_PRELOAD=./libsigill.so apt-get update
amtus:~/sigill_catcher# grep -i sig xx* | grep -i ILL
xxx:stat64("/root/sigill_catcher", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
xxx:wait4(-1, [WIFSIGNALED(s) && WTERMSIG(s) == SIGILL], 0, NULL) = 681
xxx.681:open("./libsigill.so", O_RDONLY)        = 3
xxx.681:getcwd("/root/sigill_catcher", 128)     = 21
xxx.681:--- SIGILL (Illegal instruction) @ 0 (0) ---

So my lib gets loaded, but it's _init() function seems to be called too
late (in prior, some parts of libstdc++5 decided to commit suicide).

Looking at the strace, libsigill is the loaded as the very first action.
Then, all the other libs are mapped. It seems that _init()ing them
happens somewhat in reverse order or something like that... I'm a but
hosed in that case:)

MfG, JBG

-- 
   Jan-Benedict Glaw       jbglaw@lug-owl.de    . +49-172-7608481
   "Eine Freie Meinung in  einem Freien Kopf    | Gegen Zensur | Gegen Krieg
    fuer einen Freien Staat voll Freier Bürger" | im Internet! |   im Irak!
      ret = do_actions((curr | FREE_SPEECH) & ~(IRAQ_WAR_2 | DRM | TCPA));

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

  reply	other threads:[~2003-07-31 12:14 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-07-30 13:56 TSCs are a no-no on i386 Jan-Benedict Glaw
2003-07-30 14:18 ` Maciej W. Rozycki
2003-07-30 14:44   ` Jan-Benedict Glaw
2003-07-30 16:58 ` Matthew Garrett
2003-07-30 17:19   ` Alan Cox
2003-07-30 18:10 ` Adrian Bunk
2003-07-30 18:30   ` Mike Fedyk
2003-07-30 18:45     ` Adrian Bunk
2003-07-30 20:01       ` Alan Cox
2003-07-30 20:33         ` Jan-Benedict Glaw
2003-07-30 22:19           ` J.A. Magallon
2003-07-31  6:11             ` Jan-Benedict Glaw
2003-07-30 23:05           ` Alan Cox
2003-07-31 11:11             ` Richard B. Johnson
2003-07-31 11:26               ` Emulating i486+ insn on i386 (was: TSCs are a no-no on i386) Jan-Benedict Glaw
2003-07-31 11:41             ` TSCs are a no-no on i386 Jan-Benedict Glaw
2003-07-31  0:22           ` Adrian Bunk
2003-07-31  6:22             ` Jan-Benedict Glaw
2003-07-31  7:17               ` Willy Tarreau
2003-07-31 11:38                 ` Emulating i486 on i386 (was: TSCs are a no-no on i386) Jan-Benedict Glaw
2003-07-31 11:51                   ` Alan Cox
2003-07-31 12:14                     ` Jan-Benedict Glaw [this message]
2003-07-31 13:01                       ` Jan-Benedict Glaw
2003-07-31 15:09                         ` Martin Schlemmer
2003-07-31 15:33                           ` Jan-Benedict Glaw
2003-08-01  5:37                             ` Martin Schlemmer
2003-07-31 15:12                     ` Jamie Lokier
2003-07-31 15:32                       ` Jan-Benedict Glaw
2003-07-31 15:07                 ` TSCs are a no-no on i386 Jamie Lokier
2003-07-31 15:23                   ` Willy Tarreau
2003-07-31 15:50                   ` Richard B. Johnson
2003-07-31 16:24                     ` Jan-Benedict Glaw
2003-08-06 11:08         ` Pavel Machek
2003-08-06 14:33           ` Maciej W. Rozycki
2003-07-30 20:28       ` Jan-Benedict Glaw
2003-07-30 21:50         ` Petr Vandrovec
2003-07-30 23:10           ` Alan Cox
2003-07-31 15:10             ` Jamie Lokier
2003-07-31 16:01               ` Alan Cox
2003-07-31 18:37                 ` Jamie Lokier
2003-07-31 19:10                   ` Alan Cox
2003-07-31  6:29           ` Jan-Benedict Glaw
2003-07-30 20:27   ` Jan-Benedict Glaw
     [not found] <f41P.374.9@gated-at.bofh.it>
     [not found] ` <f4bw.3eu.13@gated-at.bofh.it>
     [not found]   ` <f5Az.4tG.3@gated-at.bofh.it>
     [not found]     ` <f5TZ.4Hq.11@gated-at.bofh.it>
     [not found]       ` <f9uz.Ll.5@gated-at.bofh.it>
     [not found]         ` <ff6X.6qi.3@gated-at.bofh.it>
     [not found]           ` <ffTk.734.15@gated-at.bofh.it>
     [not found]             ` <fk6A.241.7@gated-at.bofh.it>
     [not found]               ` <fkgp.2aL.29@gated-at.bofh.it>
     [not found]                 ` <fnnW.4QQ.43@gated-at.bofh.it>
     [not found]                   ` <fnQP.5bE.5@gated-at.bofh.it>
2003-07-31 17:35                     ` Emulating i486 on i386 (was: TSCs are a no-no on i386) Ben Pfaff

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20030731121448.GW1873@lug-owl.de \
    --to=jbglaw@lug-owl.de \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).