mirror of
https://github.com/apache/nuttx.git
synced 2026-06-07 01:05:54 +08:00
function pointers in modules must have global scope
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1960 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
@@ -54,7 +54,12 @@ static unsigned long nerrors[2] = {0, 0};
|
||||
* Private Functions
|
||||
****************************************************************************/
|
||||
|
||||
static void thread_func(void *parameter)
|
||||
/* NOTE: it is necessary for functions that are referred to by function pointers
|
||||
* pointer to be declared with global scope (at least for ARM). Otherwise,
|
||||
* a relocation type that is not supported by NXFLAT is generated by GCC.
|
||||
*/
|
||||
|
||||
void thread_func(void *parameter)
|
||||
{
|
||||
int my_id = (int)parameter;
|
||||
int my_ndx = my_id - 1;
|
||||
|
||||
@@ -75,7 +75,12 @@ enum exit_values_e
|
||||
* Private Functions
|
||||
****************************************************************************/
|
||||
|
||||
static void *child_start_routine(void *arg)
|
||||
/* NOTE: it is necessary for functions that are referred to by function pointers
|
||||
* pointer to be declared with global scope (at least for ARM). Otherwise,
|
||||
* a relocation type that is not supported by NXFLAT is generated by GCC.
|
||||
*/
|
||||
|
||||
void *child_start_routine(void *arg)
|
||||
{
|
||||
printf("CHILD: started with arg=%d\n", (int)arg);
|
||||
|
||||
|
||||
@@ -69,7 +69,12 @@ static int sigusr2_rcvd = 0;
|
||||
* Name: sigusr1_sighandler
|
||||
****************************************************************************/
|
||||
|
||||
static void sigusr1_sighandler(int signo)
|
||||
/* NOTE: it is necessary for functions that are referred to by function pointers
|
||||
* pointer to be declared with global scope (at least for ARM). Otherwise,
|
||||
* a relocation type that is not supported by NXFLAT is generated by GCC.
|
||||
*/
|
||||
|
||||
void sigusr1_sighandler(int signo)
|
||||
{
|
||||
printf("sigusr1_sighandler: Received SIGUSR1, signo=%d\n", signo);
|
||||
sigusr1_rcvd = 1;
|
||||
@@ -79,8 +84,13 @@ static void sigusr1_sighandler(int signo)
|
||||
* Name: sigusr2_sigaction
|
||||
***************************************************************************/
|
||||
|
||||
/* NOTE: it is necessary for functions that are referred to by function pointers
|
||||
* pointer to be declared with global scope (at least for ARM). Otherwise,
|
||||
* a relocation type that is not supported by NXFLAT is generated by GCC.
|
||||
*/
|
||||
|
||||
#ifdef __USE_POSIX199309
|
||||
static void sigusr2_sigaction(int signo, siginfo_t *siginfo, void *arg)
|
||||
void sigusr2_sigaction(int signo, siginfo_t *siginfo, void *arg)
|
||||
{
|
||||
printf("sigusr2_sigaction: Received SIGUSR2, signo=%d siginfo=%p arg=%p\n",
|
||||
signo, siginfo, arg);
|
||||
@@ -107,7 +117,7 @@ static void sigusr2_sigaction(int signo, siginfo_t *siginfo, void *arg)
|
||||
sigusr2_rcvd = 1;
|
||||
}
|
||||
#else
|
||||
static void sigusr2_sigaction(int signo)
|
||||
void sigusr2_sigaction(int signo)
|
||||
{
|
||||
printf("sigusr2_sigaction: Received SIGUSR2, signo=%d\n", signo);
|
||||
sigusr2_rcvd = 1;
|
||||
|
||||
@@ -58,7 +58,12 @@ static sem_t g_sem;
|
||||
* Privite Functions
|
||||
****************************************************************************/
|
||||
|
||||
int child_task(int argc, char **argv)
|
||||
/* NOTE: it is necessary for functions that are referred to by function pointers
|
||||
* pointer to be declared with global scope (at least for ARM). Otherwise,
|
||||
* a relocation type that is not supported by NXFLAT is generated by GCC.
|
||||
*/
|
||||
|
||||
int child_task(int argc, char **argv)
|
||||
{
|
||||
printf("Child: execv was successful!\n");
|
||||
printf("Child: argc=%d\n", argc);
|
||||
|
||||
Reference in New Issue
Block a user