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