grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Make gdb debugging a bit less painful


From: Robert Millan
Subject: Re: [PATCH] Make gdb debugging a bit less painful
Date: Fri, 18 Apr 2008 17:54:23 +0200
User-agent: Mutt/1.5.13 (2006-08-11)

Bean confirmed it works.  Committed without changing jmp to call, since it
wasn't clear whether we want it or not.

On Fri, Apr 18, 2008 at 01:32:59PM +0200, Robert Millan wrote:
> On Thu, Apr 17, 2008 at 10:21:14PM -0400, Pavel Roskin wrote:
> > Quoting Robert Millan <address@hidden>:
> > 
> > >Now that I think of it, is there any reason for doing all the cmain()
> > >cruft before grub_main() ?  Getting to grub_main() only requires a working
> > >stack, which we have, and grub_main() inmediately returns control back to
> > >architecture-specific code in grub_machine_init().
> > >
> > >So why not move from:
> > >
> > >  _start -> cmain -> grub_main
> > >
> > >to:
> > >
> > >  _start -> grub_main -> grub_machine_init -> cmain
> > >
> > >?
> > 
> > I think it would be great.  We should try to make the code for  
> > different architectures more uniform to simplify maintenance.
> 
> Here.  Unfortunately I can't test it as I have no ieee1275 at hand currently.
> 
> Anyone?
> 
> -- 
> Robert Millan
> 
> <GPLv2> I know my rights; I want my phone call!
> <DRM> What use is a phone call… if you are unable to speak?
> (as seen on /.)

> diff -x configure -x config.h.in -x CVS -x '*~' -x '*.mk' -urp 
> ../grub2/include/grub/ieee1275/ieee1275.h ./include/grub/ieee1275/ieee1275.h
> --- ../grub2/include/grub/ieee1275/ieee1275.h 2008-01-24 09:21:43.000000000 
> +0100
> +++ ./include/grub/ieee1275/ieee1275.h        2008-04-18 13:31:27.000000000 
> +0200
> @@ -97,6 +97,7 @@ extern void EXPORT_FUNC(grub_ieee1275_se
>  
>  
>  
> +void EXPORT_FUNC(grub_ieee1275_init) (void);
>  int EXPORT_FUNC(grub_ieee1275_finddevice) (char *name,
>                                          grub_ieee1275_phandle_t *phandlep);
>  int EXPORT_FUNC(grub_ieee1275_get_property) (grub_ieee1275_phandle_t phandle,
> diff -x configure -x config.h.in -x CVS -x '*~' -x '*.mk' -urp 
> ../grub2/kern/i386/ieee1275/startup.S ./kern/i386/ieee1275/startup.S
> --- ../grub2/kern/i386/ieee1275/startup.S     2008-01-23 10:57:26.000000000 
> +0100
> +++ ./kern/i386/ieee1275/startup.S    2008-04-18 13:29:57.000000000 +0200
> @@ -39,7 +39,7 @@
>  start:
>  _start:
>       movl %eax, EXT_C(grub_ieee1275_entry_fn)
> -     jmp EXT_C(cmain)
> +     jmp EXT_C(grub_main)
>  
>  /*
>   *  This call is special...  it never returns...  in fact it should simply
> diff -x configure -x config.h.in -x CVS -x '*~' -x '*.mk' -urp 
> ../grub2/kern/ieee1275/cmain.c ./kern/ieee1275/cmain.c
> --- ../grub2/kern/ieee1275/cmain.c    2008-04-12 23:09:35.000000000 +0200
> +++ ./kern/ieee1275/cmain.c   2008-04-18 13:30:43.000000000 +0200
> @@ -151,9 +151,8 @@ grub_ieee1275_find_options (void)
>  #undef SF
>  #undef OHW
>  
> -void cmain (void);
>  void
> -cmain (void)
> +grub_ieee1275_init (void)
>  {
>    grub_ieee1275_finddevice ("/chosen", &grub_ieee1275_chosen);
>  
> @@ -162,9 +161,4 @@ cmain (void)
>      grub_ieee1275_mmu = 0;
>  
>    grub_ieee1275_find_options ();
> -
> -  /* Now invoke the main function.  */
> -  grub_main ();
> -
> -  /* Never reached.  */
>  }
> diff -x configure -x config.h.in -x CVS -x '*~' -x '*.mk' -urp 
> ../grub2/kern/ieee1275/init.c ./kern/ieee1275/init.c
> --- ../grub2/kern/ieee1275/init.c     2008-04-12 23:09:36.000000000 +0200
> +++ ./kern/ieee1275/init.c    2008-04-18 13:31:51.000000000 +0200
> @@ -180,6 +180,8 @@ grub_machine_init (void)
>    char args[256];
>    int actual;
>  
> +  grub_ieee1275_init ();
> +
>    grub_console_init ();
>  #ifdef __i386__
>    grub_keyboard_controller_init ();
> diff -x configure -x config.h.in -x CVS -x '*~' -x '*.mk' -urp 
> ../grub2/kern/powerpc/ieee1275/crt0.S ./kern/powerpc/ieee1275/crt0.S
> --- ../grub2/kern/powerpc/ieee1275/crt0.S     2008-01-19 12:41:00.000000000 
> +0100
> +++ ./kern/powerpc/ieee1275/crt0.S    2008-04-18 13:30:12.000000000 +0200
> @@ -42,5 +42,5 @@ _start:     
>       lis     9, address@hidden
>       stw     5, address@hidden(9)
>  
> -     bl      cmain
> +     bl      grub_main
>  1:   b       1b

> _______________________________________________
> Grub-devel mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/grub-devel


-- 
Robert Millan

<GPLv2> I know my rights; I want my phone call!
<DRM> What use is a phone call… if you are unable to speak?
(as seen on /.)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]