lang/rexx-imc: link with cc instead of ld

This fixes the link on armv7 and makes it build without binutils.

MFH:		2025Q1
This commit is contained in:
Robert Clausecker 2025-02-19 17:38:59 +01:00
parent c8abed2462
commit 8a02a5ce5b
2 changed files with 85 additions and 26 deletions

View file

@ -1,6 +1,6 @@
PORTNAME= rexx-imc PORTNAME= rexx-imc
PORTVERSION= 1.76 PORTVERSION= 1.76
PORTREVISION= 4 PORTREVISION= 5
CATEGORIES= lang CATEGORIES= lang
MASTER_SITES= http://www.cs.ox.ac.uk/people/ian.collier/distribution/ \ MASTER_SITES= http://www.cs.ox.ac.uk/people/ian.collier/distribution/ \
ftp://ftp.sai.msu.su/pub/unix/rexx/ ftp://ftp.sai.msu.su/pub/unix/rexx/
@ -9,9 +9,6 @@ MAINTAINER= ports@FreeBSD.org
COMMENT= Procedural programming language designed by IBM's UK Laboratories COMMENT= Procedural programming language designed by IBM's UK Laboratories
WWW= https://www.cs.ox.ac.uk/people/ian.collier/Rexx/rexximc.html WWW= https://www.cs.ox.ac.uk/people/ian.collier/Rexx/rexximc.html
BROKEN_armv6= fails to link: /nxb-bin/usr/bin/ld: hidden symbol __aeabi_uidivmod in libgcc.a is referenced by DSO
BROKEN_armv7= fails to link: /nxb-bin/usr/bin/ld: hidden symbol __aeabi_uidivmod in libgcc.a is referenced by DSO
CONFLICTS= rexx-regina-* oorexx CONFLICTS= rexx-regina-* oorexx
HAS_CONFIGURE= yes HAS_CONFIGURE= yes
@ -22,7 +19,6 @@ CONFIGURE_ARGS= o all
# configures and builds in one step # configures and builds in one step
NO_BUILD= yes NO_BUILD= yes
USE_LDCONFIG= yes USE_LDCONFIG= yes
LLD_UNSAFE= yes
DOCFILES= rexx.info rexx.ref rexx.summary rexx.tech DOCFILES= rexx.info rexx.ref rexx.summary rexx.tech
RMEFILES= README README.Y2K README.bugreport README.docs \ RMEFILES= README README.Y2K README.bugreport README.docs \
@ -30,12 +26,6 @@ RMEFILES= README README.Y2K README.bugreport README.docs \
OPTIONS_DEFINE= DOCS EXAMPLES OPTIONS_DEFINE= DOCS EXAMPLES
post-patch:
# CFLAGS safeness for ARCHs other than i386
@${REINPLACE_CMD} -e 's|-O2||' ${WRKSRC}/Make
# CC safeness
@${REINPLACE_CMD} -E -e 's|^CC=.+$$|CC=${CC}|' ${WRKSRC}/Make
do-install: do-install:
(cd ${WRKSRC} && ${INSTALL_PROGRAM} rexx rxque rxstack \ (cd ${WRKSRC} && ${INSTALL_PROGRAM} rexx rxque rxstack \
${STAGEDIR}${PREFIX}/bin) ${STAGEDIR}${PREFIX}/bin)

View file

