delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2016/07/21/21:45:08

X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f
X-Received: by 10.129.121.76 with SMTP id u73mr1438528ywc.2.1469151278386;
Thu, 21 Jul 2016 18:34:38 -0700 (PDT)
X-Received: by 10.157.34.133 with SMTP id y5mr104032ota.4.1469151278335; Thu,
21 Jul 2016 18:34:38 -0700 (PDT)
Newsgroups: comp.os.msdos.djgpp
Date: Thu, 21 Jul 2016 18:34:37 -0700 (PDT)
In-Reply-To: <579167F3.4060700@gmx.de>
Complaints-To: groups-abuse AT google DOT com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=2602:306:8371:4220:90e5:3f7d:a264:2d34;
posting-account=p5rsXQoAAAB8KPnVlgg9E_vlm2dvVhfO
NNTP-Posting-Host: 2602:306:8371:4220:90e5:3f7d:a264:2d34
References: <e5d46af2-36fb-46af-af04-805ce2f8b6c3 AT googlegroups DOT com> <579167F3 DOT 4060700 AT gmx DOT de>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <cc7177a5-b28f-4bf6-b29b-02f27bce66c1@googlegroups.com>
Subject: Re: LD from binutils 2.26 crashes when -ffunction-sections +
-Wl,--gc-sections is used but only under DOS
From: "rugxulo AT gmail DOT com [via djgpp AT delorie DOT com]" <djgpp AT delorie DOT com>
Injection-Date: Fri, 22 Jul 2016 01:34:38 +0000
Bytes: 7612
Lines: 126
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com
Errors-To: nobody AT delorie DOT com
X-Mailing-List: djgpp AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

Hi,

On Thursday, July 21, 2016 at 7:25:10 PM UTC-5, Juan Manuel Guerrero (juan DOT guerrero AT spam DOT sux) [via djgpp AT spam DOT sux] wrote:
> Am 21.07.2016 19:55, schrieb RayeR (glaux AT spam DOT sux) [via djgpp AT spam DOT sux]:
> 
> 1)  I would never claim that a DJGPP port of binutils is able to run
> on plain DOS at all.  I have never tried and I am surprised that some
> one has tried.

I know you always disclaim, saying that you don't know how well it works
in FreeDOS. I also know that you sometimes rarely use native DOS in a VM.
I also know you prefer NTVDM (which I don't have available anymore).

I have a native FreeDOS FAT32 partition that I often use for fun. No, I
obviously don't do anything fancy there, no heavy work, but I do sometimes
run DJGPP. My current install is DJDEV 2.05, GCC 6.10, and BinUtils 2.26r3.
At least for my uses it works fine.

> 2)  I do not know how well COFF is still supported by the binutils
> maintainers. I do not know if there is still a COFF devoted maintainer
> at all and it is no secret that from time to time they break COFF
> support without note it until some of the last COFF users complains.

Last I checked, DJ was still the COFF maintainer. But it's not truly fair
to expect him to do any heavy (or really any) maintenance as he has other
priorities. So if he doesn't want to do it, we have to respect his decision.

Again, maybe in theory it would be wiser to switch to ELF, but so far there
isn't enough interest (or energy) to do it.

> I think there is no need to clarify that PECOFF has no real relation
> to the standard 32-bit COFF from the good old days and that if they
> support PECOFF for cygwin/mingw this does not imply in any way that
> they are still maintaining COFF.

Cygwin and MinGW are still "tier two" while DJGPP isn't even on the map.
Maybe they throw us a bone every so often, I dunno, but DJGPP overall
is not important enough (anymore), sadly.

>  > But when I run it under Win98SE or WinXP it compiles fine and EXE
>  > is valid. So I tried some older linker and found that LD.EXE from
>  > binutils 2.25 dated 1.6.2015 and some olders that I tried don't crash.
>  > So it was introduced recenlty in 2.26.
> 
> What you are discribing is that the DJGPP port of binutils 2.25 works on
> plain DOS because that was the absolute last port for which I have provided
> a version compiled with DJGPP 2.03.  All later ports are only availabe as
> compiled either with DJGPP 2.04 or with DJGPP 2.05.  And it is absolute
> __NO__ surprise that ports compiled with DJGPP 204 and/or DJGPP 2.05 work
> flawlessly in a NTVDM environment but may crash on plain DOS.  This is a
> very well known fact for the last 10 years probably.

