64bit Genode and Fiasco.OC

Daniel Waddington d.waddington at ...60...
Sat Mar 12 02:15:19 CET 2011


Stefan,
I think the problem has something to do with base/mk/dep_lib.mk, 
particularly ...

#
# Of all possible file locations, use the (first) one that actually exist.
#
LIB_MK = $(firstword $(wildcard $(addsuffix /$(LIB).mk,$(LIB_MK_DIRS))))

which will find the wrong syscall.mk

I tried to force LIB_MK to the right syscall.mk but it then followed  
with a load of redefinition errors.  Below is the make VERBOSE_DIR= output.

Daniel


   Library process
make --no-print-directory -C 
/home/dwaddington/git/omnios/build/genode-linux_x86/var/libcache/syscall 
-f /home/dwaddington/git/omnios/genode/base/mk/lib.mk \
          REP_DIR=/home/dwaddington/git/omnios/genode/base-linux \
          
LIB_MK=/home/dwaddington/git/omnios/genode/base-linux/lib/mk*/x86_64/*syscall.mk 
\
          LIB=syscall \
          DEPS="" \
          
BUILD_BASE_DIR=/home/dwaddington/git/omnios/build/genode-linux_x86 \
          SHELL=/bin/bash \
          SHARED_LIBS=""\
          
INSTALL_DIR=/home/dwaddington/git/omnios/build/genode-linux_x86/bin
   Library syscall
     COMPILE  lx_clone.o
/home/dwaddington/git/omnios/genode/base-linux/../base-linux/src/platform/x86_64/lx_clone.S: 
Assembler messages:
/home/dwaddington/git/omnios/genode/base-linux/../base-linux/src/platform/x86_64/lx_clone.S:21: 
Error: bad register name `%rsi'
/home/dwaddington/git/omnios/genode/base-linux/../base-linux/src/platform/x86_64/lx_clone.S:22: 
Error: bad register name `%rcx'
/home/dwaddington/git/omnios/genode/base-linux/../base-linux/src/platform/x86_64/lx_clone.S:26: 
Error: bad register name `%rdi'
/home/dwaddington/git/omnios/genode/base-linux/../base-linux/src/platform/x86_64/lx_clone.S:29: 
Error: bad register name `%rdx'
/home/dwaddington/git/omnios/genode/base-linux/../base-linux/src/platform/x86_64/lx_clone.S:30: 
Error: bad register name `%r8'
/home/dwaddington/git/omnios/genode/base-linux/../base-linux/src/platform/x86_64/lx_clone.S:31: 
Error: bad register name `%r9'
/home/dwaddington/git/omnios/genode/base-linux/../base-linux/src/platform/x86_64/lx_clone.S:32: 
Error: bad register name `%rsp)'
/home/dwaddington/git/omnios/genode/base-linux/../base-linux/src/platform/x86_64/lx_clone.S:40: 
Error: bad register name `%rax'
/home/dwaddington/git/omnios/genode/base-linux/../base-linux/src/platform/x86_64/lx_clone.S:50: 
Error: bad register expression
/home/dwaddington/git/omnios/genode/base-linux/../base-linux/src/platform/x86_64/lx_clone.S:57: 
Error: bad register name `%rax'
/home/dwaddington/git/omnios/genode/base-linux/../base-linux/src/platform/x86_64/lx_clone.S:58: 
Error: bad register name `%rdi'
/home/dwaddington/git/omnios/genode/base-linux/../base-linux/src/platform/x86_64/lx_clone.S:59: 
Error: bad register name `%rax'
/home/dwaddington/git/omnios/genode/base-linux/../base-linux/src/platform/x86_64/lx_clone.S:61: 
Error: bad register name `%rax'
/home/dwaddington/git/omnios/genode/base-linux/../base-linux/src/platform/x86_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



On 03/11/2011 09:07 AM, Stefan Kalkowski wrote:
> 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

-- 

*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.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.genode.org/pipermail/users/attachments/20110311/9e97cd3c/attachment.html>


More information about the users mailing list