Compiling the GNU ada compiler on a new platform

2009-08-21 Thread Paul Smedley
Hi All,

I'm wanting to update the GNU ADA compiler for OS/2... I'm currently 
building GCC 4.3.x and 4.4.x on OS/2 (C/C++/fortran) but for ADA 
configure complains about not finding gnat.  The problem is that the 
only gnat compiled for OS/2 was years ago using a different toolchain 
so it's not suitable.

I assume that at some point in time, ada didn't depend on an existing 
gnat, so if I could find that version, I could compile a version of 
gnat to get me started?? Otherwise it's a bit chicken and egg :(

-- 
Cheers,

Paul.



Re: Compiling the GNU ada compiler on a very old platform

2009-08-27 Thread Paul Smedley
Hi Geert!

On Thu, 27 Aug 2009 01:44:11 UTC, Geert Bosch  
wrote:

> 
> On Aug 21, 2009, at 18:40, Paul Smedley wrote:
> > I'm wanting to update the GNU ADA compiler for OS/2... I'm currently
> > building GCC 4.3.x and 4.4.x on OS/2 (C/C++/fortran) but for ADA
> > configure complains about not finding gnat.  The problem is that the
> > only gnat compiled for OS/2 was years ago using a different toolchain
> > so it's not suitable.
> 
> I used to maintain the OS/2 port for AdaCore, but that was many years  
> ago.
> IBM released its last version of OS/2 in 2001. Currently it is almost
> impossible to run OS/2 in either real modern hardware or on a  
> virtualized
> system.
Not quite true - www.ecomstation.com - and it does run in things like 
virtualbox.  I'm running on a quad core system here and all 4 cores 
are recognised.

> AFAIK, GNAT 3.15p is the last GNAT version with OS/2 support. As the  
> OS/2
> version was a full implementation of Ada 95, including all annexes,  
> passing
> all ACATS tests, this version should still be very useful today, if you
> have a system running OS/2, that is. If you're interested in developing
> Ada applications on OS/2, your best bet is to use GNAT 3.15p.
> You'll get a mature well-tested and very fast compiler.
I don't actually NEED this :) Another member of the community inquired
about an updated gnat, so I thought I'd look at it.

With GNAT 3.15p did it also depend on an existing gnat? or that one 
built directory from source?

> This version might still be able to bootstrap GNAT.
It might - but I'm using a different c library :( libc vs emx

-- 
Cheers,

Paul.



'Obsolete' architectures in GCC 4.4

2009-04-17 Thread Paul Smedley
Hi Guys,

I see the following in the changes for GCC 4.4:
Support for a number of older systems and recently unmaintained or 
untested target ports of GCC has been declared obsolete in GCC 4.4. 
Unless there is activity to revive them, the next release of GCC will 
have their sources permanently removed.

The following ports for individual systems on particular architectures
have been obsoleted:

* Generic a.out on IA32 and m68k (i[34567]86-*-aout*, 
m68k-*-aout*)

For the record, the Generic a.out support for IA32 is used by my GCC 
4.3.3 and upcoming GCC 4.4.x ports for OS/2.  I don't yet have the 
patches in any form ready enough to be submitted for inclusion, but 
they are available from 
http://www.smedley.info/os2ports/index.php?page=gcc

I'd be really grately if the IA32 a.out support could be left in place
as it does work for OS/2 at least :)

-- 
Cheers,

Paul.



build break in libstdc++-v3 on OS/2

2012-04-06 Thread Paul Smedley

Hi All,

I'm trying to update my OS/2 port of GCC to v4.6.3

I have the compiler part building, but am currently getting a break in 
libstdc++-v3.


The error is as follows:
In file included from 
U:/DEV/gcc-4.6.3/i386-pc-os2-emx/libstdc++-v3/include/rege

x:39:0,
 from ../../.././libstdc++-v3/src/regex.cc:30:
U:/DEV/gcc-4.6.3/i386-pc-os2-emx/libstdc++-v3/include/bitset: In member 
function
 'void std::bitset<_Nb>::_M_copy_from_ptr(const _CharT*, std::size_t, 
std::size_

t, std::size_t, _CharT, _CharT)':
U:/DEV/gcc-4.6.3/i386-pc-os2-emx/libstdc++-v3/include/bitset:1371:67: 
error: no

matching function for call to 'min(unsigned int&, const unsigned int&)'
U:/DEV/gcc-4.6.3/i386-pc-os2-emx/libstdc++-v3/include/bitset:1371:67: 
note: cand

idates are:
U:/DEV/gcc-4.6.3/i386-pc-os2-emx/libstdc++-v3/include/bits/stl_algobase.h:187:5:
 note: template const _Tp& std::min(const _Tp&, const _Tp&)
