summaryrefslogtreecommitdiffstats
path: root/c/src/exec/score/cpu/unix
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/exec/score/cpu/unix')
-rw-r--r--c/src/exec/score/cpu/unix/Makefile.in90
-rw-r--r--c/src/exec/score/cpu/unix/cpu.c4
-rw-r--r--c/src/exec/score/cpu/unix/cpu.h6
-rw-r--r--c/src/exec/score/cpu/unix/unix.h4
4 files changed, 99 insertions, 5 deletions
diff --git a/c/src/exec/score/cpu/unix/Makefile.in b/c/src/exec/score/cpu/unix/Makefile.in
new file mode 100644
index 0000000000..371c246d50
--- /dev/null
+++ b/c/src/exec/score/cpu/unix/Makefile.in
@@ -0,0 +1,90 @@
+#
+# $Id$
+#
+
+@SET_MAKE@
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH=@srcdir@
+
+RELS=$(ARCH)/rtems-cpu.rel
+
+# C source names, if any, go here -- minus the .c
+C_PIECES=cpu
+C_FILES=$(C_PIECES:%=%.c)
+C_O_FILES=$(C_PIECES:%=${ARCH}/%.o)
+
+H_FILES=$(srcdir)/cpu.h $(srcdir)/unixtypes.h
+
+# Assembly source names, if any, go here -- minus the .S
+S_PIECES=
+S_FILES=$(S_PIECES:%=%.S)
+S_O_FILES=$(S_FILES:%.S=${ARCH}/%.o)
+
+SRCS=$(C_FILES) $(CC_FILES) $(H_FILES) $(S_FILES)
+OBJS=$(C_O_FILES) $(CC_O_FILES) $(S_O_FILES)
+
+include $(RTEMS_CUSTOM)
+include $(PROJECT_ROOT)/make/leaf.cfg
+
+#
+# (OPTIONAL) Add local stuff here using +=
+#
+
+DEFINES +=
+CPPFLAGS +=
+CFLAGS += $(CFLAGS_OS_V)
+
+LD_PATHS +=
+LD_LIBS +=
+LDFLAGS +=
+
+#
+# Add your list of files to delete here. The config files
+# already know how to delete some stuff, so you may want
+# to just run 'make clean' first to see what gets missed.
+# 'make clobber' already includes 'make clean'
+#
+
+CLEAN_ADDITIONS +=
+CLOBBER_ADDITIONS +=
+
+$(ARCH)/unixsize.h: $(ARCH) cpu.h $(PROJECT_RELEASE)/bin/gensize
+ $(RM) $@
+ $(PROJECT_RELEASE)/bin/gensize > $@
+ $(CHMOD) -w $@
+
+$(ARCH)/rtems-cpu.rel: $(OBJS)
+ $(make-rel)
+
+all: ${ARCH} $(SRCS) $(ARCH)/unixsize.h preinstall $(RELS)
+
+# Install the program(s), appending _g or _p as appropriate.
+# for include files, just use $(INSTALL)
+install: all
+
+# Real ports using the gnu tools will need to have bsp_specs!!!
+# ${PROJECT_RELEASE}/lib/bsp_specs
+preinstall: ${PROJECT_RELEASE}/include/rtems/score/unix.h $(ARCH)/unixsize.h \
+ ${PROJECT_RELEASE}/include/rtems/score/targopts.h
+ $(INSTALL) -m 444 ${H_FILES} ${PROJECT_RELEASE}/include/rtems/score
+ $(INSTALL) -m 444 ${ARCH}/unixsize.h ${PROJECT_RELEASE}/include/rtems/score
+
+${PROJECT_RELEASE}/include/rtems/score/unix.h: unix.h
+ $(SED) -e 's?REPLACE_THIS_WITH_THE_CPU_MODEL?$(RTEMS_CPU_MODEL)?' \
+ -e 's?REPLACE_THIS_WITH_THE_BSP?$(RTEMS_BSP)?' \
+ -e 's?REPLACE_THIS_WITH_THE_CPU_FAMILY?$(RTEMS_CPU_FAMILY)?' \
+ -e 's?REPLACE_THIS_WITH_THE_UNIX_FLAVOR?$(RTEMS_UNIX_FLAVOR)?' \
+ <$(srcdir)/unix.h >$(ARCH)/unix.h.tmp
+ $(INSTALL) -m 444 $(ARCH)/unix.h.tmp $@
+
+${PROJECT_RELEASE}/include/rtems/score/targopts.h: $(ARCH)/targopts.h-tmp
+ $(INSTALL) -m 444 $(ARCH)/targopts.h-tmp $@
+
+# $(ARCH)/targopts.h-tmp rule is in leaf.cfg
+
+# Real ports using the gnu tools will need to have bsp_specs!!!
+#${PROJECT_RELEASE}/lib/bsp_specs: $(ARCH)/bsp_specs.tmp
+# $(INSTALL) -m 444 $(ARCH)/bsp_specs.tmp $@
+#
+# $(ARCH)/bsp_specs.tmp rule is in leaf.cfg
diff --git a/c/src/exec/score/cpu/unix/cpu.c b/c/src/exec/score/cpu/unix/cpu.c
index 8b9c3154fb..7a52c1b78b 100644
--- a/c/src/exec/score/cpu/unix/cpu.c
+++ b/c/src/exec/score/cpu/unix/cpu.c
@@ -447,7 +447,7 @@ void _CPU_Context_Initialize(
*(addr + SP_OFF) = (unsigned32)(_stack_high - CPU_FRAME_SIZE);
*(addr + FP_OFF) = (unsigned32)(_stack_high);
-#elif defined(i386)
+#elif defined(i386) || defined(__i386__)
/*
* This information was gathered by disassembling setjmp().
@@ -817,7 +817,7 @@ void _CPU_SHM_Init(
char *shm_addr;
key_t shm_key;
key_t sem_key;
- int status = 0;
+ int status;
int shm_size;
if (getenv("RTEMS_SHM_KEY"))
diff --git a/c/src/exec/score/cpu/unix/cpu.h b/c/src/exec/score/cpu/unix/cpu.h
index 2e69d4af2e..9565bbca63 100644
--- a/c/src/exec/score/cpu/unix/cpu.h
+++ b/c/src/exec/score/cpu/unix/cpu.h
@@ -251,7 +251,7 @@ extern "C" {
#if defined(hppa1_1)
#define CPU_STACK_GROWS_UP TRUE
-#elif defined(sparc) || defined(i386)
+#elif defined(sparc) || defined(i386) || defined(__i386__)
#define CPU_STACK_GROWS_UP FALSE
#else
#error "unknown CPU!!"
@@ -353,7 +353,7 @@ extern "C" {
#endif
#endif
-#if defined(i386)
+#if defined(i386) || defined(__i386__)
#ifdef RTEMS_NEWLIB
#error "Newlib not installed"
@@ -544,7 +544,7 @@ SCORE_EXTERN void (*_CPU_Thread_dispatch_pointer)();
#define CPU_FRAME_SIZE (32 * 4)
#elif defined(sparc)
#define CPU_FRAME_SIZE (112) /* based on disassembled test code */
-#elif defined(i386)
+#elif defined(i386) || defined(__i386__)
#define CPU_FRAME_SIZE (24) /* return address, sp, and bp pushed plus fudge */
#else
#error "Unknown CPU!!!"
diff --git a/c/src/exec/score/cpu/unix/unix.h b/c/src/exec/score/cpu/unix/unix.h
index 318c21ca5e..5e0e346a18 100644
--- a/c/src/exec/score/cpu/unix/unix.h
+++ b/c/src/exec/score/cpu/unix/unix.h
@@ -38,6 +38,10 @@ extern "C" {
#define CPU_MODEL_NAME "Solaris"
+#elif defined(__linux__)
+
+#define CPU_MODEL_NAME "Linux"
+
#elif defined(linux)
#define CPU_MODEL_NAME "Linux"