Hello Kurt,

Can you then give me an account to the machine, which is _exactly_
equivalent to the buildd?  I tested it on pergolesi, and it worked
great (of course I couldn't do a full build, because of missing build
dependencies).

And I need _real_ information about why amd64 hackers thought, that
this code supports amd64.

What I see about this amd64 thing is the following anyway:
1. report arrives, that the code supports amd64, so build for it
2. it build on a developer machine, which is opened for me
3. you say, that that the assembly is for i386 only.

I also need test results about booting with the built code (if we can
build it once).

I ask for _real_ help from the amd64 team, or I will simply go back
for i386 only with etherboot.  Of course I think that it is not a
problem at all for Debian while upstream doesn't support amd64.  If
the porter team has no time or ability to produce a buildable and
workable patch, I don't think that I have a real chance to success.

Thanks for your help,
Gergely

On Tue, 22 Mar 2005 22:12:21 +0100, Kurt Roeckx <[EMAIL PROTECTED]> writes:

> reopen 265919
> thanks
>
> Hi,
>
> The latest upload did not build properly at all.
>
> From the build log:
> gcc -DCONFIG_PCI -DCONFIG_ISA -DASK_BOOT=3 -DBOOT_FIRST=BOOT_NIC 
> -DALLOW_ONLY_ENCAPSULATED -DBACKOFF_LIMIT=7 -DCONGESTED -DTAGGED_IMAGE 
> -DELF_IMAGE -DDOWNLOAD_PROTO_TFTP -DPXE_IMAGE -DPXE_EXPORT -Os -ffreestanding 
> -Wall -W -Wno-format -DPCBIOS -fstrength-reduce -fomit-frame-pointer 
> -march=i386 -falign-jumps=1 -falign-loops=1 -falign-functions=1 -mcpu=i386 
> -DVERSION_MAJOR=5 -DVERSION_MINOR=3 -DVERSION=\"5.3.14\"  -I include -I 
> arch/i386/include -DARCH=i386 -DCONFIG_X86_64  -o bin/undi.o -c 
> arch/i386/drivers/net/undi.c
> /tmp/ccLhp0Px.s: Assembler messages:
> /tmp/ccLhp0Px.s:699: Error: `rm_undi_call(%rip)' is not a valid 32 bit 
> base/index expression
> /tmp/ccLhp0Px.s:700: Error: `rm_undi_call_end(%rip)' is not a valid 32 bit 
> base/index expression
> /tmp/ccLhp0Px.s:701: Warning: `movq' is not supported on `i386'
> /tmp/ccLhp0Px.s:701: Error: suffix or operands invalid for `movq'
> /tmp/ccLhp0Px.s:702: Warning: `movq' is not supported on `i386'
> /tmp/ccLhp0Px.s:702: Error: bad register name `%r8'
> /tmp/ccLhp0Px.s:704: Error: bad register name `%r9d'
> [...]
>
> This seems to be caused by the real mode / 16 bit
> assembler in it.  I think it needs to return to the
> sledgehammer arch / 64 bit mode.
>
> Then we get:
> arch/i386/core/start32.S: Assembler messages:
> arch/i386/core/start32.S:473: Error: suffix or operands invalid for `and'
> arch/i386/core/start32.S:476: Error: suffix or operands invalid for `and'
> arch/i386/core/start32.S:480: Error: suffix or operands invalid for `and'
>
> Those lines contain something like:
> andq    $0xffffffff, %rbx
>
> I think those should be changed to:
> andl  $0xffffffff, %ebx
>
> I think they can even be removed.
>
> Next, in arch/i386/core/realmode.c you have some pushl's
> and a popl.  They're not supported on x86_64, you only
> have pushq/popq.
>
> There are probably a few more problems with it to get it to
> build.
>
>
> Kurt


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to