[OpenBIOS] [PATCH] ppc: force target CPU
Programmingkid
programmingkidx at gmail.com
Mon Jan 25 16:38:10 CET 2016
On Jan 25, 2016, at 10:23 AM, Laurent Vivier wrote:
>
>
> Le 25/01/2016 15:48, Programmingkid a écrit :
>>
>> On Jan 25, 2016, at 9:31 AM, Laurent Vivier wrote:
>>
>>>
>>>
>>> Le 22/01/2016 16:26, Mark Cave-Ayland a écrit :
>>>> On 22/01/16 15:05, Andreas Färber wrote:
>>>>
>>>>> Am 22.01.2016 um 14:59 schrieb Mark Cave-Ayland:
>>>>>> On 20/01/16 08:33, Laurent Vivier wrote:
>>>>>>> Le 19/01/2016 21:33, Mark Cave-Ayland a écrit :
>>>>>>>> Great! If we go with Segher's suggestion for 64-bit then we end up with
>>>>>>>> this:
>>>>>>>>
>>>>>>>> 32-bit: -mcpu=604
>>>>>>>> 64-bit: -mcpu=970 -mno-altivec
>>>>>>>
>>>>>>> I think you can use "-mcpu=power4" here, this is the old default value
>>>>>>> for gcc.
>>>>>>
>>>>>> It seems they are effectively the same, so I don't have any strong
>>>>>> preference either way.
>>>>>
>>>>> I prefer Mark's explicit variant, ideally with some explanatory comment.
>>>>
>>>> Thanks Andreas! Laurent, can you resubmit accordingly with a brief
>>>> comment for each summarising why these flags have been chosen?
>>>
>>> I can, but I'm not able to build openbios for target ppc64 on ppc64 host.
>>>
>>> Is this normal ?
>>
>> It definitely shouldn't be.
>>
>>>
>>> $ ./config/scripts/switch-arch ppc64
>>> Configuring OpenBIOS on ppc64 for ppc64
>>> Initializing build tree /home/laurent/Projects/openbios/obj-ppc64...ok.
>>> Creating target config.mak...ok.
>>> Creating target rules.mak...ok.
>>> Creating config files...ok.
>>> [laurent at pmacg5-1 openbios]$ make
>>> Building OpenBIOS for ppc64
>>> Building...
>>> error:
>>> HOSTCC host/kernel/dict.o
>>> HOSTCC host/kernel/bootstrap.o
>>> HOSTCC host/kernel/forth.o
>>> HOSTCC host/kernel/stack.o
>>> HOSTCC forthstrap
>>> GEN bootstrap.dict
>>> panic: segmentation violation at 0x87a1062c
>>> dict=0x3fff87a10010 here=0x3fff87a10638(dict+0x628) pc=0x0(dict+0x785efff0)
>>> dstackcnt=0 rstackcnt=0 instruction=deadbeef
>>> dstack: 0x0
>>> rstack: 0x0
>>> Writing dictionary core file
>>> rules.mak:69: recipe for target 'bootstrap.dict' failed
>>> make[1]: *** [bootstrap.dict] Error 1
>>> make[1]: Leaving directory '/home/laurent/Projects/openbios/obj-ppc64'
>>> Makefile:19: recipe for target 'build' failed
>>> make: *** [build] Error 1
>>
>> What operating system are you using to build OpenBIOS on?
>
> Fedora23/ppc64
>
>> Is your operating system 32 bit or 64 bit?
>
> 64bit. but I've tested on debian ppc 32bit and it fails for another reason:
>
> CC target/arch/ppc/qemu/init.o
> /home/laurent/Projects/openbios/arch/ppc/qemu/init.c: In function ‘adler32’:
> /home/laurent/Projects/openbios/arch/ppc/qemu/init.c:705:17: error: cast
> to pointer from integer of different size [-Werror=int-to-pointer-cast]
> char *buf = (char *)POP();
> ^
> cc1: all warnings being treated as errors
>
>> What version of GCC are you using?
>>
>
> 64bit host: gcc (GCC) 5.1.1 20150618 (Red Hat 5.1.1-4)
> 32bit host: gcc (Debian 4.9.2-10) 4.9.2
>
> Laurent
I use to have segmentation violations when I would compile OpenBIOS. The fix
for me was to do this:
HOSTARCH=amd64 ./switch-arch ppc
But you should try this:
HOSTARCH=ppc64 ./switch-arch ppc
Lets see what happens when you try it.
Also what is the output of your "uname -a" command on the 64 bit operating system?
More information about the OpenBIOS
mailing list