64bit Genode and Fiasco.OC

Stefan Kalkowski stefan.kalkowski at ...1...
Fri Mar 11 18:07:18 CET 2011


Hi Daniel,

On 03/11/2011 05:39 PM, Daniel Waddington wrote:
> Hi Stefan,
> I didn't realize that the linux_x86 would build with the 64bit
> compiler.

in fact, it doesn't chooses the compiler, but which include pathes and
assembler-files to use. The build-system simply uses the compiler found
at '/usr/local/genode-gcc/bin/genode-x86-...' by default, and uses its
default target. So if you have installed a compiler, which targets only
32bit or 64bit, of course you can only build for that platform.

Unfortunately, our 'toolchain'-script produces a compiler, that only
targets the underlying platform, and not both (the pre-compiled version
targets 32bit only). We'll fix that issue, and thereby use -m<arch>
switches for building Genode to circumvent such problems in the future.

By now, a preliminary solution for you might be to install both compiler
variants, and tell Genode's build-system which compiler to use, by
overriding the following variable in 'etc/tools.conf':

CROSS_DEV_PREFIX = /usr/local/genode-gcc/bin/genode-gcc-

By stating compiler and spec-variables explicitly, you should be able to
build all platforms in the same environment.

Regards
Stefan

> This now works fine on a 64bit host.  However, I couldn't get
> the 32bit compiler to work with your suggested SPECS flags though - it
> still trys to compile the 64bit version.
> 
> Daniel
> 
> On 03/11/2011 07:52 AM, Stefan Kalkowski wrote:
>> Hi Daniel,
>>
>> On 03/11/2011 04:29 PM, Daniel Waddington wrote:
>>> Hi Stefan,
>>> Good news is that the x86_64 build seemed to work.  Bad news is that it
>>> *may* have broken the linux_x86 build...see below.  You might want to check
>>> this yourself.
>> I don't think this has something to do with the 64-bit patch for Fiasco.OC.
>>
>> I guess you tried to build Genode's Linux version on a 64-bit system
>> with Gendode's 32-bit toolchain.
>>
>> The Genode build system uses some heuristic to determine which Linux
>> version to build for you, by analyzing the underlying system, so it
>> tries to build a 64-bit version for you, while using a compiler
>> targeting 32-bit. To circumvent this heuristic, you can explicitly state
>> in the 'etc/specs.conf' to build the 32-bit version:
>>
>> SPECS =	genode linux_x86_32 sdl
>>
>> or change the compiler to target 64bit.
>>
>> I hope that helps.
>>
>> Best regards.
>> Stefan
>>
>>> Thanks
>>> Daniel
>>>
>>>
>>>   Library thread
>>>   Library signal
>>>   Library syscall
>>>     COMPILE  lx_clone.o
>>> /home/dwaddington/git/omnios/genode/base-linux/../base-linux/src/platform/x8
>>> 6_64/lx_clone.S: Assembler messages:
>>> /home/dwaddington/git/omnios/genode/base-linux/../base-linux/src/platform/x8
>>> 6_64/lx_clone.S:21: Error: bad register name `%rsi'
>>> /home/dwaddington/git/omnios/genode/base-linux/../base-linux/src/platform/x8
>>> 6_64/lx_clone.S:22: Error: bad register name `%rcx'
>>> /home/dwaddington/git/omnios/genode/base-linux/../base-linux/src/platform/x8
>>> 6_64/lx_clone.S:26: Error: bad register name `%rdi'
>>> /home/dwaddington/git/omnios/genode/base-linux/../base-linux/src/platform/x8
>>> 6_64/lx_clone.S:29: Error: bad register name `%rdx'
>>> /home/dwaddington/git/omnios/genode/base-linux/../base-linux/src/platform/x8
>>> 6_64/lx_clone.S:30: Error: bad register name `%r8'
>>> /home/dwaddington/git/omnios/genode/base-linux/../base-linux/src/platform/x8
>>> 6_64/lx_clone.S:31: Error: bad register name `%r9'
>>> /home/dwaddington/git/omnios/genode/base-linux/../base-linux/src/platform/x8
>>> 6_64/lx_clone.S:32: Error: bad register name `%rsp)'
>>> /home/dwaddington/git/omnios/genode/base-linux/../base-linux/src/platform/x8
>>> 6_64/lx_clone.S:40: Error: bad register name `%rax'
>>> /home/dwaddington/git/omnios/genode/base-linux/../base-linux/src/platform/x8
>>> 6_64/lx_clone.S:50: Error: bad register expression
>>> /home/dwaddington/git/omnios/genode/base-linux/../base-linux/src/platform/x8
>>> 6_64/lx_clone.S:57: Error: bad register name `%rax'
>>> /home/dwaddington/git/omnios/genode/base-linux/../base-linux/src/platform/x8
>>> 6_64/lx_clone.S:58: Error: bad register name `%rdi'
>>> /home/dwaddington/git/omnios/genode/base-linux/../base-linux/src/platform/x8
>>> 6_64/lx_clone.S:59: Error: bad register name `%rax'
>>> /home/dwaddington/git/omnios/genode/base-linux/../base-linux/src/platform/x8
>>> 6_64/lx_clone.S:61: Error: bad register name `%rax'
>>> /home/dwaddington/git/omnios/genode/base-linux/../base-linux/src/platform/x8
>>> 6_64/lx_clone.S:62: Error: bad register name `%rax'
>>> make[2]: *** [lx_clone.o] Error 1
>>> make[1]: *** [syscall.lib] Error 2
>>> make: *** [gen_deps_and_build_targets] Error 2
>>>
>>>
>>>
>>>
>>>> -----Original Message-----
>>>> From: Stefan Kalkowski [mailto:stefan.kalkowski at ...1...]
>>>> Sent: Thursday, March 10, 2011 5:38 AM
>>>> To: genode-main at lists.sourceforge.net
>>>> Subject: Re: 64bit Genode and Fiasco.OC
>>>>
>>>> Hello Daniel,
>>>>
>>>> Now, the Fiasco.OC/Genode variant is 64-bit ready. Please, checkout the
>>>> last revision from our subversion repository. You need to create a new
>>>> build-directory with the 'create_builddir' tool. There are new
>>>> platform-specifications available to it, namely: 'foc_x86_32' and
>>>> 'foc_x86_64'.
>>>>
>>>> Alternatively, you might place a 'specs.conf' file in the 'etc'
>>>> directory of an existing Fiasco.OC/Genode build-directory, and put the
>>>> following line into it:
>>>>
>>>> SPECS = genode foc_x86_64
>>>>
>>>> Moreover, you've to build a 64-bit version of a Genode-compliant gcc by
>>>> yourself. This is simply done by executing, the 'toolchain' script in
>>>> Genode's 'tool' directory:
>>>>
>>>> toolchain all
>>>>
>>>> This will build gcc for 64-Bit (when executed in 64-bit Linux). You
>>>> have
>>>> to install MPFR, GMP, MPC, PPL, and CLooG development libraries
>>>> beforehand. The resulting tool-chain gets installed at
>>>> '/usr/local/genode-gcc'.
>>>>
>>>> I hope that helps.
>>>>
>>>> Best regards
>>>> Stefan
>>>>
>>>> On 03/04/2011 01:33 AM, Daniel Waddington wrote:
>>>>> Hi,
>>>>>
>>>>> Is Genode+Fiasco.OC x86_64 known not to work?  After various fiddling
>>>>> about with include files, and –m64 flags I got as far as the
>>>> following..
>>>>>
>>>>>
>>>>> Thanks
>>>>>
>>>>> Daniel
>>>>>
>>>>>
>>>>>
>>>>>   Program drivers/framebuffer/vesa/vesa_drv
>>>>>
>>>>>     COMPILE  decode.o
>>>>>
>>>>>     COMPILE  fpu.o
>>>>>
>>>>>     COMPILE  framebuffer.o
>>>>>
>>>>>     COMPILE  hw_emul.o
>>>>>
>>>>>     COMPILE  ifx86emu.o
>>>>>
>>>>>     COMPILE&n >
>>>>>
>>>>>     COMPILE  ops.o
>>>>>
>>>>>     COMPILE  ops2.o
>>>>>
>>>>>     COMPILE  prim_ops.o
>>>>>
>>>>>     COMPILE  sys.o
>>>>>
>>>>>     LINK     vesa_drv
>>>>>
>>>>> ifx86emu.o: In function `unsigned int inx<unsigned int>(unsigned
>>>> short)':
>>>>> ifx86emu.cc:(.text+0x4c8): undefined reference to `bool
>>>>> hw_emul_handle_port_read<unsigned int>(unsigned short, unsigned
>>>> int*)'
>>>>> ifx86emu.o: In function `void outx<unsigned int>(unsigned short,
>>>>> unsigned int)':
>>>>>
>>>>> ifx86emu.cc:(.text+0x649): undefined reference to `bool
>>>>> hw_emul_handle_port_write<unsigned int>(unsigned short, unsigned
>>>> int)'
>>>>> collect2: ld returned 1 exit lass=MsoNormal>make[2]: *** [vesa_drv]
>>>> Error 1
>>>>> make[1]: *** [vesa_drv.prg] Error 2
>>>>>
>>>>> make: *** [gen_deps_and_build_targets] Error 2
>>>>>
>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>> ---------
>>>>> What You Don't Know About Data Connectivity CAN Hurt You
>>>>> This paper provides an overview of data connectivity, details
>>>>> its effect on application quality, and explores various alternative
>>>>> solutions. http://p.sf.net/sfu/progress-d2d
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Genode-main mailing list
>>>>> Genode-main at lists.sourceforge.net
>>>>> https://lists.sourceforge.net/lists/listinfo/genode-main
>>>> --
>>>> Stefan Kalkowski
>>>> Genode Labs
>>>>
>>>> http://www.genode-labs.com/ · http://genode.org/
>>>>
>>>> Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
>>>> Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
>>>>
>>>> -----------------------------------------------------------------------
>>>> -------
>>>> Colocation vs. Managed Hosting
>>>> A question and answer guide to determining the best fit
>>>> for your organization - today and in the future.
>>>> http://p.sf.net/sfu/internap-sfd2d
>>>> _______________________________________________
>>>> Genode-main mailing list
>>>> Genode-main at lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/genode-main
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> Colocation vs. Managed Hosting
>>> A question and answer guide to determining the best fit
>>> for your organization - today and in the future.
>>> http://p.sf.net/sfu/internap-sfd2d
>>> _______________________________________________
>>> Genode-main mailing list
>>> Genode-main at lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/genode-main
>>>
> 
> -- 
> 
> *Daniel G. Waddington Ph.D. C.Sci. **| **Samsung Information Systems
> America (SISA)*
> 
> Principal Engineer/Research Manager, Systems Research Group, Computer
> Science Lab
> 
> t: 408-544-5675   f: 408-544-5540  c: 408-890-0479
> 
> d.waddington at ...60... <mailto:d.waddington at ...60...>
> 
>  * ****P*lease consider the environment before printing this email.
> 
>  
> 
> This message is intended only for the named recipient(s) above and may
> contain confidential or privileged informat ion or protected attorney
> work product.  If you are not the intended recipient, any review,
> dissemination, distribution or copying is strictly prohibited.  If you
> have received this message in error, please immediately notify the
> sender and delete this message and its attachments from your computer
> and dispose of all other copies or printouts.  Thank you.
> 
>  
> 
> 
> 
> ------------------------------------------------------------------------------
> Colocation vs. Managed Hosting
> A question and answer guide to determining the best fit
> for your organization - today and in the future.
> http://p.sf.net/sfu/internap-sfd2d
> 
> 
> 
> _______________________________________________
> Genode-main mailing list
> Genode-main at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/genode-main

-- 
Stefan Kalkowski
Genode Labs

http://www.genode-labs.com/ · http://genode.org/

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




More information about the users mailing list