[lkml]   [2009]   [Dec]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patch in this message
    SubjectRe: 2.6.33-rc1 Reboot right after bootloader
    Johannes Stezenbach wrote:
    > On Sun, Dec 20, 2009 at 09:46:56AM +0100, Sam Ravnborg wrote:
    >> On Sun, Dec 20, 2009 at 12:34:57AM +0100, Michael Guntsche wrote:
    >>> I took me some time but I tracked down my reboot problem. The culprit is
    >>> commit
    >>> 4a2ff67c88211026afcbdbc190c13f705dae1b59: kbuild: fix bzImage build for
    >>> x86
    >> Just to check what is going wrong here could you try to execute the following two commands:
    >> printf \\xa8\\x51\\x37\\x00 > x ; hexdump x
    >> /usr/bin/printf \\xa8\\x51\\x37\\x00 > x ; hexdump x
    >> echo -ne \\xa8\\x51\\x37\\x00 > x ; hexdump x
    >> Please try as above and also with full path to printf (/usr/bin/printf)
    > Debian dash has a built-in printf which doesn't support \x.
    > /usr/bin/printf works fine.

    So it looks like I was wrong with the last patch here.
    I changed `/bin/echo -ne' to printf. And while it worked
    for me at that time, apparently it does not work for others.

    Now I wonder why it worked for me. I can confirm that
    in current debian testing (dash- and in debian
    stable (dash-0.5.4-12) dash's built-in printf does not
    interpret \x escape sequence. I sure verified the fix
    I proposed, rebuilding kernels in a freshly-installed
    debian testing with /bin/sh pointing to dash. I'll try
    to investigate this. (Side note: since the time this
    issue first hit me, I carry 4a2ff67c88211026afcbdbc190c13f705dae1b59

    It is even more interesting. I re-read POSIX description
    of printf, see
    And this one, too, does NOT mention \x at all. Printf is
    still "better" than echo because for echo _no_ interpretation
    of escape sequences is mandated -- see
    but that does not help much since for printf, while \-sequences
    are mandated, particular \x is not, so \x is a {GNU|common sense|...}

    What the...

    So now I don't know what to do. According to the standard, there's
    no utility that will work here. ;) Maybe the attached (together
    with 4a2ff67c88211026afcbdbc190c13f705dae1b59) will make everyone happy?

    --- a/scripts/Makefile.lib.orig 2009-12-19 18:36:01.944153109 +0300
    +++ a/scripts/Makefile.lib 2009-12-20 13:36:04.014530573 +0300
    @@ -215,6 +215,6 @@
    dec_size=$$(expr $$dec_size + $$fsize); \
    done; \
    -printf "%08x" $$dec_size | \
    - sed 's/\(..\)\(..\)\(..\)\(..\)/\\\\x\4\\\\x\3\\\\x\2\\\\x\1/g' \
    +printf "%012o" $$dec_size | \
    + sed 's/\(...\)\(...\)\(...\)\(...\)/\\\\4\\\\3\\\\2\\\\1/g' \
     \ /
      Last update: 2009-12-20 11:41    [W:0.024 / U:8.448 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site