grub-devel
[Top][All Lists]
Advanced

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

Re: powerpc/sparc problems


From: rubisher
Subject: Re: powerpc/sparc problems
Date: Fri, 23 Oct 2009 20:34:32 +0000
User-agent: Mozilla-Thunderbird 2.0.0.22 (X11/20090701)

Bean wrote:
On Thu, Oct 22, 2009 at 5:12 PM, rubisher <address@hidden> wrote:
On Thu, Oct 22, 2009 at 12:03 AM, rubisher wrote:
Bean wrote:
On Mon, Oct 12, 2009 at 4:55 PM, Felix Zielcke wrote:
David are you still there?
And also anyone who has access to a powerpc machine (and experience)?

In Debian we the problem that the `__ashldi3' and `__bswapsi2' symbols
can't be found in the grub-ieee1275 build on powerpc and also sparc.

Jordi already noticed this with the 1.96+20090721-4 IIRC and now other
people noticed this with 1.97~beta3
AFAICS there wasn't anything relevant changed on our side, so seems to
be a gcc issue.

`__ashldi3' is listed in include/grub/powerpc/libgcc.h and
`__bswapsi2'
in the sparc64 header.
But something has now changed that this isn't enough anymore, at least
in Debian.

We used gcc 4.3.3 at the time Jordi noticed this and now switched to
gcc-4.4.1.

And David we still have this sparc bug open, which I forwared to
grub-devel:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=538030
Hi,

Try my branch, it includes the libgcc functions in grub instead of
rely on external library. It builds and run properly for
powerpc-ieee1275 last time I check.

Hello Mr bean ;<)

