ld linker with option -m elf_i386 stopped working in new version of cygwin.
Ronaldo Luiz Alonso
ronaldo.luiz.alonso@gmail.com
Sun Oct 10 15:17:41 GMT 2021
Hello everybody!
I am a professor teaching operational system and using a tutorial in
french by michelizza:
https://michelizza.developpez.com/realiser-son-propre-systeme/
In order to build the system and debug it in bochs I use the
following Makefile:
------------------------------------------------------------------------
OBJ=kernel
CC=gcc -Wall *-m32* -g
all: $(OBJ)
kernel: kernel.o screen.o lib.o gdt.o idt.o interrupt.o int.o pic.o
syscalls.o mm.o printk.o process.o schedule.o sched.o
* ld --oformat binary -m elf_i386 -Ttext 1000 $^ -o $@*
int.o: int.asm
nasm -f elf -o $@ $^
sched.o: sched.asm
nasm -f elf -o $@ $^
.o: .c
$(CC) -c $^
clean:
rm -f $(OBJ) *.o
------------------------------------------------------------------------
Note that the system is compiled using -m 32 (system is for machines with
32 bits) bits and the linker uses elf_i386 multiboot format.
This was working fine few weeks later, but when I run setup again to update
cygwin it stops working and ld complains that* this emulation mode is no
longer supported! *
The system now only links and builds PE windows executables!
The question is:
*how can I get and build an older version of ld source, so that this works
again in cygwin ?*
*Is it possible?*
*or should I give up developping this kernel using windows and cygwin and
turn back to Linux?*
Thanks in advance.
Ronaldo Alonso - Computer Engeneer and professor
Federal University of Mato Grosso
Brazil.
More information about the Cygwin
mailing list