forked from Imagelibrary/rtems
config: Fix CONFIGURE_DISABLE_NEWLIB_REENTRANCY
Move the __getreent() variant using the global reentrancy structure to librtemscpu.a. This avoids a definition of __getreent() in the configuration module if CONFIGURE_DISABLE_NEWLIB_REENTRANCY is defined. This avoids all the dependencies which would be exposed by a reference to the global reentrancy structure. This change is only possible since the default configuration moved to librtemsdefaultconfig.a recently.
This commit is contained in:
@@ -151,6 +151,7 @@ librtemscpu_a_SOURCES += libcsupport/src/__getpid.c
|
||||
librtemscpu_a_SOURCES += libcsupport/src/getpid.c
|
||||
librtemscpu_a_SOURCES += libcsupport/src/getppid.c
|
||||
librtemscpu_a_SOURCES += libcsupport/src/getpwent.c
|
||||
librtemscpu_a_SOURCES += libcsupport/src/getreentglobal.c
|
||||
librtemscpu_a_SOURCES += libcsupport/src/getrusage.c
|
||||
librtemscpu_a_SOURCES += libcsupport/src/__gettod.c
|
||||
librtemscpu_a_SOURCES += libcsupport/src/getuid.c
|
||||
|
||||
@@ -2242,15 +2242,11 @@ extern rtems_initialization_tasks_table Initialization_tasks[];
|
||||
#define _CONFIGURE_NUMBER_OF_INITIAL_EXTENSIONS 0
|
||||
#endif
|
||||
|
||||
#if defined(RTEMS_NEWLIB)
|
||||
struct _reent *__getreent(void)
|
||||
{
|
||||
#ifdef CONFIGURE_DISABLE_NEWLIB_REENTRANCY
|
||||
return _GLOBAL_REENT;
|
||||
#else
|
||||
return _Thread_Get_executing()->libc_reent;
|
||||
#endif
|
||||
}
|
||||
#if defined(RTEMS_NEWLIB) && !defined(CONFIGURE_DISABLE_NEWLIB_REENTRANCY)
|
||||
struct _reent *__getreent(void)
|
||||
{
|
||||
return _Thread_Get_executing()->libc_reent;
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
26
cpukit/libcsupport/src/getreentglobal.c
Normal file
26
cpukit/libcsupport/src/getreentglobal.c
Normal file
@@ -0,0 +1,26 @@
|
||||
/*
|
||||
* Copyright (c) 2018 embedded brains GmbH. All rights reserved.
|
||||
*
|
||||
* embedded brains GmbH
|
||||
* Dornierstr. 4
|
||||
* 82178 Puchheim
|
||||
* Germany
|
||||
* <rtems@embedded-brains.de>
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*/
|
||||
|
||||
#if HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#if defined(RTEMS_NEWLIB)
|
||||
#include <sys/reent.h>
|
||||
|
||||
struct _reent *__getreent(void)
|
||||
{
|
||||
return _GLOBAL_REENT;
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user