forked from Imagelibrary/rtems
Added main() which did not require C++ support. A different main
is used based on whether C++ is enabled or disabled.
This commit is contained in:
@@ -12,11 +12,11 @@ PGM=${ARCH}/startup.rel
|
|||||||
NO_CTOR_LIB=${ARCH}/libno-ctor.a
|
NO_CTOR_LIB=${ARCH}/libno-ctor.a
|
||||||
|
|
||||||
# C source names, if any, go here -- minus the .c
|
# C source names, if any, go here -- minus the .c
|
||||||
C_PIECES=bspclean bsplibc bspstart setvec
|
C_PIECES=bspclean bsplibc bspstart setvec $(C_MAIN)
|
||||||
C_FILES=$(C_PIECES:%=%.c)
|
C_FILES=$(C_PIECES:%=%.c)
|
||||||
C_O_FILES=$(C_PIECES:%=${ARCH}/%.o)
|
C_O_FILES=$(C_PIECES:%=${ARCH}/%.o)
|
||||||
|
|
||||||
CC_PIECES=rtems-ctor
|
CC_PIECES=$(CXX_MAIN)
|
||||||
CC_FILES=$(CC_PIECES:%=%.cc)
|
CC_FILES=$(CC_PIECES:%=%.cc)
|
||||||
CC_O_FILES=$(CC_PIECES:%=${ARCH}/%.o)
|
CC_O_FILES=$(CC_PIECES:%=${ARCH}/%.o)
|
||||||
|
|
||||||
@@ -32,6 +32,16 @@ INSTALLED_O_FILES=$(ARCH)/rtems-ctor.o
|
|||||||
include $(RTEMS_ROOT)/make/custom/$(RTEMS_BSP).cfg
|
include $(RTEMS_ROOT)/make/custom/$(RTEMS_BSP).cfg
|
||||||
include $(RTEMS_ROOT)/make/leaf.cfg
|
include $(RTEMS_ROOT)/make/leaf.cfg
|
||||||
|
|
||||||
|
ifeq ($(RTEMS_HAS_CPLUSPLUS),yes)
|
||||||
|
NO_CTOR_LIB=${ARCH}/libno-ctor.a
|
||||||
|
INSTALLED_O_FILES=$(ARCH)/rtems-ctor.o
|
||||||
|
CXX_MAIN=rtems-ctor
|
||||||
|
C_MAIN=
|
||||||
|
else
|
||||||
|
CXX_MAIN=
|
||||||
|
C_MAIN=main
|
||||||
|
endif
|
||||||
|
|
||||||
#
|
#
|
||||||
# (OPTIONAL) Add local stuff here using +=
|
# (OPTIONAL) Add local stuff here using +=
|
||||||
#
|
#
|
||||||
|
|||||||
54
c/src/lib/libbsp/unix/posix/startup/main.c
Normal file
54
c/src/lib/libbsp/unix/posix/startup/main.c
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
/*
|
||||||
|
* Description:
|
||||||
|
* This file exists solely to (try to) ensure RTEMS is initialized.
|
||||||
|
* It is not to be used in systems which want C++ support.
|
||||||
|
*
|
||||||
|
* $Id$
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <bsp.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* RTEMS program name
|
||||||
|
* Probably not used by anyone, but it is nice to have it.
|
||||||
|
* Actually the UNIX version of CPU_INVOKE_DEBUGGER will probably
|
||||||
|
* need to use it
|
||||||
|
*/
|
||||||
|
|
||||||
|
char *rtems_progname;
|
||||||
|
|
||||||
|
int main(
|
||||||
|
int argc,
|
||||||
|
char **argv
|
||||||
|
)
|
||||||
|
{
|
||||||
|
rtems_argc = argc;
|
||||||
|
rtems_argv = argv;
|
||||||
|
|
||||||
|
bsp_start();
|
||||||
|
|
||||||
|
if ((argc > 0) && argv && argv[0])
|
||||||
|
rtems_progname = argv[0];
|
||||||
|
else
|
||||||
|
rtems_progname = "RTEMS";
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Start multitasking
|
||||||
|
*/
|
||||||
|
|
||||||
|
rtems_initialize_executive_late( bsp_isr_level );
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Returns when multitasking is stopped
|
||||||
|
* This allows our destructors to get run normally
|
||||||
|
*/
|
||||||
|
|
||||||
|
fflush( stdout );
|
||||||
|
fflush( stderr );
|
||||||
|
|
||||||
|
bsp_cleanup();
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user