diff options
Diffstat (limited to 'lang')
32 files changed, 2426 insertions, 152 deletions
diff --git a/lang/ifc/Makefile b/lang/ifc/Makefile index 39ecff1b0aed..b060b9685225 100644 --- a/lang/ifc/Makefile +++ b/lang/ifc/Makefile @@ -7,86 +7,141 @@ PORTNAME= ifc PORTVERSION= 6.0.1.304 -CATEGORIES= lang devel emulators linux -MASTER_SITES=# +PORTREVISION= 1 +CATEGORIES= lang linux devel +MASTER_SITES= DISTNAME= l_fc_p_6.0.1.304 EXTRACT_SUFX= .tar -MAINTAINER= chat95@mbox.kyoto-inet.or.jp +MAINTAINER= maho@FreeBSD.org -BUILD_DEPENDS= rpm2cpio:${PORTSDIR}/archivers/rpm2cpio \ - ${LINUXBASE}/usr/bin/cc:${PORTSDIR}/devel/linux_devtools-7 +BUILD_DEPENDS= rpm2cpio:${PORTSDIR}/archivers/rpm2cpio RESTRICTED= Intel forbids any redistribution NO_PACKAGE= ${RESTRICTED} NO_CDROM= ${RESTRICTED} -ONLY_FOR_ARCHS= i386 +ONLY_FOR_ARCHS= i386 USE_LINUX= yes -USE_REINPLACE= yes +USE_REINPLACE= yes NO_WRKSUBDIR= yes -NO_BUILD= yes NO_FILTER_SHLIBS= yes -MAN1= ifc.1 -MANPREFIX= ${PREFIX}/intel/compiler60/ +MAN1= ifc.1 +MANPREFIX= ${PREFIX}/intel/compiler60/ IFC_SITE= http://www.intel.com/software/products/compilers/ .include <bsd.port.pre.mk> +IFCFFGVAL= ${OSREL:C/\..*//} +OBJCOPY?= /usr/bin/objcopy + .if !exists(${DISTDIR}/${DIST_SUBDIR}/${DISTNAME}${EXTRACT_SUFX}) -IGNORE= "Please manually download ${DISTFILES} from ${IFC_SITE}, e.g. from ${IFC_SITE}f60l/noncom.htm or from https://premier.intel.com/. Registration is required!! Put it into ${DISTDIR} and run make again." +IGNORE= "Please manually download ${DISTFILES} from ${IFC_SITE}, ${IFC_SITE}f60l/noncom.htm or https://premier.intel.com/ \(whichever has the file, to access premier.intel.com you have to register at http://www.intel.com/software/products/registrationcenter/index.htm\). With a little bit of luck it may also be available from ftp://download.intel.com/software/products/compilers/downloads/. Put it into ${DISTDIR} and run make again" .endif -.if exists(${PREFIX}/intel/compiler60/bin/icc) -BROKEN= Cannot coexist with icc +.if exists(${LINUXBASE}/boot/kernel.h) +BROKEN= Can not coexist with linux_devtools .endif post-extract: .for i in \ - intel-ifc6-6.0.1-304.i386.rpm \ + intel-ifc6-6.0.1-304.i386.rpm # intel-ildb6-6.0.1-310.i386.rpm \ # intel-efc6-6.0.1-304.ia64.rpm \ # intel-eldb6-6.0.1-310.ia64.rpm - @cd ${WRKSRC}; rpm2cpio ${i} | cpio -idu --quiet +.if defined(NOPORTDOCS) + @cd ${WRKSRC} && rpm2cpio 2>/dev/null ${i} | \ + cpio -idfuE ${FILESDIR}/cpio-exclude --quiet \ + */opt/intel/compiler60/docs/* +.else + @cd ${WRKSRC} && rpm2cpio 2>/dev/null ${i} | \ + cpio -idfuE ${FILESDIR}/cpio-exclude --quiet +.endif .endfor pre-patch: # Allow everyone to use it @${CHMOD} a+rx ${WRKSRC}/opt -# Remove unneded/unsafe access rights +# Remove unneeded/unsafe access rights .for i in docs ia32/include ia32/lib @${FIND} ${WRKSRC}/opt/intel/compiler60/${i} -type f -print0 | \ - xargs -0 ${CHMOD} a-x,g-w + ${XARGS} -0 ${CHMOD} a-x,g-w .endfor @${FIND} ${WRKSRC}/opt -type d -print0 | xargs -0 ${CHMOD} go-w # Use the Linux ABI for the binaries -.for i in INTEL f90com fpp icid ifcbin ifccem lmgrd.intel lmutil profmerge proforder xiar xild +.for i in INTEL f90com fpp icid ifcbin ifccem lmgrd.intel lmutil \ + profmerge proforder xiar xild @brandelf -t Linux ${WRKSRC}/opt/intel/compiler60/ia32/bin/${i} .endfor post-patch: # Correct some paths and patch some files - @${RM} ${WRKSRC}/opt/intel/compiler60/ia32/bin/ifc.orig .for i in ia32/bin/ifcvars.csh ia32/bin/ifcvars.sh \ ia32/bin/ifc ia32/bin/ifc.cfg docs/fsupport - @${REINPLACE_CMD} -i "" -e's+\<INSTALLDIR\>+${PREFIX}/intel+g; s+man -w+manpath+g; s+@LINUXBASE@+${LINUXBASE}+g; s+/bin/sh+${LINUXBASE}/bin/bash+g; s+\<INSTALLTIMECOMBOPACKAGEID\>+${DISTNAME}+g' ${WRKSRC}/opt/intel/compiler60/${i} + @${REINPLACE_CMD} -i "" -e 's:@@PREFIX@@:${PREFIX}:g; s@\<INSTALLDIR\>@${PREFIX}/intel@g; s@man -w@manpath -q@g; s:\<INSTALLTIMECOMBOPACKAGEID\>:${DISTNAME}:g' \ + ${WRKSRC}/opt/intel/compiler60/${i} @${CHMOD} 755 ${WRKSRC}/opt/intel/compiler60/${i} .endfor + @${RM} ${WRKSRC}/opt/intel/compiler60/ia32/bin/ifc.orig +# Remove empty directory .if defined(NOPORTDOCS) @${RM} -rf ${WRKSRC}/opt/intel/compiler60/docs .endif +# Provide a more FreeBSD'ish compile environment +.for i in ifc.cfg + @${ECHO} -e "\n-Ulinux\n-U__linux__\n-U__linux\n\n-D__FreeBSD__=${IFCFFGVAL}\n-D__ELF__=1\n" >>${WRKSRC}/opt/intel/compiler60/ia32/bin/${i} + @${CHMOD} a-x,g-w ${WRKSRC}/opt/intel/compiler60/ia32/bin/${i} +.endfor +# C++ hack for ifc + @${ECHO} -e "\n-Qoption,ld,-CPLUSPLUS\n" >>${WRKSRC}/opt/intel/compiler60/ia32/bin/ifc.cfg + @cd ${WRKSRC}/opt/intel/compiler60/ia32/bin/ && ${LN} -s ifc.cfg ifcbin.cfg + +do-build: +# Fix unresolved references + @cd ${WRKSRC} && ${CC} ${CFLAGS} -c ${FILESDIR}/assert_fail.c \ + ${FILESDIR}/cxa_atexit.c ${FILESDIR}/cxa_finalize.c \ + ${FILESDIR}/linux_file.c ${FILESDIR}/sysconf.c \ + ${FILESDIR}/errno_location.c ${FILESDIR}/mcount.S +.if ( ${OSVERSION} < 470000 ) || \ + ( ${OSVERSION} >= 500000 && ${OSVERSION} < 500042 ) + @${CC} ${CFLAGS} -c -o ${WRKSRC}/stderr.o ${FILESDIR}/stderr.c +.else +.for i in libcxa.a libimf.a libirc.a libircmt.a libunwind.a \ + libBINDF90.a libCEPCF90.a libF90.a libIEPCF90.a libPEPCF90.a \ + libcprts.a libintrins.a libompstub.a + @${OBJCOPY} --redefine-sym stderr=__stderrp \ + --redefine-sym stdout=__stdoutp \ + ${WRKSRC}/opt/intel/compiler60/ia32/lib/${i} +.endfor +.endif + @${AR} q ${WRKSRC}/opt/intel/compiler60/ia32/lib/libcxa.a ${WRKSRC}/*.o +.for i in BINDF90 PEPCF90 CEPCF90 POSF90 IEPCF90 + @${OBJCOPY} --redefine-sym stat=Stat --redefine-sym fstat=Fstat \ + --redefine-sym lstat=Lstat --redefine-sym lseek=Lseek \ + --redefine-sym mknod=Mknod \ + ${WRKSRC}/opt/intel/compiler60/ia32/lib/lib${i}.a +.endfor +# Some magic to be able to link + @${CC} ${CFLAGS} -o ${WRKSRC}/opt/intel/compiler60/ia32/bin/ld ${FILESDIR}/ld.c + @${STRIP_CMD} ${WRKSRC}/opt/intel/compiler60/ia32/bin/ld + @${CHMOD} 755 ${WRKSRC}/opt/intel/compiler60/ia32/bin/ld do-install: - @cd ${WRKSRC}/opt && ${TAR} -chf - . | \ + @cd ${WRKSRC}/opt && ${TAR} -cf - . | \ ${TAR} -xf - -C ${PREFIX} post-install: @${ECHO_CMD} "${PKGNAME} is now installed in ${PREFIX}/intel, to use it you have to" - @${ECHO_CMD} "source the appropriate ${PREFIX}/intel/compiler60/ia32/bin/ifcvars.{,c}sh" - @${ECHO_CMD} "script and put your license into your \$${INTEL_FLEXLM_LICENSE} (default:" - @${ECHO_CMD} "${PREFIX}/intel/licenses) directory." + @${ECHO_CMD} "put your license into your \$${INTEL_FLEXLM_LICENSE} (default:" + @${ECHO_CMD} "${PREFIX}/intel/licenses) directory and add" + @${ECHO_CMD} "${PREFIX}/intel/compiler60/ia32/bin to your PATH." + @${ECHO_CMD} + @${ECHO_CMD} "If you use ifc on a Pentium 4 make sure you have 'options CPU_ENABLE_SSE'" + @${ECHO_CMD} "in your kernel config (have a look at http://www.FreeBSD.org/handbook/" + @${ECHO_CMD} "if you do not know how to do this), else ifc will hang forever." + @${ECHO_CMD} .include <bsd.port.post.mk> diff --git a/lang/ifc/files/assert_fail.c b/lang/ifc/files/assert_fail.c new file mode 100644 index 000000000000..eb264ba71681 --- /dev/null +++ b/lang/ifc/files/assert_fail.c @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2002 Marius Strobl + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD: /tmp/pcvs/ports/lang/ifc/files/assert_fail.c,v 1.1 2002-11-18 09:27:32 maho Exp $ + */ + +#include <err.h> +#include <stdlib.h> + +void +__assert_fail(const char *failedexpr, const char *file, unsigned int line, + const char *fn) +{ + warnx("assertion \"%s\" failed: file \"%s\", line %u%s%s%s", failedexpr, + file, line, fn ? ", function: \"" : "", fn ? fn : "", + fn ? "\"" : ""); + abort(); +} diff --git a/lang/ifc/files/cpio-exclude b/lang/ifc/files/cpio-exclude new file mode 100644 index 000000000000..9ec2e94a79cb --- /dev/null +++ b/lang/ifc/files/cpio-exclude @@ -0,0 +1,70 @@ +*/opt/intel/compiler60/ia32/bin/uninstall +*/opt/intel/compiler60/ia32/include/algorithm +*/opt/intel/compiler60/ia32/include/bitset +*/opt/intel/compiler60/ia32/include/complex +*/opt/intel/compiler60/ia32/include/deque +*/opt/intel/compiler60/ia32/include/fstream +*/opt/intel/compiler60/ia32/include/fstream.h +*/opt/intel/compiler60/ia32/include/functional +*/opt/intel/compiler60/ia32/include/hash_map +*/opt/intel/compiler60/ia32/include/hash_set +*/opt/intel/compiler60/ia32/include/iomanip +*/opt/intel/compiler60/ia32/include/iomanip.h +*/opt/intel/compiler60/ia32/include/ios +*/opt/intel/compiler60/ia32/include/iosfwd +*/opt/intel/compiler60/ia32/include/iostream +*/opt/intel/compiler60/ia32/include/iostream.h +*/opt/intel/compiler60/ia32/include/istream +*/opt/intel/compiler60/ia32/include/iterator +*/opt/intel/compiler60/ia32/include/limits +*/opt/intel/compiler60/ia32/include/list +*/opt/intel/compiler60/ia32/include/locale +*/opt/intel/compiler60/ia32/include/map +*/opt/intel/compiler60/ia32/include/memory +*/opt/intel/compiler60/ia32/include/numeric +*/opt/intel/compiler60/ia32/include/ostream +*/opt/intel/compiler60/ia32/include/queue +*/opt/intel/compiler60/ia32/include/set +*/opt/intel/compiler60/ia32/include/slist +*/opt/intel/compiler60/ia32/include/sstream +*/opt/intel/compiler60/ia32/include/stack +*/opt/intel/compiler60/ia32/include/stdexcept +*/opt/intel/compiler60/ia32/include/stdiostream.h +*/opt/intel/compiler60/ia32/include/stl.h +*/opt/intel/compiler60/ia32/include/stream.h +*/opt/intel/compiler60/ia32/include/streambuf +*/opt/intel/compiler60/ia32/include/string +*/opt/intel/compiler60/ia32/include/strstream +*/opt/intel/compiler60/ia32/include/strstream.h +*/opt/intel/compiler60/ia32/include/utility +*/opt/intel/compiler60/ia32/include/valarray +*/opt/intel/compiler60/ia32/include/vector +*/opt/intel/compiler60/ia32/include/xcomplex +*/opt/intel/compiler60/ia32/include/xdebug +*/opt/intel/compiler60/ia32/include/xhash +*/opt/intel/compiler60/ia32/include/xiosbase +*/opt/intel/compiler60/ia32/include/xlocale +*/opt/intel/compiler60/ia32/include/xlocinfo +*/opt/intel/compiler60/ia32/include/xlocinfo.h +*/opt/intel/compiler60/ia32/include/xlocmes +*/opt/intel/compiler60/ia32/include/xlocmon +*/opt/intel/compiler60/ia32/include/xlocnum +*/opt/intel/compiler60/ia32/include/xloctime +*/opt/intel/compiler60/ia32/include/xmemory +*/opt/intel/compiler60/ia32/include/xstring +*/opt/intel/compiler60/ia32/include/xtree +*/opt/intel/compiler60/ia32/include/xutility +*/opt/intel/compiler60/ia32/include/ymath.h +*/opt/intel/compiler60/ia32/lib/libcprts.so +*/opt/intel/compiler60/ia32/lib/libcprts.so.1 +*/opt/intel/compiler60/ia32/lib/libguide.a +*/opt/intel/compiler60/ia32/lib/libguide.so +*/opt/intel/compiler60/ia32/lib/libunwind.so +*/opt/intel/compiler60/ia32/lib/libunwind.so.1 +*/opt/intel/compiler60/ia32/lib/libimf.so +*/opt/intel/compiler60/ia32/lib/libintrins.so +*/opt/intel/compiler60/ia32/lib/libCEPCF90.so +*/opt/intel/compiler60/ia32/lib/libF90.so +*/opt/intel/compiler60/ia32/lib/libIEPCF90.so +*/opt/intel/compiler60/ia32/lib/libPEPCF90.so +*/opt/intel/compiler60/ia32/lib/libPOSF90.so diff --git a/lang/ifc/files/cxa_atexit.c b/lang/ifc/files/cxa_atexit.c new file mode 100644 index 000000000000..4154334a2c98 --- /dev/null +++ b/lang/ifc/files/cxa_atexit.c @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2002 Marius Strobl + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD: /tmp/pcvs/ports/lang/ifc/files/cxa_atexit.c,v 1.1 2002-11-18 09:27:32 maho Exp $ + */ + +#include <stdlib.h> + +/* + * The __cxa_atexit() function and friends are needed for full (IA64) C++ ABI + * compatibility but FreeBSD doesn't have implemented them, yet. In addition + * to the classic atexit() it is not only used to register functions to be + * called at program exit but also to call them (C++ destructors in that case) + * when a shared object is unloaded. For the later to work the dynamic linker + * assigns a unique dynamic shared object handle to every shared object while + * a handle of NULL represents a main program. When __cxa_finalize() is called + * with a specific (non-NULL) handle as an argument all functions registered + * via __cxa_atexit() and having the same handle are called. + * The best we can do here to emulate that behaviour until FreeBSD supports + * this is to register the functions via atexit(). While this certainly is a + * bad hack it seems to work, even the current dynamic linker is assigning + * the handles. I didn't see a function getting registered with an argument + * so far. + */ +int +__cxa_atexit(void (*fn)(), void *arg, void *handle) +{ + + return (handle ? atexit(fn) : 0); +} diff --git a/lang/ifc/files/cxa_finalize.c b/lang/ifc/files/cxa_finalize.c new file mode 100644 index 000000000000..ea2d11b18de9 --- /dev/null +++ b/lang/ifc/files/cxa_finalize.c @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2002 Marius Strobl + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD: /tmp/pcvs/ports/lang/ifc/files/Attic/cxa_finalize.c,v 1.1 2002-11-18 09:27:32 maho Exp $ + */ + +void +__cxa_finalize(void *handle) +{ + + /* + * As we dared to register the functions via atexit() this job will + * be done by exit(). + */ + return; +} diff --git a/lang/ifc/files/errno_location.c b/lang/ifc/files/errno_location.c new file mode 100644 index 000000000000..65017d3c1457 --- /dev/null +++ b/lang/ifc/files/errno_location.c @@ -0,0 +1,37 @@ +/*- + * Copyright (c) 2000 Andrew Gallatin and David O'Brien + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * copied over from: FreeBSD: ports/lang/compaq-cc/files/errno_location.c,v 1.1 2000/12/08 13:27:29 obrien Exp + * + * $FreeBSD: /tmp/pcvs/ports/lang/ifc/files/errno_location.c,v 1.1 2002-11-18 09:27:32 maho Exp $ + */ + +#include <errno.h> + +int * +__errno_location(void) +{ + return &errno; +} diff --git a/lang/ifc/files/ld.c b/lang/ifc/files/ld.c new file mode 100644 index 000000000000..71852e591b44 --- /dev/null +++ b/lang/ifc/files/ld.c @@ -0,0 +1,452 @@ +/* + * Copyright (c) 2002 Marius Strobl + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * Wrapper for Intel(R) C/C++ Compiler for Linux to allow linking of native + * FreeBSD binaries. + * Based on a shell-script written by Dan Nelson <dnelson@allantgroup.com> + * with some modifications by Alexander Leidinger <netchild@FreeBSD.org>. + * + * $FreeBSD: /tmp/pcvs/ports/lang/ifc/files/ld.c,v 1.1 2002-11-18 09:27:32 maho Exp $ + */ + +/* Uses code marked: */ + +/* OpenBSD: mailwrapper.c,v 1.6 1999/12/17 05:06:28 mickey Exp */ +/* NetBSD: mailwrapper.c,v 1.3 1999/05/29 18:18:15 christos Exp */ +/* FreeBSD: src/usr.sbin/mailwrapper/mailwrapper.c,v 1.8 2002/07/11 18:27:55 alfred Exp */ + +/* + * Copyright (c) 1998 + * Perry E. Metzger. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgment: + * This product includes software developed for the NetBSD Project + * by Perry E. Metzger. + * 4. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include <err.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> + +#if defined (__FreeBSD__) && __FreeBSD__ >= 2 + #include <osreldate.h> +#else + #error "Won't work here." +#endif + +#define PATH_LD "/usr/bin/ld" + +struct arglist { + size_t argc, maxc; + char **argv; +}; + +static void initarg(struct arglist *al); +static void addarg(struct arglist *al, const char *arg, int copy); +static void freearg(struct arglist *al, int copy); +int main(int argc, char *argv[], char *envp[]); + +static void +initarg(struct arglist *al) +{ + + al->argc = 0; + al->maxc = 10; + if ((al->argv = malloc(al->maxc * sizeof(char *))) == NULL) + err(1, NULL); +} + +static void +addarg(struct arglist *al, const char *arg, int copy) +{ + char **argv2; + + if (al->argc == al->maxc) { + al->maxc <<= 1; + + if ((argv2 = realloc(al->argv, + al->maxc * sizeof(char *))) == NULL) { + if (al->argv) + free(al->argv); + al->argv = NULL; + err(1, NULL); + } else { + al->argv = argv2; + } + } + if (copy) { + if ((al->argv[al->argc++] = strdup(arg)) == NULL) + err(1, NULL); + } else { + al->argv[al->argc++] = (char *)arg; + } +} + +static +void freearg(struct arglist *al, int copy) +{ + size_t i; + + if (copy) + for (i = 0; i < al->argc; i++) + free(al->argv[i]); + free(al->argv); +} + +int +main(int argc, char *argv[], char *envp[]) +{ + size_t i; + int bootstrap, cpp, dynamic, pic, gprof, stlinserted, threaded; + char *libc, *libc_r, *prefix; + struct arglist al; + + if (argc == 1) + errx(1, "no input files"); + + if ((prefix = getenv("PREFIX")) == NULL) + errx(1, "can't get PREFIX"); + + initarg(&al); + bootstrap = cpp = dynamic = pic = gprof = stlinserted = threaded = 0; + +#ifdef DEBUG + printf("input: "); +#endif + +#define ARGCMP(x) !strcmp(argv[i], (x)) +#define ARGCMPB(x, y) (strlen(x) + strlen(y) == strlen(argv[i]) && \ + !strncmp(argv[i], (x), strlen(x)) && \ + !strncmp(argv[i] + strlen(x), (y), strlen(y))) + + /* + * XXX This doesn't deal with whitespace but a) the output of the + * compiler should be fixed and b) the real linker is also picky + * about whitespace. + */ + for (i = 0; i < argc; i++) { +#ifdef DEBUG + printf("%s ", argv[i]); +#endif + + if (ARGCMP("-CPLUSPLUS")) { + cpp++; + continue; + } + + if (ARGCMP("-BOOTSTRAPSTLPORT")) { + bootstrap++; + continue; + } + + if (ARGCMP("-PIC")) { + pic++; + continue; + } + + /* + * If the compiler was called with -static we shouldn't see + * "--dynamic-linker" here. + * Note: According to ld(1) this is "--dynamic-linker" but + * ICC passes "-dynamic-linker" to it. + */ + if (ARGCMP("--dynamic-linker") || ARGCMP("-dynamic-linker")) { + dynamic++; + continue; + } + + /* + * Just link libstlport_icc* once when compiling the stlport + * tests. + */ + if (!strncmp(argv[i], "-lstlport_icc", + strlen("-lstlport_icc"))) { + stlinserted++; + continue; + } + + /* + * If IFC, do not use libstlport_icc. + */ + if (!strcmp(argv[i], "-lF90")) { + stlinserted++; + continue; + } + + /* + * ICC links the thread safe libircmt instead of libirc when + * told to generate threaded code by any of the compiler flags + * "-mt", "-openmp" or "-parallel". We use this as an indicator + * to link against libc_r. + */ + if (ARGCMP("-lircmt")) { + threaded++; + continue; + } + + /* + * Link against libc_p when "-pg" was given, "/usr/lib/gcrt1.o" + * indicates this. + */ + if (ARGCMP("/usr/lib/gcrt1.o")) { + gprof++; + continue; + } + } + + /* + * Use the appropriate libs for libc and libc_r when linking static + * and "-KPIC" or "-pg" where given. + */ + if (!dynamic && (pic || gprof)) { + /* + * Let libc_p win above libc_pic when both, "-KPIC" and "-pg", + * where given, GCC does the same. + */ + if (!gprof) { + libc = strdup("-lc_pic"); + libc_r = strdup("-lc_r"); + } else { + libc = strdup("-lc_p"); + libc_r = strdup("-lc_r_p"); + } + } else { + libc = strdup("-lc"); + libc_r = strdup("-lc_r"); + } + +#ifdef DEBUG + printf("\ncpp: %s bootstrap: %s dynamic: %s gprof: %s pic: %s " + "threaded: %s\n", cpp ? "YES" : "NO", bootstrap ? "YES" : "NO", + dynamic ? "YES" : "NO", gprof ? "YES" : "NO", pic ? "YES" : "NO", + threaded ? "YES" : "NO"); +#endif + + if (bootstrap && !cpp) + errx(1, "-BOOTSTRAPSTLPORT is only valid in combination with " + "-CPLUSPLUS"); + + for (i = 0; i < argc; i++) { + if (ARGCMP("-CPLUSPLUS") || ARGCMP("-BOOTSTRAPSTLPORT") || + ARGCMP("-PIC")) + continue; + + /* prepend "-melf_i386" to the commandline */ + if (i == 0) { + addarg(&al, argv[0], 1); +#if __FreeBSD_version < 500042 + addarg(&al, "-melf_i386", 1); +#else + addarg(&al, "-melf_i386_fbsd", 1); +#endif + continue; + } + + /* + * "-u ___pseudo_link" triggers linking of additional objects + * from libcxa which seem to bloat the binaries, i.e. they + * perfectly work without it. Intel Support promised to look + * up what this servers for... + */ + if (ARGCMP("-u") || ARGCMP("___pseudo_link")) + continue; + + /* Don't add obsolete flag "-Qy". */ + if (ARGCMP("-Qy")) + continue; + + /* Libunwind is only needed when compiling C++ source. */ + if (!cpp && ARGCMP("-lunwind")) + continue; + + /* + * Replace libcprts with libstlport_icc. The Dinkumware STL + * shipping with ICC has unresolvable glibc dependencies + * in both, the static and the dynamic, versions. + */ + if (ARGCMP("-lcprts")) { + if (cpp && !bootstrap && !stlinserted) { + addarg(&al, + dynamic ? "-Bdynamic" : "-Bstatic", 1); + addarg(&al, "-lstlport_icc", 1); + stlinserted++; + } + continue; + } + + /* + * Link against libc_r when compiling multi-threaded or C++ + * code (libcxa and libunwind depend on libc_r when compiling + * C++ source). + */ + if (ARGCMP("-lc")) { + if (al.argc > 0 && + strncmp(al.argv[al.argc - 1], "-B", strlen("-B"))) + addarg(&al, + dynamic ? "-Bdynamic" : "-Bstatic", 1); + if (cpp || threaded) { +#if __FreeBSD_version < 500016 + addarg(&al, libc_r, 0); +#else + addarg(&al, libc, 0); + addarg(&al, + dynamic ? "-Bdynamic" : "-Bstatic", 1); + addarg(&al, libc_r, 0); +#endif + } else { + addarg(&al, libc, 0); + } + continue; + } + + /* Switch Linux stuff to FreeBSD counterparts. */ + if (ARGCMP("/lib/ld-linux.so.2")) { + addarg(&al, "/usr/libexec/ld-elf.so.1", 1); + continue; + } + if (ARGCMP("-L/usr/lib")) { + char *temp; + + if ((temp = (char *) malloc(strlen("-L") + + strlen(prefix) + strlen("/lib") + 1)) == NULL) + err(1, NULL); + + addarg(&al, "-L/usr/libexec/elf", 1); + addarg(&al, "-L/usr/libexec", 1); + addarg(&al, "-L/usr/lib", 1); + snprintf(temp, strlen("-L") + strlen(prefix) + + strlen("/lib") + 1, "-L%s/lib", prefix); + addarg(&al, temp, 1); + free(temp); + continue; + } + + /* + * Link and map files for C++ exception handling. + */ + if (!cpp && + (ARGCMP("--version-script") || + ARGCMPB(prefix, "/intel/compiler60/ia32/lib/icrt.link") || + ARGCMPB(prefix, + "/intel/compiler60/ia32/lib/icrt.internal.map"))) + continue; + + /* + * Force libcxa and libunwind to static linkage, since the + * dynamic versions have glibc dependencies. + * Don't add superfluous -Bdynamic. + */ + if (ARGCMP("-Bdynamic") && i < argc - 1) { + if (!strcmp(argv[i + 1], "-lcxa") || + (cpp && !strcmp(argv[i + 1], "-lunwind"))) { + addarg(&al, "-Bstatic", 1); + continue; + } + + if (!strcmp(argv[i + 1], "-lcprts") || + !strcmp(argv[i + 1], "-lunwind")) + continue; + } + + /* Don't add superfluous -Bstatic. */ + if (ARGCMP("-Bstatic") && i < argc - 1 && + (!strcmp(argv[i + 1], "-lcprts") || + (!cpp && !strcmp(argv[i + 1], "-lunwind")))) + continue; + + /* + * Sanity check if every lib is prepended by a linkage option, + * add if missing. + */ + if (!strncmp(argv[i], "-l", strlen("-l")) && al.argc > 0 && + strncmp(al.argv[al.argc - 1], "-B", strlen("-B"))) { + if (!strcmp(argv[i], "-lcxa") || + !strcmp(argv[i], "-limf") || + !strcmp(argv[i], "-lirc") || + !strcmp(argv[i], "-lircmt") || + !strcmp(argv[i], "-lunwind")) + addarg(&al, "-Bstatic", 1); + else + addarg(&al, + dynamic ? "-Bdynamic" : "-Bstatic", 1); + + addarg(&al, argv[i], 1); + continue; + } + + /* default */ + addarg(&al, argv[i], 1); + } + +#undef ARGCMP +#undef ARGCMPB + + /* Still something to do ? */ + if (al.argc == 1) + errx(1, "no input files"); + +#ifdef DEBUG + printf("output: "); + + for (i = 0; i < al.argc; i++) + printf("%s ", al.argv[i]); + + printf("\n"); +#endif + + addarg(&al, NULL, 0); + + /* Launch the real linker */ + if (execve(PATH_LD, al.argv, envp) == -1) + err(1, "execing %s", PATH_LD); + + freearg(&al, 1); + + exit (1); +} diff --git a/lang/ifc/files/linux_file.c b/lang/ifc/files/linux_file.c new file mode 100644 index 000000000000..06d420718489 --- /dev/null +++ b/lang/ifc/files/linux_file.c @@ -0,0 +1,163 @@ +/* + * Copyright (c) 2002 The FreeBSD Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +short unsigned int *__ctype_b /* 0x0 */; + +#include <fcntl.h> +#include <stdarg.h> +#include <sys/types.h> +#include <sys/stat.h> + +typedef long long int __off64_t; + +int open64(const char *path, int flags, ...) { + int mode; + va_list args; + + va_start (args, flags); + return open(path, flags, va_arg(args, int)); + va_end (args); +} + + +int creat64(const char *path, unsigned int mode) { + return open(path, O_CREAT | O_TRUNC | O_WRONLY, mode); +} + + +__off64_t lseek64 (int __fd, __off64_t __offset, int __whence) { + return (__off64_t) lseek(__fd, (off_t) __offset, __whence); +} + + +int ftruncate64 (int __fd, __off64_t __length) { + return ftruncate(__fd, (off_t) __length); +} + + +/* This matches struct stat64 in glibc2.1, hence the absolutely + * insane amounts of padding around dev_t's. + */ +struct stat64 { + unsigned short st_dev; + unsigned char __pad0[10]; + +#define STAT64_HAS_BROKEN_ST_INO 1 + unsigned long __st_ino; + + unsigned int st_mode; + unsigned int st_nlink; + + unsigned long st_uid; + unsigned long st_gid; + + unsigned short st_rdev; + unsigned char __pad3[10]; + + long long st_size; + unsigned long st_blksize; + + unsigned long st_blocks; /* Number 512-byte blocks allocated. */ + unsigned long __pad4; /* future possible st_blocks high bits */ + + unsigned long st_atime_; + unsigned long __pad5; + + unsigned long st_mtime_; + unsigned long __pad6; + + unsigned long st_ctime_; + unsigned long __pad7; /* will be high 32 bits of ctime someday */ + + unsigned long long st_ino; +}; + + +struct stat64 stat2stat64(struct stat sb) { + static struct stat64 sb64; + + sb64.st_dev = sb.st_dev; + sb64.st_ino = sb.st_ino; + sb64.st_mode = sb.st_mode; + sb64.st_nlink = sb.st_nlink; + sb64.st_uid = sb.st_uid; + sb64.st_gid = sb.st_gid; + sb64.st_rdev = sb.st_rdev; + sb64.st_size = sb.st_size; + sb64.st_blksize = sb.st_blksize; + sb64.st_blocks = sb.st_blocks; + sb64.st_atime_ = sb.st_atime; + sb64.st_mtime_ = sb.st_mtime; + sb64.st_ctime_ = sb.st_ctime; + + return sb64; +} + + +int __fxstat64 (int __ver, int __fildes, struct stat64 *__stat_buf) { + struct stat sb; + int result; + + result = fstat (__fildes, &sb); + *__stat_buf = stat2stat64(sb); + return result; +} + + +int __xstat64 (int __ver, __const char *__filename, + struct stat64 *__stat_buf) { + struct stat sb; + int result; + + result = stat (__filename, &sb); + *__stat_buf = stat2stat64(sb); + return result; +} + + +#include <stdio.h> + +void __xstat() { + fprintf(stderr, __FILE__ ": __xstat() is dummy.\n"); +}; +void __fxstat() { + fprintf(stderr, __FILE__ ": __fxstat() is dummy.\n"); +}; +void __lxstat() { + fprintf(stderr, __FILE__ ": __lxstat() is dummy.\n"); +}; +void __lxstat64() { + fprintf(stderr, __FILE__ ": __lxstat64() is dummy.\n"); +}; + +int __xmknod (int vers /* 0x8 */, char *path /* 0xc */, + unsigned int mode /* 0x10 */, + long long unsigned int *dev /* 0x14 */) +{ + return mknod(path, mode, *dev); +}; diff --git a/lang/ifc/files/mcount.S b/lang/ifc/files/mcount.S new file mode 100644 index 000000000000..5d3ed1d8c7d5 --- /dev/null +++ b/lang/ifc/files/mcount.S @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2002 Marius Strobl + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD: /tmp/pcvs/ports/lang/ifc/files/mcount.S,v 1.1 2002-11-18 09:27:32 maho Exp $ + */ + + .text + .extern .mcount + .globl mcount + .type mcount,@function +mcount: + jmp .mcount diff --git a/lang/ifc/files/patch-aa b/lang/ifc/files/patch-aa deleted file mode 100644 index ac74eace1fe4..000000000000 --- a/lang/ifc/files/patch-aa +++ /dev/null @@ -1,14 +0,0 @@ ---- opt/intel/compiler60/ia32/bin/ifc.old Thu Jul 18 18:52:59 2002 -+++ opt/intel/compiler60/ia32/bin/ifc Thu Jul 18 18:54:03 2002 -@@ -13,9 +13,9 @@ - - if [ -z PATH ] - then -- PATH=<INSTALLDIR>/compiler60/ia32/bin; -+ PATH=@LINUXBASE@/usr/bin:<INSTALLDIR>/compiler60/ia32/bin; - else -- PATH=<INSTALLDIR>/compiler60/ia32/bin:$PATH; -+ PATH=@LINUXBASE@/usr/bin:<INSTALLDIR>/compiler60/ia32/bin:$PATH; - fi - export PATH; - diff --git a/lang/ifc/files/patch-ifc b/lang/ifc/files/patch-ifc new file mode 100644 index 000000000000..3428a50551d2 --- /dev/null +++ b/lang/ifc/files/patch-ifc @@ -0,0 +1,42 @@ +--- opt/intel/compiler60/ia32/bin/ifc.orig Sun Sep 22 01:03:04 2002 ++++ opt/intel/compiler60/ia32/bin/ifc Sun Sep 22 01:06:31 2002 +@@ -1,29 +1,31 @@ + #!/bin/sh + +-INTEL_LICENSE_FILE=<INSTALLDIR>/licenses; ++PREFIX=/usr/local ++export PREFIX ++INTEL_LICENSE_FILE=${PREFIX}/intel/licenses; + export INTEL_LICENSE_FILE; + + if [ -z LD_LIBRARY_PATH ] + then +- LD_LIBRARY_PATH=<INSTALLDIR>/compiler60/ia32/lib; ++ LD_LIBRARY_PATH=${PREFIX}/intel/compiler60/ia32/lib; + else +- LD_LIBRARY_PATH=<INSTALLDIR>/compiler60/ia32/lib:$LD_LIBRARY_PATH ++ LD_LIBRARY_PATH=${PREFIX}/intel/compiler60/ia32/lib:$LD_LIBRARY_PATH + fi + export LD_LIBRARY_PATH; + + if [ -z PATH ] + then +- PATH=<INSTALLDIR>/compiler60/ia32/bin; ++ PATH=${PREFIX}/intel/compiler60/ia32/bin; + else +- PATH=<INSTALLDIR>/compiler60/ia32/bin:$PATH; ++ PATH=${PREFIX}/intel/compiler60/ia32/bin:$PATH; + fi + export PATH; + +-export -n IA32ROOT; unset IA32ROOT; ++unset IA32ROOT; + + if [ $# != 0 ] + then +- exec -a "<INSTALLDIR>/compiler60/ia32/bin/ifc" <INSTALLDIR>/compiler60/ia32/bin/ifcbin "$@"; ++ exec ${PREFIX}/intel/compiler60/ia32/bin/ifcbin "$@"; + else +- exec -a "<INSTALLDIR>/compiler60/ia32/bin/ifc" <INSTALLDIR>/compiler60/ia32/bin/ifcbin; ++ exec ${PREFIX}/intel/compiler60/ia32/bin/ifcbin; + fi diff --git a/lang/ifc/files/stderr.c b/lang/ifc/files/stderr.c new file mode 100644 index 000000000000..6c3987effb03 --- /dev/null +++ b/lang/ifc/files/stderr.c @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2002 Marius Strobl + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD: /tmp/pcvs/ports/lang/ifc/files/stderr.c,v 1.1 2002-11-18 09:27:32 maho Exp $ + */ + +#include <stdio.h> + +#undef stdout +#undef stderr +FILE *stdout = &__sF[1]; +FILE *stderr = &__sF[2]; diff --git a/lang/ifc/files/sysconf.c b/lang/ifc/files/sysconf.c new file mode 100644 index 000000000000..ef49a91a7d3b --- /dev/null +++ b/lang/ifc/files/sysconf.c @@ -0,0 +1,145 @@ +/* + * Copyright (c) 2002 The FreeBSD Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD: /tmp/pcvs/ports/lang/ifc/files/sysconf.c,v 1.1 2002-11-18 09:27:32 maho Exp $ + */ +#include <unistd.h> +#include <errno.h> + +#define _SC_UNDEF 0 + +static int linux_sysconf[] = { + _SC_ARG_MAX, + _SC_CHILD_MAX, + _SC_CLK_TCK, + _SC_NGROUPS_MAX, + _SC_OPEN_MAX, + _SC_STREAM_MAX, + _SC_TZNAME_MAX, + _SC_JOB_CONTROL, + _SC_SAVED_IDS, + _SC_REALTIME_SIGNALS, + _SC_PRIORITY_SCHEDULING, + _SC_TIMERS, + _SC_ASYNCHRONOUS_IO, + _SC_PRIORITIZED_IO, + _SC_SYNCHRONIZED_IO, + _SC_FSYNC, + _SC_MAPPED_FILES, + _SC_MEMLOCK, + _SC_MEMLOCK_RANGE, + _SC_MEMORY_PROTECTION, + _SC_MESSAGE_PASSING, + _SC_SEMAPHORES, + _SC_SHARED_MEMORY_OBJECTS, + _SC_AIO_LISTIO_MAX, + _SC_AIO_MAX, + _SC_AIO_PRIO_DELTA_MAX, + _SC_DELAYTIMER_MAX, + _SC_MQ_OPEN_MAX, + _SC_UNDEF, + _SC_VERSION, + _SC_PAGESIZE, + _SC_RTSIG_MAX, + _SC_SEM_NSEMS_MAX, + _SC_SEM_VALUE_MAX, + _SC_SIGQUEUE_MAX, + _SC_TIMER_MAX, + _SC_BC_BASE_MAX, + _SC_BC_DIM_MAX, + _SC_BC_SCALE_MAX, + _SC_BC_STRING_MAX, + _SC_COLL_WEIGHTS_MAX, + _SC_UNDEF, + _SC_EXPR_NEST_MAX, + _SC_LINE_MAX, + _SC_RE_DUP_MAX, + _SC_UNDEF, + _SC_2_VERSION, + _SC_2_C_BIND, + _SC_2_C_DEV, + _SC_2_FORT_DEV, + _SC_2_FORT_RUN, + _SC_2_SW_DEV, + _SC_2_LOCALEDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_2_CHAR_TERM, + _SC_UNDEF, + _SC_2_UPE, +}; + +#define SYSCONF_SIZE (sizeof(linux_sysconf)/sizeof(int)) + +long __sysconf(int name) +{ + if (name >= SYSCONF_SIZE || linux_sysconf[name] == _SC_UNDEF) { + errno = EINVAL; + return -1; + } + + return sysconf(linux_sysconf[name]); +} diff --git a/lang/ifc/pkg-comment b/lang/ifc/pkg-comment index 4a295e1abc8f..0ac63f4d87ec 100644 --- a/lang/ifc/pkg-comment +++ b/lang/ifc/pkg-comment @@ -1 +1 @@ -Intel's Fortran compiler supporting Pentium 4 and Itanium processor +Intel's Fortran compiler, set up to produce native FreeBSD objects diff --git a/lang/ifc/pkg-descr b/lang/ifc/pkg-descr index b21449bd8677..bb35ee7b023c 100644 --- a/lang/ifc/pkg-descr +++ b/lang/ifc/pkg-descr @@ -1,7 +1,7 @@ -The Intel Fortran Compiler 6.0 for Linux, supporting -development of performance-oriented applications for -Pentium processors, including the new Pentium 4 -processor (and the 64-bit Intel Itanium processor). +This is Intels Fortran compiler, it is set up to produce +native FreeBSD objects, supporting development of +performance-oriented applications for Pentium processors, +including the Pentium 4 processor. You can obtain 30-day Free Evaluation Software(Includes Support) or, Non-Commercial Unsupported lisence. diff --git a/lang/ifc/pkg-plist b/lang/ifc/pkg-plist index 3f5e38d77086..52ae300edd66 100644 --- a/lang/ifc/pkg-plist +++ b/lang/ifc/pkg-plist @@ -1,6 +1,5 @@ %%PORTDOCS%%intel/compiler60/docs/FortranReleaseNotes.htm %%PORTDOCS%%intel/compiler60/docs/asm_lan.pdf -%%PORTDOCS%%intel/compiler60/docs/asm_ug.pdf %%PORTDOCS%%intel/compiler60/docs/asm_ug/_blank.htm %%PORTDOCS%%intel/compiler60/docs/asm_ug/anal_cmb.htm %%PORTDOCS%%intel/compiler60/docs/asm_ug/anal_exc.htm @@ -142,6 +141,8 @@ %%PORTDOCS%%intel/compiler60/docs/asm_ug/webhelp0.cab %%PORTDOCS%%intel/compiler60/docs/asm_ug/webhelp0.zip %%PORTDOCS%%intel/compiler60/docs/asm_ug/webhelp4.js +%%PORTDOCS%%@dirrm intel/compiler60/docs/asm_ug +%%PORTDOCS%%intel/compiler60/docs/asm_ug.pdf %%PORTDOCS%%intel/compiler60/docs/enduser.pdf %%PORTDOCS%%intel/compiler60/docs/f_ug/_blank.htm %%PORTDOCS%%intel/compiler60/docs/f_ug/add_arg.htm @@ -246,8 +247,8 @@ %%PORTDOCS%%intel/compiler60/docs/f_ug/for_srce.htm %%PORTDOCS%%intel/compiler60/docs/f_ug/fortran_help.gif %%PORTDOCS%%intel/compiler60/docs/f_ug/ftsbody.htm -%%PORTDOCS%%intel/compiler60/docs/f_ug/ftsdhtml.htm %%PORTDOCS%%intel/compiler60/docs/f_ug/ftsform.htm +%%PORTDOCS%%intel/compiler60/docs/f_ug/ftsdhtml.htm %%PORTDOCS%%intel/compiler60/docs/f_ug/grp_altn.htm %%PORTDOCS%%intel/compiler60/docs/f_ug/grp_args.htm %%PORTDOCS%%intel/compiler60/docs/f_ug/grp_cmp.htm @@ -422,6 +423,7 @@ %%PORTDOCS%%intel/compiler60/docs/f_ug/webhelp4.js %%PORTDOCS%%intel/compiler60/docs/f_ug/welcome.htm %%PORTDOCS%%intel/compiler60/docs/f_ug/xref_bth.htm +%%PORTDOCS%%@dirrm intel/compiler60/docs/f_ug %%PORTDOCS%%intel/compiler60/docs/fcompindex.htm %%PORTDOCS%%intel/compiler60/docs/flicense %%PORTDOCS%%intel/compiler60/docs/for_lib.pdf @@ -432,6 +434,7 @@ %%PORTDOCS%%intel/compiler60/docs/icid.htm %%PORTDOCS%%intel/compiler60/docs/notes/ifc_fixes.txt %%PORTDOCS%%intel/compiler60/docs/notes/ifc_issues.txt +%%PORTDOCS%%@dirrm intel/compiler60/docs/notes %%PORTDOCS%%intel/compiler60/docs/ref/_blank.htm %%PORTDOCS%%intel/compiler60/docs/ref/ann_entr.htm %%PORTDOCS%%intel/compiler60/docs/ref/ann_mem.htm @@ -518,8 +521,8 @@ %%PORTDOCS%%intel/compiler60/docs/ref/elem_typ.htm %%PORTDOCS%%intel/compiler60/docs/ref/elem_val.htm %%PORTDOCS%%intel/compiler60/docs/ref/ftsbody.htm -%%PORTDOCS%%intel/compiler60/docs/ref/ftsdhtml.htm %%PORTDOCS%%intel/compiler60/docs/ref/ftsform.htm +%%PORTDOCS%%intel/compiler60/docs/ref/ftsdhtml.htm %%PORTDOCS%%intel/compiler60/docs/ref/gloss.htm %%PORTDOCS%%intel/compiler60/docs/ref/idxbody.htm %%PORTDOCS%%intel/compiler60/docs/ref/idxdhtml.htm @@ -564,10 +567,10 @@ %%PORTDOCS%%intel/compiler60/docs/ref/sec_stck.htm %%PORTDOCS%%intel/compiler60/docs/ref/sec_use.htm %%PORTDOCS%%intel/compiler60/docs/ref/sec_win.htm +%%PORTDOCS%%intel/compiler60/docs/ref/smb_ovw.htm %%PORTDOCS%%intel/compiler60/docs/ref/sect_ovw.htm %%PORTDOCS%%intel/compiler60/docs/ref/smb_glob.htm %%PORTDOCS%%intel/compiler60/docs/ref/smb_locl.htm -%%PORTDOCS%%intel/compiler60/docs/ref/smb_ovw.htm %%PORTDOCS%%intel/compiler60/docs/ref/smb_weak.htm %%PORTDOCS%%intel/compiler60/docs/ref/sta_asgn.htm %%PORTDOCS%%intel/compiler60/docs/ref/sta_crss.htm @@ -586,8 +589,8 @@ %%PORTDOCS%%intel/compiler60/docs/ref/stck_use.htm %%PORTDOCS%%intel/compiler60/docs/ref/strt_ovw.htm %%PORTDOCS%%intel/compiler60/docs/ref/tabframe.htm -%%PORTDOCS%%intel/compiler60/docs/ref/tocdhtml.htm %%PORTDOCS%%intel/compiler60/docs/ref/toclist.htm +%%PORTDOCS%%intel/compiler60/docs/ref/tocdhtml.htm %%PORTDOCS%%intel/compiler60/docs/ref/webhelp.cab %%PORTDOCS%%intel/compiler60/docs/ref/webhelp.jar %%PORTDOCS%%intel/compiler60/docs/ref/webhelp.res @@ -595,6 +598,8 @@ %%PORTDOCS%%intel/compiler60/docs/ref/webhelp0.cab %%PORTDOCS%%intel/compiler60/docs/ref/webhelp0.zip %%PORTDOCS%%intel/compiler60/docs/ref/webhelp4.js +%%PORTDOCS%%@dirrm intel/compiler60/docs/ref +%%PORTDOCS%%@dirrm intel/compiler60/docs intel/compiler60/ia32/bin/INTEL intel/compiler60/ia32/bin/f90com intel/compiler60/ia32/bin/fpp @@ -602,16 +607,18 @@ intel/compiler60/ia32/bin/icid intel/compiler60/ia32/bin/ifc intel/compiler60/ia32/bin/ifc.cfg intel/compiler60/ia32/bin/ifcbin +intel/compiler60/ia32/bin/ifcbin.cfg intel/compiler60/ia32/bin/ifccem intel/compiler60/ia32/bin/ifcvars.csh intel/compiler60/ia32/bin/ifcvars.sh +intel/compiler60/ia32/bin/ld intel/compiler60/ia32/bin/lmgrd.intel intel/compiler60/ia32/bin/lmutil intel/compiler60/ia32/bin/profmerge intel/compiler60/ia32/bin/proforder -intel/compiler60/ia32/bin/uninstall intel/compiler60/ia32/bin/xiar intel/compiler60/ia32/bin/xild +@dirrm intel/compiler60/ia32/bin intel/compiler60/ia32/include/iflkinds.d intel/compiler60/ia32/include/iflkinds.f90 intel/compiler60/ia32/include/iflkinds.o @@ -625,51 +632,33 @@ intel/compiler60/ia32/include/iflposix.f90 intel/compiler60/ia32/include/iflposix.o intel/compiler60/ia32/include/work.pc intel/compiler60/ia32/include/work.pcl +@dirrm intel/compiler60/ia32/include intel/compiler60/ia32/lib/crtxi.o intel/compiler60/ia32/lib/crtxn.o intel/compiler60/ia32/lib/icrt.internal.map intel/compiler60/ia32/lib/icrt.link intel/compiler60/ia32/lib/libBINDF90.a intel/compiler60/ia32/lib/libCEPCF90.a -intel/compiler60/ia32/lib/libCEPCF90.so intel/compiler60/ia32/lib/libF90.a -intel/compiler60/ia32/lib/libF90.so intel/compiler60/ia32/lib/libIEPCF90.a -intel/compiler60/ia32/lib/libIEPCF90.so intel/compiler60/ia32/lib/libPEPCF90.a -intel/compiler60/ia32/lib/libPEPCF90.so intel/compiler60/ia32/lib/libPOSF90.a -intel/compiler60/ia32/lib/libPOSF90.so intel/compiler60/ia32/lib/libcprts.a -intel/compiler60/ia32/lib/libcprts.so -intel/compiler60/ia32/lib/libcprts.so.1 intel/compiler60/ia32/lib/libcxa.a intel/compiler60/ia32/lib/libcxa.so intel/compiler60/ia32/lib/libcxa.so.1 -intel/compiler60/ia32/lib/libguide.a -intel/compiler60/ia32/lib/libguide.so +@comment intel/compiler60/ia32/lib/libguide.a intel/compiler60/ia32/lib/libimf.a -intel/compiler60/ia32/lib/libimf.so intel/compiler60/ia32/lib/libintrins.a -intel/compiler60/ia32/lib/libintrins.so intel/compiler60/ia32/lib/libirc.a intel/compiler60/ia32/lib/libircmt.a intel/compiler60/ia32/lib/libompstub.a intel/compiler60/ia32/lib/libsvml.a intel/compiler60/ia32/lib/libunwind.a -intel/compiler60/ia32/lib/libunwind.so -intel/compiler60/ia32/lib/libunwind.so.1 -@dirrm %%PORTDOCS%%intel/licenses -@dirrm %%PORTDOCS%%intel/compiler60/man/man1 -@dirrm %%PORTDOCS%%intel/compiler60/man -@dirrm %%PORTDOCS%%intel/compiler60/ia32/lib -@dirrm %%PORTDOCS%%intel/compiler60/ia32/include -@dirrm %%PORTDOCS%%intel/compiler60/ia32/bin -@dirrm %%PORTDOCS%%intel/compiler60/ia32 -@dirrm %%PORTDOCS%%intel/compiler60/docs/ref -@dirrm %%PORTDOCS%%intel/compiler60/docs/notes -@dirrm %%PORTDOCS%%intel/compiler60/docs/f_ug -@dirrm %%PORTDOCS%%intel/compiler60/docs/asm_ug -@dirrm %%PORTDOCS%%intel/compiler60/docs -@dirrm %%PORTDOCS%%intel/compiler60 -@dirrm %%PORTDOCS%%intel +@dirrm intel/compiler60/ia32/lib +@dirrm intel/compiler60/ia32 +@dirrm intel/compiler60/man/man1 +@dirrm intel/compiler60/man +@dirrm intel/compiler60 +@dirrm intel/licenses +@dirrm intel diff --git a/lang/ifc7/Makefile b/lang/ifc7/Makefile index 39ecff1b0aed..b060b9685225 100644 --- a/lang/ifc7/Makefile +++ b/lang/ifc7/Makefile @@ -7,86 +7,141 @@ PORTNAME= ifc PORTVERSION= 6.0.1.304 -CATEGORIES= lang devel emulators linux -MASTER_SITES=# +PORTREVISION= 1 +CATEGORIES= lang linux devel +MASTER_SITES= DISTNAME= l_fc_p_6.0.1.304 EXTRACT_SUFX= .tar -MAINTAINER= chat95@mbox.kyoto-inet.or.jp +MAINTAINER= maho@FreeBSD.org -BUILD_DEPENDS= rpm2cpio:${PORTSDIR}/archivers/rpm2cpio \ - ${LINUXBASE}/usr/bin/cc:${PORTSDIR}/devel/linux_devtools-7 +BUILD_DEPENDS= rpm2cpio:${PORTSDIR}/archivers/rpm2cpio RESTRICTED= Intel forbids any redistribution NO_PACKAGE= ${RESTRICTED} NO_CDROM= ${RESTRICTED} -ONLY_FOR_ARCHS= i386 +ONLY_FOR_ARCHS= i386 USE_LINUX= yes -USE_REINPLACE= yes +USE_REINPLACE= yes NO_WRKSUBDIR= yes -NO_BUILD= yes NO_FILTER_SHLIBS= yes -MAN1= ifc.1 -MANPREFIX= ${PREFIX}/intel/compiler60/ +MAN1= ifc.1 +MANPREFIX= ${PREFIX}/intel/compiler60/ IFC_SITE= http://www.intel.com/software/products/compilers/ .include <bsd.port.pre.mk> +IFCFFGVAL= ${OSREL:C/\..*//} +OBJCOPY?= /usr/bin/objcopy + .if !exists(${DISTDIR}/${DIST_SUBDIR}/${DISTNAME}${EXTRACT_SUFX}) -IGNORE= "Please manually download ${DISTFILES} from ${IFC_SITE}, e.g. from ${IFC_SITE}f60l/noncom.htm or from https://premier.intel.com/. Registration is required!! Put it into ${DISTDIR} and run make again." +IGNORE= "Please manually download ${DISTFILES} from ${IFC_SITE}, ${IFC_SITE}f60l/noncom.htm or https://premier.intel.com/ \(whichever has the file, to access premier.intel.com you have to register at http://www.intel.com/software/products/registrationcenter/index.htm\). With a little bit of luck it may also be available from ftp://download.intel.com/software/products/compilers/downloads/. Put it into ${DISTDIR} and run make again" .endif -.if exists(${PREFIX}/intel/compiler60/bin/icc) -BROKEN= Cannot coexist with icc +.if exists(${LINUXBASE}/boot/kernel.h) +BROKEN= Can not coexist with linux_devtools .endif post-extract: .for i in \ - intel-ifc6-6.0.1-304.i386.rpm \ + intel-ifc6-6.0.1-304.i386.rpm # intel-ildb6-6.0.1-310.i386.rpm \ # intel-efc6-6.0.1-304.ia64.rpm \ # intel-eldb6-6.0.1-310.ia64.rpm - @cd ${WRKSRC}; rpm2cpio ${i} | cpio -idu --quiet +.if defined(NOPORTDOCS) + @cd ${WRKSRC} && rpm2cpio 2>/dev/null ${i} | \ + cpio -idfuE ${FILESDIR}/cpio-exclude --quiet \ + */opt/intel/compiler60/docs/* +.else + @cd ${WRKSRC} && rpm2cpio 2>/dev/null ${i} | \ + cpio -idfuE ${FILESDIR}/cpio-exclude --quiet +.endif .endfor pre-patch: # Allow everyone to use it @${CHMOD} a+rx ${WRKSRC}/opt -# Remove unneded/unsafe access rights +# Remove unneeded/unsafe access rights .for i in docs ia32/include ia32/lib @${FIND} ${WRKSRC}/opt/intel/compiler60/${i} -type f -print0 | \ - xargs -0 ${CHMOD} a-x,g-w + ${XARGS} -0 ${CHMOD} a-x,g-w .endfor @${FIND} ${WRKSRC}/opt -type d -print0 | xargs -0 ${CHMOD} go-w # Use the Linux ABI for the binaries -.for i in INTEL f90com fpp icid ifcbin ifccem lmgrd.intel lmutil profmerge proforder xiar xild +.for i in INTEL f90com fpp icid ifcbin ifccem lmgrd.intel lmutil \ + profmerge proforder xiar xild @brandelf -t Linux ${WRKSRC}/opt/intel/compiler60/ia32/bin/${i} .endfor post-patch: # Correct some paths and patch some files - @${RM} ${WRKSRC}/opt/intel/compiler60/ia32/bin/ifc.orig .for i in ia32/bin/ifcvars.csh ia32/bin/ifcvars.sh \ ia32/bin/ifc ia32/bin/ifc.cfg docs/fsupport - @${REINPLACE_CMD} -i "" -e's+\<INSTALLDIR\>+${PREFIX}/intel+g; s+man -w+manpath+g; s+@LINUXBASE@+${LINUXBASE}+g; s+/bin/sh+${LINUXBASE}/bin/bash+g; s+\<INSTALLTIMECOMBOPACKAGEID\>+${DISTNAME}+g' ${WRKSRC}/opt/intel/compiler60/${i} + @${REINPLACE_CMD} -i "" -e 's:@@PREFIX@@:${PREFIX}:g; s@\<INSTALLDIR\>@${PREFIX}/intel@g; s@man -w@manpath -q@g; s:\<INSTALLTIMECOMBOPACKAGEID\>:${DISTNAME}:g' \ + ${WRKSRC}/opt/intel/compiler60/${i} @${CHMOD} 755 ${WRKSRC}/opt/intel/compiler60/${i} .endfor + @${RM} ${WRKSRC}/opt/intel/compiler60/ia32/bin/ifc.orig +# Remove empty directory .if defined(NOPORTDOCS) @${RM} -rf ${WRKSRC}/opt/intel/compiler60/docs .endif +# Provide a more FreeBSD'ish compile environment +.for i in ifc.cfg + @${ECHO} -e "\n-Ulinux\n-U__linux__\n-U__linux\n\n-D__FreeBSD__=${IFCFFGVAL}\n-D__ELF__=1\n" >>${WRKSRC}/opt/intel/compiler60/ia32/bin/${i} + @${CHMOD} a-x,g-w ${WRKSRC}/opt/intel/compiler60/ia32/bin/${i} +.endfor +# C++ hack for ifc + @${ECHO} -e "\n-Qoption,ld,-CPLUSPLUS\n" >>${WRKSRC}/opt/intel/compiler60/ia32/bin/ifc.cfg + @cd ${WRKSRC}/opt/intel/compiler60/ia32/bin/ && ${LN} -s ifc.cfg ifcbin.cfg + +do-build: +# Fix unresolved references + @cd ${WRKSRC} && ${CC} ${CFLAGS} -c ${FILESDIR}/assert_fail.c \ + ${FILESDIR}/cxa_atexit.c ${FILESDIR}/cxa_finalize.c \ + ${FILESDIR}/linux_file.c ${FILESDIR}/sysconf.c \ + ${FILESDIR}/errno_location.c ${FILESDIR}/mcount.S +.if ( ${OSVERSION} < 470000 ) || \ + ( ${OSVERSION} >= 500000 && ${OSVERSION} < 500042 ) + @${CC} ${CFLAGS} -c -o ${WRKSRC}/stderr.o ${FILESDIR}/stderr.c +.else +.for i in libcxa.a libimf.a libirc.a libircmt.a libunwind.a \ + libBINDF90.a libCEPCF90.a libF90.a libIEPCF90.a libPEPCF90.a \ + libcprts.a libintrins.a libompstub.a + @${OBJCOPY} --redefine-sym stderr=__stderrp \ + --redefine-sym stdout=__stdoutp \ + ${WRKSRC}/opt/intel/compiler60/ia32/lib/${i} +.endfor +.endif + @${AR} q ${WRKSRC}/opt/intel/compiler60/ia32/lib/libcxa.a ${WRKSRC}/*.o +.for i in BINDF90 PEPCF90 CEPCF90 POSF90 IEPCF90 + @${OBJCOPY} --redefine-sym stat=Stat --redefine-sym fstat=Fstat \ + --redefine-sym lstat=Lstat --redefine-sym lseek=Lseek \ + --redefine-sym mknod=Mknod \ + ${WRKSRC}/opt/intel/compiler60/ia32/lib/lib${i}.a +.endfor +# Some magic to be able to link + @${CC} ${CFLAGS} -o ${WRKSRC}/opt/intel/compiler60/ia32/bin/ld ${FILESDIR}/ld.c + @${STRIP_CMD} ${WRKSRC}/opt/intel/compiler60/ia32/bin/ld + @${CHMOD} 755 ${WRKSRC}/opt/intel/compiler60/ia32/bin/ld do-install: - @cd ${WRKSRC}/opt && ${TAR} -chf - . | \ + @cd ${WRKSRC}/opt && ${TAR} -cf - . | \ ${TAR} -xf - -C ${PREFIX} post-install: @${ECHO_CMD} "${PKGNAME} is now installed in ${PREFIX}/intel, to use it you have to" - @${ECHO_CMD} "source the appropriate ${PREFIX}/intel/compiler60/ia32/bin/ifcvars.{,c}sh" - @${ECHO_CMD} "script and put your license into your \$${INTEL_FLEXLM_LICENSE} (default:" - @${ECHO_CMD} "${PREFIX}/intel/licenses) directory." + @${ECHO_CMD} "put your license into your \$${INTEL_FLEXLM_LICENSE} (default:" + @${ECHO_CMD} "${PREFIX}/intel/licenses) directory and add" + @${ECHO_CMD} "${PREFIX}/intel/compiler60/ia32/bin to your PATH." + @${ECHO_CMD} + @${ECHO_CMD} "If you use ifc on a Pentium 4 make sure you have 'options CPU_ENABLE_SSE'" + @${ECHO_CMD} "in your kernel config (have a look at http://www.FreeBSD.org/handbook/" + @${ECHO_CMD} "if you do not know how to do this), else ifc will hang forever." + @${ECHO_CMD} .include <bsd.port.post.mk> diff --git a/lang/ifc7/files/assert_fail.c b/lang/ifc7/files/assert_fail.c new file mode 100644 index 000000000000..543426757229 --- /dev/null +++ b/lang/ifc7/files/assert_fail.c @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2002 Marius Strobl + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD: /tmp/pcvs/ports/lang/ifc7/files/Attic/assert_fail.c,v 1.1 2002-11-18 09:27:32 maho Exp $ + */ + +#include <err.h> +#include <stdlib.h> + +void +__assert_fail(const char *failedexpr, const char *file, unsigned int line, + const char *fn) +{ + warnx("assertion \"%s\" failed: file \"%s\", line %u%s%s%s", failedexpr, + file, line, fn ? ", function: \"" : "", fn ? fn : "", + fn ? "\"" : ""); + abort(); +} diff --git a/lang/ifc7/files/cpio-exclude b/lang/ifc7/files/cpio-exclude new file mode 100644 index 000000000000..9ec2e94a79cb --- /dev/null +++ b/lang/ifc7/files/cpio-exclude @@ -0,0 +1,70 @@ +*/opt/intel/compiler60/ia32/bin/uninstall +*/opt/intel/compiler60/ia32/include/algorithm +*/opt/intel/compiler60/ia32/include/bitset +*/opt/intel/compiler60/ia32/include/complex +*/opt/intel/compiler60/ia32/include/deque +*/opt/intel/compiler60/ia32/include/fstream +*/opt/intel/compiler60/ia32/include/fstream.h +*/opt/intel/compiler60/ia32/include/functional +*/opt/intel/compiler60/ia32/include/hash_map +*/opt/intel/compiler60/ia32/include/hash_set +*/opt/intel/compiler60/ia32/include/iomanip +*/opt/intel/compiler60/ia32/include/iomanip.h +*/opt/intel/compiler60/ia32/include/ios +*/opt/intel/compiler60/ia32/include/iosfwd +*/opt/intel/compiler60/ia32/include/iostream +*/opt/intel/compiler60/ia32/include/iostream.h +*/opt/intel/compiler60/ia32/include/istream +*/opt/intel/compiler60/ia32/include/iterator +*/opt/intel/compiler60/ia32/include/limits +*/opt/intel/compiler60/ia32/include/list +*/opt/intel/compiler60/ia32/include/locale +*/opt/intel/compiler60/ia32/include/map +*/opt/intel/compiler60/ia32/include/memory +*/opt/intel/compiler60/ia32/include/numeric +*/opt/intel/compiler60/ia32/include/ostream +*/opt/intel/compiler60/ia32/include/queue +*/opt/intel/compiler60/ia32/include/set +*/opt/intel/compiler60/ia32/include/slist +*/opt/intel/compiler60/ia32/include/sstream +*/opt/intel/compiler60/ia32/include/stack +*/opt/intel/compiler60/ia32/include/stdexcept +*/opt/intel/compiler60/ia32/include/stdiostream.h +*/opt/intel/compiler60/ia32/include/stl.h +*/opt/intel/compiler60/ia32/include/stream.h +*/opt/intel/compiler60/ia32/include/streambuf +*/opt/intel/compiler60/ia32/include/string +*/opt/intel/compiler60/ia32/include/strstream +*/opt/intel/compiler60/ia32/include/strstream.h +*/opt/intel/compiler60/ia32/include/utility +*/opt/intel/compiler60/ia32/include/valarray +*/opt/intel/compiler60/ia32/include/vector +*/opt/intel/compiler60/ia32/include/xcomplex +*/opt/intel/compiler60/ia32/include/xdebug +*/opt/intel/compiler60/ia32/include/xhash +*/opt/intel/compiler60/ia32/include/xiosbase +*/opt/intel/compiler60/ia32/include/xlocale +*/opt/intel/compiler60/ia32/include/xlocinfo +*/opt/intel/compiler60/ia32/include/xlocinfo.h +*/opt/intel/compiler60/ia32/include/xlocmes +*/opt/intel/compiler60/ia32/include/xlocmon +*/opt/intel/compiler60/ia32/include/xlocnum +*/opt/intel/compiler60/ia32/include/xloctime +*/opt/intel/compiler60/ia32/include/xmemory +*/opt/intel/compiler60/ia32/include/xstring +*/opt/intel/compiler60/ia32/include/xtree +*/opt/intel/compiler60/ia32/include/xutility +*/opt/intel/compiler60/ia32/include/ymath.h +*/opt/intel/compiler60/ia32/lib/libcprts.so +*/opt/intel/compiler60/ia32/lib/libcprts.so.1 +*/opt/intel/compiler60/ia32/lib/libguide.a +*/opt/intel/compiler60/ia32/lib/libguide.so +*/opt/intel/compiler60/ia32/lib/libunwind.so +*/opt/intel/compiler60/ia32/lib/libunwind.so.1 +*/opt/intel/compiler60/ia32/lib/libimf.so +*/opt/intel/compiler60/ia32/lib/libintrins.so +*/opt/intel/compiler60/ia32/lib/libCEPCF90.so +*/opt/intel/compiler60/ia32/lib/libF90.so +*/opt/intel/compiler60/ia32/lib/libIEPCF90.so +*/opt/intel/compiler60/ia32/lib/libPEPCF90.so +*/opt/intel/compiler60/ia32/lib/libPOSF90.so diff --git a/lang/ifc7/files/cxa_atexit.c b/lang/ifc7/files/cxa_atexit.c new file mode 100644 index 000000000000..d9dd1d0a1700 --- /dev/null +++ b/lang/ifc7/files/cxa_atexit.c @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2002 Marius Strobl + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#include <stdlib.h> + +/* + * The __cxa_atexit() function and friends are needed for full (IA64) C++ ABI + * compatibility but FreeBSD doesn't have implemented them, yet. In addition + * to the classic atexit() it is not only used to register functions to be + * called at program exit but also to call them (C++ destructors in that case) + * when a shared object is unloaded. For the later to work the dynamic linker + * assigns a unique dynamic shared object handle to every shared object while + * a handle of NULL represents a main program. When __cxa_finalize() is called + * with a specific (non-NULL) handle as an argument all functions registered + * via __cxa_atexit() and having the same handle are called. + * The best we can do here to emulate that behaviour until FreeBSD supports + * this is to register the functions via atexit(). While this certainly is a + * bad hack it seems to work, even the current dynamic linker is assigning + * the handles. I didn't see a function getting registered with an argument + * so far. + */ +int +__cxa_atexit(void (*fn)(), void *arg, void *handle) +{ + + return (handle ? atexit(fn) : 0); +} diff --git a/lang/ifc7/files/cxa_finalize.c b/lang/ifc7/files/cxa_finalize.c new file mode 100644 index 000000000000..418462872084 --- /dev/null +++ b/lang/ifc7/files/cxa_finalize.c @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2002 Marius Strobl + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD: /tmp/pcvs/ports/lang/ifc7/files/Attic/cxa_finalize.c,v 1.1 2002-11-18 09:27:32 maho Exp $ + */ + +void +__cxa_finalize(void *handle) +{ + + /* + * As we dared to register the functions via atexit() this job will + * be done by exit(). + */ + return; +} diff --git a/lang/ifc7/files/errno_location.c b/lang/ifc7/files/errno_location.c new file mode 100644 index 000000000000..eb9324d551d3 --- /dev/null +++ b/lang/ifc7/files/errno_location.c @@ -0,0 +1,37 @@ +/*- + * Copyright (c) 2000 Andrew Gallatin and David O'Brien + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * copied over from: FreeBSD: ports/lang/compaq-cc/files/errno_location.c,v 1.1 2000/12/08 13:27:29 obrien Exp + * + * $FreeBSD: /tmp/pcvs/ports/lang/ifc7/files/Attic/errno_location.c,v 1.1 2002-11-18 09:27:32 maho Exp $ + */ + +#include <errno.h> + +int * +__errno_location(void) +{ + return &errno; +} diff --git a/lang/ifc7/files/ld.c b/lang/ifc7/files/ld.c new file mode 100644 index 000000000000..250390cf7772 --- /dev/null +++ b/lang/ifc7/files/ld.c @@ -0,0 +1,452 @@ +/* + * Copyright (c) 2002 Marius Strobl + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * Wrapper for Intel(R) C/C++ Compiler for Linux to allow linking of native + * FreeBSD binaries. + * Based on a shell-script written by Dan Nelson <dnelson@allantgroup.com> + * with some modifications by Alexander Leidinger <netchild@FreeBSD.org>. + * + * $FreeBSD: /tmp/pcvs/ports/lang/ifc7/files/Attic/ld.c,v 1.1 2002-11-18 09:27:32 maho Exp $ + */ + +/* Uses code marked: */ + +/* OpenBSD: mailwrapper.c,v 1.6 1999/12/17 05:06:28 mickey Exp */ +/* NetBSD: mailwrapper.c,v 1.3 1999/05/29 18:18:15 christos Exp */ +/* FreeBSD: src/usr.sbin/mailwrapper/mailwrapper.c,v 1.8 2002/07/11 18:27:55 alfred Exp */ + +/* + * Copyright (c) 1998 + * Perry E. Metzger. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgment: + * This product includes software developed for the NetBSD Project + * by Perry E. Metzger. + * 4. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include <err.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> + +#if defined (__FreeBSD__) && __FreeBSD__ >= 2 + #include <osreldate.h> +#else + #error "Won't work here." +#endif + +#define PATH_LD "/usr/bin/ld" + +struct arglist { + size_t argc, maxc; + char **argv; +}; + +static void initarg(struct arglist *al); +static void addarg(struct arglist *al, const char *arg, int copy); +static void freearg(struct arglist *al, int copy); +int main(int argc, char *argv[], char *envp[]); + +static void +initarg(struct arglist *al) +{ + + al->argc = 0; + al->maxc = 10; + if ((al->argv = malloc(al->maxc * sizeof(char *))) == NULL) + err(1, NULL); +} + +static void +addarg(struct arglist *al, const char *arg, int copy) +{ + char **argv2; + + if (al->argc == al->maxc) { + al->maxc <<= 1; + + if ((argv2 = realloc(al->argv, + al->maxc * sizeof(char *))) == NULL) { + if (al->argv) + free(al->argv); + al->argv = NULL; + err(1, NULL); + } else { + al->argv = argv2; + } + } + if (copy) { + if ((al->argv[al->argc++] = strdup(arg)) == NULL) + err(1, NULL); + } else { + al->argv[al->argc++] = (char *)arg; + } +} + +static +void freearg(struct arglist *al, int copy) +{ + size_t i; + + if (copy) + for (i = 0; i < al->argc; i++) + free(al->argv[i]); + free(al->argv); +} + +int +main(int argc, char *argv[], char *envp[]) +{ + size_t i; + int bootstrap, cpp, dynamic, pic, gprof, stlinserted, threaded; + char *libc, *libc_r, *prefix; + struct arglist al; + + if (argc == 1) + errx(1, "no input files"); + + if ((prefix = getenv("PREFIX")) == NULL) + errx(1, "can't get PREFIX"); + + initarg(&al); + bootstrap = cpp = dynamic = pic = gprof = stlinserted = threaded = 0; + +#ifdef DEBUG + printf("input: "); +#endif + +#define ARGCMP(x) !strcmp(argv[i], (x)) +#define ARGCMPB(x, y) (strlen(x) + strlen(y) == strlen(argv[i]) && \ + !strncmp(argv[i], (x), strlen(x)) && \ + !strncmp(argv[i] + strlen(x), (y), strlen(y))) + + /* + * XXX This doesn't deal with whitespace but a) the output of the + * compiler should be fixed and b) the real linker is also picky + * about whitespace. + */ + for (i = 0; i < argc; i++) { +#ifdef DEBUG + printf("%s ", argv[i]); +#endif + + if (ARGCMP("-CPLUSPLUS")) { + cpp++; + continue; + } + + if (ARGCMP("-BOOTSTRAPSTLPORT")) { + bootstrap++; + continue; + } + + if (ARGCMP("-PIC")) { + pic++; + continue; + } + + /* + * If the compiler was called with -static we shouldn't see + * "--dynamic-linker" here. + * Note: According to ld(1) this is "--dynamic-linker" but + * ICC passes "-dynamic-linker" to it. + */ + if (ARGCMP("--dynamic-linker") || ARGCMP("-dynamic-linker")) { + dynamic++; + continue; + } + + /* + * Just link libstlport_icc* once when compiling the stlport + * tests. + */ + if (!strncmp(argv[i], "-lstlport_icc", + strlen("-lstlport_icc"))) { + stlinserted++; + continue; + } + + /* + * If IFC, do not use libstlport_icc. + */ + if (!strcmp(argv[i], "-lF90")) { + stlinserted++; + continue; + } + + /* + * ICC links the thread safe libircmt instead of libirc when + * told to generate threaded code by any of the compiler flags + * "-mt", "-openmp" or "-parallel". We use this as an indicator + * to link against libc_r. + */ + if (ARGCMP("-lircmt")) { + threaded++; + continue; + } + + /* + * Link against libc_p when "-pg" was given, "/usr/lib/gcrt1.o" + * indicates this. + */ + if (ARGCMP("/usr/lib/gcrt1.o")) { + gprof++; + continue; + } + } + + /* + * Use the appropriate libs for libc and libc_r when linking static + * and "-KPIC" or "-pg" where given. + */ + if (!dynamic && (pic || gprof)) { + /* + * Let libc_p win above libc_pic when both, "-KPIC" and "-pg", + * where given, GCC does the same. + */ + if (!gprof) { + libc = strdup("-lc_pic"); + libc_r = strdup("-lc_r"); + } else { + libc = strdup("-lc_p"); + libc_r = strdup("-lc_r_p"); + } + } else { + libc = strdup("-lc"); + libc_r = strdup("-lc_r"); + } + +#ifdef DEBUG + printf("\ncpp: %s bootstrap: %s dynamic: %s gprof: %s pic: %s " + "threaded: %s\n", cpp ? "YES" : "NO", bootstrap ? "YES" : "NO", + dynamic ? "YES" : "NO", gprof ? "YES" : "NO", pic ? "YES" : "NO", + threaded ? "YES" : "NO"); +#endif + + if (bootstrap && !cpp) + errx(1, "-BOOTSTRAPSTLPORT is only valid in combination with " + "-CPLUSPLUS"); + + for (i = 0; i < argc; i++) { + if (ARGCMP("-CPLUSPLUS") || ARGCMP("-BOOTSTRAPSTLPORT") || + ARGCMP("-PIC")) + continue; + + /* prepend "-melf_i386" to the commandline */ + if (i == 0) { + addarg(&al, argv[0], 1); +#if __FreeBSD_version < 500042 + addarg(&al, "-melf_i386", 1); +#else + addarg(&al, "-melf_i386_fbsd", 1); +#endif + continue; + } + + /* + * "-u ___pseudo_link" triggers linking of additional objects + * from libcxa which seem to bloat the binaries, i.e. they + * perfectly work without it. Intel Support promised to look + * up what this servers for... + */ + if (ARGCMP("-u") || ARGCMP("___pseudo_link")) + continue; + + /* Don't add obsolete flag "-Qy". */ + if (ARGCMP("-Qy")) + continue; + + /* Libunwind is only needed when compiling C++ source. */ + if (!cpp && ARGCMP("-lunwind")) + continue; + + /* + * Replace libcprts with libstlport_icc. The Dinkumware STL + * shipping with ICC has unresolvable glibc dependencies + * in both, the static and the dynamic, versions. + */ + if (ARGCMP("-lcprts")) { + if (cpp && !bootstrap && !stlinserted) { + addarg(&al, + dynamic ? "-Bdynamic" : "-Bstatic", 1); + addarg(&al, "-lstlport_icc", 1); + stlinserted++; + } + continue; + } + + /* + * Link against libc_r when compiling multi-threaded or C++ + * code (libcxa and libunwind depend on libc_r when compiling + * C++ source). + */ + if (ARGCMP("-lc")) { + if (al.argc > 0 && + strncmp(al.argv[al.argc - 1], "-B", strlen("-B"))) + addarg(&al, + dynamic ? "-Bdynamic" : "-Bstatic", 1); + if (cpp || threaded) { +#if __FreeBSD_version < 500016 + addarg(&al, libc_r, 0); +#else + addarg(&al, libc, 0); + addarg(&al, + dynamic ? "-Bdynamic" : "-Bstatic", 1); + addarg(&al, libc_r, 0); +#endif + } else { + addarg(&al, libc, 0); + } + continue; + } + + /* Switch Linux stuff to FreeBSD counterparts. */ + if (ARGCMP("/lib/ld-linux.so.2")) { + addarg(&al, "/usr/libexec/ld-elf.so.1", 1); + continue; + } + if (ARGCMP("-L/usr/lib")) { + char *temp; + + if ((temp = (char *) malloc(strlen("-L") + + strlen(prefix) + strlen("/lib") + 1)) == NULL) + err(1, NULL); + + addarg(&al, "-L/usr/libexec/elf", 1); + addarg(&al, "-L/usr/libexec", 1); + addarg(&al, "-L/usr/lib", 1); + snprintf(temp, strlen("-L") + strlen(prefix) + + strlen("/lib") + 1, "-L%s/lib", prefix); + addarg(&al, temp, 1); + free(temp); + continue; + } + + /* + * Link and map files for C++ exception handling. + */ + if (!cpp && + (ARGCMP("--version-script") || + ARGCMPB(prefix, "/intel/compiler60/ia32/lib/icrt.link") || + ARGCMPB(prefix, + "/intel/compiler60/ia32/lib/icrt.internal.map"))) + continue; + + /* + * Force libcxa and libunwind to static linkage, since the + * dynamic versions have glibc dependencies. + * Don't add superfluous -Bdynamic. + */ + if (ARGCMP("-Bdynamic") && i < argc - 1) { + if (!strcmp(argv[i + 1], "-lcxa") || + (cpp && !strcmp(argv[i + 1], "-lunwind"))) { + addarg(&al, "-Bstatic", 1); + continue; + } + + if (!strcmp(argv[i + 1], "-lcprts") || + !strcmp(argv[i + 1], "-lunwind")) + continue; + } + + /* Don't add superfluous -Bstatic. */ + if (ARGCMP("-Bstatic") && i < argc - 1 && + (!strcmp(argv[i + 1], "-lcprts") || + (!cpp && !strcmp(argv[i + 1], "-lunwind")))) + continue; + + /* + * Sanity check if every lib is prepended by a linkage option, + * add if missing. + */ + if (!strncmp(argv[i], "-l", strlen("-l")) && al.argc > 0 && + strncmp(al.argv[al.argc - 1], "-B", strlen("-B"))) { + if (!strcmp(argv[i], "-lcxa") || + !strcmp(argv[i], "-limf") || + !strcmp(argv[i], "-lirc") || + !strcmp(argv[i], "-lircmt") || + !strcmp(argv[i], "-lunwind")) + addarg(&al, "-Bstatic", 1); + else + addarg(&al, + dynamic ? "-Bdynamic" : "-Bstatic", 1); + + addarg(&al, argv[i], 1); + continue; + } + + /* default */ + addarg(&al, argv[i], 1); + } + +#undef ARGCMP +#undef ARGCMPB + + /* Still something to do ? */ + if (al.argc == 1) + errx(1, "no input files"); + +#ifdef DEBUG + printf("output: "); + + for (i = 0; i < al.argc; i++) + printf("%s ", al.argv[i]); + + printf("\n"); +#endif + + addarg(&al, NULL, 0); + + /* Launch the real linker */ + if (execve(PATH_LD, al.argv, envp) == -1) + err(1, "execing %s", PATH_LD); + + freearg(&al, 1); + + exit (1); +} diff --git a/lang/ifc7/files/linux_file.c b/lang/ifc7/files/linux_file.c new file mode 100644 index 000000000000..06d420718489 --- /dev/null +++ b/lang/ifc7/files/linux_file.c @@ -0,0 +1,163 @@ +/* + * Copyright (c) 2002 The FreeBSD Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +short unsigned int *__ctype_b /* 0x0 */; + +#include <fcntl.h> +#include <stdarg.h> +#include <sys/types.h> +#include <sys/stat.h> + +typedef long long int __off64_t; + +int open64(const char *path, int flags, ...) { + int mode; + va_list args; + + va_start (args, flags); + return open(path, flags, va_arg(args, int)); + va_end (args); +} + + +int creat64(const char *path, unsigned int mode) { + return open(path, O_CREAT | O_TRUNC | O_WRONLY, mode); +} + + +__off64_t lseek64 (int __fd, __off64_t __offset, int __whence) { + return (__off64_t) lseek(__fd, (off_t) __offset, __whence); +} + + +int ftruncate64 (int __fd, __off64_t __length) { + return ftruncate(__fd, (off_t) __length); +} + + +/* This matches struct stat64 in glibc2.1, hence the absolutely + * insane amounts of padding around dev_t's. + */ +struct stat64 { + unsigned short st_dev; + unsigned char __pad0[10]; + +#define STAT64_HAS_BROKEN_ST_INO 1 + unsigned long __st_ino; + + unsigned int st_mode; + unsigned int st_nlink; + + unsigned long st_uid; + unsigned long st_gid; + + unsigned short st_rdev; + unsigned char __pad3[10]; + + long long st_size; + unsigned long st_blksize; + + unsigned long st_blocks; /* Number 512-byte blocks allocated. */ + unsigned long __pad4; /* future possible st_blocks high bits */ + + unsigned long st_atime_; + unsigned long __pad5; + + unsigned long st_mtime_; + unsigned long __pad6; + + unsigned long st_ctime_; + unsigned long __pad7; /* will be high 32 bits of ctime someday */ + + unsigned long long st_ino; +}; + + +struct stat64 stat2stat64(struct stat sb) { + static struct stat64 sb64; + + sb64.st_dev = sb.st_dev; + sb64.st_ino = sb.st_ino; + sb64.st_mode = sb.st_mode; + sb64.st_nlink = sb.st_nlink; + sb64.st_uid = sb.st_uid; + sb64.st_gid = sb.st_gid; + sb64.st_rdev = sb.st_rdev; + sb64.st_size = sb.st_size; + sb64.st_blksize = sb.st_blksize; + sb64.st_blocks = sb.st_blocks; + sb64.st_atime_ = sb.st_atime; + sb64.st_mtime_ = sb.st_mtime; + sb64.st_ctime_ = sb.st_ctime; + + return sb64; +} + + +int __fxstat64 (int __ver, int __fildes, struct stat64 *__stat_buf) { + struct stat sb; + int result; + + result = fstat (__fildes, &sb); + *__stat_buf = stat2stat64(sb); + return result; +} + + +int __xstat64 (int __ver, __const char *__filename, + struct stat64 *__stat_buf) { + struct stat sb; + int result; + + result = stat (__filename, &sb); + *__stat_buf = stat2stat64(sb); + return result; +} + + +#include <stdio.h> + +void __xstat() { + fprintf(stderr, __FILE__ ": __xstat() is dummy.\n"); +}; +void __fxstat() { + fprintf(stderr, __FILE__ ": __fxstat() is dummy.\n"); +}; +void __lxstat() { + fprintf(stderr, __FILE__ ": __lxstat() is dummy.\n"); +}; +void __lxstat64() { + fprintf(stderr, __FILE__ ": __lxstat64() is dummy.\n"); +}; + +int __xmknod (int vers /* 0x8 */, char *path /* 0xc */, + unsigned int mode /* 0x10 */, + long long unsigned int *dev /* 0x14 */) +{ + return mknod(path, mode, *dev); +}; diff --git a/lang/ifc7/files/mcount.S b/lang/ifc7/files/mcount.S new file mode 100644 index 000000000000..9f93404a2824 --- /dev/null +++ b/lang/ifc7/files/mcount.S @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2002 Marius Strobl + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD: /tmp/pcvs/ports/lang/ifc7/files/Attic/mcount.S,v 1.1 2002-11-18 09:27:32 maho Exp $ + */ + + .text + .extern .mcount + .globl mcount + .type mcount,@function +mcount: + jmp .mcount diff --git a/lang/ifc7/files/patch-aa b/lang/ifc7/files/patch-aa deleted file mode 100644 index ac74eace1fe4..000000000000 --- a/lang/ifc7/files/patch-aa +++ /dev/null @@ -1,14 +0,0 @@ ---- opt/intel/compiler60/ia32/bin/ifc.old Thu Jul 18 18:52:59 2002 -+++ opt/intel/compiler60/ia32/bin/ifc Thu Jul 18 18:54:03 2002 -@@ -13,9 +13,9 @@ - - if [ -z PATH ] - then -- PATH=<INSTALLDIR>/compiler60/ia32/bin; -+ PATH=@LINUXBASE@/usr/bin:<INSTALLDIR>/compiler60/ia32/bin; - else -- PATH=<INSTALLDIR>/compiler60/ia32/bin:$PATH; -+ PATH=@LINUXBASE@/usr/bin:<INSTALLDIR>/compiler60/ia32/bin:$PATH; - fi - export PATH; - diff --git a/lang/ifc7/files/patch-ifc b/lang/ifc7/files/patch-ifc new file mode 100644 index 000000000000..3428a50551d2 --- /dev/null +++ b/lang/ifc7/files/patch-ifc @@ -0,0 +1,42 @@ +--- opt/intel/compiler60/ia32/bin/ifc.orig Sun Sep 22 01:03:04 2002 ++++ opt/intel/compiler60/ia32/bin/ifc Sun Sep 22 01:06:31 2002 +@@ -1,29 +1,31 @@ + #!/bin/sh + +-INTEL_LICENSE_FILE=<INSTALLDIR>/licenses; ++PREFIX=/usr/local ++export PREFIX ++INTEL_LICENSE_FILE=${PREFIX}/intel/licenses; + export INTEL_LICENSE_FILE; + + if [ -z LD_LIBRARY_PATH ] + then +- LD_LIBRARY_PATH=<INSTALLDIR>/compiler60/ia32/lib; ++ LD_LIBRARY_PATH=${PREFIX}/intel/compiler60/ia32/lib; + else +- LD_LIBRARY_PATH=<INSTALLDIR>/compiler60/ia32/lib:$LD_LIBRARY_PATH ++ LD_LIBRARY_PATH=${PREFIX}/intel/compiler60/ia32/lib:$LD_LIBRARY_PATH + fi + export LD_LIBRARY_PATH; + + if [ -z PATH ] + then +- PATH=<INSTALLDIR>/compiler60/ia32/bin; ++ PATH=${PREFIX}/intel/compiler60/ia32/bin; + else +- PATH=<INSTALLDIR>/compiler60/ia32/bin:$PATH; ++ PATH=${PREFIX}/intel/compiler60/ia32/bin:$PATH; + fi + export PATH; + +-export -n IA32ROOT; unset IA32ROOT; ++unset IA32ROOT; + + if [ $# != 0 ] + then +- exec -a "<INSTALLDIR>/compiler60/ia32/bin/ifc" <INSTALLDIR>/compiler60/ia32/bin/ifcbin "$@"; ++ exec ${PREFIX}/intel/compiler60/ia32/bin/ifcbin "$@"; + else +- exec -a "<INSTALLDIR>/compiler60/ia32/bin/ifc" <INSTALLDIR>/compiler60/ia32/bin/ifcbin; ++ exec ${PREFIX}/intel/compiler60/ia32/bin/ifcbin; + fi diff --git a/lang/ifc7/files/stderr.c b/lang/ifc7/files/stderr.c new file mode 100644 index 000000000000..3d4793952c49 --- /dev/null +++ b/lang/ifc7/files/stderr.c @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2002 Marius Strobl + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD: /tmp/pcvs/ports/lang/ifc7/files/Attic/stderr.c,v 1.1 2002-11-18 09:27:32 maho Exp $ + */ + +#include <stdio.h> + +#undef stdout +#undef stderr +FILE *stdout = &__sF[1]; +FILE *stderr = &__sF[2]; diff --git a/lang/ifc7/files/sysconf.c b/lang/ifc7/files/sysconf.c new file mode 100644 index 000000000000..de6c1b78b4cd --- /dev/null +++ b/lang/ifc7/files/sysconf.c @@ -0,0 +1,145 @@ +/* + * Copyright (c) 2002 The FreeBSD Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD: /tmp/pcvs/ports/lang/ifc7/files/Attic/sysconf.c,v 1.1 2002-11-18 09:27:32 maho Exp $ + */ +#include <unistd.h> +#include <errno.h> + +#define _SC_UNDEF 0 + +static int linux_sysconf[] = { + _SC_ARG_MAX, + _SC_CHILD_MAX, + _SC_CLK_TCK, + _SC_NGROUPS_MAX, + _SC_OPEN_MAX, + _SC_STREAM_MAX, + _SC_TZNAME_MAX, + _SC_JOB_CONTROL, + _SC_SAVED_IDS, + _SC_REALTIME_SIGNALS, + _SC_PRIORITY_SCHEDULING, + _SC_TIMERS, + _SC_ASYNCHRONOUS_IO, + _SC_PRIORITIZED_IO, + _SC_SYNCHRONIZED_IO, + _SC_FSYNC, + _SC_MAPPED_FILES, + _SC_MEMLOCK, + _SC_MEMLOCK_RANGE, + _SC_MEMORY_PROTECTION, + _SC_MESSAGE_PASSING, + _SC_SEMAPHORES, + _SC_SHARED_MEMORY_OBJECTS, + _SC_AIO_LISTIO_MAX, + _SC_AIO_MAX, + _SC_AIO_PRIO_DELTA_MAX, + _SC_DELAYTIMER_MAX, + _SC_MQ_OPEN_MAX, + _SC_UNDEF, + _SC_VERSION, + _SC_PAGESIZE, + _SC_RTSIG_MAX, + _SC_SEM_NSEMS_MAX, + _SC_SEM_VALUE_MAX, + _SC_SIGQUEUE_MAX, + _SC_TIMER_MAX, + _SC_BC_BASE_MAX, + _SC_BC_DIM_MAX, + _SC_BC_SCALE_MAX, + _SC_BC_STRING_MAX, + _SC_COLL_WEIGHTS_MAX, + _SC_UNDEF, + _SC_EXPR_NEST_MAX, + _SC_LINE_MAX, + _SC_RE_DUP_MAX, + _SC_UNDEF, + _SC_2_VERSION, + _SC_2_C_BIND, + _SC_2_C_DEV, + _SC_2_FORT_DEV, + _SC_2_FORT_RUN, + _SC_2_SW_DEV, + _SC_2_LOCALEDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_UNDEF, + _SC_2_CHAR_TERM, + _SC_UNDEF, + _SC_2_UPE, +}; + +#define SYSCONF_SIZE (sizeof(linux_sysconf)/sizeof(int)) + +long __sysconf(int name) +{ + if (name >= SYSCONF_SIZE || linux_sysconf[name] == _SC_UNDEF) { + errno = EINVAL; + return -1; + } + + return sysconf(linux_sysconf[name]); +} diff --git a/lang/ifc7/pkg-comment b/lang/ifc7/pkg-comment index 4a295e1abc8f..0ac63f4d87ec 100644 --- a/lang/ifc7/pkg-comment +++ b/lang/ifc7/pkg-comment @@ -1 +1 @@ -Intel's Fortran compiler supporting Pentium 4 and Itanium processor +Intel's Fortran compiler, set up to produce native FreeBSD objects diff --git a/lang/ifc7/pkg-descr b/lang/ifc7/pkg-descr index b21449bd8677..bb35ee7b023c 100644 --- a/lang/ifc7/pkg-descr +++ b/lang/ifc7/pkg-descr @@ -1,7 +1,7 @@ -The Intel Fortran Compiler 6.0 for Linux, supporting -development of performance-oriented applications for -Pentium processors, including the new Pentium 4 -processor (and the 64-bit Intel Itanium processor). +This is Intels Fortran compiler, it is set up to produce +native FreeBSD objects, supporting development of +performance-oriented applications for Pentium processors, +including the Pentium 4 processor. You can obtain 30-day Free Evaluation Software(Includes Support) or, Non-Commercial Unsupported lisence. diff --git a/lang/ifc7/pkg-plist b/lang/ifc7/pkg-plist index 3f5e38d77086..52ae300edd66 100644 --- a/lang/ifc7/pkg-plist +++ b/lang/ifc7/pkg-plist @@ -1,6 +1,5 @@ %%PORTDOCS%%intel/compiler60/docs/FortranReleaseNotes.htm %%PORTDOCS%%intel/compiler60/docs/asm_lan.pdf -%%PORTDOCS%%intel/compiler60/docs/asm_ug.pdf %%PORTDOCS%%intel/compiler60/docs/asm_ug/_blank.htm %%PORTDOCS%%intel/compiler60/docs/asm_ug/anal_cmb.htm %%PORTDOCS%%intel/compiler60/docs/asm_ug/anal_exc.htm @@ -142,6 +141,8 @@ %%PORTDOCS%%intel/compiler60/docs/asm_ug/webhelp0.cab %%PORTDOCS%%intel/compiler60/docs/asm_ug/webhelp0.zip %%PORTDOCS%%intel/compiler60/docs/asm_ug/webhelp4.js +%%PORTDOCS%%@dirrm intel/compiler60/docs/asm_ug +%%PORTDOCS%%intel/compiler60/docs/asm_ug.pdf %%PORTDOCS%%intel/compiler60/docs/enduser.pdf %%PORTDOCS%%intel/compiler60/docs/f_ug/_blank.htm %%PORTDOCS%%intel/compiler60/docs/f_ug/add_arg.htm @@ -246,8 +247,8 @@ %%PORTDOCS%%intel/compiler60/docs/f_ug/for_srce.htm %%PORTDOCS%%intel/compiler60/docs/f_ug/fortran_help.gif %%PORTDOCS%%intel/compiler60/docs/f_ug/ftsbody.htm -%%PORTDOCS%%intel/compiler60/docs/f_ug/ftsdhtml.htm %%PORTDOCS%%intel/compiler60/docs/f_ug/ftsform.htm +%%PORTDOCS%%intel/compiler60/docs/f_ug/ftsdhtml.htm %%PORTDOCS%%intel/compiler60/docs/f_ug/grp_altn.htm %%PORTDOCS%%intel/compiler60/docs/f_ug/grp_args.htm %%PORTDOCS%%intel/compiler60/docs/f_ug/grp_cmp.htm @@ -422,6 +423,7 @@ %%PORTDOCS%%intel/compiler60/docs/f_ug/webhelp4.js %%PORTDOCS%%intel/compiler60/docs/f_ug/welcome.htm %%PORTDOCS%%intel/compiler60/docs/f_ug/xref_bth.htm +%%PORTDOCS%%@dirrm intel/compiler60/docs/f_ug %%PORTDOCS%%intel/compiler60/docs/fcompindex.htm %%PORTDOCS%%intel/compiler60/docs/flicense %%PORTDOCS%%intel/compiler60/docs/for_lib.pdf @@ -432,6 +434,7 @@ %%PORTDOCS%%intel/compiler60/docs/icid.htm %%PORTDOCS%%intel/compiler60/docs/notes/ifc_fixes.txt %%PORTDOCS%%intel/compiler60/docs/notes/ifc_issues.txt +%%PORTDOCS%%@dirrm intel/compiler60/docs/notes %%PORTDOCS%%intel/compiler60/docs/ref/_blank.htm %%PORTDOCS%%intel/compiler60/docs/ref/ann_entr.htm %%PORTDOCS%%intel/compiler60/docs/ref/ann_mem.htm @@ -518,8 +521,8 @@ %%PORTDOCS%%intel/compiler60/docs/ref/elem_typ.htm %%PORTDOCS%%intel/compiler60/docs/ref/elem_val.htm %%PORTDOCS%%intel/compiler60/docs/ref/ftsbody.htm -%%PORTDOCS%%intel/compiler60/docs/ref/ftsdhtml.htm %%PORTDOCS%%intel/compiler60/docs/ref/ftsform.htm +%%PORTDOCS%%intel/compiler60/docs/ref/ftsdhtml.htm %%PORTDOCS%%intel/compiler60/docs/ref/gloss.htm %%PORTDOCS%%intel/compiler60/docs/ref/idxbody.htm %%PORTDOCS%%intel/compiler60/docs/ref/idxdhtml.htm @@ -564,10 +567,10 @@ %%PORTDOCS%%intel/compiler60/docs/ref/sec_stck.htm %%PORTDOCS%%intel/compiler60/docs/ref/sec_use.htm %%PORTDOCS%%intel/compiler60/docs/ref/sec_win.htm +%%PORTDOCS%%intel/compiler60/docs/ref/smb_ovw.htm %%PORTDOCS%%intel/compiler60/docs/ref/sect_ovw.htm %%PORTDOCS%%intel/compiler60/docs/ref/smb_glob.htm %%PORTDOCS%%intel/compiler60/docs/ref/smb_locl.htm -%%PORTDOCS%%intel/compiler60/docs/ref/smb_ovw.htm %%PORTDOCS%%intel/compiler60/docs/ref/smb_weak.htm %%PORTDOCS%%intel/compiler60/docs/ref/sta_asgn.htm %%PORTDOCS%%intel/compiler60/docs/ref/sta_crss.htm @@ -586,8 +589,8 @@ %%PORTDOCS%%intel/compiler60/docs/ref/stck_use.htm %%PORTDOCS%%intel/compiler60/docs/ref/strt_ovw.htm %%PORTDOCS%%intel/compiler60/docs/ref/tabframe.htm -%%PORTDOCS%%intel/compiler60/docs/ref/tocdhtml.htm %%PORTDOCS%%intel/compiler60/docs/ref/toclist.htm +%%PORTDOCS%%intel/compiler60/docs/ref/tocdhtml.htm %%PORTDOCS%%intel/compiler60/docs/ref/webhelp.cab %%PORTDOCS%%intel/compiler60/docs/ref/webhelp.jar %%PORTDOCS%%intel/compiler60/docs/ref/webhelp.res @@ -595,6 +598,8 @@ %%PORTDOCS%%intel/compiler60/docs/ref/webhelp0.cab %%PORTDOCS%%intel/compiler60/docs/ref/webhelp0.zip %%PORTDOCS%%intel/compiler60/docs/ref/webhelp4.js +%%PORTDOCS%%@dirrm intel/compiler60/docs/ref +%%PORTDOCS%%@dirrm intel/compiler60/docs intel/compiler60/ia32/bin/INTEL intel/compiler60/ia32/bin/f90com intel/compiler60/ia32/bin/fpp @@ -602,16 +607,18 @@ intel/compiler60/ia32/bin/icid intel/compiler60/ia32/bin/ifc intel/compiler60/ia32/bin/ifc.cfg intel/compiler60/ia32/bin/ifcbin +intel/compiler60/ia32/bin/ifcbin.cfg intel/compiler60/ia32/bin/ifccem intel/compiler60/ia32/bin/ifcvars.csh intel/compiler60/ia32/bin/ifcvars.sh +intel/compiler60/ia32/bin/ld intel/compiler60/ia32/bin/lmgrd.intel intel/compiler60/ia32/bin/lmutil intel/compiler60/ia32/bin/profmerge intel/compiler60/ia32/bin/proforder -intel/compiler60/ia32/bin/uninstall intel/compiler60/ia32/bin/xiar intel/compiler60/ia32/bin/xild +@dirrm intel/compiler60/ia32/bin intel/compiler60/ia32/include/iflkinds.d intel/compiler60/ia32/include/iflkinds.f90 intel/compiler60/ia32/include/iflkinds.o @@ -625,51 +632,33 @@ intel/compiler60/ia32/include/iflposix.f90 intel/compiler60/ia32/include/iflposix.o intel/compiler60/ia32/include/work.pc intel/compiler60/ia32/include/work.pcl +@dirrm intel/compiler60/ia32/include intel/compiler60/ia32/lib/crtxi.o intel/compiler60/ia32/lib/crtxn.o intel/compiler60/ia32/lib/icrt.internal.map intel/compiler60/ia32/lib/icrt.link intel/compiler60/ia32/lib/libBINDF90.a intel/compiler60/ia32/lib/libCEPCF90.a -intel/compiler60/ia32/lib/libCEPCF90.so intel/compiler60/ia32/lib/libF90.a -intel/compiler60/ia32/lib/libF90.so intel/compiler60/ia32/lib/libIEPCF90.a -intel/compiler60/ia32/lib/libIEPCF90.so intel/compiler60/ia32/lib/libPEPCF90.a -intel/compiler60/ia32/lib/libPEPCF90.so intel/compiler60/ia32/lib/libPOSF90.a -intel/compiler60/ia32/lib/libPOSF90.so intel/compiler60/ia32/lib/libcprts.a -intel/compiler60/ia32/lib/libcprts.so -intel/compiler60/ia32/lib/libcprts.so.1 intel/compiler60/ia32/lib/libcxa.a intel/compiler60/ia32/lib/libcxa.so intel/compiler60/ia32/lib/libcxa.so.1 -intel/compiler60/ia32/lib/libguide.a -intel/compiler60/ia32/lib/libguide.so +@comment intel/compiler60/ia32/lib/libguide.a intel/compiler60/ia32/lib/libimf.a -intel/compiler60/ia32/lib/libimf.so intel/compiler60/ia32/lib/libintrins.a -intel/compiler60/ia32/lib/libintrins.so intel/compiler60/ia32/lib/libirc.a intel/compiler60/ia32/lib/libircmt.a intel/compiler60/ia32/lib/libompstub.a intel/compiler60/ia32/lib/libsvml.a intel/compiler60/ia32/lib/libunwind.a -intel/compiler60/ia32/lib/libunwind.so -intel/compiler60/ia32/lib/libunwind.so.1 -@dirrm %%PORTDOCS%%intel/licenses -@dirrm %%PORTDOCS%%intel/compiler60/man/man1 -@dirrm %%PORTDOCS%%intel/compiler60/man -@dirrm %%PORTDOCS%%intel/compiler60/ia32/lib -@dirrm %%PORTDOCS%%intel/compiler60/ia32/include -@dirrm %%PORTDOCS%%intel/compiler60/ia32/bin -@dirrm %%PORTDOCS%%intel/compiler60/ia32 -@dirrm %%PORTDOCS%%intel/compiler60/docs/ref -@dirrm %%PORTDOCS%%intel/compiler60/docs/notes -@dirrm %%PORTDOCS%%intel/compiler60/docs/f_ug -@dirrm %%PORTDOCS%%intel/compiler60/docs/asm_ug -@dirrm %%PORTDOCS%%intel/compiler60/docs -@dirrm %%PORTDOCS%%intel/compiler60 -@dirrm %%PORTDOCS%%intel +@dirrm intel/compiler60/ia32/lib +@dirrm intel/compiler60/ia32 +@dirrm intel/compiler60/man/man1 +@dirrm intel/compiler60/man +@dirrm intel/compiler60 +@dirrm intel/licenses +@dirrm intel |