All of lore.kernel.org
 help / color / mirror / Atom feed
* How can I use grub_getcrc32 in fs module
@ 2010-03-10 12:23 Jiro SEKIBA
  2010-03-10 13:05 ` Vladimir 'φ-coder/phcoder' Serbinenko
  0 siblings, 1 reply; 7+ messages in thread
From: Jiro SEKIBA @ 2010-03-10 12:23 UTC (permalink / raw)
  To: grub-devel

Hi,

How can I write Makefile to use grub_getcrc32 in file module?

I'm trying to use grub_getcrc32 function to calculate crc of
the specific part of the disk so as to validate the disk.

I added lib/crc.c in SOURCES in common.rmk for the fs module.
It looks OK to compile the target fs module.
However I got following link error for grub-setup and grub-probe.

grub_setup-fs_nilfs2.o: In function `grub_nilfs2_valid_sb':
nilfs2.c:(.text+0xe29): undefined reference to `grub_getcrc32'
nilfs2.c:(.text+0xe47): undefined reference to `grub_getcrc32'
nilfs2.c:(.text+0xe7e): undefined reference to `grub_getcrc32'
collect2: ld returned 1 exit status

I was trying to specify lib/crc.c in grub_setup_SOURCES, but got same result.

What is the best way to add dependency for those programs if
I want to use crc calculation in fs module?

thank you very much in advance
-- 
Jiro SEKIBA <jir@unicus.jp>



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: How can I use grub_getcrc32 in fs module
  2010-03-10 12:23 How can I use grub_getcrc32 in fs module Jiro SEKIBA
@ 2010-03-10 13:05 ` Vladimir 'φ-coder/phcoder' Serbinenko
  2010-03-10 14:09   ` Jiro SEKIBA
  0 siblings, 1 reply; 7+ messages in thread
From: Vladimir 'φ-coder/phcoder' Serbinenko @ 2010-03-10 13:05 UTC (permalink / raw)
  To: The development of GNU GRUB

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

Jiro SEKIBA wrote:
> Hi,
>
> How can I write Makefile to use grub_getcrc32 in file module?
>
> I'm trying to use grub_getcrc32 function to calculate crc of
> the specific part of the disk so as to validate the disk.
>   
Filesystem modules are often size-constrained. So we skip the
consistency checks unless they are inherent part of filesystem operation.
If filesystem is corrupted there isn't much we can do other than hope
that boot-related files aren't affected. GRUB itself never writes to fs
metadata so it won't lead to any additional corruption
> I added lib/crc.c in SOURCES in common.rmk for the fs module.
> It looks OK to compile the target fs module.
> However I got following link error for grub-setup and grub-probe.
>
> grub_setup-fs_nilfs2.o: In function `grub_nilfs2_valid_sb':
> nilfs2.c:(.text+0xe29): undefined reference to `grub_getcrc32'
> nilfs2.c:(.text+0xe47): undefined reference to `grub_getcrc32'
> nilfs2.c:(.text+0xe7e): undefined reference to `grub_getcrc32'
> collect2: ld returned 1 exit status
>
> I was trying to specify lib/crc.c in grub_setup_SOURCES, but got same result.
>
>   
Stupid question: have you rerun ./autogen.sh ?
> What is the best way to add dependency for those programs if
> I want to use crc calculation in fs module?
>
> thank you very much in advance
>   


-- 
Regards
Vladimir 'φ-coder/phcoder' Serbinenko



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 293 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: How can I use grub_getcrc32 in fs module
  2010-03-10 13:05 ` Vladimir 'φ-coder/phcoder' Serbinenko
@ 2010-03-10 14:09   ` Jiro SEKIBA
  2010-03-14 12:32     ` Vladimir 'φ-coder/phcoder' Serbinenko
  0 siblings, 1 reply; 7+ messages in thread
From: Jiro SEKIBA @ 2010-03-10 14:09 UTC (permalink / raw)
  To: The development of GNU GRUB

Hi,

