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@...1...]
Sent: Thursday, March 10, 2011 5:38 AM
To: genode-main@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@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@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@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@...60... <mailto:d.waddington@...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@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@...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.