pkgsrc-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
lang/gcc44: patches for NetBSD
Hello,
lang/gcc44 is broken on NetBSD. The attached patches fixes
gfortran and g++ on NetBSD. Java remains broken, therefore I
have deactivated it for NetBSD. To test this fix, please copy
Makefile and distinfo to the lang/gcc4 directory and the
three patch files to lang/gcc4/patches. Other platforms
should be unaffected by these patches. I have used current
pkgsrc from the 10th of Februar.
With similar patches I have successfully updated wip/gcc45
to the latest stable version 4.5.2 and also created a working
wip/gcc46 with the latest 4.6.0 snapshot. I will submit them
to pkgsrc-wip after I get feedback on lang/gcc44 from the
pkgsrc experts if these patches are the right way to do it.
Every feedback is welcome. Personally I am only interested in
gfortran and we need it for lapack in pkgsrc, so in my
opinion a lang/gcc44 with a missing java compiler is better
then being without gcc44 at all on NetBSD.
Cheers,
Kai-Uwe Eckhardt
--
--
Schon gehÃrt? GMX hat einen genialen Phishing-Filter in die
Toolbar eingebaut! http://www.gmx.net/de/go/toolbar
1) distinfo
$NetBSD: distinfo,v 1.4 2010/05/06 10:21:17 adam Exp $
SHA1 (gcc-4.4.4.tar.bz2) = 45d1e7242a08cbb7a343ed2bf640a5afd0ebe098
RMD160 (gcc-4.4.4.tar.bz2) = b41f26be28cc1ef643135230dfa94876d8a02dd6
Size (gcc-4.4.4.tar.bz2) = 63018867 bytes
SHA1 (patch-aa) = b7180161a0c9eb63738ebf9586e52591ef43c636
SHA1 (patch-ab) = e254456a6da7090f7ba37d3b55a17be2dd157f88
SHA1 (patch-ac) = 0af9845a62f9a6f8ec27657d0ae0c16394e9fc12
SHA1 (patch-ad) = 86dc05e6ea977ad869e5d63beb493750ab01a807
SHA1 (patch-ae) = 831481496b5b5f246f51d9a4fe9314f07f81a842
SHA1 (patch-af) = e8707437f416713b6f1e68b992bce7a13466d0f9
SHA1 (patch-ag) = 077bed181ee4bad36eb23c817a1708950b69a1ad
SHA1 (patch-ah) = 2a3e72b1b808a0f5911c48a4cd5ace6439c0bad9
SHA1 (patch-ai) = a7329ed9f8bb533c4bf0c2f4cc97b6c49d737148
SHA1 (patch-aj) = 8f8aac6ceb1b4d1b0d426e3139ac053c05ed3178
2) patches/patch-ah
--- libgfortran/intrinsics/c99_functions.c.orig 2011-02-11 12:29:08.000000000
+0100
+++ libgfortran/intrinsics/c99_functions.c
@@ -537,7 +537,7 @@
{
if (x > DBL_MAX || x < -DBL_MAX)
{
-#ifdef HAVE_NEXTAFTERL
+#if 0
static long double prechalf = nexafterl (0.5L, LDBL_MAX);
#else
static long double prechalf = 0.5L;
3) patches/patch-ai
--- gcc/fortran/f95-lang.c.orig 2010-04-21 23:26:11.000000000 +0200
+++ gcc/fortran/f95-lang.c
@@ -871,10 +871,17 @@
gfc_define_builtin ("__builtin_cabsl", func_clongdouble_longdouble,
BUILT_IN_CABSL, "cabsl", true);
+#if defined (__NetBSD__)
+ gfc_define_builtin ("__builtin_cabs", func_cdouble_double,
+ BUILT_IN_CABS, "__c99_cabs", true);
+ gfc_define_builtin ("__builtin_cabsf", func_cfloat_float,
+ BUILT_IN_CABSF, "__c99_cabsf", true);
+#else
gfc_define_builtin ("__builtin_cabs", func_cdouble_double,
BUILT_IN_CABS, "cabs", true);
gfc_define_builtin ("__builtin_cabsf", func_cfloat_float,
BUILT_IN_CABSF, "cabsf", true);
+#endif
gfc_define_builtin ("__builtin_copysignl", mfunc_longdouble[1],
BUILT_IN_COPYSIGNL, "copysignl", true);
4) patches/patch-aj
--- libstdc++-v3/config/os/bsd/netbsd/ctype_base.h.orig 2011-02-11
20:02:56.000000000 +0100
+++ libstdc++-v3/config/os/bsd/netbsd/ctype_base.h
@@ -42,17 +42,17 @@
// NB: Offsets into ctype<char>::_M_table force a particular size
// on the mask type. Because of this, we don't use an enum.
typedef unsigned char mask;
- static const mask upper = _U;
- static const mask lower = _L;
- static const mask alpha = _U | _L;
- static const mask digit = _N;
- static const mask xdigit = _N | _X;
- static const mask space = _S;
- static const mask print = _P | _U | _L | _N | _B;
- static const mask graph = _P | _U | _L | _N;
- static const mask cntrl = _C;
- static const mask punct = _P;
- static const mask alnum = _U | _L | _N;
+ static const mask upper = _CTYPE_U;
+ static const mask lower = _CTYPE_L;
+ static const mask alpha = _CTYPE_U | _CTYPE_L;
+ static const mask digit = _CTYPE_N;
+ static const mask xdigit = _CTYPE_N | _CTYPE_X;
+ static const mask space = _CTYPE_S;
+ static const mask print = _CTYPE_P | _CTYPE_U | _CTYPE_L | _CTYPE_N |
_CTYPE_B;
+ static const mask graph = _CTYPE_P | _CTYPE_U | _CTYPE_L | _CTYPE_N;
+ static const mask cntrl = _CTYPE_C;
+ static const mask punct = _CTYPE_P;
+ static const mask alnum = _CTYPE_U | _CTYPE_L | _CTYPE_N;
};
_GLIBCXX_END_NAMESPACE
5) Makefile
# $NetBSD: Makefile,v 1.14 2010/07/15 21:35:10 asau Exp $
DISTNAME= gcc-${GCC_VERSION}
PKGNAME= gcc44-${GCC_VERSION}
PKGREVISION= 1
CATEGORIES= lang
MASTER_SITES= ${MASTER_SITE_GNU:=gcc/gcc-${GCC_VERSION}/}
EXTRACT_SUFX= .tar.bz2
MAINTAINER= blair.sadewitz%gmail.com@localhost
HOMEPAGE= http://gcc.gnu.org/
COMMENT= GNU Compiler Collection 4.4
LICENSE= gnu-gpl-v2 AND gnu-gpl-v3 AND gnu-lgpl-v2 AND
gnu-lgpl-v3
PKG_DESTDIR_SUPPORT= user-destdir
USE_TOOLS+= awk:run bash:run perl chmod \
gmake:run makeinfo msgfmt bison flex gm4 \
sed:run unzip
DEPENDS+= zip-[0-9]*:../../archivers/zip
GCC_VERSION= 4.4.4
GCC_SUBPREFIX= gcc44
GCC_PREFIX= ${PREFIX}/${GCC_SUBPREFIX}
FILES_SUBST+= PKGNAME=${PKGNAME}
MESSAGE_SUBST+= GCC_PREFIX=${GCC_PREFIX}
# To avoid GNU surprises
CONFIG_SHELL= ${TOOLS_PATH.bash}
NOT_FOR_PLATFORM= Interix-*-*
UNLIMIT_RESOURCES+= datasize
.include "../../mk/bsd.prefs.mk"
.include "options.mk"
# Determine whether to use binutils
# REPLACE_AWK+= gcc/testsuite/gcc.test-framework/test-framework.awk \
# gcc/mkmap-symver.awk \
# gcc/optc-gen.awk \
# gcc/mkmap-flat.awk \
# gcc/opt-gather.awk \
# gcc/opth-gen.awk \
# gcc/opt-functions.awk
REPLACE_BASH+= contrib/dg-cmp-results.sh
REPLACE_BASH+= contrib/reghunt/bin/gcc-svn-patchlist
REPLACE_BASH+= contrib/reghunt/bin/gcc-svn-update
REPLACE_BASH+= contrib/reghunt/bin/gcc-svn-update-fix
REPLACE_BASH+= contrib/reghunt/bin/reg-hunt
REPLACE_BASH+= contrib/reghunt/bin/reg-test
REPLACE_BASH+= contrib/reghunt/date_based/reg_periodic
REPLACE_BASH+= contrib/reghunt/date_based/reg_search
REPLACE_BASH+= gcc/dbgcnt.def
REPLACE_BASH+= gcc/testsuite/gcc.test-framework/gen_directive_tests
REPLACE_BASH+= libstdc++-v3/scripts/run_doxygen
# Optional languages - change as required
# Ada could be added although there is a bootstrapping issue. See
# ../gcc34-ada for guidance
BUILD_DEFS+= BUILD_CXX BUILD_FORTRAN BUILD_JAVA BUILD_OBJC
BUILD_CXX?= YES
BUILD_FORTRAN?= YES
.if ${OPSYS} == "NetBSD"
BUILD_JAVA?= NO
.else
BUILD_JAVA?= YES
.endif
BUILD_OBJC?= YES
LANGS= c
#.if !empty(BUILD_CXX:M[aA][dD][aA])
#LANGS+= ada
#.endif
.if !empty(BUILD_CXX:M[Yy][Ee][Ss])
LANGS+= c++
.endif
.if !empty(BUILD_FORTRAN:M[Yy][Ee][Ss])
LANGS+= fortran
.endif
.if !empty(BUILD_JAVA:M[Yy][Ee][Ss])
LANGS+= java
.endif
.if !empty(BUILD_OBJC:M[Yy][Ee][Ss])
LANGS+= objc
.endif
CONFIGURE_ARGS+= --prefix=${GCC_PREFIX:Q}
CONFIGURE_ARGS+= --enable-languages=${LANGS:Q}
CONFIGURE_ARGS+= --with-system-zlib
CONFIGURE_ARGS+= --enable-shared
CONFIGURE_ARGS+= --enable-__cxa_atexit
CONFIGURE_ARGS+= --enable-long-long
CONFIGURE_ARGS+= --with-local-prefix=${GCC_PREFIX:Q}
CONFIGURE_ARGS+= --disable-libssp
CONFIGURE_ARGS+= --enable-threads=posix
CONFIGURE_ARGS+= --with-gmp=${BUILDLINK_PREFIX.gmp}
CONFIGURE_ARGS+= --with-mpfr=${BUILDLINK_PREFIX.mpfr}
CONFIGURE_ENV+= CONFIG_SHELL=${CONFIG_SHELL}
# ${WRKSRC}/gcc-4.4.1/libjava/contrib/aotcompile.py.in stores the path to
# a 'make' program so we need to make sure we give it the installed 'make' and
not
# the tool wrapped one.
CONFIGURE_ENV+= PKGSRC_MAKE=${TOOLS_PATH.gmake}
MAKE_ENV+= PKGSRC_MAKE=${TOOLS_PATH.gmake}
# fastjar-0.93 from pkgsrc/archivers/fastjar seems to trigger a build
# failure (seen on NetBSD-5.0/i386) when building java. So in case
# the fastjar package is installed, make sure the configure script
# doesn't pick it up.
CONFIGURE_ENV+= JAR=no
MAKE_ENV+= JAR=no
MAKE_ENV+= ac_cv_prog_JAR=no
MAKE_ENV+= ICONVPREFIX=${BUILDLINK_PREFIX.iconv}
MAKE_ENV+= SHELL=${CONFIG_SHELL}
MAKE_ENV+= ac_cv_path_ac_cv_prog_chmod=${TOOLS_CHMOD}
# ${WRKSRC}/fixincludes/ looks for sed and compiles the path to sed into
# a binary so we need to make sure we give it the installed sed and not
# the tool wrapped one.
MAKE_ENV+= lt_cv_path_SED=${TOOLS_SED}
CPPFLAGS+= -I${BUILDLINK_DIR}/include
CFLAGS+= -I${BUILDLINK_DIR}/include
# Somone should fix this so it will match the NetBSD system compiler
#.if ${OPSYS} == "NetBSD"
#GCC_PLATFORM= ${LOWER_ARCH}--${LOWER_OPSYS}${APPEND_ELF}
#CONFIGURE_ARGS+= --host=${GCC_PLATFORM:Q}
#MAKE_ENV+= AR=/usr/bin/ar
#.endif # NetBSD
LIBS.SunOS+= -lgmp
pre-configure:
.if ${OPSYS} == "DragonFly"
${CP} ${FILESDIR}/dragonfly.h ${WRKSRC}/gcc/config/dragonfly.h
${CP} ${FILESDIR}/dragonfly-spec.h ${WRKSRC}/gcc/config/dragonfly-spec.h
${CP} ${FILESDIR}/i386-dragonfly.h ${WRKSRC}/gcc/config/i386/dragonfly.h
${CP} ${FILESDIR}/i386-dragonfly64.h
${WRKSRC}/gcc/config/i386/dragonfly64.h
.endif
do-configure:
${MKDIR} ${WRKDIR}/obj
cd ${WRKDIR}/obj; ${SETENV} ${CONFIGURE_ENV} ${CONFIG_SHELL}
${WRKSRC}/configure ${CONFIGURE_ARGS}
do-build:
(${_ULIMIT_CMD} cd ${WRKDIR}/obj && ${SETENV} ${MAKE_ENV} ${GMAKE}
-j${MAKE_JOBS:U1:Q} )
do-test:
.if (${MACHINE_GNU_ARCH} == "x86_64")
(cd ${FILESDIR} && ${CP} netbsd64macro.dfs
${WRKSRC}/gcc/testsuite/ada/acats/support/macro.dfs)
.endif
(cd ${WRKDIR}/obj && ${GMAKE} -k check)
do-install:
(cd ${WRKDIR}/obj && ${SETENV} ${MAKE_ENV} ${GMAKE} install
DESTDIR=${DESTDIR} \
&& ${TEST} -f ${DESTDIR}${GCC_PREFIX}/bin/cc || ${LN} -f
${DESTDIR}${GCC_PREFIX}/bin/gcc ${DESTDIR}${GCC_PREFIX}/bin/cc)
GENERATE_PLIST+= \
cd ${DESTDIR}${PREFIX} && ${FIND} ${GCC_SUBPREFIX} \( -type f -o -type
l \) -print \
| ${SORT} ;
.include "../../devel/gmp/buildlink3.mk"
.include "../../devel/zlib/buildlink3.mk"
.include "../../math/mpfr/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"
Home |
Main Index |
Thread Index |
Old Index