Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ANNOUNCE: DJGPP port of GCC-4.8.2 (DJGPP v2.04 only)

347 views
Skip to first unread message

Andris Pavenis

unread,
Apr 24, 2014, 12:56:10 PM4/24/14
to djgpp-a...@delorie.com

This is announcement of DJGPP port of GCC-4.9.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.

**********************************************************************
* WARNING: only port for DJGPP 2.04 development versions is provided *
**********************************************************************

Warning: DJGPP port of binutils-2.22 or newer is recommended.
Version 2.19 and 2.20 may work but are not tested
It is however recommended to use binutils-2.22
or newer

Use of DJGPP port of binutils-2.22 or newer is however required for
building gcc-4.9.0 for DJGPP.

=======================================
Build for current development version of DJGPP (djdev204) is
available
ftp://ftp.delorie.com/pub/djgpp/beta/v2gnu/
and mirror sites (see http://www.delorie.com/djgpp/getting.html)

ada490b.zip GNU Ada compiler 4.9.0 for DJGPP V2
(NOTE: contains 1 file name conflict on systems without LFN)
ftp://ftp.delorie.com/pub/djgpp/beta/v2gnu/ada490b.zip

gfor490b.zip GNU Fortan 95 compiler 4.9.0 for DJGPP V2
ftp://ftp.delorie.com/pub/djgpp/beta/v2gnu/gfor490b.zip

gcc490b.zip GNU GCC 4.9.0 for DJGPP V2
ftp://ftp.delorie.com/pub/djgpp/beta/v2gnu/gcc490b.zip

gcc490s.zip GNU GCC 4.9.0 sources for DJGPP
ftp://ftp.delorie.com/pub/djgpp/beta/v2gnu/gcc490s.zip

gpp490b.zip GNU C++ Compiler 4.9.0 for DJGPP V2
ftp://ftp.delorie.com/pub/djgpp/beta/v2gnu/gpp490b.zip

objc490b.zip GNU Objective C and Objective C++ compiler and
runtime libraries v4.9.0
ftp://ftp.delorie.com/pub/djgpp/beta/v2gnu/objc490b.zip

ada490d.zip Documentation for GNU Ada compiler
ftp://ftp.delorie.com/pub/djgpp/beta/v2gnu/ada490d.zip

gfor490d.zip Documentation for GNU Fortran compiler
ftp://ftp.delorie.com/pub/djgpp/beta/v2gnu/gfor490d.zip

gcc490d.zip Documentation for GNU C compiler
ftp://ftp.delorie.com/pub/djgpp/beta/v2gnu/gcc490d.zip

gcc490.README DJGPP specific readme file
ftp://ftp.delorie.com/pub/djgpp/beta/v2gnu/README.gcc490
(it is identical with file gnu/gcc-4.90/readme.DJGPP in archives
gcc490b.zip and gcc490s.zip)


Binaries are built and tested mostly under Windows Vista Business (SP2)

========================================
Build for DJGPP 2.03p2 is not and most likely will not be available.
Using binaries for DJGPP v2.04 with DJGPP v2.03p2 is not tested
at all and is likely not to work properly especially for C++
and Ada

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 5.10 chroot under Fedora 20. Binaries are statically linked with GMP-6.0.0
(6.0.0a only contains documentation fixes), MPFR-3.1.2 and MPC-1.0.1 to avoid
unnecessary dependencies and increase compatibility with other
Linux distributions. For example they are expected to work without
problems in other reasonably recent Linux distributions (like Fedora, RHEL-5 and newer,
etc)

gcc490s2.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 gcc490s.zip is a side product of building
gcc-4.9.0 Linux to DJGPP cross-compiler RPM packages. See source
RPM for patches applied to original FSF version of GCC-4.9.0.
You can find the same contents in the file

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


Cross-compiler SRPM:

ftp://ftp.delorie.com/pub/djgpp/rpms/djcross-gcc-4.9.0/djcross-gcc-4.9.0-1ap.src.rpm

Cross-compiler binary RPMs (built under CentOS 5.9 i386, are expected to work on other
recent enough RPM based Linux distributions, I myself have tried Fedora 19 x86_64):

GNU C compiler:
ftp://ftp.delorie.com/pub/djgpp/rpms/djcross-gcc-4.9.0/i686/djcross-gcc-4.9.0-1ap.i686.rpm

GNU C++ compiler:
ftp://ftp.delorie.com/pub/djgpp/rpms/djcross-gcc-4.9.0/i686/djcross-gcc-c++-4.9.0-1ap.i686.rpm

GNU Ada compiler:
ftp://ftp.delorie.com/pub/djgpp/rpms/djcross-gcc-4.9.0/i686/djcross-gcc-gnat-4.9.0-1ap.i686.rpm

GNU Fortran compiler:
ftp://ftp.delorie.com/pub/djgpp/rpms/djcross-gcc-4.9.0/i686/djcross-gcc-gfortran-4.9.0-1ap.i686.rpm

GNU Objective C and Objective C++ compilers:
ftp://ftp.delorie.com/pub/djgpp/rpms/djcross-gcc-4.9.0/i686/djcross-gcc-objc-4.9.0-1ap.i686.rpm

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

Info files of GCC-4.9.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-4.9.0/i686/djcross-gcc-info-4.9.0-1ap.i686.rpm

Substitute i686 with x86_64 For x86_64 binary RPMs in the URLs above.

You need also cross binutils (choose required binary RPM file or build from SRPM)
ftp://ftp.delorie.com/pub/djgpp/rpms/djcross-binutils-2.24-1ap.src.rpm
ftp://ftp.delorie.com/pub/djgpp/rpms/djcross-binutils-2.24-1ap.i686.rpm
ftp://ftp.delorie.com/pub/djgpp/rpms/djcross-binutils-2.24-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.04pre_20140410-19ap.i686.rpm
ftp://ftp.delorie.com/pub/djgpp/rpms/djcrx-2.04pre_20140410-19ap.x86_64.rpm
ftp://ftp.delorie.com/pub/djgpp/rpms/djcrx-2.04pre_20140410-19ap.src.rpm
(2014/04/10 CVS version)
Note that one can use
ftp://ftp.delorie.com/pub/djgpp/rpms/djcrx-2.04pre-5.src.rpm
for bootstrapping (one may need to replace djlsr204.zip in it with newer file generated from CVS
sources)



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

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

Also see file gnu/gcc-4.90/readme.DJGPP (from gcc490b.zip and
gcc490s.zip) or
ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/gcc490.README for more
information about this port.

There is also my web page about DJGPP port of GCC

http://www.iki.fi/andris.pavenis/djgpp/gcc

I cannot promise however, that I'll update it very often.
However new versions may appear there earlier (including ones not available
from ftp://ftp.delorie.com).


Andris Pavenis <andris DOT pavenis AT iki DOT fi>

RayeR

unread,
Apr 25, 2014, 9:13:46 PM4/25/14
to
Hm, this gcc 4.9.0 generates ~5-10% bigger code after UPXing than older 4.8.2 :\
I keep 4.8.2 yet...

rug...@gmail.com

unread,
Apr 30, 2014, 3:03:16 PM4/30/14
to
Hi,

On Thursday, April 24, 2014 11:56:10 AM UTC-5, Andris Pavenis wrote:
>
> This is announcement of DJGPP port of GCC-4.9.0

Thanks again for your efforts.

> ada490b.zip GNU Ada compiler 4.9.0 for DJGPP V2
>
> Binaries are built and tested mostly under Windows Vista Business (SP2)
>
> See
>
> http://gcc.gnu.org/gcc-4.9
>
> for more information about GCC-4.9.0 and about changes in comparison
> with earlier versions

"GNAT switched to Ada 2012 instead of Ada 2005 by default."

According to this:

http://www.adaic.org/resources/add_content/standards/12aarm/html/AA-2-9.html

"3.f/3 {AI05-0176-1} The following word is not reserved in Ada 2005, but is reserved in Ada 2012: ''some''. Uses of this word as an identifier will need to be changed, but we do not expect them to be common."

Which of course applies to us testing Gautier's 3D engine.

https://sites.google.com/site/rugxulo/eng3d018.zip?attredirects=0

I tested ada490b.zip under Lucid Puppy Linux running DOSEMU.

dpmi -m 0x20000
unzip \zips\eng3d018.zip
cd engine3d\demos
make_it -gnat05

Otherwise it chokes on the keyword in unzideco.ads and unzideco.adb . Though of course it still seems to (mostly) run okay once compiled, so that's good enough.

RoBoard Lab

unread,
May 12, 2014, 3:02:30 AM5/12/14
to
update the build script and cross compiler for Win/Mac to GCC 4.9.0:

https://github.com/andrewwutw/build-djgpp/releases

--- news://freenews.netfront.net/ - complaints: ne...@netfront.net ---

Andrew Wu

unread,
May 15, 2014, 7:18:26 AM5/15/14
to
RayeR於 2014年4月26日星期六UTC+8上午9時13分46秒寫道:
> Hm, this gcc 4.9.0 generates ~5-10% bigger code after UPXing than older 4.8.2 :\
>
> I keep 4.8.2 yet...


Hi,

Are you using gcc 4.8.2 + djdev203.zip or gcc 4.8.2 + djdev204.zip? It seems djdev203.zip has a much smaller libc.a library than djdev204.zip. Maybe this is why your gcc 4.8.2 generates a smaller executable file than gcc 4.9.0.

RayeR

unread,
May 18, 2014, 12:04:41 PM5/18/14
to
I've been using djdev 2.04 for a long time, I know that 2.03 libc makes smaller exe. But in this case I'm comparing the result only after updating the compiler, anything else... (with previous gcc releases I sometimes even observed the exe is smaller a bit but not in this case 4.8.2->4.9)

Andris Pavenis

unread,
May 18, 2014, 1:11:25 PM5/18/14
to dj...@delorie.com
On 05/18/2014 07:04 PM, RayeR wrote:
> I've been using djdev 2.04 for a long time, I know that 2.03 libc makes smaller exe. But in this case I'm comparing the result only after updating the compiler, anything else... (with previous gcc releases I sometimes even observed the exe is smaller a bit but not in this case 4.8.2->4.9)
>
>
What optimization level did You use? I do not think that size can be reliably compared unless
optimization level is -Os (optimize for size).

Andris

RayeR

unread,
May 18, 2014, 3:38:08 PM5/18/14
to
> What optimization level did You use? I do not think that size can be reliably compared unless optimization level is -Os (optimize for size).

Well I checked again and I had used -O2.
So I retested with -Os and got much more comparable result, still file is a bit bigger from 4.9.0:
before strip+UPX: 265728B vs 266240B
after strip+UPX: 120016B vs 120464B

Andris Pavenis

unread,
May 19, 2014, 12:05:49 AM5/19/14
to dj...@delorie.com
There is almost 10K growth of size of libgcc.a (lib/gcc/djgpp/4.90/libgcc.a for 4.9.0). It is
linked with any program. I guess that could
explain the growth of size.

Andris

Andrew Wu

unread,
May 19, 2014, 7:57:11 AM5/19/14
to dj...@delorie.com
Hi. If you are concerned about executable file size, you can check
this link for gcc code size optimizations :

https://software.intel.com/en-us/blogs/2013/01/17/x86-gcc-code-size-optimizations
0 new messages