[ld] 32bit linken op 64bit platform

Pagina: 1
Acties:

  • cxavier
  • Registratie: Maart 2006
  • Laatst online: 29-01 17:43
Ik weet niet of dit topic hier op de goede plek staat, maar ik dacht dat de mensen die hier zaten er het meest over weten.


Ik heb verschillende bestanden met broncodes (*.c, en *.asm), waar ik *.o files van heb gemaakt. Ik wil van die *.o files 1 binary maken.
Omdat het assemblybestand 32-bits is (de andere zijn zo ook gecompileerd), moeten het gelinkte bestand ook 32-bits worden.

Ik heb alleen geen idee hoe ik dat voor elkaar krijg op een 64bits platform (gentoo amd64).

Nu probeer ik te linken met
code:
1
ld -T link.ld -o exec.bin start.o main.o scrn.o
, maar zo komt er een 64bits binary uit, wat dus niet de bedoeling is.

Het link.ld bestand ziet er zo uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
OUTPUT_FORMAT("binary")
ENTRY(start)
phys = 0x00100000;
SECTIONS
{
    .text phys : AT(phys) {
        code = .;
        *(.text)
        *(.rodata)
        . = ALIGN(4096);
    }
    .data : AT(phys + (data - code))
    {
        data = .;
        *(.data)
        . = ALIGN(4096);
    }
    .bss : AT(phys + (bss - code))
    {
        bss = .;
        *(.bss)
        . = ALIGN(4096);
    }
    end = .;
}

Knight who says 你


  • daft_dutch
  • Registratie: December 2003
  • Laatst online: 02-12-2025

daft_dutch

>.< >.< >.< >.<

google 32 bit chroot
het makkelijkste is een 32bit chroot
Veel plezier

[ Voor 34% gewijzigd door daft_dutch op 31-10-2007 21:43 ]

>.< >.< >.< >.<


  • cxavier
  • Registratie: Maart 2006
  • Laatst online: 29-01 17:43
Ik zit nu idd een chroot-omgeving te installeren, maar is er geen simpelere manier, zodat ik het gewoon met een Makefile kan linken?

Knight who says 你


  • Vinnienerd
  • Registratie: Juli 2000
  • Laatst online: 15:51

  • cxavier
  • Registratie: Maart 2006
  • Laatst online: 29-01 17:43
Ik denk het wel, ik zal het dadelijk wat verder doorlezen.

Knight who says 你