Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 10 Aug 2006 23:29:09 +0600 (YEKST)
From:      Stanislav Sedov <ssedov@mbsd.msk.ru>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/101774: [NEW PORT] devel/strongarm-elf-gcc: GNU gcc 4.1.1 for cross-target application development
Message-ID:  <20060810172909.EF9FB12C61@fonon.realnet>
Resent-Message-ID: <200608101930.k7AJUHMk080621@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>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@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@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@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@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,(.*),@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@exec mkdir -p %D/include
X@exec mkdir -p %D/share
X@dirrmtry man/man1
X@dirrmtry man/man7
X@dirrmtry man
X@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:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060810172909.EF9FB12C61>