The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: jnc@mercury.lcs.mit.edu (Noel Chiappa)
Subject: [TUHS] Work I've done with a PDP-11 simulator
Date: Mon, 12 May 2014 13:06:17 -0400 (EDT)	[thread overview]
Message-ID: <20140512170617.32C2318C0DB@mercury.lcs.mit.edu> (raw)

    > From: John Cowan <cowan at mercury.ccil.org>

    > Well, provided the compiler is honest, contra [Ken].

A thought on this:

The C compiler actually produces assembler, which can be (fairly easily)
visually audited; yes, yes, I know about disassembly, but trust me, having
done some recently (the RL bootstrap(s)), disassembled code is a lot harder
to grok!

So, really, to find the Thompson hack, we'd have to edit the binaries of the
assembler!

For real grins, we could write a program to convert .s format assembler to
.mac syntax, run the results through Macro-11, and link it with the other
linker... :-)


Also, I found on what's going on here:

    > What was wierd was that in the new one, the routine csv is one word
    > shorter (and so is csv.o). So now I don't understand what made them the
    > same sizes!? The new ones should have been one word shorter!? Still
    > poking into this...

The C compiler is linked with the -n flag, which produces pure code. What
the linker documentation doesn't say (and I never realized this 'back in the
day') is that when this option is used, it rounds up the size of the text
segment to the nearest click (0100).

So, in c2 (which is what I was looking at), the last instruction is at
015446, _etext is at 015450, but if you look at the executable header, it
lists a text size of 015500 - i.e. 030 more bytes. And indeed there are 014
words of '0' in the executable file before the data starts.

And if you link c2 _without_ the -n flag, it shows 015450 in the header as
the text size.

So that's why the two versions of all the C compiler phases were the same
size (as files); it rounded up to the same place in both, hiding the one-word
difference in text size. 

	Noel



             reply	other threads:[~2014-05-12 17:06 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-12 17:06 Noel Chiappa [this message]
2014-05-12 17:20 ` SPC
2014-05-12 19:50 ` John Cowan
  -- strict thread matches above, loose matches on Subject: below --
2014-05-12 19:10 Noel Chiappa
2014-05-12 20:59 ` SPC
2014-05-12 14:49 Noel Chiappa
2014-05-11 23:13 Norman Wilson
2014-05-12  5:29 ` John Cowan
2014-05-11 16:16 Norman Wilson
2014-05-11 16:45 ` John Cowan
2014-05-11 22:19   ` pechter
2014-05-11  3:26 Noel Chiappa
2014-05-11  3:13 Noel Chiappa
2014-05-11  4:20 ` John Cowan
2014-05-11  2:06 Noel Chiappa
2014-05-11  2:31 ` Gregg Levine
2014-05-11  2:34   ` Gregg Levine
2014-05-11 17:21 ` Clem Cole
2014-05-11 17:24   ` Clem Cole
2014-05-11 18:50   ` Ronald Natalie
2014-05-11  0:51 Noel Chiappa
2014-05-11  0:57 ` Larry McVoy
2014-05-11  1:27   ` John Cowan
2014-05-11  1:58     ` Larry McVoy
2014-05-11  2:40       ` John Cowan
2014-05-05 15:32 Noel Chiappa
2014-05-04 23:54 Noel Chiappa
2014-05-05  1:53 ` John Cowan
2014-05-05  8:10   ` SPC
2014-04-30  2:19 Noel Chiappa
2014-05-03 22:14 ` SPC
2014-05-03 22:20   ` Gregg Levine
2014-05-03 22:22     ` Larry McVoy
2014-05-05 13:50 ` Kurt H Maier

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=20140512170617.32C2318C0DB@mercury.lcs.mit.edu \
    --to=jnc@mercury.lcs.mit.edu \
    /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).