summaryrefslogtreecommitdiff
path: root/lang
diff options
context:
space:
mode:
Diffstat (limited to 'lang')
-rw-r--r--lang/ifc/Makefile103
-rw-r--r--lang/ifc/files/assert_fail.c40
-rw-r--r--lang/ifc/files/cpio-exclude70
-rw-r--r--lang/ifc/files/cxa_atexit.c52
-rw-r--r--lang/ifc/files/cxa_finalize.c38
-rw-r--r--lang/ifc/files/errno_location.c37
-rw-r--r--lang/ifc/files/ld.c452
-rw-r--r--lang/ifc/files/linux_file.c163
-rw-r--r--lang/ifc/files/mcount.S34
-rw-r--r--lang/ifc/files/patch-aa14
-rw-r--r--lang/ifc/files/patch-ifc42
-rw-r--r--lang/ifc/files/stderr.c34
-rw-r--r--lang/ifc/files/sysconf.c145
-rw-r--r--lang/ifc/pkg-comment2
-rw-r--r--lang/ifc/pkg-descr8
-rw-r--r--lang/ifc/pkg-plist55
-rw-r--r--lang/ifc7/Makefile103
-rw-r--r--lang/ifc7/files/assert_fail.c40
-rw-r--r--lang/ifc7/files/cpio-exclude70
-rw-r--r--lang/ifc7/files/cxa_atexit.c52
-rw-r--r--lang/ifc7/files/cxa_finalize.c38
-rw-r--r--lang/ifc7/files/errno_location.c37
-rw-r--r--lang/ifc7/files/ld.c452
-rw-r--r--lang/ifc7/files/linux_file.c163
-rw-r--r--lang/ifc7/files/mcount.S34
-rw-r--r--lang/ifc7/files/patch-aa14
-rw-r--r--lang/ifc7/files/patch-ifc42
-rw-r--r--lang/ifc7/files/stderr.c34
-rw-r--r--lang/ifc7/files/sysconf.c145
-rw-r--r--lang/ifc7/pkg-comment2
-rw-r--r--lang/ifc7/pkg-descr8
-rw-r--r--lang/ifc7/pkg-plist55
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