mirror of
https://github.com/t-crest/rtems.git
synced 2025-11-16 12:34:47 +00:00
Adapted make-exe rules of testsuites to the patmos-clang compiler toolchain.
Improved startup code.
This commit is contained in:
2
.gitignore
vendored
Normal file → Executable file
2
.gitignore
vendored
Normal file → Executable file
@@ -7,3 +7,5 @@ config.sub
|
||||
install-sh
|
||||
Makefile.in
|
||||
missing
|
||||
.project
|
||||
patmos.sh
|
||||
|
||||
8
c/src/aclocal/prog-cc.m4
Normal file → Executable file
8
c/src/aclocal/prog-cc.m4
Normal file → Executable file
@@ -32,8 +32,8 @@ dnl check if the compiler supports --specs
|
||||
RTEMS_GCC_SPECS
|
||||
|
||||
AS_IF([test x"$rtems_cv_gcc_specs" = xyes],[
|
||||
AS_IF([ test "$CC" = patmos-unknown-rtems-clang --pipe], [
|
||||
GCCSPECS="-L\$(PROJECT_ROOT)/lib/ -L\$(PROJECT_ROOT)/$RTEMS_BSP/lib/"
|
||||
AS_IF([ test "$CC" = "patmos-unknown-rtems-clang --pipe"], [
|
||||
GCCSPECS="-L=\$(PROJECT_ROOT)/lib/ -L=\$(PROJECT_ROOT)/$RTEMS_BSP/lib/"
|
||||
], [GCCSPECS="-B\$(PROJECT_ROOT)/lib/ -B\$(PROJECT_ROOT)/$RTEMS_BSP/lib/"
|
||||
GCCSPECS="${GCCSPECS} -specs bsp_specs -qrtems"])])
|
||||
AC_SUBST(GCCSPECS)
|
||||
@@ -44,8 +44,8 @@ AS_IF([test x"$rtems_cv_gcc_isystem" = xyes],[
|
||||
])
|
||||
AC_SUBST(RTEMS_CPPFLAGS)
|
||||
|
||||
AS_IF([test "$GCC" = yes],[
|
||||
AS_IF([ test "$CC" = patmos-unknown-rtems-clang --pipe], [
|
||||
AS_IF([test "$GCC" = yes],[
|
||||
AS_IF([ test "$CC" = "patmos-unknown-rtems-clang --pipe"], [
|
||||
RTEMS_RELLDFLAGS="-fpatmos-link-object"
|
||||
], [RTEMS_RELLDFLAGS="-qnolinkcmds -nostdlib -Wl,-r"])])
|
||||
AC_SUBST(RTEMS_RELLDFLAGS)
|
||||
|
||||
@@ -32,8 +32,8 @@ libbsp_a_SOURCES =
|
||||
# startup
|
||||
libbsp_a_SOURCES += ../../shared/bspclean.c ../../shared/bsplibc.c \
|
||||
../../shared/bsppost.c ../../shared/bootcard.c startup/bspstart.c \
|
||||
../../patmos/shared/bsppretaskinghook.c ../../shared/bsppredriverhook.c \
|
||||
../../patmos/shared/bspgetworkarea.c ../../shared/sbrk.c
|
||||
../../shared/bsppretaskinghook.c ../../shared/bsppredriverhook.c \
|
||||
../../shared/bspgetworkarea.c ../../shared/sbrk.c
|
||||
# console
|
||||
libbsp_a_SOURCES += console/console.c
|
||||
# debugio
|
||||
@@ -41,8 +41,5 @@ libbsp_a_SOURCES += console/debugputs.c
|
||||
# clock
|
||||
libbsp_a_SOURCES += clock/ckinit.c ../../../shared/clockdrv_shell.h
|
||||
|
||||
# timer
|
||||
libbsp_a_SOURCES += timer/timer.c
|
||||
|
||||
include $(srcdir)/preinstall.am
|
||||
include $(top_srcdir)/../../../../automake/local.am
|
||||
|
||||
@@ -28,7 +28,7 @@ void console_outbyte_polled(
|
||||
unsigned char ch
|
||||
)
|
||||
{
|
||||
if (file == STDOUT_FILENO || file == STDERR_FILENO)
|
||||
if (port == STDOUT_FILENO || port == STDERR_FILENO)
|
||||
{
|
||||
int s;
|
||||
|
||||
|
||||
@@ -11,7 +11,9 @@ RTEMS_CPU_MODEL=pasim
|
||||
|
||||
# This contains the compiler options necessary to select the CPU model
|
||||
# and (hopefully) optimize for it.
|
||||
CPU_CFLAGS = -msoft-float -Xllc -trap-func=abort_trap
|
||||
CPU_CFLAGS = -msoft-float
|
||||
|
||||
# optimize flag: typically -O2
|
||||
CFLAGS_OPTIMIZE_V = -O2 -g
|
||||
CFLAGS_OPTIMIZE_V = -O2 -g -Xllc -trap-func=abort_trap
|
||||
|
||||
LD_LIBS += $(MANAGERS_NOT_WANTED:%=-lno_%$(LIB_VARIANT)) -l=c -l=rtemscpu -l=rtemsbsp $(PROJECT_RELEASE)/lib/start.o -nostartfiles -Xgold -Map -Xgold map.map -Xgold --script=$(PROJECT_RELEASE)/lib/linkcmds -Xgold -entry=hard_reset
|
||||
@@ -30,7 +30,7 @@ SYM(hard_reset):
|
||||
*/
|
||||
li %r29 = PASIM_SHADOW_STACK_BASE /* Initialize shadow stack pointer */
|
||||
li %r9 = PASIM_STACK_CACHE_BASE
|
||||
mts %s5 = %r9 /* Initialize the stack cache's spill bottom pointer */
|
||||
mts %s5 = %r9 /* Initialize the stack cache's top pointer */
|
||||
mts %s6 = %r9 /* Initialize the stack cache's spill top pointer */
|
||||
|
||||
/*
|
||||
@@ -46,7 +46,7 @@ SYM(hard_reset):
|
||||
li %r11 = _bss_start /* r11 = end of initialized data in RAM */
|
||||
|
||||
cmplt %p2 = %r10, %r11 /* Is the pointer past the end of dest? */
|
||||
(!%p2)br clear_bss
|
||||
(!$p2) br clear_bss
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
@@ -57,7 +57,7 @@ copy_data:
|
||||
add %r9 = %r9, 4 /* bump the source pointer */
|
||||
add %r10 = %r10, 4 /* bump the destination pointer */
|
||||
cmplt %p2 = %r10, %r11 /* Is the pointer past the end of dest? */
|
||||
(%p2)br copy_data
|
||||
($p2) br copy_data
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
@@ -67,7 +67,7 @@ clear_bss: /* clear the bss */
|
||||
li %r10 = _end /* r10 = end of bss */
|
||||
|
||||
cmple %p2 = %r9, %r10
|
||||
(!%p2)br call_boot
|
||||
(!$p2) br call_boot
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
@@ -76,7 +76,7 @@ zero_bss:
|
||||
swc [ %r9 + 0 ] = %r0 /* zero the bss */
|
||||
add %r9 = %r9, 4 /* bump the bss pointer */
|
||||
cmple %p2 = %r9, %r10
|
||||
(%p2)br zero_bss
|
||||
($p2) br zero_bss
|
||||
nop
|
||||
nop
|
||||
|
||||
@@ -85,7 +85,7 @@ zero_bss:
|
||||
*/
|
||||
|
||||
call_boot:
|
||||
li %r30 = hard_reset /* set function base */
|
||||
li %r30 = hard_reset /* set function return address */
|
||||
call SYM(boot_card) /* invoke boot_card function */
|
||||
li %r3 = 0 /* pass argument argc */
|
||||
li %r4 = 0 /* pass argument argv */
|
||||
|
||||
@@ -31,7 +31,7 @@ ASFLAGS = $(CPU_ASFLAGS) $(XASFLAGS)
|
||||
GCCSPECS_OPTIMIZE_V =
|
||||
GCCSPECS_DEBUG_V = -qrtems_debug
|
||||
|
||||
GCCSPECS = -I$(PROJECT_RELEASE)/lib/include –L=$(PROJECT_RELEASE)/lib/
|
||||
GCCSPECS = -I$(PROJECT_RELEASE)/lib/include -L=$(PROJECT_RELEASE)/lib/
|
||||
GCCSPECS += $(GCCSPECS_$(VARIANT_V)_V)
|
||||
|
||||
CC += $(GCCSPECS)
|
||||
|
||||
5
cpukit/aclocal/prog-cc.m4
Normal file → Executable file
5
cpukit/aclocal/prog-cc.m4
Normal file → Executable file
@@ -36,7 +36,8 @@ RTEMS_CPPFLAGS="-I\$(top_builddir) -I\$(PROJECT_INCLUDE)"
|
||||
AC_SUBST(RTEMS_CPPFLAGS)
|
||||
|
||||
AS_IF([test "$GCC" = yes],[
|
||||
RTEMS_RELLDFLAGS="-qnolinkcmds -nostdlib -r"
|
||||
])
|
||||
AS_IF([ test "$CC" = "patmos-unknown-rtems-clang --pipe"], [
|
||||
RTEMS_RELLDFLAGS="-fpatmos-link-object"
|
||||
], [RTEMS_RELLDFLAGS="-qnolinkcmds -nostdlib -Wl,-r"])])
|
||||
AC_SUBST(RTEMS_RELLDFLAGS)
|
||||
])
|
||||
|
||||
@@ -150,40 +150,39 @@ void _CPU_Context_switch(
|
||||
* save general-purpose registers (skip r0 which is always 0)
|
||||
* address of the previous task is passed as function argument in register r3
|
||||
*/
|
||||
asm volatile("and $r0 = $r0, 0x0 \n\t" //reset r0 to 0
|
||||
"sres %0 \n\t" /* reserve space in cache (1) reserve space for entire stack or just for current context? (2) if we reserve space, do we alter the address of the next context? */
|
||||
"swc [ $r3 + %1 ] = $r1 \n\t" //save r1
|
||||
"swc [ $r3 + %2 ] = $r2 \n\t" //save r2
|
||||
"swc [ $r3 + %3 ] = $r3 \n\t" //save r3
|
||||
"swc [ $r3 + %4 ] = $r4 \n\t" //save r4
|
||||
"swc [ $r3 + %5 ] = $r5 \n\t" //save r5
|
||||
"swc [ $r3 + %6 ] = $r6 \n\t" //save r6
|
||||
"swc [ $r3 + %7 ] = $r7 \n\t" //save r7
|
||||
"swc [ $r3 + %8 ] = $r8 \n\t" //save r8
|
||||
"swc [ $r3 + %9 ] = $r9 \n\t" //save r9
|
||||
"swc [ $r3 + %10 ] = $r10 \n\t" //save r10
|
||||
"swc [ $r3 + %11 ] = $r11 \n\t" //save r11
|
||||
"swc [ $r3 + %12 ] = $r12 \n\t" //save r12
|
||||
"swc [ $r3 + %13 ] = $r13 \n\t" //save r13
|
||||
"swc [ $r3 + %14 ] = $r14 \n\t" //save r14
|
||||
"swc [ $r3 + %15 ] = $r15 \n\t" //save r15
|
||||
"swc [ $r3 + %16 ] = $r16 \n\t" //save r16
|
||||
"swc [ $r3 + %17 ] = $r17 \n\t" //save r17
|
||||
"swc [ $r3 + %18 ] = $r18 \n\t" //save r18
|
||||
"swc [ $r3 + %19 ] = $r19 \n\t" //save r19
|
||||
"swc [ $r3 + %20 ] = $r20 \n\t" //save r20
|
||||
"swc [ $r3 + %21 ] = $r21 \n\t" //save r21
|
||||
"swc [ $r3 + %22 ] = $r22 \n\t" //save r22
|
||||
"swc [ $r3 + %23 ] = $r23 \n\t" //save r23
|
||||
"swc [ $r3 + %24 ] = $r24 \n\t" //save r24
|
||||
"swc [ $r3 + %25 ] = $r25 \n\t" //save r25
|
||||
"swc [ $r3 + %26 ] = $r26 \n\t" //save r26
|
||||
"swc [ $r3 + %27 ] = $r27 \n\t" //save r27
|
||||
"swc [ $r3 + %28 ] = $r28 \n\t" //save r28
|
||||
"swc [ $r3 + %29 ] = $r29 \n\t" //save r29
|
||||
"swc [ $r3 + %30 ] = $r30 \n\t" //save r30
|
||||
"swc [ $r3 + %31 ] = $r31 \n\t" //save r31
|
||||
: : "i" (CONTEXT_CONTROL_SIZE), "i" (r1_OFFSET),"i" (r2_OFFSET), "i" (r3_OFFSET),
|
||||
asm volatile("and $r0 = $r0, 0x0 \n\t" //reset r0 to 0
|
||||
"swc [ $r3 + %0 ] = $r1 \n\t" //save r1
|
||||
"swc [ $r3 + %1 ] = $r2 \n\t" //save r2
|
||||
"swc [ $r3 + %2 ] = $r3 \n\t" //save r3
|
||||
"swc [ $r3 + %3 ] = $r4 \n\t" //save r4
|
||||
"swc [ $r3 + %4 ] = $r5 \n\t" //save r5
|
||||
"swc [ $r3 + %5 ] = $r6 \n\t" //save r6
|
||||
"swc [ $r3 + %6 ] = $r7 \n\t" //save r7
|
||||
"swc [ $r3 + %7 ] = $r8 \n\t" //save r8
|
||||
"swc [ $r3 + %8 ] = $r9 \n\t" //save r9
|
||||
"swc [ $r3 + %9 ] = $r10 \n\t" //save r10
|
||||
"swc [ $r3 + %10 ] = $r11 \n\t" //save r11
|
||||
"swc [ $r3 + %11 ] = $r12 \n\t" //save r12
|
||||
"swc [ $r3 + %12 ] = $r13 \n\t" //save r13
|
||||
"swc [ $r3 + %13 ] = $r14 \n\t" //save r14
|
||||
"swc [ $r3 + %14 ] = $r15 \n\t" //save r15
|
||||
"swc [ $r3 + %15 ] = $r16 \n\t" //save r16
|
||||
"swc [ $r3 + %16 ] = $r17 \n\t" //save r17
|
||||
"swc [ $r3 + %17 ] = $r18 \n\t" //save r18
|
||||
"swc [ $r3 + %18 ] = $r19 \n\t" //save r19
|
||||
"swc [ $r3 + %19 ] = $r20 \n\t" //save r20
|
||||
"swc [ $r3 + %20 ] = $r21 \n\t" //save r21
|
||||
"swc [ $r3 + %21 ] = $r22 \n\t" //save r22
|
||||
"swc [ $r3 + %22 ] = $r23 \n\t" //save r23
|
||||
"swc [ $r3 + %23 ] = $r24 \n\t" //save r24
|
||||
"swc [ $r3 + %24 ] = $r25 \n\t" //save r25
|
||||
"swc [ $r3 + %25 ] = $r26 \n\t" //save r26
|
||||
"swc [ $r3 + %26 ] = $r27 \n\t" //save r27
|
||||
"swc [ $r3 + %27 ] = $r28 \n\t" //save r28
|
||||
"swc [ $r3 + %28 ] = $r29 \n\t" //save r29
|
||||
"swc [ $r3 + %29 ] = $r30 \n\t" //save r30
|
||||
"swc [ $r3 + %30 ] = $r31 \n\t" //save r31
|
||||
: : "i" (r1_OFFSET),"i" (r2_OFFSET), "i" (r3_OFFSET),
|
||||
"i" (r4_OFFSET), "i" (r5_OFFSET), "i" (r6_OFFSET), "i" (r7_OFFSET), "i" (r8_OFFSET),
|
||||
"i" (r9_OFFSET), "i" (r10_OFFSET), "i" (r11_OFFSET), "i" (r12_OFFSET), "i" (r13_OFFSET),
|
||||
"i" (r14_OFFSET), "i" (r15_OFFSET), "i" (r16_OFFSET), "i" (r17_OFFSET), "i" (r18_OFFSET),
|
||||
@@ -232,41 +231,48 @@ void _CPU_Context_switch(
|
||||
"i" (s8_OFFSET), "i" (s9_OFFSET), "i" (s10_OFFSET),"i" (s11_OFFSET),
|
||||
"i" (s12_OFFSET), "i" (s13_OFFSET), "i" (s14_OFFSET), "i" (s15_OFFSET));
|
||||
|
||||
/*
|
||||
* Spill everything from the stack cache (clear stack cache)
|
||||
* Copy the current stack to memory
|
||||
*/
|
||||
asm volatile("sres %0 \n\t" //reserve space in cache
|
||||
"sfree %0 \n\t" //free space in cache
|
||||
: : "i" (MAX_STACK_CACHE_SIZE));
|
||||
|
||||
/*
|
||||
* load general-purpose registers (skip r0 which is always 0)
|
||||
* address of the current task is passed as function argument in register r4
|
||||
* r4 is the last register to be loaded so that the memory address of the current task is not lost
|
||||
* r1, r2 and r3 will be used as auxiliary registers, so they are not loaded yet
|
||||
*/
|
||||
asm volatile("lwc $r2 = [ $r4 + %0 ] \n\t" //load r2
|
||||
"lwc $r3 = [ $r4 + %1 ] \n\t" //load r3
|
||||
"lwc $r5 = [ $r4 + %2 ] \n\t" //load r5
|
||||
"lwc $r6 = [ $r4 + %3 ] \n\t" //load r6
|
||||
"lwc $r7 = [ $r4 + %4 ] \n\t" //load r7
|
||||
"lwc $r8 = [ $r4 + %5 ] \n\t" //load r8
|
||||
"lwc $r9 = [ $r4 + %6 ] \n\t" //load r9
|
||||
"lwc $r10 = [ $r4 + %7 ] \n\t" //load r10
|
||||
"lwc $r11 = [ $r4 + %8 ] \n\t" //load r11
|
||||
"lwc $r12 = [ $r4 + %9 ] \n\t" //load r12
|
||||
"lwc $r13 = [ $r4 + %10 ] \n\t" //load r13
|
||||
"lwc $r14 = [ $r4 + %11 ] \n\t" //load r14
|
||||
"lwc $r15 = [ $r4 + %12 ] \n\t" //load r15
|
||||
"lwc $r16 = [ $r4 + %13 ] \n\t" //load r16
|
||||
"lwc $r17 = [ $r4 + %14 ] \n\t" //load r17
|
||||
"lwc $r18 = [ $r4 + %15 ] \n\t" //load r18
|
||||
"lwc $r19 = [ $r4 + %16 ] \n\t" //load r19
|
||||
"lwc $r20 = [ $r4 + %17 ] \n\t" //load r20
|
||||
"lwc $r21 = [ $r4 + %18 ] \n\t" //load r21
|
||||
"lwc $r22 = [ $r4 + %19 ] \n\t" //load r22
|
||||
"lwc $r23 = [ $r4 + %20 ] \n\t" //load r23
|
||||
"lwc $r24 = [ $r4 + %21 ] \n\t" //load r24
|
||||
"lwc $r25 = [ $r4 + %22 ] \n\t" //load r25
|
||||
"lwc $r26 = [ $r4 + %23 ] \n\t" //load r26
|
||||
"lwc $r27 = [ $r4 + %24 ] \n\t" //load r27
|
||||
"lwc $r28 = [ $r4 + %25 ] \n\t" //load r28
|
||||
"lwc $r29 = [ $r4 + %26 ] \n\t" //load r29
|
||||
"lwc $r30 = [ $r4 + %27 ] \n\t" //load r30
|
||||
"lwc $r31 = [ $r4 + %28 ] \n\t" //load r31
|
||||
: : "i" (r2_OFFSET), "i" (r3_OFFSET), "i" (r5_OFFSET), "i" (r6_OFFSET), "i" (r7_OFFSET),
|
||||
asm volatile("lwc $r5 = [ $r4 + %0 ] \n\t" //load r5
|
||||
"lwc $r6 = [ $r4 + %1 ] \n\t" //load r6
|
||||
"lwc $r7 = [ $r4 + %2 ] \n\t" //load r7
|
||||
"lwc $r8 = [ $r4 + %3 ] \n\t" //load r8
|
||||
"lwc $r9 = [ $r4 + %4 ] \n\t" //load r9
|
||||
"lwc $r10 = [ $r4 + %5 ] \n\t" //load r10
|
||||
"lwc $r11 = [ $r4 + %6 ] \n\t" //load r11
|
||||
"lwc $r12 = [ $r4 + %7 ] \n\t" //load r12
|
||||
"lwc $r13 = [ $r4 + %8 ] \n\t" //load r13
|
||||
"lwc $r14 = [ $r4 + %9 ] \n\t" //load r14
|
||||
"lwc $r15 = [ $r4 + %10 ] \n\t" //load r15
|
||||
"lwc $r16 = [ $r4 + %11 ] \n\t" //load r16
|
||||
"lwc $r17 = [ $r4 + %12 ] \n\t" //load r17
|
||||
"lwc $r18 = [ $r4 + %13 ] \n\t" //load r18
|
||||
"lwc $r19 = [ $r4 + %14 ] \n\t" //load r19
|
||||
"lwc $r20 = [ $r4 + %15 ] \n\t" //load r20
|
||||
"lwc $r21 = [ $r4 + %16 ] \n\t" //load r21
|
||||
"lwc $r22 = [ $r4 + %17 ] \n\t" //load r22
|
||||
"lwc $r23 = [ $r4 + %18 ] \n\t" //load r23
|
||||
"lwc $r24 = [ $r4 + %19 ] \n\t" //load r24
|
||||
"lwc $r25 = [ $r4 + %20 ] \n\t" //load r25
|
||||
"lwc $r26 = [ $r4 + %21 ] \n\t" //load r26
|
||||
"lwc $r27 = [ $r4 + %22 ] \n\t" //load r27
|
||||
"lwc $r28 = [ $r4 + %23 ] \n\t" //load r28
|
||||
"lwc $r29 = [ $r4 + %24 ] \n\t" //load r29
|
||||
"lwc $r30 = [ $r4 + %25 ] \n\t" //load r30
|
||||
"lwc $r31 = [ $r4 + %26 ] \n\t" //load r31
|
||||
: : "i" (r5_OFFSET), "i" (r6_OFFSET), "i" (r7_OFFSET),
|
||||
"i" (r8_OFFSET), "i" (r9_OFFSET), "i" (r10_OFFSET), "i" (r11_OFFSET), "i" (r12_OFFSET),
|
||||
"i" (r13_OFFSET), "i" (r14_OFFSET), "i" (r15_OFFSET), "i" (r16_OFFSET), "i" (r17_OFFSET),
|
||||
"i" (r18_OFFSET), "i" (r19_OFFSET), "i" (r20_OFFSET), "i" (r21_OFFSET), "i" (r22_OFFSET),
|
||||
@@ -308,14 +314,28 @@ void _CPU_Context_switch(
|
||||
"lwc $r1 = [ $r4 + %14 ] \n\t" //load s14
|
||||
"mts $s14 = $r1 \n\t" //move r1 to s14
|
||||
"lwc $r1 = [ $r4 + %15 ] \n\t" //load s15
|
||||
"mts $s15 = $r1 \n\t" //move r1 to s15
|
||||
"lwc $r1 = [ $r4 + %16 ] \n\t" //load r1
|
||||
"lwc $r4 = [ $r4 + %17] \n\t" //load r4
|
||||
"sfree %18 \n\t" //free space in cache
|
||||
"mts $s15 = $r1 \n\t" //move r1 to s15
|
||||
: : "i" (s0_OFFSET), "i" (s1_OFFSET), "i" (s2_OFFSET), "i" (s3_OFFSET), "i" (s4_OFFSET),
|
||||
"i" (s5_OFFSET), "i" (s6_OFFSET), "i" (s7_OFFSET), "i" (s8_OFFSET), "i" (s9_OFFSET),
|
||||
"i" (s10_OFFSET), "i" (s11_OFFSET), "i" (s12_OFFSET), "i" (s13_OFFSET), "i" (s14_OFFSET),
|
||||
"i" (s15_OFFSET), "i" (r1_OFFSET), "i" (r4_OFFSET), "i" (CONTEXT_CONTROL_SIZE));
|
||||
"i" (s15_OFFSET));
|
||||
|
||||
/*
|
||||
* restore the thread's stack into the stack cache
|
||||
* use r1 to store the size of the thread's stack
|
||||
* use r2 and r3 as intermediate registers to load special-purpose registers (no instruction to do it directly)
|
||||
*/
|
||||
asm volatile("mfs $r2 = $s6 \n\t" //store the stack cache's top pointer in auxiliary register r2
|
||||
"mfs $r3 = $s5 \n\t" //store the stack cache's bottom pointer in auxiliary register r3
|
||||
"sub $r1 = $r2, $r3 \n\t" //store the size of the thread's stack
|
||||
"mts $s6 = $r3 \n\t" //make stack cache's bottom and top pointers equal to each other
|
||||
"sens $r1 \n\t" //restores the thread's stack into the stack cache
|
||||
//"mts $s6 = $r2 \n\t" //restore the stack cache's top pointer from auxiliary register r2
|
||||
"lwc $r1 = [ $r4 + %0 ] \n\t" //load r1
|
||||
"lwc $r2 = [ $r4 + %1 ] \n\t" //load r2
|
||||
"lwc $r3 = [ $r4 + %2 ] \n\t" //load r3
|
||||
"lwc $r4 = [ $r4 + %3 ] \n\t" //load r4
|
||||
: : "i" (r1_OFFSET), "i" (r2_OFFSET), "i" (r3_OFFSET), "i" (r4_OFFSET));
|
||||
|
||||
/* Return from the function */
|
||||
asm volatile("ret $r30, $r31 \n\t"
|
||||
@@ -333,49 +353,40 @@ void _CPU_Context_restore(
|
||||
* address of the current task is passed as function argument in register r3
|
||||
* r3 is the last register to be loaded so that the memory address of the current task is not lost
|
||||
*/
|
||||
asm volatile("and $r0 = $r0, 0x0 \n\t" //reset r0 to 0
|
||||
"lwc $r2 = [ $r3 + %0 ] \n\t" //load r2
|
||||
"lwc $r4 = [ $r3 + %1 ] \n\t" //load r4
|
||||
"lwc $r5 = [ $r3 + %2 ] \n\t" //load r5
|
||||
"lwc $r6 = [ $r3 + %3 ] \n\t" //load r6
|
||||
"lwc $r7 = [ $r3 + %4 ] \n\t" //load r7
|
||||
"lwc $r8 = [ $r3 + %5 ] \n\t" //load r8
|
||||
"lwc $r9 = [ $r3 + %6 ] \n\t" //load r9
|
||||
"lwc $r10 = [ $r3 + %7 ] \n\t" //load r10
|
||||
"lwc $r11 = [ $r3 + %8 ] \n\t" //load r11
|
||||
"lwc $r12 = [ $r3 + %9 ] \n\t" //load r12
|
||||
"lwc $r13 = [ $r3 + %10 ] \n\t" //load r13
|
||||
"lwc $r14 = [ $r3 + %11 ] \n\t" //load r14
|
||||
"lwc $r15 = [ $r3 + %12 ] \n\t" //load r15
|
||||
"lwc $r16 = [ $r3 + %13 ] \n\t" //load r16
|
||||
"lwc $r17 = [ $r3 + %14 ] \n\t" //load r17
|
||||
"lwc $r18 = [ $r3 + %15 ] \n\t" //load r18
|
||||
"lwc $r19 = [ $r3 + %16 ] \n\t" //load r19
|
||||
"lwc $r20 = [ $r3 + %17 ] \n\t" //load r20
|
||||
"lwc $r21 = [ $r3 + %18 ] \n\t" //load r21
|
||||
"lwc $r22 = [ $r3 + %19 ] \n\t" //load r22
|
||||
"lwc $r23 = [ $r3 + %20 ] \n\t" //load r23
|
||||
"lwc $r24 = [ $r3 + %21 ] \n\t" //load r24
|
||||
"lwc $r25 = [ $r3 + %22 ] \n\t" //load r25
|
||||
"lwc $r26 = [ $r3 + %23 ] \n\t" //load r26
|
||||
"lwc $r27 = [ $r3 + %24 ] \n\t" //load r27
|
||||
"lwc $r28 = [ $r3 + %25 ] \n\t" //load r28
|
||||
"lwc $r29 = [ $r3 + %26 ] \n\t" //load r29
|
||||
"lwc $r30 = [ $r3 + %27 ] \n\t" //load r30
|
||||
"lwc $r31 = [ $r3 + %28 ] \n\t" //load r31
|
||||
: : "i" (r2_OFFSET), "i" (r4_OFFSET), "i" (r5_OFFSET), "i" (r6_OFFSET), "i" (r7_OFFSET),
|
||||
asm volatile("and $r0 = $r0, 0x0 \n\t" //reset r0 to 0
|
||||
"lwc $r5 = [ $r3 + %0 ] \n\t" //load r5
|
||||
"lwc $r6 = [ $r3 + %1 ] \n\t" //load r6
|
||||
"lwc $r7 = [ $r3 + %2 ] \n\t" //load r7
|
||||
"lwc $r8 = [ $r3 + %3 ] \n\t" //load r8
|
||||
"lwc $r9 = [ $r3 + %4 ] \n\t" //load r9
|
||||
"lwc $r10 = [ $r3 + %5 ] \n\t" //load r10
|
||||
"lwc $r11 = [ $r3 + %6 ] \n\t" //load r11
|
||||
"lwc $r12 = [ $r3 + %7 ] \n\t" //load r12
|
||||
"lwc $r13 = [ $r3 + %8 ] \n\t" //load r13
|
||||
"lwc $r14 = [ $r3 + %9 ] \n\t" //load r14
|
||||
"lwc $r15 = [ $r3 + %10 ] \n\t" //load r15
|
||||
"lwc $r16 = [ $r3 + %11 ] \n\t" //load r16
|
||||
"lwc $r17 = [ $r3 + %12 ] \n\t" //load r17
|
||||
"lwc $r18 = [ $r3 + %13 ] \n\t" //load r18
|
||||
"lwc $r19 = [ $r3 + %14 ] \n\t" //load r19
|
||||
"lwc $r20 = [ $r3 + %15 ] \n\t" //load r20
|
||||
"lwc $r21 = [ $r3 + %16 ] \n\t" //load r21
|
||||
"lwc $r22 = [ $r3 + %17 ] \n\t" //load r22
|
||||
"lwc $r23 = [ $r3 + %18 ] \n\t" //load r23
|
||||
"lwc $r24 = [ $r3 + %19 ] \n\t" //load r24
|
||||
"lwc $r25 = [ $r3 + %20 ] \n\t" //load r25
|
||||
"lwc $r26 = [ $r3 + %21 ] \n\t" //load r26
|
||||
"lwc $r27 = [ $r3 + %22 ] \n\t" //load r27
|
||||
"lwc $r28 = [ $r3 + %23 ] \n\t" //load r28
|
||||
"lwc $r29 = [ $r3 + %24 ] \n\t" //load r29
|
||||
"lwc $r30 = [ $r3 + %25 ] \n\t" //load r30
|
||||
"lwc $r31 = [ $r3 + %26 ] \n\t" //load r31
|
||||
: : "i" (r5_OFFSET), "i" (r6_OFFSET), "i" (r7_OFFSET),
|
||||
"i" (r8_OFFSET), "i" (r9_OFFSET), "i" (r10_OFFSET), "i" (r11_OFFSET), "i" (r12_OFFSET),
|
||||
"i" (r13_OFFSET), "i" (r14_OFFSET), "i" (r15_OFFSET), "i" (r16_OFFSET), "i" (r17_OFFSET),
|
||||
"i" (r18_OFFSET), "i" (r19_OFFSET), "i" (r20_OFFSET), "i" (r21_OFFSET), "i" (r22_OFFSET),
|
||||
"i" (r23_OFFSET), "i" (r23_OFFSET), "i" (r24_OFFSET), "i" (r25_OFFSET), "i" (r26_OFFSET),
|
||||
"i" (r27_OFFSET), "i" (r28_OFFSET), "i" (r29_OFFSET), "i" (r30_OFFSET), "i" (r31_OFFSET));
|
||||
|
||||
/*
|
||||
* Spill everything from the stack cache (why? why here and not at the end?)
|
||||
*/
|
||||
asm volatile("sres %0 \n\t" //reserve space in cache
|
||||
"sfree %0 \n\t" //free space in cache
|
||||
: : "i" (MAX_STACK_CACHE_SIZE));
|
||||
"i" (r27_OFFSET), "i" (r28_OFFSET), "i" (r29_OFFSET), "i" (r30_OFFSET), "i" (r31_OFFSET));
|
||||
|
||||
/*
|
||||
* load special-purpose registers
|
||||
@@ -412,14 +423,30 @@ void _CPU_Context_restore(
|
||||
"lwc $r1 = [ $r3 + %14 ] \n\t" //load s14
|
||||
"mts $s14 = $r1 \n\t" //move r1 to s14
|
||||
"lwc $r1 = [ $r3 + %15 ] \n\t" //load s15
|
||||
"mts $s15 = $r1 \n\t" //move r1 to s15
|
||||
"lwc $r1 = [ $r3 + %16 ] \n\t" //load r1
|
||||
"lwc $r3 = [ $r3 + %17] \n\t" //load r3
|
||||
"mts $s15 = $r1 \n\t" //move r1 to s15
|
||||
: : "i" (s0_OFFSET), "i" (s1_OFFSET), "i" (s2_OFFSET), "i" (s3_OFFSET), "i" (s4_OFFSET),
|
||||
"i" (s5_OFFSET), "i" (s6_OFFSET), "i" (s7_OFFSET), "i" (s8_OFFSET), "i" (s9_OFFSET),
|
||||
"i" (s10_OFFSET), "i" (s11_OFFSET), "i" (s12_OFFSET), "i" (s13_OFFSET), "i" (s14_OFFSET),
|
||||
"i" (s15_OFFSET), "i" (r1_OFFSET), "i" (r3_OFFSET));
|
||||
"i" (s15_OFFSET));
|
||||
|
||||
/*
|
||||
* Spill everything from the stack cache (only way to copy the current stack to memory)
|
||||
* Restore the thread's stack into the stack cache
|
||||
*/
|
||||
asm volatile("sres %0 \n\t" //reserve space in cache
|
||||
"sfree %0 \n\t" //free space in cache
|
||||
"mfs $r2 = $s6 \n\t" //store the stack cache's top pointer in auxiliary register r2
|
||||
"mfs $r4 = $s5 \n\t" //store the stack cache's bottom pointer in auxiliary register r4
|
||||
"sub $r1 = $r2, $r4 \n\t" //store the size of the thread's stack
|
||||
"mts $s6 = $r4 \n\t" //make stack cache's bottom and top pointers equal to each other
|
||||
"sens $r1 \n\t" //restores the thread's stack into the stack cache
|
||||
//"mts $s6 = $r2 \n\t" //restore the stack cache's top pointer from auxiliary register r2
|
||||
"lwc $r1 = [ $r3 + %1 ] \n\t" //load r1
|
||||
"lwc $r2 = [ $r3 + %2 ] \n\t" //load r2
|
||||
"lwc $r4 = [ $r3 + %3 ] \n\t" //load r4
|
||||
"lwc $r3 = [ $r3 + %4 ] \n\t" //load r3
|
||||
: : "i" (MAX_STACK_CACHE_SIZE), "i" (r1_OFFSET), "i" (r2_OFFSET), "i" (r4_OFFSET), "i" (r3_OFFSET));
|
||||
|
||||
/* Return from the function */
|
||||
asm volatile("ret $r30, $r31 \n\t"
|
||||
: : );
|
||||
|
||||
62
patmos.sh
62
patmos.sh
@@ -1,62 +0,0 @@
|
||||
pwd=$(pwd)
|
||||
|
||||
mkdir -p $pwd/c/src/lib/libbsp/patmos/pasim/clock
|
||||
mkdir -p $pwd/c/src/lib/libbsp/patmos/pasim/console
|
||||
mkdir -p $pwd/c/src/lib/libbsp/patmos/pasim/include
|
||||
mkdir -p $pwd/c/src/lib/libbsp/patmos/pasim/make/custom
|
||||
mkdir -p $pwd/c/src/lib/libbsp/patmos/pasim/startup
|
||||
mkdir -p $pwd/c/src/lib/libbsp/patmos/shared/startup
|
||||
mkdir -p $pwd/c/src/lib/libbsp/patmos/tcrest
|
||||
mkdir -p $pwd/c/src/lib/libcpu/patmos/cache
|
||||
mkdir -p $pwd/cpukit/score/cpu/patmos/rtems/score
|
||||
|
||||
|
||||
cp -f $pwd/c/src/make/compilers/gcc-target-default.cfg $pwd/c/src/make/compilers/patmos-clang.cfg
|
||||
|
||||
cp -f $pwd/c/src/lib/libbsp/sparc/acinclude.m4 $pwd/c/src/lib/libbsp/patmos/acinclude.m4
|
||||
cp -f $pwd/c/src/lib/libbsp/sparc/aclocal.m4 $pwd/c/src/lib/libbsp/patmos/aclocal.m4
|
||||
cp -f $pwd/c/src/lib/libbsp/sparc/configure $pwd/c/src/lib/libbsp/patmos/configure
|
||||
cp -f $pwd/c/src/lib/libbsp/sparc/configure.ac $pwd/c/src/lib/libbsp/patmos/configure.ac
|
||||
cp -f $pwd/c/src/lib/libbsp/sparc/Makefile.am $pwd/c/src/lib/libbsp/patmos/Makefile.am
|
||||
cp -f $pwd/c/src/lib/libbsp/sparc/Makefile.in $pwd/c/src/lib/libbsp/patmos/Makefile.in
|
||||
cp -f $pwd/c/src/lib/libbsp/sparc/leon3/clock/ckinit.c $pwd/c/src/lib/libbsp/patmos/pasim/clock/ckinit.c
|
||||
cp -f $pwd/c/src/lib/libbsp/sparc/leon3/console/console.c $pwd/c/src/lib/libbsp/patmos/pasim/console/console.c
|
||||
cp -f $pwd/c/src/lib/libbsp/sparc/leon3/console/debugputs.c $pwd/c/src/lib/libbsp/patmos/pasim/console/debugputs.c
|
||||
cp -f $pwd/c/src/lib/libbsp/sparc/leon3/include/bsp.h $pwd/c/src/lib/libbsp/patmos/pasim/include/bsp.h
|
||||
cp -f $pwd/c/src/lib/libbsp/sparc/leon3/include/bspopts.h.in $pwd/c/src/lib/libbsp/patmos/pasim/include/bspopts.h.in
|
||||
cp -f $pwd/c/src/lib/libbsp/sparc/leon3/include/leon.h $pwd/c/src/lib/libbsp/patmos/pasim/include/pasim.h
|
||||
cp -f $pwd/c/src/lib/libbsp/sparc/leon3/make/custom/leon3.cfg $pwd/c/src/lib/libbsp/patmos/pasim/make/custom/pasim.cfg
|
||||
cp -f $pwd/c/src/lib/libbsp/sparc/leon3/startup/bspstart.c $pwd/c/src/lib/libbsp/patmos/pasim/startup/bspstart.c
|
||||
cp -f $pwd/c/src/lib/libbsp/sparc/leon3/startup/linkcmds $pwd/c/src/lib/libbsp/patmos/pasim/startup/linkcmds
|
||||
cp -f $pwd/c/src/lib/libbsp/sparc/leon3/aclocal.m4 $pwd/c/src/lib/libbsp/patmos/pasim/aclocal.m4
|
||||
cp -f $pwd/c/src/lib/libbsp/sparc/leon3/bsp_specs $pwd/c/src/lib/libbsp/patmos/pasim/bsp_specs
|
||||
cp -f $pwd/c/src/lib/libbsp/sparc/leon3/configure $pwd/c/src/lib/libbsp/patmos/pasim/configure
|
||||
cp -f $pwd/c/src/lib/libbsp/sparc/leon3/configure.ac $pwd/c/src/lib/libbsp/patmos/pasim/configure.ac
|
||||
cp -f $pwd/c/src/lib/libbsp/sparc/leon3/Makefile.am $pwd/c/src/lib/libbsp/patmos/pasim/Makefile.am
|
||||
cp -f $pwd/c/src/lib/libbsp/sparc/leon3/Makefile.in $pwd/c/src/lib/libbsp/patmos/pasim/Makefile.in
|
||||
cp -f $pwd/c/src/lib/libbsp/sparc/leon3/preinstall.am $pwd/c/src/lib/libbsp/patmos/pasim/preinstall.am
|
||||
cp -f $pwd/c/src/lib/libbsp/sparc/shared/startup/linkcmds.base $pwd/c/src/lib/libbsp/patmos/shared/startup/linkcmds.base
|
||||
cp -f $pwd/c/src/lib/libbsp/sparc/shared/start.S $pwd/c/src/lib/libbsp/patmos/shared/start.S
|
||||
|
||||
cp -f $pwd/c/src/lib/libcpu/sparc/aclocal.m4 $pwd/c/src/lib/libcpu/patmos/aclocal.m4
|
||||
cp -f $pwd/c/src/lib/libcpu/sparc/configure $pwd/c/src/lib/libcpu/patmos/configure
|
||||
cp -f $pwd/c/src/lib/libcpu/sparc/configure.ac $pwd/c/src/lib/libcpu/patmos/configure.ac
|
||||
cp -f $pwd/c/src/lib/libcpu/sparc/Makefile.am $pwd/c/src/lib/libcpu/patmos/Makefile.am
|
||||
cp -f $pwd/c/src/lib/libcpu/sparc/Makefile.in $pwd/c/src/lib/libcpu/patmos/Makefile.in
|
||||
cp -f $pwd/c/src/lib/libcpu/sparc/preinstall.am $pwd/c/src/lib/libcpu/patmos/preinstall.am
|
||||
cp -f $pwd/c/src/lib/libcpu/sparc/cache/cache.c $pwd/c/src/lib/libcpu/patmos/cache/cache.c
|
||||
cp -f $pwd/c/src/lib/libcpu/sparc/cache/cache_.h $pwd/c/src/lib/libcpu/patmos/cache/cache_.h
|
||||
|
||||
cp -f $pwd/cpukit/score/cpu/sparc/cpu.c $pwd/cpukit/score/cpu/patmos/cpu.c
|
||||
cp -f $pwd/cpukit/score/cpu/sparc/cpu_asm.S $pwd/cpukit/score/cpu/patmos/cpu_asm.S
|
||||
cp -f $pwd/cpukit/score/cpu/sparc/Makefile.am $pwd/cpukit/score/cpu/patmos/Makefile.am
|
||||
cp -f $pwd/cpukit/score/cpu/sparc/Makefile.in $pwd/cpukit/score/cpu/patmos/Makefile.in
|
||||
cp -f $pwd/cpukit/score/cpu/sparc/preinstall.am $pwd/cpukit/score/cpu/patmos/preinstall.am
|
||||
cp -f $pwd/cpukit/score/cpu/sparc/rtems/asm.h $pwd/cpukit/score/cpu/patmos/rtems/asm.h
|
||||
cp -f $pwd/cpukit/score/cpu/sparc/rtems/score/cpu.h $pwd/cpukit/score/cpu/patmos/rtems/score/cpu.h
|
||||
cp -f $pwd/cpukit/score/cpu/sparc/rtems/score/sparc.h $pwd/cpukit/score/cpu/patmos/rtems/score/patmos.h
|
||||
cp -f $pwd/cpukit/score/cpu/sparc/rtems/score/types.h $pwd/cpukit/score/cpu/patmos/rtems/score/types.h
|
||||
|
||||
cp -f $pwd/doc/cpu_supplement/sparc.t $pwd/doc/cpu_supplement/patmos.t
|
||||
|
||||
cp -f $pwd/make/compilers/gcc-no_bsp.cfg $pwd/make/compilers/patmos-clang.cfg
|
||||
@@ -50,7 +50,7 @@ renamed to patmos-unknown-rtems-clang:
|
||||
|
||||
'cp patmos-clang patmos-unknown-rtems-clang'
|
||||
|
||||
In this folder there is a script to be placed in the misc directory, that
|
||||
In this folder there is a script ('target-change.sh') to be placed in the misc directory, that
|
||||
copies all the patmos tools to the required nomenclature.
|
||||
|
||||
Finally, the Patmos executables must be added to the path environment variable
|
||||
|
||||
95
target-change.sh
Executable file
95
target-change.sh
Executable file
@@ -0,0 +1,95 @@
|
||||
#!/bin/bash
|
||||
###############################################################################
|
||||
#
|
||||
#script for changing the patmos target to patmos-unkwnown-rtems
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
function abspath() {
|
||||
local path=$1
|
||||
local pwd_restore="$(pwd)"
|
||||
|
||||
# readlink -f does not work on OSX, so we do this manually
|
||||
cd $(dirname "$path")
|
||||
path=$(basename "$path")
|
||||
# follow chain of symlinks
|
||||
while [ -L "$path" ]; do
|
||||
path=$(readlink "$path")
|
||||
cd $(dirname "$path")
|
||||
path=$(basename "$path")
|
||||
done
|
||||
echo "$(pwd -P)/$path"
|
||||
cd "$pwd_restore"
|
||||
}
|
||||
|
||||
# physical location of this script, and the config
|
||||
self=$(abspath $0)
|
||||
CFGFILE=$(dirname $self)/build.cfg
|
||||
|
||||
if [ -f $CFGFILE ]; then
|
||||
source $CFGFILE
|
||||
fi
|
||||
|
||||
cd $ROOT_DIR/local/bin
|
||||
echo 'Changing names of executables...'
|
||||
|
||||
ln -s patmos-addr2line patmos-unknown-rtems-addr2line
|
||||
ln -s patmos-llc patmos-unknown-rtems-llc
|
||||
ln -s patmos-llvm-readobj patmos-unknown-rtems-llvm-readobj
|
||||
ln -s patmos-ar patmos-unknown-rtems-ar
|
||||
ln -s patmos-lli patmos-unknown-rtems-lli
|
||||
ln -s patmos-llvm-rtdyld patmos-unknown-rtems-llvm-rtdyld
|
||||
ln -s patmos-arcmt-test patmos-unknown-rtems-arcmt-test
|
||||
ln -s patmos-llvm-ar patmos-unknown-rtems-llvm-ar
|
||||
ln -s patmos-llvm-size patmos-unknown-rtems-llvm-size
|
||||
ln -s patmos-bugpoint patmos-unknown-rtems-bugpoint
|
||||
ln -s patmos-llvm-as patmos-unknown-rtems-llvm-as
|
||||
ln -s patmos-llvm-as patmos-unknown-rtems-as
|
||||
ln -s patmos-llvm-stress patmos-unknown-rtems-llvm-stress
|
||||
ln -s patmos-c-arcmt-test patmos-unknown-rtems-c-arcmt-test
|
||||
ln -s patmos-llvm-bcanalyzer patmos-unknown-rtems-llvm-bcanalyzer
|
||||
ln -s patmos-llvm-tblgen patmos-unknown-rtems-llvm-tblgen
|
||||
ln -s patmos-c++filt patmos-unknown-rtems-c++filt
|
||||
ln -s patmos-llvm-config patmos-unknown-rtems-llvm-config
|
||||
ln -s patmos-macho-dump patmos-unknown-rtems-macho-dump
|
||||
ln -s patmos-c-index-test patmos-unknown-rtems-c-index-test
|
||||
ln -s patmos-llvm-cov patmos-unknown-rtems-llvm-cov
|
||||
ln -s patmos-nm patmos-unknown-rtems-nm
|
||||
ln -s patmos-clang patmos-unknown-rtems-clang
|
||||
ln -s patmos-llvm-diff patmos-unknown-rtems-llvm-diff
|
||||
ln -s patmos-not patmos-unknown-rtems-not
|
||||
ln -s patmos-clang++ patmos-unknown-rtems-clang++
|
||||
ln -s patmos-llvm-dis patmos-unknown-rtems-llvm-dis
|
||||
ln -s patmos-obj2yaml patmos-unknown-rtems-obj2yaml
|
||||
ln -s patmos-clang-3.2 patmos-unknown-rtems-clang-3.2
|
||||
ln -s patmos-llvm-dwarfdump patmos-unknown-rtems-llvm-dwarfdump
|
||||
ln -s patmos-objcopy patmos-unknown-rtems-objcopy
|
||||
ln -s patmos-clang-check patmos-unknown-rtems-clang-check
|
||||
ln -s patmos-llvm-extract patmos-unknown-rtems-llvm-extract
|
||||
ln -s patmos-objdump patmos-unknown-rtems-objdump
|
||||
ln -s patmos-clang-tblgen patmos-unknown-rtems-clang-tblgen
|
||||
ln -s patmos-llvm-link patmos-unknown-rtems-llvm-link
|
||||
ln -s patmos-opt patmos-unknown-rtems-opt
|
||||
ln -s patmos-count patmos-unknown-rtems-count
|
||||
ln -s patmos-llvm-lit patmos-unknown-rtems-llvm-lit
|
||||
ln -s patmos-ranlib patmos-unknown-rtems-ranlib
|
||||
ln -s patmos-diagtool patmos-unknown-rtems-diagtool
|
||||
ln -s patmos-llvm-mc patmos-unknown-rtems-llvm-mc
|
||||
ln -s patmos-readelf patmos-unknown-rtems-readelf
|
||||
ln -s patmos-elfedit patmos-unknown-rtems-elfedit
|
||||
ln -s patmos-llvm-mcmarkup patmos-unknown-rtems-llvm-mcmarkup
|
||||
ln -s patmos-size patmos-unknown-rtems-size
|
||||
ln -s patmos-FileCheck patmos-unknown-rtems-FileCheck
|
||||
ln -s patmos-llvm-nm patmos-unknown-rtems-llvm-nm
|
||||
ln -s patmos-strings patmos-unknown-rtems-strings
|
||||
ln -s patmos-FileUpdate patmos-unknown-rtems-FileUpdate
|
||||
ln -s patmos-llvm-objdump patmos-unknown-rtems-llvm-objdump
|
||||
ln -s patmos-strip patmos-unknown-rtems-strip
|
||||
ln -s patmos-ld patmos-unknown-rtems-ld
|
||||
ln -s patmos-llvm-prof patmos-unknown-rtems-llvm-prof
|
||||
ln -s patmos-yaml2obj patmos-unknown-rtems-yaml2obj
|
||||
ln -s patmos-ld.gold patmos-unknown-rtems-ld.gold
|
||||
ln -s patmos-llvm-ranlib patmos-unknown-rtems-llvm-ranlib
|
||||
ln -s patmos-yaml-bench patmos-unknown-rtems-yaml-bench
|
||||
|
||||
echo '...finished'
|
||||
0
testsuites/aclocal/check-cpuopts.m4
Normal file → Executable file
0
testsuites/aclocal/check-cpuopts.m4
Normal file → Executable file
11
testsuites/aclocal/prog-cc.m4
Normal file → Executable file
11
testsuites/aclocal/prog-cc.m4
Normal file → Executable file
@@ -14,6 +14,7 @@ case "$host" in
|
||||
*-*-rtems*) ac_cv_exeext=.exe;;
|
||||
esac
|
||||
|
||||
RTEMS_CHECK_TOOL(CC,clang)
|
||||
RTEMS_CHECK_TOOL(CC,gcc)
|
||||
test -z "$CC" && \
|
||||
AC_MSG_ERROR([no acceptable cc found in \$PATH])
|
||||
@@ -28,9 +29,13 @@ RTEMS_PROG_CC
|
||||
|
||||
AS_IF([test x"$GCC" = xyes],[
|
||||
AS_IF([test "${enable_cpukit_root+set}"],[
|
||||
GCCSPECS="-B\$(CPUKIT_ROOT)/lib/"])
|
||||
AS_IF([ test "$CC" = "patmos-unknown-rtems-clang"],[
|
||||
GCCSPECS="-L=\$(CPUKIT_ROOT)/lib/ -I\$(CPUKIT_ROOT)/lib/include"
|
||||
], [GCCSPECS="-B\$(CPUKIT_ROOT)/lib/"])])
|
||||
AS_IF([test "${enable_project_root+set}"],[
|
||||
GCCSPECS="$GCCSPECS -B\$(PROJECT_ROOT)/lib/"])
|
||||
GCCSPECS="${GCCSPECS} -specs bsp_specs -qrtems"])
|
||||
AS_IF([ test "$CC" = "patmos-unknown-rtems-clang"],[
|
||||
GCCSPECS="$GCCSPECS -L=\$(PROJECT_ROOT)/lib/ -I\$(PROJECT_ROOT)/lib/include"
|
||||
], [GCCSPECS="$GCCSPECS -B\$(PROJECT_ROOT)/lib/"
|
||||
GCCSPECS="${GCCSPECS} -specs bsp_specs -qrtems"])])])
|
||||
AC_SUBST(GCCSPECS)
|
||||
])
|
||||
|
||||
0
testsuites/samples/configure.ac
Normal file → Executable file
0
testsuites/samples/configure.ac
Normal file → Executable file
Reference in New Issue
Block a user