• ANNOUNCE: DJGPP port of GCC-10.1.0

    From [via djgpp-announce@delorie.com]" <@21:1/5 to All on Mon May 18 18:16:04 2020
    This is announcement of an update of DJGPP port of GCC-10.1.0

    GCC used to stand for the GNU C Compiler, but since the
    compiler supports several other languages aside from C,
    it now stands for the GNU Compiler Collection.

    See
        https://gcc.gnu.org/ml/gcc-announce/2018/msg00001.html
    for original announcement of gcc-10.1.0 release

    ************************************************************ *                     WARNINGS                             *
    ************************************************************
    - This GCC port is for DJGPP v2.05
      Build for DJGPP 2.03p2 is not and will not be available.

    - DJGPP port of binutils-2.30 or newer is required.
      Older binutils version do not work with gcc-10.1.0. Newer
      version like 2.34 recommended.

    - there are critical issues with C++ standard library in earlier
      DJGPP ports of GCC available from current DJGPP distribution
      (except gcc-3.4.6):
      - std::tolower() and std::toupper() are badly broken. Fixed in this build.
        This problem also prevents other parts of C++ standard library like
        regex from working
      - std::filesystem support is missing from libstdc++. Fixed in this build.

    ************************************************************

    Build for current stable version of DJGPP (djdev205) is
    available from
        ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/
    and mirror sites (see http://www.delorie.com/djgpp/getting.html)

    gcc1010b.zip     GNU GCC 10.1.0 for DJGPP V2
        ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/gcc1010b.zip

    gcc1010d.zip     Documentation for GNU C compiler
        ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/gcc1010d.zip

    gpp1010b.zip     GNU C++ Compiler 10.1.0 for DJGPP V2
        ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/gpp1010b.zip

    gfor1010b.zip    GNU Fortan 95 compiler 10.1.0 for DJGPP V2
        ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/gfor1010b.zip

    gcc1010s.zip     GNU GCC 10.1.0 sources for DJGPP
        ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/gcc1010s.zip

    objc1010b.zip    GNU Objective C and Objective C++ compiler and
                     runtime libraries v10.1.0
        ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/objc1010b.zip

    gfor1010d.zip    Documentation for GNU Fortran compiler
        ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/gfor1010d.zip

    ada1010b.zip     GNU Ada compiler
        ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/ada1010b.zip

    ada1010d.zip     Documentation for GNU Ada compiler
        ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/ada1010d.zip

    Binaries are built and tested in Windows Vista Business SP3 bit. Unfortunately Microsoft has broken
    DPMI
    in Windows 10 32 bit since March 2018. There is also no improvement in recent Insider builds of 32 bit
    versions of Windows 10.


    Source RPMS needed for building Linux to DJGPP cross-compiler =============================================================

    Binary RPMs for both i686 and x86_64 are available. I built these binary RPMs in CentOS 7 chroot under ArchLinux. Binaries are linked with GMP-6.2.0 MPFR-4.0.1 and MPC-1.1.0 (statical linking has been used to avoid unnecessary dependencies and increase compatibility with other Linux distributions. For example
    they are expected to work without problems in other reasonably recent RPM based Linux
    distributions (like Fedora, RHEL-6 and newer, etc)

    Additionally support for ArchLinux are available from AUR (aur.archlinux.org):
        https://aur.archlinux.org/packages/djgpp-gcc/

    gcc1010s2.zip is no more provided as patching GCC using DJGPP tools
    has not been tested and even attempted by me for a long time.
    DJGPP source file gcc1010s.zip is a side product of building
    gcc-10.1.0 Linux to DJGPP cross-compiler RPM packages. See source
    RPM for patches applied to original FSF version of GCC-10.1.0.
    You can find the same contents in the file

    ftp://ftp.delorie.com/pub/djgpp/rpms/djcross-gcc-10.1.0/djcross-gcc-10.1.0.tar.bz2


    Cross-compiler SRPM:

    ftp://ftp.delorie.com/pub/djgpp/rpms/djcross-gcc-10.1.0/djcross-gcc-10.1.0-2ap.src.rpm

    Cross-compiler binary RPMs (built under CentOS 6.9 i386, are expected to work on other
    recent enough RPM based Linux distributions.

        GNU C compiler: ftp://ftp.delorie.com/pub/djgpp/rpms/djcross-gcc-10.1.0/djcross-gcc-10.1.0-2ap.x86_64.rpm

        GNU C++ compiler: ftp://ftp.delorie.com/pub/djgpp/rpms/djcross-gcc-10.1.0/djcross-gcc-c++-10.1.0-2ap.x86_64.rpm

        GNU Ada compiler: ftp://ftp.delorie.com/pub/djgpp/rpms/djcross-gcc-10.1.0/djcross-gcc-gnat-10.1.0-2ap.x86_64.rpm

        GNU Fortran compiler: ftp://ftp.delorie.com/pub/djgpp/rpms/djcross-gcc-10.1.0/djcross-gcc-gfortran-10.1.0-2ap.x86_64.rpm

        GNU Objective C and Objective C++ compilers: ftp://ftp.delorie.com/pub/djgpp/rpms/djcross-gcc-10.1.0/djcross-gcc-objc-10.1.0-2ap.x86_64.rpm

        Tools for GCC 10.1.0 (currently only fixincl, most users do not need this):
    ftp://ftp.delorie.com/pub/djgpp/rpms/djcross-gcc-10.1.0/djcross-gcc-tools-10.1.0-2ap.x86_64.rpm

        Info files of GCC-10.1.0 (a separate RPM file as these files are expected to
        conflict with system compiler info files, but You do not need to install them...):
    ftp://ftp.delorie.com/pub/djgpp/rpms/djcross-gcc-10.1.0/djcross-gcc-info-10.1.0-2ap.x86_64.rpm

    Binary RPMs for i686 are no more provided. One should be able to build them from SRPM though

    You need also cross binutils (choose required binary RPM file or build from SRPM)
    ftp://ftp.delorie.com/pub/djgpp/rpms/djcross-binutils-2.30.1-1ap.src.rpm ftp://ftp.delorie.com/pub/djgpp/rpms/djcross-binutils-2.30.1-1ap.x86_64.rpm

    You need also DJGPP development libraries, include files and some tools (eg. stubify)
         ftp://ftp.delorie.com/pub/djgpp/rpms/djcrx-2.05-5.x86_64.rpm
         ftp://ftp.delorie.com/pub/djgpp/rpms/djcrx-2.05-5.src.rpm
    Note that one can use ftp://ftp.delorie.com/pub/djgpp/rpms/djcrx-bootstrap-2.05-1.src.rpm
         for bootstrapping

    =========================================

    See
        http://gcc.gnu.org/gcc-10
    for more information about GCC-10.1.0 and about changes in comparison
    with earlier versions

    Also see file gnu/gcc-10.10/readme.DJGPP (from gcc1010b.zip and
    gcc1010s.zip) for more information about this port.

    Andris Pavenis <andris DOT pavenis AT iki DOT fi>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From rugxulo@gmail.com@21:1/5 to djgpp-announce@nospam.plz] on Mon May 25 14:55:05 2020
    Hi,

    On Monday, May 18, 2020 at 12:58:40 PM UTC-5, Andris Pavenis (andris.pavenis@nospam.plz) [via djgpp-announce@nospam.plz] wrote:

    This is announcement of an update of DJGPP port of GCC-10.1.0

    Binaries are built and tested in Windows Vista Business SP3 bit.

    Thanks again for your efforts.

    I have only tested some simple C programs in raw FreeDOS,
    so I don't know how well C++ or Ada will work here
    (although I don't really know those languages anyways).
    Rebuilding p7zip and GdM's 3D Engine are all I can think of.

    Apparently, temporary files require LFNs now. I half assume
    that's a regression, but maybe it's unavoidable due to
    other reasons??

    ======================================================
    G:\TONY>gcc -s -O2 -ansi -pedantic -Wall -Wextra hello.c -o hello.exe
    Cannot create temporary file in g:\temp/: No such file or directory (ENOENT) Abort!
    Exiting due to signal SIGABRT
    Raised at eip=0013e551
    eax=0039da14 ebx=00000120 ecx=00000000 edx=00000000 esi=00003d83 edi=003a4fa8 ebp=0039db38 esp=0039da00 program=G:\DJGPP\LIBEXEC\GCC\DJGPP\10\COLLECT2.EXE cs: sel=00e7 base=00840000 limit=003affff
    ds: sel=00ef base=00840000 limit=003affff
    es: sel=00ef base=00840000 limit=003affff
    fs: sel=00cf base=0003d530 limit=0000ffff
    gs: sel=00ff base=00000000 limit=0010ffff
    ss: sel=00ef base=00840000 limit=003affff
    App stack: [0039dc58..0019dc5c] Exceptn stack: [0019dba8..0019bc68]

    Call frame traceback EIPs:
    0x00167a04
    0x0013e551
    0x0017a91f
    G:\TONY>doslfn
    DOSLFN 0.41c (haftmann#software & jmh 11/2012):
    Cannot find/open Unicode table file G:\UTILS\CP437UNI.TBL!
    loaded consuming 11520 bytes.
    G:\TONY>gcc -s -O2 -ansi -pedantic -Wall -Wextra hello.c -o hello.exe G:\TONY>hello
    Hello, world!
    G:\TONY>scrndump
    ======================================================

    So it works with DOSLFN loaded but not otherwise.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From [via djgpp@delorie.com]" @21:1/5 to rugxulo@gmail.com on Sun May 31 14:58:01 2020
    On 5/26/20 12:55 AM, rugxulo@gmail.com [via djgpp@delorie.com] wrote:
    Hi,

    On Monday, May 18, 2020 at 12:58:40 PM UTC-5, Andris Pavenis (andris.pavenis@nospam.plz) [via djgpp-announce@nospam.plz] wrote:
    This is announcement of an update of DJGPP port of GCC-10.1.0

    Binaries are built and tested in Windows Vista Business SP3 bit.
    Thanks again for your efforts.

    I have only tested some simple C programs in raw FreeDOS,
    so I don't know how well C++ or Ada will work here
    (although I don't really know those languages anyways).
    Rebuilding p7zip and GdM's 3D Engine are all I can think of.

    Apparently, temporary files require LFNs now. I half assume
    that's a regression, but maybe it's unavoidable due to
    other reasons??


    It seems that I have forgot to cherry-pick one change from port of gcc-9:


    [andris@ap gcc]$ git checkout djgpp/native/gcc-9
    Updating files: 100% (34529/34529), done.
    Switched to branch 'djgpp/native/gcc-9'
    [andris@ap gcc]$ git log gcc/collect2.c | grep DJGPP
        [DJGPP] collect2.c: avoid using 8+3 incompatible file names for DJGPP host
    [andris@ap gcc]$ git checkout djgpp/native/gcc-10
    Updating files: 100% (33852/33852), done.
    Switched to branch 'djgpp/native/gcc-10'
    [andris@ap gcc]$ git log gcc/collect2.c | grep DJGPP
    [andris@ap gcc]$


    The change can be seen at:

    https://github.com/apavenis/djgpp-gcc/commit/83281fd7f4b209c5e39f9549c139b13bf33a227b#diff-ce3d2a55a0a4785420c9004fbd205221


    Andris


    ======================================================
    G:\TONY>gcc -s -O2 -ansi -pedantic -Wall -Wextra hello.c -o hello.exe
    Cannot create temporary file in g:\temp/: No such file or directory (ENOENT) Abort!
    Exiting due to signal SIGABRT
    Raised at eip=0013e551
    eax=0039da14 ebx=00000120 ecx=00000000 edx=00000000 esi=00003d83 edi=003a4fa8 ebp=0039db38 esp=0039da00 program=G:\DJGPP\LIBEXEC\GCC\DJGPP\10\COLLECT2.EXE cs: sel=00e7 base=00840000 limit=003affff
    ds: sel=00ef base=00840000 limit=003affff
    es: sel=00ef base=00840000 limit=003affff
    fs: sel=00cf base=0003d530 limit=0000ffff
    gs: sel=00ff base=00000000 limit=0010ffff
    ss: sel=00ef base=00840000 limit=003affff
    App stack: [0039dc58..0019dc5c] Exceptn stack: [0019dba8..0019bc68]

    Call frame traceback EIPs:
    0x00167a04
    0x0013e551
    0x0017a91f
    G:\TONY>doslfn
    DOSLFN 0.41c (haftmann#software & jmh 11/2012):
    Cannot find/open Unicode table file G:\UTILS\CP437UNI.TBL!
    loaded consuming 11520 bytes.
    G:\TONY>gcc -s -O2 -ansi -pedantic -Wall -Wextra hello.c -o hello.exe G:\TONY>hello
    Hello, world!
    G:\TONY>scrndump
    ======================================================

    So it works with DOSLFN loaded but not otherwise.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)