This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/14537] sparc-rtems predefines unix
- From: "joel at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 11 Mar 2004 20:24:14 -0000
- Subject: [Bug target/14537] sparc-rtems predefines unix
- References: <20040311194251.14537.joel@gcc.gnu.org>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From joel at gcc dot gnu dot org 2004-03-11 20:24 -------
Based upon a review of config.gcc, I believe sparc-elf, sparc64-elf and
sparclite-elf have the same problem since they include the solaris specific
config/sparc files.
The embedded sparc targets could probably be modified in a similar way and
longer term all share some common underlying file(s).
This has been a lurking issue but not a critical one. We added a stub for
mprotect() to RTEMS a long time ago to workaround this the first time.
But now the gnat run-time checks for defined(unix) and decides
it is on a unix box instead of an embedded sparc. This results
in real breakage.
Given the complexity of the conditionals in some of the Ada run-time code, I
wouldn't be surprised if they have discovered other cpp predefine
inconsistencies and are covering them up. Look at gcc/ada/init.c and
gcc/ada/sysdep.c have some pretty complicated conditionals. I have to
wonder if some vxworks target doesn't have this problem based upon this
code from ctrl_c.c:
#if (defined (_AIX) || defined (unix)) && !defined (__vxworks)
which I read as meaning there is some VxWorks target with unix defined.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14537