mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-21 04:06:46 +00:00
lang/mecrisp-stellaris: fix build problems
PR: 254945 Submitted by: Robert Clausecker <fuz AT fuz DOT su> (maintainer) MFH: 2021Q2
This commit is contained in:
parent
819cf6efa3
commit
4a19295b95
@ -1,5 +1,6 @@
|
||||
PORTNAME= mecrisp-stellaris
|
||||
DISTVERSION= 2.5.8
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= lang
|
||||
MASTER_SITES= SF/mecrisp
|
||||
|
||||
@ -9,10 +10,22 @@ COMMENT= Native code Forth system for ARM
|
||||
LICENSE= GPLv3+
|
||||
LICENSE_FILE= ${WRKSRC}/COPYING
|
||||
|
||||
OPTIONS_DEFINE= EXTRAS
|
||||
OPTIONS_DEFAULT= EXTRAS
|
||||
EXTRAS_DESC= Add disassembler and math library to Forth core
|
||||
EXTRAS_VARS= PROGRAM=mecrisp-stellaris-freebsd-with-disassembler-and-math
|
||||
EXTRAS_VARS_OFF= PROGRAM=mecrisp-stellaris-freebsd
|
||||
|
||||
.include <bsd.port.pre.mk>
|
||||
|
||||
.if ${OSVERSION} < 1300000
|
||||
ONLY_FOR_ARCHS= armv6 armv7
|
||||
.else
|
||||
ONLY_FOR_ARCHS= armv6 armv7 aarch64
|
||||
.endif
|
||||
ONLY_FOR_ARCHS_REASON= written in ARM assembly
|
||||
|
||||
BUILD_DEPENDS= binutils>2.33:devel/binutils
|
||||
BUILD_DEPENDS= arm-none-eabi-binutils>2.25:devel/binutils@arm_none_eabi
|
||||
|
||||
AFLAGS.armv6= -march=armv6 --defsym m0core=1
|
||||
MAKE_ENV+= AFLAGS="${AFLAGS.${ARCH}}"
|
||||
@ -20,18 +33,6 @@ MAKE_ENV+= AFLAGS="${AFLAGS.${ARCH}}"
|
||||
# stripping eats our hand-crafted ELF binaries, so don't do that
|
||||
# the binaries are free of symbols or stuff like that anyway
|
||||
STRIP=
|
||||
# definitions assuming we build on ARM
|
||||
BINARY_ALIAS= arm-none-eabi-as=${LOCALBASE}/bin/${AS} \
|
||||
arm-none-eabi-ld=${LOCALBASE}/bin/${LD} \
|
||||
arm-none-eabi-objcopy=${LOCALBASE}/bin/${OBJCOPY}
|
||||
|
||||
OPTIONS_DEFINE= EXTRAS
|
||||
OPTIONS_DEFAULT= EXTRAS
|
||||
EXTRAS_DESC= Add disassembler and math library to Forth core
|
||||
EXTRAS_VARS= PROGRAM=mecrisp-stellaris-freebsd-with-disassembler-and-math
|
||||
EXTRAS_VARS_OFF= PROGRAM=mecrisp-stellaris-freebsd
|
||||
|
||||
.include <bsd.port.options.mk>
|
||||
|
||||
# Can't use the release script as it tries to build a bunch of stuff
|
||||
# that won't build correctly. This does the relevant parts manually.
|
||||
@ -47,4 +48,4 @@ do-install:
|
||||
cd ${WRKSRC}/common; ${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR}
|
||||
${INSTALL_PROGRAM} ${WRKSRC}/freebsd-ra/${PROGRAM} ${STAGEDIR}${PREFIX}/bin/mecrisp-stellaris
|
||||
|
||||
.include <bsd.port.mk>
|
||||
.include <bsd.port.post.mk>
|
||||
|
@ -0,0 +1,25 @@
|
||||
--- mecrisp-stellaris-source/freebsd-ra/terminal.s.orig 2021-04-10 12:49:15 UTC
|
||||
+++ mecrisp-stellaris-source/freebsd-ra/terminal.s
|
||||
@@ -167,7 +167,6 @@ serial_key: @ ( -- c ) Receive one character
|
||||
cacheflush:
|
||||
@ -----------------------------------------------------------------------------
|
||||
|
||||
-.ifdef m0core
|
||||
@ ARMv6 hat keine Speicherbarrieren. Das muss über einen syscall realisiert werden
|
||||
push {r4-r7, lr}
|
||||
movs r0, #0 @ ARM_SYNC_ICACHE
|
||||
@@ -180,14 +179,6 @@ cacheflush:
|
||||
@ Datenstruktur arm_sync_icache_args für den sysarch-Aufruf
|
||||
0:.word incipit
|
||||
.word totalsize
|
||||
-
|
||||
-.else
|
||||
- @ auf ARMv7 und später nehmen wir einfach die Barrien-Befehle
|
||||
- dmb
|
||||
- dsb
|
||||
- isb
|
||||
- bx lr
|
||||
-.endif
|
||||
|
||||
@ -----------------------------------------------------------------------------
|
||||
Wortbirne Flag_foldable_0, "arguments" @ ( -- a-addr )
|
8
lang/mecrisp-stellaris/pkg-message
Normal file
8
lang/mecrisp-stellaris/pkg-message
Normal file
@ -0,0 +1,8 @@
|
||||
This port is written in ARM32 assembly. On ARM64 systems, it only runs
|
||||
on those that support the AArch32 execution state in EL0. If the port
|
||||
does not run, check dmesg for a line like
|
||||
|
||||
Processor Features 0 = <AdvSIMD,FP,EL3 32,EL2 32,EL1 32,EL0 32>
|
||||
|
||||
If the feature string "EL0 32" does not occur, your processor cannot
|
||||
run ARM32 binaries and thus will not be able to run this port either.
|
Loading…
Reference in New Issue
Block a user