At Wed, 10 Mar 2010 14:05:25 +0100,
Vladimir 'φ-coder/phcoder' Serbinenko wrote:
> 
> [1  <multipart/signed (7bit)>]
> [1.1  <text/plain; UTF-8 (quoted-printable)>]
> Jiro SEKIBA wrote:
> > Hi,
> >
> > How can I write Makefile to use grub_getcrc32 in file module?
> >
> > I'm trying to use grub_getcrc32 function to calculate crc of
> > the specific part of the disk so as to validate the disk.
> >   
> Filesystem modules are often size-constrained. So we skip the
> consistency checks unless they are inherent part of filesystem operation.
> If filesystem is corrupted there isn't much we can do other than hope
> that boot-related files aren't affected. GRUB itself never writes to fs
> metadata so it won't lead to any additional corruption

Ah, I see.  Ok, then we may skip checking super block crc.
However, becuase of nature of nilfs2, a log file system,
I need to roll forward the logs to find the latest log
in case that super block does not point appropriate latest log
on unclean unmounting.

In the forwarding process, log is verified by crc.

> > I added lib/crc.c in SOURCES in common.rmk for the fs module.
> > It looks OK to compile the target fs module.
> > However I got following link error for grub-setup and grub-probe.
> >
> > grub_setup-fs_nilfs2.o: In function `grub_nilfs2_valid_sb':
> > nilfs2.c:(.text+0xe29): undefined reference to `grub_getcrc32'
> > nilfs2.c:(.text+0xe47): undefined reference to `grub_getcrc32'
> > nilfs2.c:(.text+0xe7e): undefined reference to `grub_getcrc32'
> > collect2: ld returned 1 exit status
> >
> > I was trying to specify lib/crc.c in grub_setup_SOURCES, but got same result.
> >
> >   
> Stupid question: have you rerun ./autogen.sh ?

Yes, I did.  I should have mentioned.
What I did is

sh autogen.sh
make clean;./configure;make

> > What is the best way to add dependency for those programs if
> > I want to use crc calculation in fs module?
> >
> > thank you very much in advance
> >   
> 
> 
> -- 
> Regards
> Vladimir 'φ-coder/phcoder' Serbinenko
> 
> 
> [1.2 OpenPGP digital signature <application/pgp-signature (7bit)>]
> 
> [2  <text/plain; us-ascii (7bit)>]
> _______________________________________________
> Grub-devel mailing list
> Grub-devel@gnu.org
> http://lists.gnu.org/mailman/listinfo/grub-devel

-- 
Jiro SEKIBA <jir@unicus.jp>



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: How can I use grub_getcrc32 in fs module
  2010-03-10 14:09   ` Jiro SEKIBA
@ 2010-03-14 12:32     ` Vladimir 'φ-coder/phcoder' Serbinenko
  2010-03-15 10:03       ` Jiro SEKIBA
  0 siblings, 1 reply; 7+ messages in thread
From: Vladimir 'φ-coder/phcoder' Serbinenko @ 2010-03-14 12:32 UTC (permalink / raw)
  To: The development of GNU GRUB

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

Jiro SEKIBA wrote:
>> Filesystem modules are often size-constrained. So we skip the
>> consistency checks unless they are inherent part of filesystem operation.
>> If filesystem is corrupted there isn't much we can do other than hope
>> that boot-related files aren't affected. GRUB itself never writes to fs
>> metadata so it won't lead to any additional corruption
>>     
>
> Ah, I see.  Ok, then we may skip checking super block crc.
>   
Skipping only part of crc checks doesn't bring anything.
> However, becuase of nature of nilfs2, a log file system,
> I need to roll forward the logs to find the latest log
> in case that super block does not point appropriate latest log
> on unclean unmounting.
>
> In the forwarding process, log is verified by crc.
>
>   
In this case ok. Can you make tests and compare the size with either
using lib/crc.c or CRC32 from crypto framework? This is something that
would justify keeping lib/crc.c despite my previous plans on its removal
if the difference is significant.
>>> I added lib/crc.c in SOURCES in common.rmk for the fs module.
>>> It looks OK to compile the target fs module.
>>> However I got following link error for grub-setup and grub-probe.
>>>
>>> grub_setup-fs_nilfs2.o: In function `grub_nilfs2_valid_sb':
>>> nilfs2.c:(.text+0xe29): undefined reference to `grub_getcrc32'
>>> nilfs2.c:(.text+0xe47): undefined reference to `grub_getcrc32'
>>> nilfs2.c:(.text+0xe7e): undefined reference to `grub_getcrc32'
>>> collect2: ld returned 1 exit status
>>>
>>> I was trying to specify lib/crc.c in grub_setup_SOURCES, but got same result.
>>>
>>>   
>>>       
>> Stupid question: have you rerun ./autogen.sh ?
>>     
>
> Yes, I did.  I should have mentioned.
> What I did is
>
> sh autogen.sh
> make clean;./configure;make
>
>   
May I have a look at this part of the patch?


-- 
Regards
Vladimir 'φ-coder/phcoder' Serbinenko



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 293 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: How can I use grub_getcrc32 in fs module
  2010-03-14 12:32     ` Vladimir 'φ-coder/phcoder' Serbinenko