I'm aware that NTVDM was more convenient, but most things (AFAIK) were not
explicitly broken, nor were they meant to be. Sure, LFNs were needed to
build some stuff, but I'm not aware of any overt incompatibility. That was,
IMHO, an advantage of DJGPP, that it worked in as many environments as
possible.

> Most of the developers that have made the great job to get DJGPP working
> on Win98 and later on Win2K and WinXP had probably no longer access to
> MSDOS machines so it was impossible for them to check if those
> improvements done had broken some old plain DOS support.

XP didn't come with DOS anymore, maybe only a system floppy, and that was
bare bones and lacked a lot of stuff (including SYS). Besides, you couldn't
shrink / resize your NTFS until Vista, which itself wouldn't even boot off
of FAT anymore. (Win7 still has system floppy, but I hear that Win10 doesn't.)

Nevertheless, there's always FreeDOS (and VMs, e.g. QEMU/KVM or VBox),
which does mostly work. Actually, MSDN probably still sells MS-DOS, Win 3.1,
etc. (dunno, don't care, haven't looked). Certainly ROM-DOS and DR-DOS are
still sold online.

> But who one cares about MSDOS or FreeDOS if he has the pleasure of NTVDM?
> Me certainly not; I do 100% of my DJGPP development on WinXP.

XP has been dead since, what, April 2014? No more fixes, no more updates.
All 64-bit versions of Windows lack NTVDM entirely. AFAIK, even Win8.1 and
Win10 both require a late-model P4 due to NX bit. So the writing is on the
wall. Yes, Win10 32-bit still supports NTVDM, allegedly, but there probably
won't be any going forward. No idea if Hyper-V properly supports DOS, even
accidentally, but I wouldn't rely on it. VPC is probably dead.

> The bottom line of all this is that no DJGPP port of binutils has ever
> been broken.  What we are experiencing here is a DJGPP 2.05 issue and
> nothing else.

I'm not so sure.

> You can check your code with both versions of the linker and see what
> happens. In the end it is your job to provide minimal sample code that
> makes it possible to me to reproduce this issue so I can debug the
> library to see where to fix the issue.  Fixing this may take weeks or
> months depending on my free time and interest.

In this newsgroup, on Feb. 2 (under Subject: "Re: ANNOUNCE: Update of
DJGPP port of gcc-5.3.0"), I had also said this:

"
Well, just for comparison, I tried older GCC 4.9.3 and BinUtils 2.26:
It builds and works okay, but only if you remove the unsupported
"-Wl,--gc-sections" in e3d.gpr (which otherwise crashes the linker).
"

But in private email (June 22) to Gautier:

"
I have no idea when or why this was broken, but I can't reproduce
this with latest BNU226BR3.ZIP (r3, March 5, 2016) from
/current/v2gnu/ , so my warning is probably (now) irrelevant. Just
FYI.
"

So, indeed, I can rebuild "Engine 3D" with no crashes (in raw FreeDOS)
with latest DJGPP (either 4.9.3 or 6.1.0). Heck, I recently made this
a "test[s]" in my MetaDOS (FreeDOS floppy, 0.4-pre unreleased). I've
barely mentioned my efforts before, but so far nobody cared. (Probably
too much other stuff to do.)

Just FYI, FreeDOS recently released kernel 2042. It does allegedly fix
the read-from-NUL bug, but then again, he also accidentally broke /
regressed "if exist g:\blah\nul echo Exists!", so that's annoying. Hence
I'm still sticking to (very-mildly-patched) 2041 (although patching 2042
probably isn't hard). I still have not tried to rebuild DJLSR205 yet
(although it should work).

I know none of this is giving much hope, but anyways ....

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019