From 2bb767155a3f1831a5a9170a6cc47fec23219ee1 Mon Sep 17 00:00:00 2001 From: Jose Ruiz Date: Wed, 20 Aug 2008 18:12:17 +0200 Subject: [PATCH] errno.c (__get_errno, [...]): Transform then into weak symbols so we use the version provided by MaRTE when... 2008-08-20 Jose Ruiz * 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 --- gcc/ada/errno.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/gcc/ada/errno.c b/gcc/ada/errno.c index 1f3497dad9e..811cbdbbf8d 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 int @@ -68,5 +65,3 @@ __set_errno(int err) { errno = err; } - -#endif -- 2.30.2