@ 2010-03-15 10:03       ` Jiro SEKIBA
  2010-03-15 10:52         ` Vladimir 'φ-coder/phcoder' Serbinenko
  0 siblings, 1 reply; 7+ messages in thread
From: Jiro SEKIBA @ 2010-03-15 10:03 UTC (permalink / raw)
  To: The development of GNU GRUB

Hi,

At Sun, 14 Mar 2010 13:32:46 +0100,
Vladimir 'φ-coder/phcoder' Serbinenko wrote:
> 
> [1  <multipart/signed (7bit)>]
> [1.1  <text/plain; UTF-8 (quoted-printable)>]
> Jiro SEKIBA wrote:
> >> Filesystem modules are often size-constrained. So we skip the
> >> consistency checks unless they are inherent part of filesystem operation.
> >> If filesystem is corrupted there isn't much we can do other than hope
> >> that boot-related files aren't affected. GRUB itself never writes to fs
> >> metadata so it won't lead to any additional corruption
> >>     
> >
> > Ah, I see.  Ok, then we may skip checking super block crc.
> >   
> Skipping only part of crc checks doesn't bring anything.
>
> > However, becuase of nature of nilfs2, a log file system,
> > I need to roll forward the logs to find the latest log
> > in case that super block does not point appropriate latest log
> > on unclean unmounting.
> >
> > In the forwarding process, log is verified by crc.
> >
> >   
> In this case ok. Can you make tests and compare the size with either
> using lib/crc.c or CRC32 from crypto framework? This is something that
> would justify keeping lib/crc.c despite my previous plans on its removal
> if the difference is significant.

OK, I'll try to compare.

> >>> I added lib/crc.c in SOURCES in common.rmk for the fs module.
> >>> It looks OK to compile the target fs module.
> >>> However I got following link error for grub-setup and grub-probe.
> >>>
> >>> grub_setup-fs_nilfs2.o: In function `grub_nilfs2_valid_sb':
> >>> nilfs2.c:(.text+0xe29): undefined reference to `grub_getcrc32'
> >>> nilfs2.c:(.text+0xe47): undefined reference to `grub_getcrc32'
> >>> nilfs2.c:(.text+0xe7e): undefined reference to `grub_getcrc32'
> >>> collect2: ld returned 1 exit status
> >>>
> >>> I was trying to specify lib/crc.c in grub_setup_SOURCES, but got same result.
> >>>
> >>>   
> >>>       
> >> Stupid question: have you rerun ./autogen.sh ?
> >>     
> >
> > Yes, I did.  I should have mentioned.
> > What I did is
> >
> > sh autogen.sh
> > make clean;./configure;make
> >
> >   
> May I have a look at this part of the patch?

Sure, that I did the following in common.rmk.
And I see that added line is in a common.mk after rerun autogen.sh.

