From: Brian Inglis <Brian.Inglis@SystematicSw.ab.ca>
To: cygwin@cygwin.com
Cc: Ronaldo Luiz Alonso <ronaldo.luiz.alonso@gmail.com>
Subject: Re: ld linker with option -m elf_i386 stopped working in new version of cygwin.
Date: Sun, 10 Oct 2021 12:54:15 -0600 [thread overview]
Message-ID: <4aff570c-04e0-41d4-7ebd-87a72de72e90@SystematicSw.ab.ca> (raw)
In-Reply-To: <CAPCuWjnnFLWZKSjF5Yz=vBxUnoJ=+ONtgeKeLwfsVy3ZvJatYQ@mail.gmail.com>
On 2021-10-10 09:17, Ronaldo Luiz Alonso via Cygwin wrote:
> 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?*
$ ld --help | egrep 'elf|386'
ld: supported targets: pe-x86-64 pei-x86-64 pe-bigobj-x86-64
elf64-x86-64 elf64-l1om elf64-k1om pe-i386 pei-i386 elf32-i386
elf32-iamcu elf64-little elf64-big elf32-little elf32-big srec
symbolsrec verilog tekhex binary ihex plugin
ld: supported emulations: i386pep i386pe
i386pep:
i386pe:
Package binutils ld still supports elf32-i386 but not emulation.
For now you can still roll back to 2.36 and see if that supports the
target and emulation you are using; you may also have to roll back its
dependencies:
depends2: cygwin, libintl8, zlib0
You can also still download the earlier Cygwin source package and
maintain that as an effective fork.
Older source package build control script definitions and patches are
available under:
https://cygwin.com/git-cygwin-packages/?p=git/cygwin-packages/binutils.git
and you may need earlier releases of build tools:
build-depends: cygport, dejagnu, libgmp-devel, libiconv-devel,
libintl-devel, libisl-devel, libmpc-devel, libmpfr-devel, zlib-devel
Older Cygwin Setup and package releases remain available at the Cygwin
Time Machine:
http://www.crouchingtigerhiddenfruitbat.org/Cygwin/timemachine.html
As Cygwin is a rolling release system, you need to pay attention to
announcement notices of test and stable releases of packages on which
your work depends.
New bug fix releases can quickly roll somewhat older releases out of the
available archives.
--
Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada
This email may be disturbing to some readers as it contains
too much technical detail. Reader discretion is advised.
[Data in binary units and prefixes, physical quantities in SI.]
next prev parent reply other threads:[~2021-10-10 18:54 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-10 15:17 Ronaldo Luiz Alonso
2021-10-10 18:54 ` Brian Inglis [this message]
2021-10-10 22:40 ` Ronaldo Luiz Alonso
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4aff570c-04e0-41d4-7ebd-87a72de72e90@SystematicSw.ab.ca \
--to=brian.inglis@systematicsw.ab.ca \
--cc=cygwin@cygwin.com \
--cc=ronaldo.luiz.alonso@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).