lang/ocaml: fix build on armv7

armv7 requires -Wl,-znotext in LDFLAGS (same as i386), added definition for triple target and include term.h in the test for tgetent.

PR:		239157
Approved by:	michipili@gmail.com (maintainer timeout), tcberner (mentor)
Differential Revision:	https://reviews.freebsd.org/D21085
This commit is contained in:
Piotr Kubaj 2019-08-01 19:30:38 +00:00
parent 1c6dc24559
commit 696b6effde
2 changed files with 22 additions and 5 deletions

View File

@ -20,7 +20,6 @@ LICENSE_FILE_QPL10= ${WRKSRC}/LICENSE
LICENSE_PERMS_QPL10= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
BROKEN_aarch64= Does not build: sh: as: not found
BROKEN_armv7= Does not build: hasgot.c: undefined reference to `tgetent'
BROKEN_sparc64= No rule to make target 'none.o', needed by 'libasmrun.a'
BROKEN_mips64= No ASM support
BROKEN_mips= No ASM support
@ -33,6 +32,7 @@ ALL_TARGET= world.opt
STRIP=
SSP_UNSAFE= yes
MAKE_JOBS_UNSAFE= yes
LDFLAGS_armv7= -Wl,-znotext
LDFLAGS_i386= -Wl,-znotext
CONFIGURE_ARGS= -verbose -prefix "${PREFIX}" \
@ -151,7 +151,7 @@ post-install:
${INSTALL_DATA} ${_DISTDIR}${DOCSDISTNAME}-refman.pdf ${STAGEDIR}${DOCSDIR}
.endif
# Spacetime profiling is only available for native code on 64-bit targets
.if ${ARCH} == i386 || ${ARCH} == powerpc
.if ${ARCH} == armv7 || ${ARCH} == i386 || ${ARCH} == powerpc
@${REINPLACE_CMD} -e '/raw_spacetime_lib/d' ${TMPPLIST}
.endif

View File

@ -35,7 +35,15 @@
powerpc-*-netbsd*) arch=power; model=ppc; system=elf;;
powerpc-*-openbsd*) arch=power; model=ppc; system=bsd_elf;;
s390x*-*-linux*) arch=s390x; model=z10; system=elf;;
@@ -946,6 +951,7 @@ case "$target" in
@@ -930,6 +935,7 @@ case "$target" in
armv6t2*-*-linux-gnueabi) arch=arm; model=armv6t2; system=linux_eabi;;
armv6*-*-linux-gnueabi) arch=arm; model=armv6; system=linux_eabi;;
armv6*-*-freebsd*) arch=arm; model=armv6; system=freebsd;;
+ armv7*-*-freebsd*) arch=arm; model=armv7; system=freebsd;;
earmv6*-*-netbsd*) arch=arm; model=armv6; system=netbsd;;
earmv7*-*-netbsd*) arch=arm; model=armv7; system=netbsd;;
armv5te*-*-linux-gnueabi) arch=arm; model=armv5te; system=linux_eabi;;
@@ -946,6 +952,7 @@ case "$target" in
x86_64-*-darwin*) arch=amd64; system=macosx;;
x86_64-*-mingw*) arch=amd64; system=mingw;;
aarch64-*-linux*) arch=arm64; system=linux;;
@ -43,7 +51,7 @@
x86_64-*-cygwin*) arch=amd64; system=cygwin;;
esac
@@ -1051,10 +1057,12 @@ case "$arch,$system" in
@@ -1051,10 +1058,12 @@ case "$arch,$system" in
case "$nativecc" in gcc*) ;; *) cc_profile='-xpg';; esac;;
amd64,linux) profiling='true';;
amd64,openbsd) profiling='true';;
@ -56,7 +64,16 @@
arm,linux*) profiling='true';;
power,elf) profiling='true';;
power,bsd*) profiling='true';;
@@ -2029,7 +2037,7 @@ MKLIB=${TOOLPREF}ar rc \$(1) \$(2); ${TOOLPREF}ranlib
@@ -1168,7 +1177,7 @@ fi
if test "$with_curses" = "yes"; then
for libs in "" "-lcurses" "-ltermcap" "-lcurses -ltermcap" "-lncurses"; do
- if sh ./hasgot $libs tgetent tgetstr tgetnum tputs; then
+ if sh ./hasgot -i term.h $libs tgetent tgetstr tgetnum tputs; then
inf "termcap functions found (with libraries '$libs')"
echo "#define HAS_TERMCAP" >> s.h
curseslibs="${libs}"
@@ -2029,7 +2037,7 @@ MKLIB=${TOOLPREF}ar rc \$(1) \$(2); ${TOOLPREF}ranlib
#ml Printf.sprintf "${TOOLPREF}ar rc %s %s %s; ${TOOLPREF}ranlib %s"
#ml out opts files out;;
EOF