-------8<-------8<-------8<-------8<-------8<-------
=== modified file 'conf/common.rmk'
--- conf/common.rmk	2010-03-10 14:05:15 +0000
+++ conf/common.rmk	2010-03-10 19:57:34 +0000
@@ -132,6 +132,7 @@
 DISTCLEANFILES += grub_probe_init.c
 
 # For grub-setup.
+grub_setup_SOURCES = lib/crc.c
 grub_setup_init.lst: geninit.sh $(filter-out grub_setup_init.c,$(grub_setup_SOURCES))
 		      rm -f $@; grep GRUB_MOD_INIT $(filter %.c,$^) /dev/null > $@
 DISTCLEANFILES += grub_setup_init.lst
-------8<-------8<-------8<-------8<-------8<-------

thanks,

regards,

> 
> -- 
> Regards
> Vladimir 'φ-coder/phcoder' Serbinenko
> 
> 
> [1.2 OpenPGP digital signature <application/pgp-signature (7bit)>]
> 
> [2  <text/plain; us-ascii (7bit)>]
> _______________________________________________
> Grub-devel mailing list
> Grub-devel@gnu.org
> http://lists.gnu.org/mailman/listinfo/grub-devel


-- 
Jiro SEKIBA <jir@unicus.jp>



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: How can I use grub_getcrc32 in fs module
  2010-03-15 10:03       ` Jiro SEKIBA
@ 2010-03-15 10:52         ` Vladimir 'φ-coder/phcoder' Serbinenko
  2010-03-16  7:22           ` Jiro SEKIBA
  0 siblings, 1 reply; 7+ messages in thread
From: Vladimir 'φ-coder/phcoder' Serbinenko @ 2010-03-15 10:52 UTC (permalink / raw)
  To: The development of GNU GRUB

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

Jiro SEKIBA wrote:
> -------8<-------8<-------8<-------8<-------8<-------
> === modified file 'conf/common.rmk'
> --- conf/common.rmk	2010-03-10 14:05:15 +0000
> +++ conf/common.rmk	2010-03-10 19:57:34 +0000
> @@ -132,6 +132,7 @@
>  DISTCLEANFILES += grub_probe_init.c
>  
>  # For grub-setup.
> +grub_setup_SOURCES = lib/crc.c
>  grub_setup_init.lst: geninit.sh $(filter-out grub_setup_init.c,$(grub_setup_SOURCES))
>  		      rm -f $@; grep GRUB_MOD_INIT $(filter %.c,$^) /dev/null > $@
>  DISTCLEANFILES += grub_setup_init.lst
> -------8<-------8<-------8<-------8<-------8<-------
>   
>
grub_setup_SOURCES is in i386-pc.rmk and sparc64-ieee1275.rmk


-- 
Regards
Vladimir 'φ-coder/phcoder' Serbinenko



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 293 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: How can I use grub_getcrc32 in fs module
  2010-03-15 10:52         ` Vladimir 'φ-coder/phcoder' Serbinenko
@ 2010-03-16  7:22           ` Jiro SEKIBA
  0 siblings, 0 replies; 7+ messages in thread
From: Jiro SEKIBA @ 2010-03-16  7:22 UTC (permalink / raw)
  To: The development of GNU GRUB


> grub_setup_SOURCES is in i386-pc.rmk and sparc64-ieee1275.rmk

Grr, that works.  Thank you for helping.

Now then, I'll try to compare size of binaries with
lib/crc.c and crypt framework.

thanks,

regards
-- 
Jiro SEKIBA <jir@unicus.jp>



^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2010-03-16  7:22 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-03-10 12:23 How can I use grub_getcrc32 in fs module Jiro SEKIBA
2010-03-10 13:05 ` Vladimir 'φ-coder/phcoder' Serbinenko
2010-03-10 14:09   ` Jiro SEKIBA
2010-03-14 12:32     ` Vladimir 'φ-coder/phcoder' Serbinenko
2010-03-15 10:03       ` Jiro SEKIBA
2010-03-15 10:52         ` Vladimir 'φ-coder/phcoder' Serbinenko
2010-03-16  7:22           ` Jiro SEKIBA

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.