Older blog entries for dhd (starting at number 52)

3 Sep 2000 (updated 13 Sep 2000 at 18:25 UTC) »

Testing that theory ... yup, 100 kilometres is doable. It's a nice afternoon ride if you go south of the city (as opposed to the leg-breaking hills north of the city), so long as you remember to eat something somewhere before the 92 kilometre mark.

Today I rode my bike 75 kilometres and found real ale along the way. I seem to be getting back in shape quickly enough, as I could easily have done 100. I think I'll go one river further west to Pakenham or Almonte or somewhere next week.

Of course being in shape doesn't seem to correlate with reduction in belly size. Woe is me.

The PA-RISC kernel no longer crashes (as much), and I'm able to build fun things like ncurses natively now (though C++ doesn't work right). I think signals are still a wee bit broken though - restarting syscalls seems to work fine, it's just interrupting them that doesn't produce the expected results, at least, if I'm to believe the log messages sysvinit is spewing.

I built dpkg, sysvinit, and a bunch of other good stuff. Floating point is vaguely broken, partly in GCC, partly in glibc, and partly in the kernel, so perl and mawk aren't there yet. Perl will be an interesting test of the dynamic loading support.

Wow. Very insightful, Rob.

I must say that, although I am not the junior technical employee mentioned there, Linuxcare does continue to help improve me technically. That, and any alternatives that have presented themselves so far invariably involve moving to the Land of Suck, which I am becoming more and more convinced that I do not want to do (dual US/Canadian citizenship notwithstanding).

Yesterday was fun, I rode 62 kilometres, baked pizza, cooked some "leftovers" for this week, and then went to the pub and dancing until 3AM or so. I should mention that I can't dance, and thus made a fool out of myself, but that was kind of the point.

PA-RISC porting continues. I'm mostly serving as a test monkey for binutils since Alan Modra is doing all the hard work, but doesn't actually have any PA hardware. If the stupid kernel can stay up long enough to compile GCC then maybe things will become more interesting.

Fear. Loathing. Incompatibility of PIC and non-PIC code. Symbols forced local by versioning. Dynamic relocations in .text. Fear. Loathing. Millicode return pointer. Branch external and link to gr31. Space registers. Fear. Loathing. Stub sections. Copy relocations. Delay slots. Compound instructions. Fear. Loathing. low_sign_extend(). assemble_17(). $$dyncall. $$dyncall. $$dyncall. procedure labels. linkage table register. DT_PLTGOT. fear. loathing.

Hack hack hack.

I would do well to take Ryan's advice I think. It is probably a crime against (something) to be sitting in the offices hacking glibc instead of doing something outside. Well, at least the offices are spacious and full of natural light (which is something I missed at the San Francisco office, which is in a basement).

Oh god our ELF32 ABI is bogus. Of course this is primarily because it reuses so much code in GCC and binutils from the SOM stuff, which is more bogus by far. Our goal was originally to follow the ELF64 conventions used by HP/UX 11, which sounds like a nice idea, except that there is very little useful documentation on them. Also of course, there is no non-PIC code model in PA ELF64, although I'm not sure that we get any benefit from having PIC code on ELF32 because the code generation is so bad and the conventions for common things like indirect function calls and long branches are so broken and slow.

On the bright side, not only do signals work now (for certain restricted values of "work"), but ld.so does run itself and manage to load and run simple programs (which then segfault in _dl_fini).

I guess in 1985, a segmented user space still seemed like a good idea, and the thought that the extra circuitry used to implement segmentation could have been more profitably used to implement things like, say, an indirect branch-and-link instruction, or a PC-relative branch range longer than 256k, never occured to HP's architects. We've taken to calling it PA-CISC.

That said, the 64-bit PA-RISC architecture (PA2.0w) is a lot more sane. Too bad the good bits are only available when running in 64-bit mode...

Went to California again. I meant to get back Thursday but ended up staying until Sunday. Thanks to uzi and yosh for letting me sleep on the "guest bed".

Saw a Nautilus demo at SVLUG. I now realize why I don't go to LUG meetings anymore. As at OCLUG, there were lots of people interrupting the speakers and each other and asking dumb questions.

Ran into people from Ottawa (well, Sudbury via Ottawa) on the Caltrain. A whole car full of them, in fact.

Went to Krispy Kreme donuts in Union City (long way to go for a donut) and stared at the amazing automated donut factory for a while.

Started porting ltrace to Alpha while at the San Francisco office, and realized that, while ltrace source is very nicely laid out, it appears that it doesn't really work on architectures where the PLT is writable, self-modifying code.

In doing so I realized that my tolerance for vi as an editor for writing code is nearly zero. The non-standard undo behaviour in vim doesn't help either (nvi forever!). I've got an Alpha that runs Emacs here so I should be able to finish the port soon.

If I'm lucky, ld.so may run itself tomorrow. Either that or signal handlers will return to somewhere other than deep space. Either way it will surely be exciting.

blah blah blah blah blah blah blah blah blah blah blah blah blah.

Spent the last few weeks:

  • Killing brain cells, gaining fat cells, and embarassing myself in front of various important people at OLS.
  • Brewing beer, drinking beer, brewing more beer, etc.
  • Watching my plants grow. (One of the sunflowers is taller than Jes now)
  • Reading the GCC manual.
  • Acquainting myself with the perverse details of PA-RISC instruction formats.
  • Trying to grasp the concept of delayed branching.
  • Trying to grasp the concept of segmentation.
  • Writing non-functional assembly code.
  • Pressing TOC.
  • Learning how signals really work in Linux (so that's why the stack is executable...)
  • Not reading Advogato (scared off by the Salon article)

See you in another week or two.

Friday evening, and I am alone in the office again, but this time life does not suck, because I am doing fun and challenging things for PA-RISC Linux. At the moment this means getting intimately acquainted with GCC, and trying to make sense of our somewhat mangled toolchain, in preparation for getting the 64-bit kernel going as well as implementing dynamic linker support.

Bah. Friday afternoon, and I am (almost) alone in the office. Life sucks.

I am back from YAPC 19100, and I have the T-shirt to prove it!

A detailed writeup may or may not follow, depending on whether I get around to it.

43 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!