I reach to grab your git tree but even a fresh pull still failed to
build
from src as follow:
grub_emu-normal_main.o: In function `uitree_append':
/Sources/jso/Grub2.deb/grub2-git091021/normal/main.c:169: undefined
reference to `grub_uitree_root'
/Sources/jso/Grub2.deb/grub2-git091021/normal/main.c:169: undefined
reference to `grub_uitree_root'
/Sources/jso/Grub2.deb/grub2-git091021/normal/main.c:169: undefined
reference to `grub_uitree_find'
/Sources/jso/Grub2.deb/grub2-git091021/normal/main.c:179: undefined
reference to `grub_uitree_create_node'
/Sources/jso/Grub2.deb/grub2-git091021/normal/main.c:184: undefined
reference to `grub_uitree_set_prop'
/Sources/jso/Grub2.deb/grub2-git091021/normal/main.c:185: undefined
reference to `grub_uitree_set_prop'
/Sources/jso/Grub2.deb/grub2-git091021/normal/main.c:186: undefined
reference to `grub_tree_add_child'
/Sources/jso/Grub2.deb/grub2-git091021/normal/main.c:172: undefined
reference to `grub_uitree_create_node'
/Sources/jso/Grub2.deb/grub2-git091021/normal/main.c:175: undefined
reference to `grub_tree_add_child'
collect2: ld returned 1 exit status
make[1]: *** [grub-emu] Error 1
make[1]: Leaving directory
`/Sources/jso/Grub2.deb/grub2-git091021/build/grub-common'
make: *** [build/grub-common] Error 2
dpkg-buildpackage: error: debian/rules build gave error exit status 2

Any idea/advise?
Hi,

I forget to add some file for grub-emu previously, but it's fixed
already, pull the latest code.

--
Bean

gitgrub home: http://github.com/grub/grub/
my fork page: http://github.com/bean123/grub/

Sorry I would have to be more accurate:
the git log said:
commit eb03e2575b2c0b1b4fd83f33a741f6fef3b93339
Author: Bean <address@hidden>
Date:   Wed Oct 21 01:11:27 2009 +0800

    Minor bug fix for parameter handling.

commit 8a3390f0164c89e8ae73884672556a9b31cbd766
Author: Bean <address@hidden>
Date:   Tue Oct 20 22:37:32 2009 +0800

    Support dialog and template, set maximum text mode for EFI.

Anyway, I remove all and clone it again:
git clone http://github.com/bean123/grub.git
copy this git tree in a working dir then run autogen.sh; mkdir build; cd
build; ../configure; make
which still failed the same way.

Did i miss something???

Hi,

Oh I see, you use the powepc port, I only fix the x86 port. A quick
fix is to open conf/powerpc_ieee1275.rmk, find grub_emu_SOURCES and
add menu/tree.c and menu/uitree.c.


Thanks that's help to continue and to finish the build but failed to assemle 
the image:
/usr/bin/grub-mkelfimage --directory=/usr/lib/grub/powerpc-ieee1275 
--output=/boot/grub/grub fat part_msdos
grub-mkimage: error: unresolved symbol _savegpr_29

But if I manage to rebuild it with -O0 (or -O2), I reach to boot it ;-).
But I guess there isn't enough module loaded because at grub prompt, it didn't 
find any disk?

That said by default the dpkg build the kern.img as follow:

# /usr/bin/grub-mkelfimage --directory=/usr/lib/grub/powerpc-ieee1275 
--output=/boot/grub/grub fat part_msdos

and create for me a grub.cfg with severall menuentries like:
### BEGIN /etc/grub.d/10_linux ###
menuentry "Debian GNU/Linux, with Linux 2.6.30-2-powerpc64" {
        insmod ext2
        set root=(hd1,3)
        search --no-floppy --fs-uuid --set 16ef0754-c845-46e9-a948-b9669ee68329
        linux   /vmlinux-2.6.30-2-powerpc64 
root=UUID=3c51c43e-63a7-4ff1-9b1c-cf98addcb7ed ro  quiet
        initrd  /initrd.img-2.6.30-2-powerpc64
}

Given those 2 elements, I presume that the fact grub2 isn't able to find any disk is because it lakes of one or more module either in the build image or in menuentry (I just started with grub2 2 weeks ago so please appology if don't yet understand all details)?

As it seems that you have some experience with powerpc, may be can you advise me with some your tips (how did you build your image, a sample of one your menuentry?): I also tried to follow recipe of <http://grub.enbug.org/TestingOnPowerPC> i.e.
# cd /usr/lib/grub/powerpc-ieee1275 (where *.mod stand)
# /usr/bin/grub-mkelfimage -n --directory=/usr/lib/grub/powerpc-ieee1275 
--output=/boot/grub/grubof.modules *.mod
(-n for pseries) but this image sadely make panicing ofs:
DEFAULT CATCH!, exception-handler=fff00300
at   %SRR0: 0000000000c3c25c   %SRR1: 800000000000b002
Call History
------------
@  - c3c1f0
close-package  - c58060
(poplocals)  - c3a758
(init-program)  - c7e298
boot  - c7ec7c
evaluate  - c4a638
invalid pointer - d83655
invalid pointer - f
invalid pointer - f
catch  - c38fe8
bt-task-boot-on-this  - d140d8
(poplocals)  - c3a758
catch  - c38fe8
execute-device-method  - c58bcc
(poplocals)  - c3a758
(select-boot-seq)  - c59ba4

Client's Fix Pt Regs:
Client's Fix Pt Regs:
 00 00100000000001f4 ffffffffffffffff 00000000deadbeef fffffffffffffffc
 04 0000000000000000 0000000000000000 0000000000000000 0000000000000001
 08 0000000000001000 0000030002001000 0000000000000003 0000000000007000
 0c 0000000022800000 0000000000c17100 0000000000c18000 000000000009c4b0
 10 0000000000db8c20 0000000000db8939 0000000000c57d80 0000000000c58060
 14 0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000
 18 0000000000c13000 0000000000c38000 0000000000c14d40 0000000000c16ec0
 1c 0000000000c20000 0000000000c3fdf0 0000000000c11ea0 0000000000c10fa8
Special Regs:
    %IV: 00000300     %CR: 84800000    %XER: 20000008  %DSISR: 08000000
  %SRR0: 0000000000c3c25c   %SRR1: 800000000000b002
    %LR: 0000000000c3c1f0    %CTR: 0000000000000000
   %DAR: ffffffffffffffff
Virtual PID = 0
 ofdbg

At this point I am worry that the change of optimization compile option (-Os -> -O0) break something or am I facing to some issue related to my ofs or something else in config file (e.g. I just figure out that I didn't change my grub.cfg with the usage of lasetest describe image grubof.modules: I didn't remove the 'insmod ext2', thought?)

Thanks again for all,
        J.

PS: This boxe is a P510 with latest IBM system firmware SF240_382







reply via email to

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