summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/shared/main.c
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1999-01-05 17:50:03 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1999-01-05 17:50:03 +0000
commit97503aa5e3ada1e04d60bf906eb438465cadc521 (patch)
treee636362daa009cafbe307b1eb4a9a4145d8b57b7 /c/src/lib/libbsp/shared/main.c
parentPatch from D. V. Henkel-Wallace <gumby@zembu.com> to use puts and have protot... (diff)
downloadrtems-97503aa5e3ada1e04d60bf906eb438465cadc521.tar.bz2
Patch from Chris Johns <ccj@acm.org> to get around a C++ problem with psim.
This problem should and likely was occurring with other BSPs. This is from Chris' email: I had a look in the psim bsp for the older snapshot I have and it looks like you are using the `libbsp/shared/main.c' and this is known to work. I have just built the powerpc tools, and compiled the bsp. I have not added the linker command file patch so got the list of linker warnings. It looks to me like a compiler bug. The `main' call is being inlined and when that happens the special code to call `__eabi' is not being added to the inlined version. I have attached a patch which places `main' after `boot_card' and a call to main is now generated. I have not tested it but it should work. I also include a dump of `boot_card' and `main' showing the bug.
Diffstat (limited to 'c/src/lib/libbsp/shared/main.c')
-rw-r--r--c/src/lib/libbsp/shared/main.c26
1 files changed, 13 insertions, 13 deletions
diff --git a/c/src/lib/libbsp/shared/main.c b/c/src/lib/libbsp/shared/main.c
index 5a49524cba..f413a0628b 100644
--- a/c/src/lib/libbsp/shared/main.c
+++ b/c/src/lib/libbsp/shared/main.c
@@ -30,19 +30,6 @@ extern rtems_cpu_table Cpu_table;
rtems_interrupt_level bsp_isr_level;
-int main(int argc, char **argv)
-{
-
- if ((argc > 0) && argv && argv[0])
- rtems_progname = argv[0];
- else
- rtems_progname = "RTEMS";
-
- rtems_initialize_executive_late( bsp_isr_level );
-
- return 0;
-}
-
int boot_card(int argc, char **argv)
{
int status;
@@ -104,3 +91,16 @@ int boot_card(int argc, char **argv)
return status;
}
+int main(int argc, char **argv)
+{
+
+ if ((argc > 0) && argv && argv[0])
+ rtems_progname = argv[0];
+ else
+ rtems_progname = "RTEMS";
+
+ rtems_initialize_executive_late( bsp_isr_level );
+
+ return 0;
+}
+