View | Details | Raw Unified | Return to bug 254945
Collapse All | Expand All

(-)b/lang/mecrisp-stellaris/Makefile (-14 / +15 lines)
Lines 1-5 Link Here
1
PORTNAME=	mecrisp-stellaris
1
PORTNAME=	mecrisp-stellaris
2
DISTVERSION=	2.5.8
2
DISTVERSION=	2.5.8
3
PORTREVISION=	1
3
CATEGORIES=	lang
4
CATEGORIES=	lang
4
MASTER_SITES=	SF/mecrisp
5
MASTER_SITES=	SF/mecrisp
5
6
Lines 9-18 COMMENT= Native code Forth system for ARM Link Here
9
LICENSE=	GPLv3+
10
LICENSE=	GPLv3+
10
LICENSE_FILE=	${WRKSRC}/COPYING
11
LICENSE_FILE=	${WRKSRC}/COPYING
11
12
13
OPTIONS_DEFINE=		EXTRAS
14
OPTIONS_DEFAULT=	EXTRAS
15
EXTRAS_DESC=		Add disassembler and math library to Forth core
16
EXTRAS_VARS=		PROGRAM=mecrisp-stellaris-freebsd-with-disassembler-and-math
17
EXTRAS_VARS_OFF=	PROGRAM=mecrisp-stellaris-freebsd
18
19
.include <bsd.port.pre.mk>
20
21
.if ${OSVERSION} < 1300000
12
ONLY_FOR_ARCHS=	armv6 armv7
22
ONLY_FOR_ARCHS=	armv6 armv7
23
.else
24
ONLY_FOR_ARCHS=	armv6 armv7 aarch64
25
.endif
13
ONLY_FOR_ARCHS_REASON=	written in ARM assembly
26
ONLY_FOR_ARCHS_REASON=	written in ARM assembly
14
27
15
BUILD_DEPENDS=	binutils>2.33:devel/binutils
28
BUILD_DEPENDS=	arm-none-eabi-binutils>2.25:devel/binutils@arm_none_eabi
16
29
17
AFLAGS.armv6=	-march=armv6 --defsym m0core=1
30
AFLAGS.armv6=	-march=armv6 --defsym m0core=1
18
MAKE_ENV+=	AFLAGS="${AFLAGS.${ARCH}}"
31
MAKE_ENV+=	AFLAGS="${AFLAGS.${ARCH}}"
Lines 20-37 MAKE_ENV+= AFLAGS="${AFLAGS.${ARCH}}" Link Here
20
# stripping eats our hand-crafted ELF binaries, so don't do that
33
# stripping eats our hand-crafted ELF binaries, so don't do that
21
# the binaries are free of symbols or stuff like that anyway
34
# the binaries are free of symbols or stuff like that anyway
22
STRIP=
35
STRIP=
23
# definitions assuming we build on ARM
24
BINARY_ALIAS=	arm-none-eabi-as=${LOCALBASE}/bin/${AS} \
25
		arm-none-eabi-ld=${LOCALBASE}/bin/${LD} \
26
		arm-none-eabi-objcopy=${LOCALBASE}/bin/${OBJCOPY}
27
28
OPTIONS_DEFINE=		EXTRAS
29
OPTIONS_DEFAULT=	EXTRAS
30
EXTRAS_DESC=		Add disassembler and math library to Forth core
31
EXTRAS_VARS=		PROGRAM=mecrisp-stellaris-freebsd-with-disassembler-and-math
32
EXTRAS_VARS_OFF=	PROGRAM=mecrisp-stellaris-freebsd
33
34
.include <bsd.port.options.mk>
35
36
36
# Can't use the release script as it tries to build a bunch of stuff
37
# Can't use the release script as it tries to build a bunch of stuff
37
# that won't build correctly.  This does the relevant parts manually.
38
# that won't build correctly.  This does the relevant parts manually.
Lines 47-50 do-install: Link Here
47
	cd ${WRKSRC}/common; ${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR}
48
	cd ${WRKSRC}/common; ${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR}
48
	${INSTALL_PROGRAM} ${WRKSRC}/freebsd-ra/${PROGRAM} ${STAGEDIR}${PREFIX}/bin/mecrisp-stellaris
49
	${INSTALL_PROGRAM} ${WRKSRC}/freebsd-ra/${PROGRAM} ${STAGEDIR}${PREFIX}/bin/mecrisp-stellaris
49
50
50
.include <bsd.port.mk>
51
.include <bsd.port.post.mk>
(-)b/lang/mecrisp-stellaris/files/patch-mecrisp-stellaris-source_freebsd-ra_terminal.s (+25 lines)
Added Link Here
1
--- mecrisp-stellaris-source/freebsd-ra/terminal.s.orig	2021-04-10 12:49:15 UTC
2
+++ mecrisp-stellaris-source/freebsd-ra/terminal.s
3
@@ -167,7 +167,6 @@ serial_key: @ ( -- c ) Receive one character
4
 cacheflush:
5
 @ -----------------------------------------------------------------------------
6
 
7
-.ifdef m0core
8
   @ ARMv6 hat keine Speicherbarrieren.  Das muss über einen syscall realisiert werden
9
   push {r4-r7, lr}
10
   movs r0, #0      @ ARM_SYNC_ICACHE
11
@@ -180,14 +179,6 @@ cacheflush:
12
   @ Datenstruktur arm_sync_icache_args für den sysarch-Aufruf
13
 0:.word incipit
14
   .word totalsize
15
-
16
-.else
17
-  @ auf ARMv7 und später nehmen wir einfach die Barrien-Befehle
18
-  dmb
19
-  dsb
20
-  isb  
21
-  bx lr
22
-.endif
23
 
24
 @ -----------------------------------------------------------------------------
25
   Wortbirne Flag_foldable_0, "arguments" @ ( -- a-addr )
(-)b/lang/mecrisp-stellaris/pkg-message (-1 / +8 lines)
Added Link Here
0
- 
1
This port is written in ARM32 assembly.  On ARM64 systems, it only runs
2
on those that support the AArch32 execution state in EL0.  If the port
3
does not run, check dmesg for a line like
4
5
    Processor Features 0 = <AdvSIMD,FP,EL3 32,EL2 32,EL1 32,EL0 32>
6
7
If the feature string "EL0 32" does not occur, your processor cannot
8
run ARM32 binaries and thus will not be able to run this port either.

Return to bug 254945