Bug 13897 - gnat does not implement tasking on powerpc
Summary: gnat does not implement tasking on powerpc
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: ada (show other bugs)
Version: 3.3.2
: P2 enhancement
Target Milestone: 4.0.0
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-01-28 15:59 UTC by Ludovic Brenta
Modified: 2004-10-04 15:04 UTC (History)
1 user (show)

See Also:
Host: powerpc-*-linux
Target: powerpc-*-linux
Build: powerpc-*-linux
Known to work:
Known to fail:
Last reconfirmed: 2004-07-05 21:29:28


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ludovic Brenta 2004-01-28 15:59:47 UTC
This bug is forwarded upstream from Debian GNU/Linux (bug #225346).  The
log for the Debian bug is available at http://bugs.debian.org/225346.

All Ada programs that use tasking don't work on ppc. They show the
following error:

failed run-time assertion : Tasking not implemented on this configuration

This seems to be a known problem and a patch exists, but this bug is
still not fixed in Debian (a bugreport didn't exist yet). Just look at:

http://lists.debian.org/debian-gcc/2003/debian-gcc-200309/msg00250.html
http://lists.debian.org/debian-gcc/2003/debian-gcc-200309/msg00251.html

Here is the patch from the above message:

--- Makefile.in.orig	2003-08-12 07:46:13.000000000 +0200
+++ Makefile.in	2003-09-25 11:49:08.000000000 +0200
@@ -700,6 +700,28 @@
   endif
 endif
 
+ifeq ($(strip $(filter-out %powerpc linux%,$(arch) $(osys))),)
+  LIBGNAT_TARGET_PAIRS = \
+  a-intnam.ads<4lintnam.ads \
+  s-inmaop.adb<7sinmaop.adb \
+  s-intman.adb<5lintman.adb \
+  s-osinte.adb<5iosinte.adb \
+  s-osinte.ads<5iosinte.ads \
+  s-osprim.adb<7sosprim.adb \
+  s-taprop.adb<5itaprop.adb \
+  s-taspri.ads<5itaspri.ads \
+  s-tpopsp.adb<5atpopsp.adb \
+  system.ads<52system.ads
+
+  TOOLS_TARGET_PAIRS = mlib-tgt.adb<5lml-tgt.adb
+  SYMLIB = -laddr2line -lbfd $(INTLLIBS)
+  THREADSLIB = -lpthread
+  GNATLIB_SHARED = gnatlib-shared-dual
+  GMEM_LIB = gmemlib
+  LIBRARY_VERSION := $(strip $(shell grep Library_Version $(fsrcpfx)gnatvsn.ads
| sed -e 's/.*GNAT Lib v\(.*\)[ "].*/\1/'))
+
+endif
+
 ifeq ($(strip $(filter-out mips sgi irix%,$(targ))),)
   ifeq ($(strip $(filter-out mips sgi irix6%,$(targ))),)
     LIBGNAT_TARGET_PAIRS = \
Comment 1 Andrew Pinski 2004-01-28 16:20:46 UTC
Confirmed for the mainline also.
Comment 2 Arnaud Charlet 2004-01-28 16:30:15 UTC
Filing as an enhancement, since this is indeed an unimplemented feature.

The patch is incomplete, since it references a non existing (52system.ads)
patch.

Arno
Comment 3 Ludovic Brenta 2004-01-29 15:43:53 UTC
Subject: Re:  gnat does not implement tasking on powerpc


Hi Arnaud.

52system.ads was in GCC 3.3.2 but removed later on (2003-10-21) from
HEAD.  It is still in the gcc-3_3-branch and in the weekly snapshots
for 3.3.x.

I suggest a fix in 3.3.3 and a merge into the main line, unless such a
merge is impossible.

Comment 4 charlet 2004-01-29 23:01:50 UTC
Subject: Re:  gnat does not implement tasking on powerpc

> 52system.ads was in GCC 3.3.2 but removed later on (2003-10-21) from
> HEAD.  It is still in the gcc-3_3-branch and in the weekly snapshots
> for 3.3.x.

This file was used for lynxos which now uses other files on the
HEAD, so it is improper to use it for powerpc linux as is.

Arno
Comment 5 Ludovic Brenta 2004-02-14 15:17:52 UTC
I would like to know what was the last version of GCC that did have tasking on
powerpc.  From the CVS sources, it seems to me that that was 3.2.3.  If this is
the case, then I suppose we can consider this a regression in 3.3, 3.4 and HEAD?

The patch fixes the regression in 3.3, but not in 3.4 or HEAD as Arno explained.
 Are there plans to apply it for 3.3.3?

Is ACT planning to provide this functionality in 3.4? In HEAD (3.5) ?

-- 
Ludovic Brenta.
Comment 6 Arnaud Charlet 2004-04-05 15:03:48 UTC
We do not have powerpc linux configurations, so that's not something
we can test nor work on.

Feel free to sumit a patch to enable tasking on this configuration.

Arno
Comment 7 GCC Commits 2004-10-04 15:01:57 UTC
Subject: Bug 13897

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	charlet@gcc.gnu.org	2004-10-04 15:01:52

Modified files:
	gcc/ada        : Makefile.in ChangeLog 
Added files:
	gcc/ada        : i-vxwork-x86.ads system-linux-ppc.ads 

Log message:
	2004-10-04  Bernard Banner  <banner@gnat.com>
	
	PR ada/13897
	
	* Makefile.in: Add section for powerpc linux
	Add variant i-vxwork-x86.ads
	
	* i-vxwork-x86.ads, system-linux-ppc.ads: New files.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/i-vxwork-x86.ads.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/system-linux-ppc.ads.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/Makefile.in.diff?cvsroot=gcc&r1=1.95&r2=1.96
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/ChangeLog.diff?cvsroot=gcc&r1=1.592&r2=1.593

Comment 8 Arnaud Charlet 2004-10-04 15:04:29 UTC
Implemented on mainline.