Sun, 1 Nov 2009 04:18:46 +0000
Sorry Herbert you are absolutely right.
From Gentoo Portage, 2.6.22-vs2.2.0.7-gentoo, using gcc (Gentoo 4.3.2-r3
p1.6, pie-10.1.5) 4.3.2
Ciao,
Daniel
blaze your trail
--
redhat
http://feeds.feedburner.com/GeneralMusing
2009/10/31 Herbert Poetzl <herbert@13thfloor.at>
> On Sat, Oct 31, 2009 at 07:04:33PM +0000, Daniël W. Crompton wrote:
> > Happy Halloween,
> >
> > I was getting a error (below) while compiling a new kernel, I found out
> that
> > a patch (also below) was required for linux/include/time.h as part of the
> > code is being optimized away losing the references.
> >
> > I check the vserver mailing list and didn't see any post about this
> issue,
> > so I am posting it here so we now have a record of it.
> >
> > Ciao,
> > Daniel
> >
> >
> > *ERROR:*
> > make bzImage
> > ...
> > LD .tmp vmlinux1
> > kernel/built-in.o: In function `getnstimeofday':
> > (.text+0x22bdc): undefined reference to ` umoddi3'
> > kernel/built-in.o: In function `getnstimeofday':
> > (.text+0x22bfc): undefined reference to ` udivdi3'
> > kernel/built-in.o: In function `do gettimeofday':
> > (.text+0x22d0e): undefined reference to ` udivdi3'
> > kernel/built-in.o: In function `do gettimeofday':
> > (.text+0x22d2c): undefined reference to ` umoddi3'
> > kernel/built-in.o: In function `timekeeping resume':
> > timekeeping.c:(.text+0x22fd4): undefined reference to ` umoddi3'
> > timekeeping.c:(.text+0x22ff4): undefined reference to ` udivdi3'
> > kernel/built-in.o: In function `update wall time':
> > (.text+0x23306): undefined reference to ` umoddi3'
> > kernel/built-in.o: In function `update wall time':
> > (.text+0x23326): undefined reference to ` udivdi3'
> > kernel/built-in.o: In function `update wall time':
> > (.text+0x23796): undefined reference to ` umoddi3'
> > kernel/built-in.o: In function `update wall time':
> > (.text+0x237b6): undefined reference to ` udivdi3'
> > make: *** [.tmp vmlinux1] Error 1
>
> what kernel and Linux-VServer patch is that?
> and what compiler do you use?
>
> TIA,
> Herbert
>
> > *PATCH:*
> >
> > diff --git a/include/linux/time.h b/include/linux/time.h
> > index 2091a19..d32ef0a 100644
> > --- a/include/linux/time.h
> > +++ b/include/linux/time.h
> >
> > @@ -174,6 +174,10 @@ static inline void timespec add ns(struct
> > timespec *a, u64 ns)
> > {
> > ns += a->tv nsec;
> > while(unlikely(ns >= NSEC PER SEC)) {
> > + /* The following asm() prevents the compiler from
> >
> > + * optimising this loop into a modulo operation. */
> > + asm("" : "+r"(ns));
> > +
> > ns -= NSEC PER SEC;
> > a->tv sec++;
> > }
> >
> >
> >
> >
> > blaze your trail
> >
> > --
> > redhat
> >
> > http://feeds.feedburner.com/GeneralMusing
>
Sorry Herbert you are absolutely right.
From Gentoo Portage, 2.6.22-vs2.2.0.7-gentoo, using gcc (Gentoo 4.3.2-r3 p1.6, pie-10.1.5) 4.3.2
Ciao,
Daniel
blaze your trail
--
redhat
http://feeds.feedburner.com/GeneralMusing
2009/10/31 Herbert Poetzl
<herbert@13thfloor.at>
On Sat, Oct 31, 2009 at 07:04:33PM +0000, Daniël W. Crompton wrote:
> Happy Halloween,
>
> I was getting a error (below) while compiling a new kernel, I found out that
> a patch (also below) was required for linux/include/time.h as part of the
> code is being optimized away losing the references.
>
> I check the vserver mailing list and didn't see any post about this issue,
> so I am posting it here so we now have a record of it.
>
> Ciao,
> Daniel
>
>
> *ERROR:*
> make bzImage
> ...
> LD .tmp vmlinux1
> kernel/built-in.o: In function `getnstimeofday':
> (.text+0x22bdc): undefined reference to ` umoddi3'
> kernel/built-in.o: In function `getnstimeofday':
> (.text+0x22bfc): undefined reference to ` udivdi3'
> kernel/built-in.o: In function `do gettimeofday':
> (.text+0x22d0e): undefined reference to ` udivdi3'
> kernel/built-in.o: In function `do gettimeofday':
> (.text+0x22d2c): undefined reference to ` umoddi3'
> kernel/built-in.o: In function `timekeeping resume':
> timekeeping.c:(.text+0x22fd4): undefined reference to ` umoddi3'
> timekeeping.c:(.text+0x22ff4): undefined reference to ` udivdi3'
> kernel/built-in.o: In function `update wall time':
> (.text+0x23306): undefined reference to ` umoddi3'
> kernel/built-in.o: In function `update wall time':
> (.text+0x23326): undefined reference to ` udivdi3'
> kernel/built-in.o: In function `update wall time':
> (.text+0x23796): undefined reference to ` umoddi3'
> kernel/built-in.o: In function `update wall time':
> (.text+0x237b6): undefined reference to ` udivdi3'
> make: *** [.tmp vmlinux1] Error 1
what kernel and Linux-VServer patch is that?
and what compiler do you use?
TIA,
Herbert
> *PATCH:*
>
> diff --git a/include/linux/time.h b/include/linux/time.h
> index 2091a19..d32ef0a 100644
> --- a/include/linux/time.h
> +++ b/include/linux/time.h
>
> @@ -174,6 +174,10 @@ static inline void timespec add ns(struct
> timespec *a, u64 ns)
> {
> ns += a->tv nsec;
> while(unlikely(ns >= NSEC PER SEC)) {
> + /* The following asm() prevents the compiler from
>
> + * optimising this loop into a modulo operation. */
> + asm("" : "+r"(ns));
> +
> ns -= NSEC PER SEC;
> a->tv sec++;
> }
>
>
>
>
> blaze your trail
>
> --
> redhat
>
>
http://feeds.feedburner.com/GeneralMusing