ports/101774: [NEW PORT] devel/strongarm-elf-gcc: GNU gcc 4.1.1 for cross-target application development
Stanislav Sedov
ssedov at mbsd.msk.ru
Thu Aug 10 19:30:53 UTC 2006
>Number: 101774
>Category: ports
>Synopsis: [NEW PORT] devel/strongarm-elf-gcc: GNU gcc 4.1.1 for cross-target application development
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Thu Aug 10 19:30:16 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator: Stanislav Sedov
>Release: FreeBSD 7.0-CURRENT i386
>Organization:
MBSD labs, Inc.
>Environment:
System: FreeBSD fonon.realnet 7.0-CURRENT FreeBSD 7.0-CURRENT #1: Wed Aug 2 21:44:37 MSD
>Description:
FSF gcc-4.1 for cross-target development. This port brings C, C++ and
Objective C compillers with all target libraries (libstdc++, libsupc++,
libobjc, libssp, libgcc). Gloss and libc layer are provided through
newlib embedded C library.
It can be used to cross-compile operating system kernels (e.g. Linux, L4, etc)
for this architecture.
If you encounter any problems building/using/installing this port, please
make me know. It would help to improve this port in feature.
-- Stanislav Sedov <ssedov at mbsd.msk.ru>
WWW: http://gcc.gnu.org/
Note: it depends on ports/101690
>How-To-Repeat:
>Fix:
--- strongarm-elf-gcc-4.1.1.shar begins here ---
# This is a shell archive. Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file". Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
# cross-gcc
# cross-gcc/pkg-descr
# cross-gcc/Makefile
# cross-gcc/pkg-plist
# cross-gcc/files
# cross-gcc/files/patch-libobjc_archive.c
# cross-gcc/files/patch-libobjc_encoding.c
# cross-gcc/files/patch-libobjc_thr-objc.c
# cross-gcc/files/patch-libobjc_objects.c
# cross-gcc/files/patch-libobjc_gc.c
# cross-gcc/files/patch-libobjc_sendmsg.c
# cross-gcc/files/patch-libssp_configure.ac
# cross-gcc/files/patch-libssp_configure
# cross-gcc/distinfo
#
echo c - cross-gcc
mkdir -p cross-gcc > /dev/null 2>&1
echo x - cross-gcc/pkg-descr
sed 's/^X//' >cross-gcc/pkg-descr << 'END-of-cross-gcc/pkg-descr'
XFSF gcc-4.1 for cross-target development. This port brings C, C++ and
XObjective C compillers with all target libraries (libstdc++, libsupc++,
Xlibobjc, libssp, libgcc). Gloss and libc layer are provided through
Xnewlib embedded C library.
X
XIt can be used to cross-compile operating system kernels (e.g. Linux, L4, etc)
Xfor this architecture.
X
XIf you encounter any problems building/using/installing this port, please
Xmake me know. It would help to improve this port in feature.
X
X-- Stanislav Sedov <ssedov at mbsd.msk.ru>
X
XWWW: http://gcc.gnu.org/
END-of-cross-gcc/pkg-descr
echo x - cross-gcc/Makefile
sed 's/^X//' >cross-gcc/Makefile << 'END-of-cross-gcc/Makefile'
X# New ports collection makefile for: cross-gcc
X# Date created: 2006-08-10
X# Whom: Stanislav Sedov <ssedov at mbsd.msk.ru>
X#
X# $MBSDlabs$
X# $FreeBSD$
X#
X
XPORTNAME= gcc
XPORTVERSION= 4.1.1
XCATEGORIES= devel
XMASTER_SITES= ${MASTER_SITE_GCC}:gcc \
X ${MASTER_SITE_SOURCEWARE}:newlib
XMASTER_SITE_SUBDIR= releases/${DISTNAME}/:gcc newlib/:newlib
XDISTFILES= ${DISTNAME}${EXTRACT_SUFX}:gcc \
X newlib-${NEWLIB_VERSION}${NEWLIB_EXTRACT_SUFX}:newlib
XEXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}
X
XMAINTAINER= ssedov at mbsd.msk.ru
XCOMMENT= GNU gcc 4.1.1 for cross-target application development
X
XBUILD_DEPENDS= ${GAS_EXE}:${PORTSDIR}/devel/cross-binutils
XRUN_DEPENDS= ${GAS_EXE}:${PORTSDIR}/devel/cross-binutils
X
XWRKSRC= ${WRKDIR}/gcc-${PORTVERSION}
X
XUSE_BZIP2= yes
XUSE_GMAKE= yes
XUSE_BISON= yes
XGNU_CONFIGURE= yes
XSTRIP=
XNO_MTREE= yes
XNO_PACKAGE= no sense
X
X#
X# Needed for correct OPTIONS handling
X#
XLATEST_LINK= cross-gcc
X
X#
X# Newlib version to use
X#
XNEWLIB_VERSION= 1.14.0
XNEWLIB_EXTRACT_SUFX=.tar.gz
X
XGAS_EXE= ${LOCALBASE}/${OUR_TARGET}/bin/${PKGNAMEPREFIX}as
X
XOPTIONS= ARM "Build toolchain for arm processor" off \
X ARM9E "Build toolchain for arm9e processor" off \
X ARMEB "Build toolchain for armeb processor" off \
X CRIS "Build toolchain for cris processor" off \
X CRISV32 "Build toolchain for crisv32 processor" off \
X CRX "Build toolchain for crx processor" off \
X D30V "Build toolchain for d30v processor" off \
X EP9312 "Build toolchain for ep9312 processor" off \
X FR30 "Build toolchain for fr30 processor" off \
X FRV "Build toolchain for frv processor" off \
X HPPA "Build toolchain for hppa processor" off \
X I386 "Build toolchain for i386 processor" off \
X I960 "Build toolchain for i960 processor" off \
X IQ2000 "Build toolchain for iq2000 processor" off \
X M32C "Build toolchain for m32c processor" off \
X M32R "Build toolchain for m32r processor" off \
X M68HC11 "Build toolchain for m68hc11 processor" off \
X M68HC12 "Build toolchain for m68hc12 processor" off \
X MCORE "Build toolchain for mcore processor" off \
X MIPS "Build toolchain for mips processor" off \
X MIPSEL "Build toolchain for mipsel processor" off \
X MN10200 "Build toolchain for mn10200 processor" off \
X MN10300 "Build toolchain for mn10300 processor" off \
X MT "Build toolchain for mt processor" off \
X POWERPC "Build toolchain for powerpc processor" off \
X POWERPCLE "Build toolchain for ppc(le) processor" off \
X SH1 "Build toolchain for sh1 processor" off \
X SH2 "Build toolchain for sh2 processor" off \
X SH3 "Build toolchain for sh3 processor" off \
X SH4 "Build toolchain for sh4 processor" off \
X SH5 "Build toolchain for sh5 processor" off \
X SH5LE "Build toolchain for sh5le processor" off \
X SH64 "Build toolchain for sh64 processor" off \
X SH64EB "Build toolchain for sh64eb processor" off \
X SH64LE "Build toolchain for sh64le processor" off \
X SPARC "Build toolchain for sparc processor" off \
X SPARC64 "Build toolchain for sparc64 processor" off \
X SPARC86X "Build toolchain for sparc86x processor" off \
X SPARCLET "Build toolchain for sparclet processor" off \
X SPARCLITE "Build toolchain for sparclite processor" off \
X STRONGARM "Build toolchain for strongarm processor" off \
X XSCALE "Build toolchain for xscale processor" off \
X XSTORMY16 "Build toolchain for xstormy16 processor" off \
X
XOPT_AVAIL= ${OPTIONS:C/[ \t]*".*"//g:C/[ \t]*off//g}
X
XPREFIX?= ${LOCALBASE}/${OUR_TARGET}
X.include <bsd.port.pre.mk>
X
X.for OPT in ${OPT_AVAIL}
X. if defined(WITH_${OPT}) && defined(OUR_CPU)
XBROKEN= you can select only one cpu at once
X. endif
X. if defined(WITH_${OPT})
XOUR_CPU= ${OPT:L}
X. if defined(${OPT}_ARGS)
XCONFIGURE_ARGS= ${${OPT}_ARGS}
X. endif
X. endif
X.endfor
X
X.if !defined(OUR_CPU)
XBROKEN= you should select at least one CPU
X.endif
X
XOUR_TARGET= ${OUR_CPU}-portbuild-${OUR_ABI}
X
XPKGNAMEPREFIX= ${OUR_CPU}-${OUR_ABI}-
X
X#
X# Some targets don't support ELF ABI
X#
XEP9312_ABIS= coff/elf
XHPPA_ABIS= pro
XI386_ABIS= coff/elf
XI960_ABIS= coff
XSH_ABIS= pe
XSPARC64_ABIS= elf
XSPARCLET_ABIS= aout
XSPARC_ABIS= elf
XSTRONGARM_ABIS= coff/elf
XXSCALE_ABIS= coff/elf
X
X#
X# Look if ABI was supplied by user. Test it for availability in that case
X#
X.if defined(WITH_ABI)
XOUR_ABI= ${WITH_ABI}
X. if defined(${OUR_CPU:U}_ABIS)
XABIS_AVAIL=${${OUR_CPU:U}_ABIS:S,/, ,g}
X#
X# Loop is required for :M expansion
X#
X. for ABI in ${WITH_ABI}
X. if ${ABIS_AVAIL:M${ABI}} == ""
XBROKEN= ${WITH_ABI} ABI isn't supported on target architecture by newlib now
X. endif
X. endfor
X. endif
X.else
X. if defined(${OUR_CPU:U}_ABIS)
XOUR_ABI=${${OUR_CPU:U}_ABIS:T}
X. else
XOUR_ABI= elf
X. endif
X.endif
X
X#
X# override user-defined settings in make.conf
X#
XWITHOUT_CPU_CFLAGS= yes
X
XMAKE_FLAGS= LANGUAGES="c c++ objc"
XMAKE_ENV= NO_CPU_CFLAGS=true \
X PATH=${PREFIX}/bin:${PATH}
X
XCONFIGURE_ENV= PATH=${PREFIX}/bin:${PATH}
X
XOUR_LIBDIR= ${PREFIX}/lib/gcc/${OUR_TARGET}
X
XCONFIGURE_ARGS= --target=${OUR_TARGET} \
X --enable-languages=c,c++,objc \
X --with-dwarf2 \
X --with-system-zlib \
X --disable-nls \
X --with-libiconv-prefix=${LOCALDIR} \
X --libdir=${OUR_LIBDIR} \
X --with-gxx-include-dir=${OUR_LIBDIR}/include/cxx/ \
X --with-newlib \
X --disable-shared
X
XMAN1= ${OUR_TARGET}-cpp.1 \
X ${OUR_TARGET}-g++.1 \
X ${OUR_TARGET}-gcc.1 \
X ${OUR_TARGET}-gcov.1 \
X
XMAN7= fsf-funding.7 gfdl.7 gpl.7
XINFO= cpp cppinternals gcc gccinstall gccint
X
XGCC_DIRS= include lib libexec share ${OUR_TARGET}/include \
X ${OUR_TARGET}/lib
XGCC_BINS= g++ c++ gccbug cpp gcc gcc-${PORTVERSION}
X
X.if defined(WITH_CPU)
XCONFIGURE_ARGS+=--with-cpu=${WITH_CPU} \
X --enable-cxx-flags=${WITH_CPU}
X.endif
X
X.if defined(WITH_FLOAT_TYPE)
XCONFIGURE_ARGS+=--with-float=${WITH_FLOAT_TYPE}
X.endif
X
Xpre-everything::
X @${ECHO_MSG}
X @${ECHO_MSG} "---------------------------------------------------------"
X @${ECHO_MSG} "You can specify default CPU target using WITH_CPU option"
X @${ECHO_MSG} "Target FPU type can be provided through WITH_FLOAT_TYPE"
X @${ECHO_MSG}
X @${ECHO_MSG} "NOTE: target architecture might not support selected cpu/"
X @${ECHO_MSG} "/float type. Refer to binutils documentation for full"
X @${ECHO_MSG} "list of supported options"
X @${ECHO_MSG} "---------------------------------------------------------"
X @${ECHO_MSG}
X
Xpost-extract:
X @(cd ${WRKSRC} && ${TAR} -xzf \
X ${DISTDIR}/newlib-${NEWLIB_VERSION}${NEWLIB_EXTRACT_SUFX})
X @${LN} -sf ${WRKSRC}/newlib-${NEWLIB_VERSION}/newlib ${WRKSRC}/newlib
X @${LN} -sf ${WRKSRC}/newlib-${NEWLIB_VERSION}/libgloss \
X ${WRKSRC}/libgloss
X
Xpost-install:
X#
X# Build pkg-plist
X#
X
X.for DIR in ${GCC_DIRS:S,^,${PREFIX}/,}
X @${FIND} ${DIR} ! -type d ! -regex .*/ldscripts/[^/]* |\
X ${SED} 's,^${PREFIX}/,,' >> ${TMPPLIST}
X @${FIND} ${DIR} -type d ! -name ldscripts | ${SORT} -r | \
X ${SED} -E -e 's,(.*), at unexec rmdir \1 2>/dev/null || true,' >> \
X ${TMPPLIST}
X.endfor
X
X.for BIN in ${GCC_BINS}
X @${ECHO_CMD} "bin/${OUR_TARGET}-${BIN}" >> ${TMPPLIST}
X.endfor
X
X @${ECHO_CMD} "@unexec rmdir ${OUR_TARGET} 2>/dev/null || true" >> \
X ${TMPPLIST}
X
X.include <bsd.port.post.mk>
END-of-cross-gcc/Makefile
echo x - cross-gcc/pkg-plist
sed 's/^X//' >cross-gcc/pkg-plist << 'END-of-cross-gcc/pkg-plist'
X at exec mkdir -p %D/include
X at exec mkdir -p %D/share
X at dirrmtry man/man1
X at dirrmtry man/man7
X at dirrmtry man
X at dirrmtry bin
END-of-cross-gcc/pkg-plist
echo c - cross-gcc/files
mkdir -p cross-gcc/files > /dev/null 2>&1
echo x - cross-gcc/files/patch-libobjc_archive.c
sed 's/^X//' >cross-gcc/files/patch-libobjc_archive.c << 'END-of-cross-gcc/files/patch-libobjc_archive.c'
X--- libobjc/archive.c.orig Thu Aug 10 12:44:55 2006
X+++ libobjc/archive.c Thu Aug 10 13:04:11 2006
X@@ -24,7 +24,7 @@
X however invalidate any other reasons why the executable file might be
X covered by the GNU General Public License. */
X
X-#include "tconfig.h"
X+//#include "tconfig.h"
X #include "objc/runtime.h"
X #include "objc/typedstream.h"
X #include "objc/encoding.h"
END-of-cross-gcc/files/patch-libobjc_archive.c
echo x - cross-gcc/files/patch-libobjc_encoding.c
sed 's/^X//' >cross-gcc/files/patch-libobjc_encoding.c << 'END-of-cross-gcc/files/patch-libobjc_encoding.c'
X--- libobjc/encoding.c.orig Thu Aug 10 12:48:07 2006
X+++ libobjc/encoding.c Thu Aug 10 13:04:12 2006
X@@ -29,9 +29,9 @@
X
X /* FIXME: This file has no business including tm.h. */
X
X-#include "tconfig.h"
X+//#include "tconfig.h"
X #include "coretypes.h"
X-#include "tm.h"
X+//#include "tm.h"
X #include "objc/objc-api.h"
X #include "objc/encoding.h"
X #include <stdlib.h>
END-of-cross-gcc/files/patch-libobjc_encoding.c
echo x - cross-gcc/files/patch-libobjc_thr-objc.c
sed 's/^X//' >cross-gcc/files/patch-libobjc_thr-objc.c << 'END-of-cross-gcc/files/patch-libobjc_thr-objc.c'
X--- libobjc/thr-objc.c.orig Thu Aug 10 12:51:46 2006
X+++ libobjc/thr-objc.c Thu Aug 10 13:04:13 2006
X@@ -33,9 +33,9 @@
X #define _XOPEN_SOURCE 500
X #endif
X #include "config.h"
X-#include "tconfig.h"
X+//#include "tconfig.h"
X #include "coretypes.h"
X-#include "tm.h"
X+//#include "tm.h"
X #include "defaults.h"
X #include "objc/thr.h"
X #include "objc/runtime.h"
END-of-cross-gcc/files/patch-libobjc_thr-objc.c
echo x - cross-gcc/files/patch-libobjc_objects.c
sed 's/^X//' >cross-gcc/files/patch-libobjc_objects.c << 'END-of-cross-gcc/files/patch-libobjc_objects.c'
X--- libobjc/objects.c.orig Thu Aug 10 12:52:01 2006
X+++ libobjc/objects.c Thu Aug 10 13:04:14 2006
X@@ -24,7 +24,7 @@
X however invalidate any other reasons why the executable file might be
X covered by the GNU General Public License. */
X
X-#include "tconfig.h" /* include defs of bzero for target */
X+//#include "tconfig.h" /* include defs of bzero for target */
X #include "objc/objc.h"
X #include "objc/runtime.h" /* the kitchen sink */
X
END-of-cross-gcc/files/patch-libobjc_objects.c
echo x - cross-gcc/files/patch-libobjc_gc.c
sed 's/^X//' >cross-gcc/files/patch-libobjc_gc.c << 'END-of-cross-gcc/files/patch-libobjc_gc.c'
X--- libobjc/gc.c.orig Thu Aug 10 12:52:26 2006
X+++ libobjc/gc.c Thu Aug 10 13:04:15 2006
X@@ -25,7 +25,7 @@
X This exception does not however invalidate any other reasons why
X the executable file might be covered by the GNU General Public License. */
X
X-#include "tconfig.h"
X+//#include "tconfig.h"
X #include "objc/objc.h"
X #include "objc/encoding.h"
X
END-of-cross-gcc/files/patch-libobjc_gc.c
echo x - cross-gcc/files/patch-libobjc_sendmsg.c
sed 's/^X//' >cross-gcc/files/patch-libobjc_sendmsg.c << 'END-of-cross-gcc/files/patch-libobjc_sendmsg.c'
X--- libobjc/sendmsg.c.orig Thu Aug 10 12:53:48 2006
X+++ libobjc/sendmsg.c Thu Aug 10 13:04:16 2006
X@@ -29,9 +29,9 @@
X /* FIXME: This should be using libffi instead of __builtin_apply
X and friends. */
X
X-#include "tconfig.h"
X+//#include "tconfig.h"
X #include "coretypes.h"
X-#include "tm.h"
X+//#include "tm.h"
X #include "objc/runtime.h"
X #include "objc/sarray.h"
X #include "objc/encoding.h"
END-of-cross-gcc/files/patch-libobjc_sendmsg.c
echo x - cross-gcc/files/patch-libssp_configure.ac
sed 's/^X//' >cross-gcc/files/patch-libssp_configure.ac << 'END-of-cross-gcc/files/patch-libssp_configure.ac'
X--- libssp/configure.ac.orig Thu Aug 10 12:30:46 2006
X+++ libssp/configure.ac Thu Aug 10 13:04:17 2006
X@@ -21,8 +21,8 @@
X [version_specific_libs=no])
X AC_MSG_RESULT($version_specific_libs)
X
X-AM_MAINTAINER_MODE
X-AC_EXEEXT
X+dnl AM_MAINTAINER_MODE
X+dnl AC_EXEEXT
X
X AM_ENABLE_MULTILIB(, ..)
X
END-of-cross-gcc/files/patch-libssp_configure.ac
echo x - cross-gcc/files/patch-libssp_configure
sed 's/^X//' >cross-gcc/files/patch-libssp_configure << 'END-of-cross-gcc/files/patch-libssp_configure'
X--- libssp/configure.orig Thu Aug 10 12:32:03 2006
X+++ libssp/configure Thu Aug 10 13:04:18 2006
X@@ -2352,7 +2352,7 @@
X See \`config.log' for more details." >&5
X echo "$as_me: error: C compiler cannot create executables
X See \`config.log' for more details." >&2;}
X- { (exit 77); exit 77; }; }
X+}
X fi
X
X ac_exeext=$ac_cv_exeext
X@@ -2425,7 +2425,7 @@
X See \`config.log' for more details." >&5
X echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
X See \`config.log' for more details." >&2;}
X- { (exit 1); exit 1; }; }
X+}
X fi
X
X rm -f conftest$ac_cv_exeext
END-of-cross-gcc/files/patch-libssp_configure
echo x - cross-gcc/distinfo
sed 's/^X//' >cross-gcc/distinfo << 'END-of-cross-gcc/distinfo'
XMD5 (gcc-4.1.1.tar.bz2) = ad9f97a4d04982ccf4fd67cb464879f3
XSHA256 (gcc-4.1.1.tar.bz2) = 985cbb23a486570a8783395a42a8689218f5218a0ccdd6bec590eef341367bb7
XSIZE (gcc-4.1.1.tar.bz2) = 39172003
XMD5 (newlib-1.14.0.tar.gz) = 3fa663f131b355d3adb24ead4df678f2
XSHA256 (newlib-1.14.0.tar.gz) = 7db55671132c2943dbbdadfaa954915c23dbc329168575a42bb940ef4bf50a23
XSIZE (newlib-1.14.0.tar.gz) = 7981432
END-of-cross-gcc/distinfo
exit
--- strongarm-elf-gcc-4.1.1.shar ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list