@ -1,7 +1,13 @@
--- Make.orig 2002-02-26 12:29:20 UTC --- Make.orig 2002-02-26 12:29:20 UTC
+++ Make +++ Make
@@ -18,7 +18,7 @@ CC=gcc # compiler an @@ -14,11 +14,11 @@ MAKEFILE=Makefile.REXXimc
LD=ld # linker for shared objects SRC=. # directory containing the source of REXX/imc
MAKE=make
MAKEFILE=Makefile.REXXimc
-CC=gcc # compiler and linker for programs
-LD=ld # linker for shared objects
+#CC=cc
+LD=$CC # linker for shared objects
COMPILEFLAG="" # general compilation flags for cc COMPILEFLAG="" # general compilation flags for cc
LINKFLAG="" # general linker flags *for cc* LINKFLAG="" # general linker flags *for cc*
-#STUFF="-DSTUFF_STACK" # uncomment if you like queuing stack to keyboard -#STUFF="-DSTUFF_STACK" # uncomment if you like queuing stack to keyboard
@ -19,6 +25,69 @@
*|unknown) *|unknown)
PREFIX="/usr/local" PREFIX="/usr/local"
;; ;;
@@ -158,7 +161,7 @@ case ${1:-nothing} in
shift
;;
o) # o (optimise)
- OPTFLAG="-O2"
+ OPTFLAG=""
STRIPFLAG="-s"
shift
;;
@@ -172,7 +175,7 @@ case ${1:-nothing} in
shift
;;
*) # <default>
- OPTFLAG="-O2"
+ OPTFLAG=""
STRIPFLAG="-s"
;;
esac
@@ -184,7 +187,7 @@ fi
#######################################################################
# Now calculate system dependent variables for Makefile
-# Note: if OPTFLAG is -O2 it can be changed to suit the compiler.
+# Note: if OPTFLAG is it can be changed to suit the compiler.
echo "Processing REXX/imc for $UNAME_S $UNAME_R"
@@ -215,7 +218,7 @@ case $UNAME_S:$UNAME_R in
;;
cc)
CCFLAG="-DFSTAT_FOR_CHARS -DHAS_MALLOPT -DDECLARE_RANDOM -DDECLARE_TIMEZONE"
- [ "x$OPTFLAG" = x-O2 ] && OPTFLAG="-fast"
+ [ "x$OPTFLAG" = x ] && OPTFLAG="-fast"
PIC="-KPIC"
SOFLAG="-G"
DLLFLAG="-G"
@@ -246,7 +249,7 @@ case $UNAME_S:$UNAME_R in
;;
cc)
PIC="-PIC"
- [ "x$OPTFLAG" = x-O2 ] && OPTFLAG="-O4"
+ [ "x$OPTFLAG" = x ] && OPTFLAG="-O4"
;;
*) echo "Warning: I don't know the options for $CC"\
"- trying the cc ones" >&2
@@ -281,7 +284,7 @@ case $UNAME_S:$UNAME_R in
REXXLIB="librexx.a"
MATH=""
PIC=""
- [ "x$OPTFLAG" = x-O2 ] && OPTFLAG="+O2"
+ [ "x$OPTFLAG" = x ] && OPTFLAG="+O2"
case $CC in
cc)
CCFLAG="-DHAS_MALLOPT -D_HPUX_SOURCE -DNO_LDL"
@@ -338,7 +341,7 @@ case $UNAME_S:$UNAME_R in
case $CC in
cc)
CCFLAG="$CCFLAG -Olimit 1400"
- [ "x$OPTFLAG" = x-O2 ] && OPTFLAG="-O3"
+ [ "x$OPTFLAG" = x ] && OPTFLAG="-O3"
;;
gcc) # already OK
;;
@@ -386,14 +389,14 @@ case $UNAME_S:$UNAME_R in @@ -386,14 +389,14 @@ case $UNAME_S:$UNAME_R in
esac esac
egrep -q tm_gmtoff /usr/include/time.h && CCFLAG="$CCFLAG -DHAS_GMTOFF" egrep -q tm_gmtoff /usr/include/time.h && CCFLAG="$CCFLAG -DHAS_GMTOFF"
@ -36,10 +105,14 @@
# Uncomment above line if you have problems with LD_LIBRARY_PATH # Uncomment above line if you have problems with LD_LIBRARY_PATH
case $CC in case $CC in
gcc) gcc)
@@ -407,6 +410,48 @@ case $UNAME_S:$UNAME_R in @@ -403,6 +406,48 @@ case $UNAME_S:$UNAME_R in
;; *) echo "Warning: I don't know the options for $CC"\
esac "- trying the gcc ones" >&2
;; CCFLAG="-DHAS_TTYCOM -D_REQUIRED -DRENAME_UNDELETE -DHAS_GMTOFF"
+ PIC="-fPIC"
+ ;;
+ esac
+ ;;
+ FreeBSD:4.*) + FreeBSD:4.*)
+ REXXLIB="librexx.so" + REXXLIB="librexx.so"
+ SOLINK="librexx.so" + SOLINK="librexx.so"
@ -67,9 +140,9 @@
+ RANLIB=ranlib + RANLIB=ranlib
+ MATH=rxmathfn.rxfn + MATH=rxmathfn.rxfn
+ LIBRARIES="" + LIBRARIES=""
+ SOFLAG="-shared --export-dynamic" + SOFLAG="-shared -rdynamic"
+ : ${RUNLIBS='-L$(LIBDIR) -Wl,-rpath,$(PREFIX)/lib'} + : ${RUNLIBS='-L$(LIBDIR) -Wl,-rpath,$(PREFIX)/lib'}
+ DLLFLAG="-shared --export-dynamic" + DLLFLAG="-shared -rdynamic -Wl,-soname=$(SONAME)"
+ case $CC in + case $CC in
+ gcc) + gcc)
+ CCFLAG="${CFLAGS} -DHAS_TTYCOM -DRENAME_UNDELETE -DHAS_GMTOFF" + CCFLAG="${CFLAGS} -DHAS_TTYCOM -DRENAME_UNDELETE -DHAS_GMTOFF"
@ -78,10 +151,6 @@
+ *) echo "Warning: I don't know the options for $CC"\ + *) echo "Warning: I don't know the options for $CC"\
+ "- trying the gcc ones" >&2 + "- trying the gcc ones" >&2
+ CCFLAG="${CFLAGS} -DHAS_TTYCOM -DRENAME_UNDELETE -DHAS_GMTOFF" + CCFLAG="${CFLAGS} -DHAS_TTYCOM -DRENAME_UNDELETE -DHAS_GMTOFF"
+ PIC="-fPIC" PIC="-fPIC"
+ ;; ;;
+ esac esac
+ ;;
unknown:*|*:*)
echo "I am not configured for this platform - guessing some options" >&2
echo "(You will not be able to use shared libraries)" >&2