* Re: [SCM] master: Updating proc classes to support Power32/64.
[not found] <20071109145728.2955.qmail@sourceware.org>
@ 2007-11-09 15:40 ` Phil Muldoon
0 siblings, 0 replies; only message in thread
From: Phil Muldoon @ 2007-11-09 15:40 UTC (permalink / raw)
To: frysk
Hi there
I'm seeing these regressions (pasted below) specifically regarding
corefiles tests after these commits. Any idea what the cause is here?
The latter runtime exception indicates a PPC register issue?
Regards
Phil
13) testLinuxCoreFileStackTrace(frysk.proc.dead.TestLinuxCore)java.lang.ExceptionInInitializerError
at java.lang.Class.initializeClass(libgcj.so.8rh)
at frysk.proc.dead.CorefileRegisterBanksFactory.<clinit>(TestRunner)
at java.lang.Class.initializeClass(libgcj.so.8rh)
at frysk.proc.dead.CorefileRegisterBanksFactory.create(TestRunner)
at frysk.proc.dead.LinuxTask.sendrecRegisterBanks(TestRunner)
at frysk.proc.Task.getRegisterBanks(TestRunner)
at frysk.proc.Task.getRegister(TestRunner)
at frysk.stack.LibunwindAddressSpace.getReg(TestRunner)
at lib.unwind.UnwindX8664.initRemote(TestRunner)
at lib.unwind.Cursor.<init>(TestRunner)
at frysk.stack.StackFactory.createFrame(TestRunner)
at frysk.stack.StackFactory.printTaskStackTrace(TestRunner)
at frysk.util.StacktraceAction.printTasks(TestRunner)
at frysk.util.StacktraceAction.allExistingTasksCompleted(TestRunner)
at frysk.proc.ProcCoreAction.<init>(TestRunner)
at frysk.proc.dead.TestLinuxCore.testLinuxCoreFileStackTrace(TestRunner)
at frysk.junit.Runner.runCases(TestRunner)
at frysk.junit.Runner.runArchCases(TestRunner)
at frysk.junit.Runner.runTestCases(TestRunner)
at TestRunner.main(TestRunner)
Caused by: java.lang.RuntimeException: unknown register: nip
at frysk.proc.IndirectBankRegisterMap.add(TestRunner)
at frysk.proc.IndirectBankRegisterMap.add(TestRunner)
at frysk.proc.PPCBankRegisters.<clinit>(TestRunner)
at java.lang.Class.initializeClass(libgcj.so.8rh)
...32 more
14) testLinuxTaskPopulation(frysk.proc.dead.TestLinuxCore)java.lang.NoClassDefFoundError: frysk.proc.dead.CorefileRegisterBanksFactory
at java.lang.Class.initializeClass(libgcj.so.8rh)
at frysk.proc.dead.CorefileRegisterBanksFactory.create(TestRunner)
at frysk.proc.dead.LinuxTask.sendrecRegisterBanks(TestRunner)
at frysk.proc.Task.getRegisterBanks(TestRunner)
at frysk.proc.Task.getRegister(TestRunner)
at frysk.proc.dead.TestLinuxCore.testLinuxTaskPopulation(TestRunner)
at frysk.junit.Runner.runCases(TestRunner)
at frysk.junit.Runner.runArchCases(TestRunner)
at frysk.junit.Runner.runTestCases(TestRunner)
at TestRunner.main(TestRunner)
jflavio@sourceware.org wrote:
> The branch, master has been updated
> via b6cf2c808620d180fdcf03ff2e4dc0451768fef4 (commit)
> via cdf04613ab0ab6467f13024783e426d0e30449f1 (commit)
> from 56fdb833280afc1291dc06a9a393f825bead5d06 (commit)
>
> Those revisions listed above that are new to this repository have
> not appeared on any other notification email.
>
> - Log -----------------------------------------------------------------
> commit b6cf2c808620d180fdcf03ff2e4dc0451768fef4
> Author: Jose Flavio Aguilar Paulino <jflavio@br.ibm.com>
> Date: Fri Nov 9 11:15:00 2007 -0200
>
> Updating proc classes to support Power32/64.
>
> commit cdf04613ab0ab6467f13024783e426d0e30449f1
> Author: Jose Flavio Aguilar Paulino <jflavio@br.ibm.com>
> Date: Fri Nov 9 10:35:12 2007 -0200
>
> Fixing Power32 ISA. Patching the registers and creating register groups.
>
> -----------------------------------------------------------------------
>
> Summary of changes:
> frysk-core/frysk/isa/ChangeLog | 4 +
> frysk-core/frysk/isa/ISA.java | 11 +-
> frysk-core/frysk/isa/PPC32Registers.java | 135 ++++++++++++++------
> frysk-core/frysk/proc/ChangeLog | 7 +
> frysk-core/frysk/proc/IsaPowerPC.java | 21 ++--
> frysk-core/frysk/proc/LinuxPPC.java | 3 +-
> frysk-core/frysk/proc/PPCBankRegisters.java | 14 +-
> frysk-core/frysk/util/ChangeLog | 3 +
> frysk-core/frysk/util/LinuxElfCorefileFactory.java | 5 +-
> 9 files changed, 136 insertions(+), 67 deletions(-)
>
> First 500 lines of diff:
> diff --git a/frysk-core/frysk/isa/ChangeLog b/frysk-core/frysk/isa/ChangeLog
> index 97ca1d8..671c4d2 100644
> --- a/frysk-core/frysk/isa/ChangeLog
> +++ b/frysk-core/frysk/isa/ChangeLog
> @@ -1,3 +1,7 @@
> +2007-11-09 Jose Flavio Aguilar Paulino <jflavio@br.ibm.com>
> + * Fixing Power32 ISA. Patching the registers and creating
> + register group
> +
> 2007-10-17 Andrew Cagney <cagney@redhat.com>
>
> * IA32Registers.java (ST0, ST1, ST2, ST3, ST4, ST5, ST6)
> diff --git a/frysk-core/frysk/isa/ISA.java b/frysk-core/frysk/isa/ISA.java
> index c79de70..865f14b 100644
> --- a/frysk-core/frysk/isa/ISA.java
> +++ b/frysk-core/frysk/isa/ISA.java
> @@ -1,6 +1,7 @@
> // This file is part of the program FRYSK.
> //
> // Copyright 2007, Red Hat Inc.
> +// Copyright (C) 2006-2007 IBM
> //
> // FRYSK is free software; you can redistribute it and/or modify it
> // under the terms of the GNU General Public License as published by
> @@ -71,16 +72,16 @@ public final class ISA {
> );
> }
>
> + /*
> + * PowerPC is a Bi-Endian archtecture, it supports little and big
> + * endianness. But, usually (99.9%) it is used as a big endian,
> + * in truth in memory the data is stored always in big-endian format
> + */
> public static final ISA PPC32BE
> = new ISA(ByteOrder.BIG_ENDIAN, 4, "PowerPC");
> public static final ISA PPC64BE
> = new ISA(ByteOrder.BIG_ENDIAN, 8, "PowerPC");
>
> - public static final ISA PPC32LE
> - = new ISA(ByteOrder.LITTLE_ENDIAN, 4, "PowerPC");
> - public static final ISA PPC64LE
> - = new ISA(ByteOrder.LITTLE_ENDIAN, 8, "PowerPC");
> -
> public static final ISA IA32
> = new ISA(ByteOrder.LITTLE_ENDIAN, 4, "IA32");
> public static final ISA X8664
> diff --git a/frysk-core/frysk/isa/PPC32Registers.java b/frysk-core/frysk/isa/PPC32Registers.java
> index bbe4805..8387e61 100644
> --- a/frysk-core/frysk/isa/PPC32Registers.java
> +++ b/frysk-core/frysk/isa/PPC32Registers.java
> @@ -1,6 +1,10 @@
> // This file is part of the program FRYSK.
> //
> // Copyright 2007, Red Hat Inc.
> +// Copyright (C) 2006-2007 IBM
> +//
> +// Contributed by
> +// Jose Flavio Aguilar Paulino <jflavio@br.ibm.com> <joseflavio@gmail.com>
> //
> // FRYSK is free software; you can redistribute it and/or modify it
> // under the terms of the GNU General Public License as published by
> @@ -108,76 +112,128 @@ public class PPC32Registers extends Registers {
> public static final Register GPR31
> = new Register("gpr31", StandardTypes.INT32B_T);
>
> + /* Special registers */
> +
> + public static final Register CTR
> + = new Register("counterreg", StandardTypes.INT32B_T);
> + public static final Register XER
> + = new Register("fixedstatuscontrolreg", StandardTypes.INT32B_T);
> + public static final Register CCR
> + = new Register("conditionreg", StandardTypes.INT32B_T);
> + public static final Register LR
> + = new Register("linkreg", StandardTypes.VOIDPTR32B_T);
> + public static final Register FPSCR
> + = new Register("floatingstatuscontrolreg", StandardTypes.INT32B_T);
> +
> public static final Register FPR0
> - = new Register("fpr0", StandardTypes.FLOAT64B_T);
> + = new Register("fpr0", StandardTypes.FLOAT64B_T);
> public static final Register FPR1
> - = new Register("fpr1", StandardTypes.FLOAT64B_T);
> + = new Register("fpr1", StandardTypes.FLOAT64B_T);
> public static final Register FPR2
> - = new Register("fpr2", StandardTypes.FLOAT64B_T);
> + = new Register("fpr2", StandardTypes.FLOAT64B_T);
> public static final Register FPR3
> - = new Register("fpr3", StandardTypes.FLOAT64B_T);
> + = new Register("fpr3", StandardTypes.FLOAT64B_T);
> public static final Register FPR4
> - = new Register("fpr4", StandardTypes.FLOAT64B_T);
> + = new Register("fpr4", StandardTypes.FLOAT64B_T);
> public static final Register FPR5
> - = new Register("fpr5", StandardTypes.FLOAT64B_T);
> + = new Register("fpr5", StandardTypes.FLOAT64B_T);
> public static final Register FPR6
> - = new Register("fpr6", StandardTypes.FLOAT64B_T);
> + = new Register("fpr6", StandardTypes.FLOAT64B_T);
> public static final Register FPR7
> - = new Register("fpr7", StandardTypes.FLOAT64B_T);
> + = new Register("fpr7", StandardTypes.FLOAT64B_T);
> public static final Register FPR8
> - = new Register("fpr8", StandardTypes.FLOAT64B_T);
> + = new Register("fpr8", StandardTypes.FLOAT64B_T);
> public static final Register FPR9
> - = new Register("fpr9", StandardTypes.FLOAT64B_T);
> + = new Register("fpr9", StandardTypes.FLOAT64B_T);
> public static final Register FPR10
> - = new Register("fpr10", StandardTypes.FLOAT64B_T);
> + = new Register("fpr10", StandardTypes.FLOAT64B_T);
> public static final Register FPR11
> - = new Register("fpr11", StandardTypes.FLOAT64B_T);
> + = new Register("fpr11", StandardTypes.FLOAT64B_T);
> public static final Register FPR12
> - = new Register("fpr12", StandardTypes.FLOAT64B_T);
> + = new Register("fpr12", StandardTypes.FLOAT64B_T);
> public static final Register FPR13
> - = new Register("fpr13", StandardTypes.FLOAT64B_T);
> + = new Register("fpr13", StandardTypes.FLOAT64B_T);
> public static final Register FPR14
> - = new Register("fpr14", StandardTypes.FLOAT64B_T);
> + = new Register("fpr14", StandardTypes.FLOAT64B_T);
> public static final Register FPR15
> - = new Register("fpr15", StandardTypes.FLOAT64B_T);
> + = new Register("fpr15", StandardTypes.FLOAT64B_T);
> public static final Register FPR16
> - = new Register("fpr16", StandardTypes.FLOAT64B_T);
> + = new Register("fpr16", StandardTypes.FLOAT64B_T);
> public static final Register FPR17
> - = new Register("fpr17", StandardTypes.FLOAT64B_T);
> + = new Register("fpr17", StandardTypes.FLOAT64B_T);
> public static final Register FPR18
> - = new Register("fpr18", StandardTypes.FLOAT64B_T);
> + = new Register("fpr18", StandardTypes.FLOAT64B_T);
> public static final Register FPR19
> - = new Register("fpr19", StandardTypes.FLOAT64B_T);
> + = new Register("fpr19", StandardTypes.FLOAT64B_T);
> public static final Register FPR20
> - = new Register("fpr20", StandardTypes.FLOAT64B_T);
> + = new Register("fpr20", StandardTypes.FLOAT64B_T);
> public static final Register FPR21
> - = new Register("fpr21", StandardTypes.FLOAT64B_T);
> + = new Register("fpr21", StandardTypes.FLOAT64B_T);
> public static final Register FPR22
> - = new Register("fpr22", StandardTypes.FLOAT64B_T);
> + = new Register("fpr22", StandardTypes.FLOAT64B_T);
> public static final Register FPR23
> - = new Register("fpr23", StandardTypes.FLOAT64B_T);
> + = new Register("fpr23", StandardTypes.FLOAT64B_T);
> public static final Register FPR24
> - = new Register("fpr24", StandardTypes.FLOAT64B_T);
> + = new Register("fpr24", StandardTypes.FLOAT64B_T);
> public static final Register FPR25
> - = new Register("fpr25", StandardTypes.FLOAT64B_T);
> + = new Register("fpr25", StandardTypes.FLOAT64B_T);
> public static final Register FPR26
> - = new Register("fpr26", StandardTypes.FLOAT64B_T);
> + = new Register("fpr26", StandardTypes.FLOAT64B_T);
> public static final Register FPR27
> - = new Register("fpr27", StandardTypes.FLOAT64B_T);
> + = new Register("fpr27", StandardTypes.FLOAT64B_T);
> public static final Register FPR28
> - = new Register("fpr28", StandardTypes.FLOAT64B_T);
> + = new Register("fpr28", StandardTypes.FLOAT64B_T);
> public static final Register FPR29
> - = new Register("fpr29", StandardTypes.FLOAT64B_T);
> + = new Register("fpr29", StandardTypes.FLOAT64B_T);
> public static final Register FPR30
> - = new Register("fpr30", StandardTypes.FLOAT64B_T);
> + = new Register("fpr30", StandardTypes.FLOAT64B_T);
> public static final Register FPR31
> - = new Register("fpr31", StandardTypes.FLOAT64B_T);
> + = new Register("fpr31", StandardTypes.FLOAT64B_T);
> +
> + public static final RegisterGroup GENERAL
> + = new RegisterGroup("general",
> + new Register[] {
> + GPR0 , GPR1 , GPR2 , GPR3 , GPR4 , GPR5 , GPR6 , GPR7 , GPR8 , GPR9 ,
> + GPR10, GPR11, GPR12, GPR13, GPR14, GPR15, GPR16, GPR17, GPR18, GPR19,
> + GPR20, GPR21, GPR22, GPR23, GPR24, GPR25, GPR26, GPR27, GPR28, GPR29,
> + GPR30, GPR31 });
> +
> + public static final RegisterGroup SPECIAL
> + = new RegisterGroup("special",
> + new Register[] { CTR, XER, CCR, LR, FPSCR });
> +
> + public static final RegisterGroup FLOATING_POINTER
> + = new RegisterGroup("floatingpointer",
> + new Register[] {
> + FPR0 , FPR1 , FPR2 , FPR3 , FPR4 , FPR5 , FPR6 , FPR7 , FPR8 , FPR9 ,
> + FPR10, FPR11, FPR12, FPR13, FPR14, FPR15, FPR16, FPR17, FPR18, FPR19,
> + FPR20, FPR21, FPR22, FPR23, FPR24, FPR25, FPR26, FPR27, FPR28, FPR29,
> + FPR30, FPR31 });
>
> - public static final Register NIP
> - = new Register("nip", StandardTypes.VOIDPTR32B_T);
> + public static final RegisterGroup ALL;
> + static {
> + Register[] allRegs = new Register[
> + GENERAL.getRegisters().length +
> + SPECIAL.getRegisters().length +
> + FLOATING_POINTER.getRegisters().length];
> +
> + System.arraycopy(GENERAL.getRegisters(), 0,
> + allRegs, 0,
> + GENERAL.getRegisters().length);
> +
> + System.arraycopy(SPECIAL.getRegisters(), 0,
> + allRegs, GENERAL.getRegisters().length,
> + SPECIAL.getRegisters().length);
> +
> + System.arraycopy(FLOATING_POINTER.getRegisters(), 0,
> + allRegs, GENERAL.getRegisters().length + SPECIAL.getRegisters().length,
> + FLOATING_POINTER.getRegisters().length);
> +
> + ALL = new RegisterGroup("all", allRegs);
> + }
>
> public Register getProgramCounter() {
> - return NIP;
> + return LR;
> }
>
> public Register getStackPointer() {
> @@ -185,17 +241,14 @@ public class PPC32Registers extends Registers {
> }
>
> public RegisterGroup getDefaultRegisterGroup() {
> - // FIXME!
> - return null;
> + return GENERAL;
> }
>
> public RegisterGroup getAllRegistersGroup() {
> - // FIXME!
> - return null;
> + return ALL;
> }
>
> PPC32Registers() {
> - // FIXME!
> - super(null);
> + super(new RegisterGroup[] { GENERAL, SPECIAL, FLOATING_POINTER, ALL });
> }
> }
> diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog
> index bf85d82..357707b 100644
> --- a/frysk-core/frysk/proc/ChangeLog
> +++ b/frysk-core/frysk/proc/ChangeLog
> @@ -1,3 +1,10 @@
> +2007-11-09 Jose Flavio Aguilar Paulino <jflavio@br.ibm.com>
> +
> + * IsaPowerPC.java: Updated it to also support Power32.
> + * LinuxPPC.java: Patched to suppport Power32.
> + * PPCBankRegisters.java: Corrected Power32 and Power 64 register
> + banks, need to be reviewed later.
> +
> 2007-10-31 Petr Machata <pmachata@redhat.com>
>
> * TestTaskObserverCode.java (testMultiTaskUpdateCalledSeveralTimes): New test.
> diff --git a/frysk-core/frysk/proc/IsaPowerPC.java b/frysk-core/frysk/proc/IsaPowerPC.java
> index 8524381..a9f3998 100644
> --- a/frysk-core/frysk/proc/IsaPowerPC.java
> +++ b/frysk-core/frysk/proc/IsaPowerPC.java
> @@ -49,24 +49,24 @@ import frysk.isa.Register;
> import inua.eio.ByteOrder;
>
> abstract class IsaPowerPC implements Isa {
> - private final Register NIP;
> + private final Register PC;
>
> - protected IsaPowerPC(Register NIP) {
> - this.NIP = NIP;
> + protected IsaPowerPC(Register PC) {
> + this.PC = PC;
> }
>
> - // the illegal instruction for powerpc: 0x7d821008.
> - // the default order is BIG_ENDIAN
> - protected static final Instruction ppcBreakpoint
> - = new Instruction(new byte[] { (byte)0x7d, (byte)0x82,
> - (byte)0x10, (byte)0x08 }, false);
> + // the illegal instruction for powerpc: 0x7d821008.
> + // the default order is BIG_ENDIAN
> + protected static final Instruction ppcBreakpoint =
> + new Instruction(new byte[] { (byte)0x7d, (byte)0x82,
> + (byte)0x10, (byte)0x08 }, false);
>
> public long pc (Task task) {
> - return task.getRegister(NIP);
> + return task.getRegister(PC);
> }
>
> public void setPC (Task task, long address) {
> - task.setRegister(NIP, address);
> + task.setRegister(PC, address);
> }
>
> /**
> @@ -110,7 +110,6 @@ abstract class IsaPowerPC implements Isa {
> * Get the true breakpoint address according to PC register after hitting
> * one breakpoint set in task. In PowerPC, the PC register's value will
> * remain unchanged.
> - *
> */
> public final long getBreakpointAddress(Task task)
> {
> diff --git a/frysk-core/frysk/proc/LinuxPPC.java b/frysk-core/frysk/proc/LinuxPPC.java
> index 027fcf4..9c2a103 100644
> --- a/frysk-core/frysk/proc/LinuxPPC.java
> +++ b/frysk-core/frysk/proc/LinuxPPC.java
> @@ -48,7 +48,8 @@ import frysk.isa.PPC32Registers;
> class LinuxPPC extends IsaPowerPC implements SyscallEventDecoder {
>
> LinuxPPC() {
> - super(PPC32Registers.NIP);
> + //In Power32 the PC will be in Link Register
> + super(PPC32Registers.LR);
> }
>
> private static Logger logger = Logger.getLogger(ProcLogger.LOGGER_ID);
> diff --git a/frysk-core/frysk/proc/PPCBankRegisters.java b/frysk-core/frysk/proc/PPCBankRegisters.java
> index c1aa73c..22b43a9 100644
> --- a/frysk-core/frysk/proc/PPCBankRegisters.java
> +++ b/frysk-core/frysk/proc/PPCBankRegisters.java
> @@ -79,18 +79,18 @@ public class PPCBankRegisters {
> .add(new BankRegister(0, 116, 4, PPC32Registers.GPR29))
> .add(new BankRegister(0, 120, 4, PPC32Registers.GPR30))
> .add(new BankRegister(0, 124, 4, PPC32Registers.GPR31))
> - .add(new BankRegister(0, 128, 4, PPC32Registers.NIP))
> + .add(new BankRegister(0, 128, 4, "result"))
> .add(new BankRegister(0, 132, 4, "msr"))
> .add(new BankRegister(0, 136, 4, "orig_r3"))
> - .add(new BankRegister(0, 140, 4, "ctr"))
> - .add(new BankRegister(0, 144, 4, "lnk"))
> - .add(new BankRegister(0, 148, 4, "xer"))
> - .add(new BankRegister(0, 152, 4, "ccr"))
> - .add(new BankRegister(0, 156, 4, "mq"))
> + .add(new BankRegister(0, 140, 4, PPC32Registers.CTR))
> + .add(new BankRegister(0, 144, 4, PPC32Registers.LR))
> + .add(new BankRegister(0, 148, 4, PPC32Registers.XER))
> + .add(new BankRegister(0, 152, 4, PPC32Registers.CCR))
> + .add(new BankRegister(0, 156, 4, PPC32Registers.FPSCR))
> .add(new BankRegister(0, 160, 4, "trap"))
> .add(new BankRegister(0, 164, 4, "dar"))
> .add(new BankRegister(0, 168, 4, "dsisr"))
> - .add(new BankRegister(0, 172, 4, "result"))
> + .add(new BankRegister(0, 172, 4, "mq"))
> .add(new BankRegister(0, 192, 8, PPC32Registers.FPR0))
> .add(new BankRegister(0, 200, 8, PPC32Registers.FPR1))
> .add(new BankRegister(0, 208, 8, PPC32Registers.FPR2))
> diff --git a/frysk-core/frysk/util/ChangeLog b/frysk-core/frysk/util/ChangeLog
> index fe07bf5..d1fc9f9 100644
> --- a/frysk-core/frysk/util/ChangeLog
> +++ b/frysk-core/frysk/util/ChangeLog
> @@ -1,3 +1,6 @@
> +2007-11-09 Jose Flavio Aguilar Paulino <jflavio@br.ibm.com>
> + * LinuxElfCorefileFactory.java: Removed Power little endian.
> +
> 2007-10-22 Phil Muldoon <pmuldoon@redhat.com>
>
> * IA32LinuxElfCorefile.java (writeNotePrstatus): Convert
> diff --git a/frysk-core/frysk/util/LinuxElfCorefileFactory.java b/frysk-core/frysk/util/LinuxElfCorefileFactory.java
> index 7a1879a..f206a85 100644
> --- a/frysk-core/frysk/util/LinuxElfCorefileFactory.java
> +++ b/frysk-core/frysk/util/LinuxElfCorefileFactory.java
> @@ -1,6 +1,7 @@
> // This file is part of the program FRYSK.
> //
> // Copyright 2007, Red Hat Inc.
> +// Copyright 2006 IBM Corp.
> //
> // FRYSK is free software; you can redistribute it and/or modify it
> // under the terms of the GNU General Public License as published by
> @@ -58,9 +59,9 @@ public class LinuxElfCorefileFactory
> return new IA32LinuxElfCorefile(process, blockedTasks);
> if (isa.equals(ISA.X8664))
> return new X8664LinuxElfCorefile(process, blockedTasks);
> - if (isa.equals(ISA.PPC32BE) || isa.equals(ISA.PPC32LE))
> + if (isa.equals(ISA.PPC32BE))
> return new PPC32LinuxElfCorefile(process, blockedTasks);
> - if (isa.equals(ISA.PPC64BE) || isa.equals(ISA.PPC64LE))
> + if (isa.equals(ISA.PPC64BE))
> return new PPC64LinuxElfCorefile(process, blockedTasks);
>
> throw new RuntimeException("Cannot find arch for process PID " + process.getPid());
>
>
> hooks/post-receive
> --
> frysk system monitor/debugger
>
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2007-11-09 15:40 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <20071109145728.2955.qmail@sourceware.org>
2007-11-09 15:40 ` [SCM] master: Updating proc classes to support Power32/64 Phil Muldoon
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 read-only IMAP folder(s) and NNTP newsgroup(s).