U:/DEV/gcc-4.6.3/i386-pc-os2-emx/libstdc++-v3/include/bits/stl_algobase.h:233:5:
 note: template const _Tp& std::min(const 
_Tp&, const

 _Tp&, _Compare)
U:/DEV/gcc-4.6.3/i386-pc-os2-emx/libstdc++-v3/include/bits/stl_algo.h:4184:5: 
no

te: template _Tp std::min(std::initializer_list<_Tp>)
U:/DEV/gcc-4.6.3/i386-pc-os2-emx/libstdc++-v3/include/bits/stl_algo.h:4189:5: 
no
te: template _Tp 
std::min(std::initializer_list<_Tp>,

 _Compare)

Any ideas?

Cheers,

Paul



.opt file help

2012-04-09 Thread Paul Smedley

Hi All,

As part of updating the OS/2 port of GCC from v4.4.x to v4.6.x I've hit 
a snag where the passing of options to the linker is no longer working.


Previous OS/2 builds of gcc have supported -Zlinker  on the command 
line to pass the option  to the linker.


With previous gcc versions this worked, however with 4.6 I get an error 
about gcc not recognising the option.


I added:
-Zlinker
driver separate

to the opt file I'm using, now the option is recognised but it doesn't 
know what to do with it.


I added
{-Zlinker}

to LINK_SPEC - but it's passing -Zlinker and the option to the linker. 
Any hints, tips or documentation on LINK_SPEC?


Thanks in advance,

Paul



Re: .opt file help

2012-04-09 Thread Paul Smedley

Hi Jonathan,

On 09/04/12 21:54, Jonathan Wakely wrote:

On 9 April 2012 10:59, Paul Smedley wrote:

Hi All,

As part of updating the OS/2 port of GCC from v4.4.x to v4.6.x I've hit a
snag where the passing of options to the linker is no longer working.

Previous OS/2 builds of gcc have supported -Zlinker  on the command line
to pass the option  to the linker.

With previous gcc versions this worked, however with 4.6 I get an error
about gcc not recognising the option.

I added:
-Zlinker
driver separate


Can you simply make it an alias of the existing -Xlinker option?

-Zlinker
Driver Separate Alias(-Xlinker)


I discovered the above shortly after posting last night.  I tried it 
this morning and it doesn't work :(


Looking at emx.h again - the previous code that worked with GCC <= 4.5 
had as part of GCC_DRIVER_HOST_INITIALIZATION:



else if (!strcmp (argv [i], "-Zlinker")) 
\

  {\
if (i + 1 >= argc) \
fatal_error ("argument to `-Zlinker' is missing");\
arg [0] = "-Xlinker"; \
arg [1] = "-O"; \
arg [2] = "-Xlinker"; \
arg [3] = argv [++i]; \
arg_count = 4;\
  }   \

So it looks like it was rewriting a gcc option of (for example)
-Zlinker /PM:PM
to -Xlinker -O -Xlinker /PM:PM

whereas alias's Zlinker to -xlinker just results in -Xlinker /PM:PM 
which fails :(





Re: .opt file help

2012-04-09 Thread Paul Smedley

On 10/04/12 07:17, Paul Smedley wrote:

Hi Jonathan,

On 09/04/12 21:54, Jonathan Wakely wrote:

On 9 April 2012 10:59, Paul Smedley wrote:

Hi All,

As part of updating the OS/2 port of GCC from v4.4.x to v4.6.x I've
hit a
snag where the passing of options to the linker is no longer working.

Previous OS/2 builds of gcc have supported -Zlinker  on the
command line
to pass the option  to the linker.

With previous gcc versions this worked, however with 4.6 I get an error
about gcc not recognising the option.

I added:
-Zlinker
driver separate


Can you simply make it an alias of the existing -Xlinker option?

-Zlinker
Driver Separate Alias(-Xlinker)


I discovered the above shortly after posting last night. I tried it this
morning and it doesn't work :(

Looking at emx.h again - the previous code that worked with GCC <= 4.5
had as part of GCC_DRIVER_HOST_INITIALIZATION:


else if (!strcmp (argv [i], "-Zlinker")) \
{ \
if (i + 1 >= argc) \
fatal_error ("argument to `-Zlinker' is missing");\
arg [0] = "-Xlinker"; \
arg [1] = "-O"; \
arg [2] = "-Xlinker"; \
arg [3] = argv [++i]; \
arg_count = 4; \
} \

So it looks like it was rewriting a gcc option of (for example)
-Zlinker /PM:PM
to -Xlinker -O -Xlinker /PM:PM

whereas alias's Zlinker to -xlinker just results in -Xlinker /PM:PM
which fails :(



FWIW - having the following in LINK_SPEC appears to fix it:
  "%{Zlinker*:-O %*}"   \