aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJose Ruiz <ruiz@adacore.com>2008-08-20 18:12:17 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2008-08-20 18:12:17 +0200
commit2bb767155a3f1831a5a9170a6cc47fec23219ee1 (patch)
tree4bc8e13b248bd8fe9e1a6b6e31e87bc0233064ca /gcc
parent2dd8670af1e1863acff088dca4c888e33b16ba16 (diff)
downloadgcc-2bb767155a3f1831a5a9170a6cc47fec23219ee1.zip
gcc-2bb767155a3f1831a5a9170a6cc47fec23219ee1.tar.gz
gcc-2bb767155a3f1831a5a9170a6cc47fec23219ee1.tar.bz2
errno.c (__get_errno, [...]): Transform then into weak symbols so we use the version provided by MaRTE when...
2008-08-20 Jose Ruiz <ruiz@adacore.com> * errno.c (__get_errno, __set_errno for MaRTE): Transform then into weak symbols so we use the version provided by MaRTE when available. From-SVN: r139332
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/errno.c19
1 files changed, 7 insertions, 12 deletions
diff --git a/gcc/ada/errno.c b/gcc/ada/errno.c
index 1f3497d..811cbdb 100644
--- a/gcc/ada/errno.c
+++ b/gcc/ada/errno.c
@@ -43,18 +43,15 @@
#ifdef MaRTE
-/* Function that returns a pointer to the per-task errno variable */
-extern int *pthread_errno (void);
+/* MaRTE OS provides its own implementation of errno related functionality. We
+ want to ensure the use of the MaRTE version for tasking programs (the MaRTE
+ library will not be linked if no tasking constructs are used), so we use the
+ weak symbols mechanism to use the MaRTE version whenever is available. */
-int
-__get_errno (void)
-{
- return *pthread_errno ();
-}
-
-/* Function __set_errno is already defined in package MaRTE.POSIX_Pthread */
+#pragma weak __get_errno
+#pragma weak __set_errno
-#else
+#endif
#include <errno.h>
int
@@ -68,5 +65,3 @@ __set_errno(int err)
{
errno = err;
}
-
-#endif