aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornetchild <netchild@FreeBSD.org>2003-01-12 01:25:51 +0800
committernetchild <netchild@FreeBSD.org>2003-01-12 01:25:51 +0800
commit6941850434f04828801d559c4192e20d86983679 (patch)
treed576a0ec77420986357cd93461e890a564e369ef
parent45b629269e048557890bede533fc964d8e69740c (diff)
downloadfreebsd-ports-gnome-6941850434f04828801d559c4192e20d86983679.tar.gz
freebsd-ports-gnome-6941850434f04828801d559c4192e20d86983679.tar.zst
freebsd-ports-gnome-6941850434f04828801d559c4192e20d86983679.zip
Add missing files for the 7.0.078 update.
Pointy hat to: netchild
-rw-r--r--lang/icc/files/cpio-exclude_noportdocs14
-rw-r--r--lang/icc/files/patch-ia32::bin::icc74
-rw-r--r--lang/icc/files/patch-ia32::bin::icpc67
-rw-r--r--lang/icc/files/patch-ia32::include::cstdio38
-rw-r--r--lang/icc/files/patch-ia32::include::cwchar36
-rw-r--r--lang/icc/files/patch-ia32::include::dvec.h11
-rw-r--r--lang/icc/files/patch-ia32::include::fvec.h11
-rw-r--r--lang/icc/files/patch-ia32::include::ivec.h11
-rw-r--r--lang/icc/files/patch-ia32::include::mathimf.h398
-rw-r--r--lang/icc/files/patch-ia32::include::xmmintrin.h11
-rw-r--r--lang/icc/files/patch-ia32::include::yvals.h303
-rw-r--r--lang/icc/files/stdarg.h9
-rw-r--r--lang/icc/files/stdin.c32
-rw-r--r--lang/icc/files/stdout.c32
-rw-r--r--lang/icc7/files/cpio-exclude_noportdocs14
-rw-r--r--lang/icc7/files/patch-ia32::bin::icc74
-rw-r--r--lang/icc7/files/patch-ia32::bin::icpc67
-rw-r--r--lang/icc7/files/patch-ia32::include::cstdio38
-rw-r--r--lang/icc7/files/patch-ia32::include::cwchar36
-rw-r--r--lang/icc7/files/patch-ia32::include::dvec.h11
-rw-r--r--lang/icc7/files/patch-ia32::include::fvec.h11
-rw-r--r--lang/icc7/files/patch-ia32::include::ivec.h11
-rw-r--r--lang/icc7/files/patch-ia32::include::mathimf.h398
-rw-r--r--lang/icc7/files/patch-ia32::include::xmmintrin.h11
-rw-r--r--lang/icc7/files/patch-ia32::include::yvals.h303
-rw-r--r--lang/icc7/files/stdarg.h9
-rw-r--r--lang/icc7/files/stdin.c32
-rw-r--r--lang/icc7/files/stdout.c32
28 files changed, 2094 insertions, 0 deletions
diff --git a/lang/icc/files/cpio-exclude_noportdocs b/lang/icc/files/cpio-exclude_noportdocs
new file mode 100644
index 000000000000..83a471e99943
--- /dev/null
+++ b/lang/icc/files/cpio-exclude_noportdocs
@@ -0,0 +1,14 @@
+*/opt/intel/%%COMPILERDIR%%/docs/C++ReleaseNotes.htm
+*/opt/intel/%%COMPILERDIR%%/docs/asm_lan.pdf
+*/opt/intel/%%COMPILERDIR%%/docs/asm_ug*
+*/opt/intel/%%COMPILERDIR%%/docs/asm_ug.pdf
+*/opt/intel/%%COMPILERDIR%%/docs/c_ug*
+*/opt/intel/%%COMPILERDIR%%/docs/c_ug_lnx.pdf
+*/opt/intel/%%COMPILERDIR%%/docs/ccompindex.htm
+*/opt/intel/%%COMPILERDIR%%/docs/credist.txt
+*/opt/intel/%%COMPILERDIR%%/docs/flex_ug.pdf
+*/opt/intel/%%COMPILERDIR%%/docs/icid.htm
+*/opt/intel/%%COMPILERDIR%%/docs/icpi.htm
+*/opt/intel/%%COMPILERDIR%%/docs/notes*
+*/opt/intel/%%COMPILERDIR%%/docs/ref*
+*/opt/intel/%%COMPILERDIR%%/training*
diff --git a/lang/icc/files/patch-ia32::bin::icc b/lang/icc/files/patch-ia32::bin::icc
new file mode 100644
index 000000000000..55406344c471
--- /dev/null
+++ b/lang/icc/files/patch-ia32::bin::icc
@@ -0,0 +1,74 @@
+--- ia32/bin/icc.orig Fri Jan 10 16:57:18 2003
++++ ia32/bin/icc Fri Jan 10 17:09:38 2003
+@@ -1,29 +1,62 @@
+ #!/bin/sh
+
+-INTEL_LICENSE_FILE=<INSTALLDIR>/licenses;
++PREFIX=@@PREFIX@@
++export PREFIX;
++INTEL_LICENSE_FILE=${INTEL_LICENSE_FILE:-${PREFIX}/intel/licenses}
+ export INTEL_LICENSE_FILE;
+
+ if [ -z LD_LIBRARY_PATH ]
+ then
+- LD_LIBRARY_PATH=<INSTALLDIR>/compiler70/ia32/lib;
++ LD_LIBRARY_PATH=${PREFIX}/intel/compiler70/ia32/lib;
+ else
+- LD_LIBRARY_PATH=<INSTALLDIR>/compiler70/ia32/lib:$LD_LIBRARY_PATH
++ LD_LIBRARY_PATH=${PREFIX}/intel/compiler70/ia32/lib:$LD_LIBRARY_PATH
+ fi
+ export LD_LIBRARY_PATH;
+
+ if [ -z PATH ]
+ then
+- PATH=<INSTALLDIR>/compiler70/ia32/bin;
++ PATH=${PREFIX}/intel/compiler70/ia32/bin;
+ else
+- PATH=<INSTALLDIR>/compiler70/ia32/bin:$PATH;
++ PATH=${PREFIX}/intel/compiler70/ia32/bin:$PATH;
+ fi
+ export PATH;
+
+-export -n IA32ROOT; unset IA32ROOT;
+-
+ if [ $# != 0 ]
+ then
+- exec -a "<INSTALLDIR>/compiler70/ia32/bin/icc" <INSTALLDIR>/compiler70/ia32/bin/iccbin "$@";
++ i=0
++ argc=$#
++ while [ $i -lt $argc ] ; do
++ val1=$1
++ shift
++ for s in .C .cc .cpp .cxx .c++; do
++ val2=${val1%$s}
++ if [ ${#val1} -gt ${#val2} ] ; then
++ echo "Please use icpc to compile C++ source."
++ exit 1
++ fi
++ done
++ val2=${val1#"-openmp"}
++ if [ ${#val1} -gt ${#val2} ] ; then
++ echo "Sorry, option '$val1' is not supported on FreeBSD."
++ exit 1
++ fi
++ val2=${val1#"-par"}
++ if [ ${#val1} -gt ${#val2} ] ; then
++ echo "Sorry, option '$val1' is not supported on FreeBSD."
++ exit 1
++ fi
++ if [ "${val1}" = "-Kpic" ] || [ "${val1}" = "-KPIC" ] || \
++ [ "${val1}" = "-fpic" ] || [ "${val1}" = "-fPIC" ] ; then
++ set -- "$@" "-Qoption,ld,-PIC"
++ fi
++ if [ "${val1}" = "-mt" ] ; then
++ unset val1
++ set -- "$@" "-Qoption,ld,-MT"
++ fi
++ set -- "$@" "$val1"
++ i=$(($i+1))
++ done
++ exec ${PREFIX}/intel/compiler70/ia32/bin/iccbin "$@";
+ else
+- exec -a "<INSTALLDIR>/compiler70/ia32/bin/icc" <INSTALLDIR>/compiler70/ia32/bin/iccbin;
++ exec ${PREFIX}/intel/compiler70/ia32/bin/iccbin;
+ fi
diff --git a/lang/icc/files/patch-ia32::bin::icpc b/lang/icc/files/patch-ia32::bin::icpc
new file mode 100644
index 000000000000..49c3609b345b
--- /dev/null
+++ b/lang/icc/files/patch-ia32::bin::icpc
@@ -0,0 +1,67 @@
+--- ia32/bin/icpc.orig Fri Jan 10 16:47:29 2003
++++ ia32/bin/icpc Fri Jan 10 17:19:03 2003
+@@ -1,29 +1,55 @@
+ #!/bin/sh
+
+-INTEL_LICENSE_FILE=<INSTALLDIR>/licenses;
++PREFIX=@@PREFIX@@
++export PREFIX;
++INTEL_LICENSE_FILE=${INTEL_LICENSE_FILE:-${PREFIX}/intel/licenses}
+ export INTEL_LICENSE_FILE;
+
+ if [ -z LD_LIBRARY_PATH ]
+ then
+- LD_LIBRARY_PATH=<INSTALLDIR>/compiler70/ia32/lib;
++ LD_LIBRARY_PATH=${PREFIX}/intel/compiler70/ia32/lib;
+ else
+- LD_LIBRARY_PATH=<INSTALLDIR>/compiler70/ia32/lib:$LD_LIBRARY_PATH
++ LD_LIBRARY_PATH=${PREFIX}/intel/compiler70/ia32/lib:$LD_LIBRARY_PATH
+ fi
+ export LD_LIBRARY_PATH;
+
+ if [ -z PATH ]
+ then
+- PATH=<INSTALLDIR>/compiler70/ia32/bin;
++ PATH=${PREFIX}/intel/compiler70/ia32/bin;
+ else
+- PATH=<INSTALLDIR>/compiler70/ia32/bin:$PATH;
++ PATH=${PREFIX}/intel/compiler70/ia32/bin:$PATH;
+ fi
+ export PATH;
+
+-export -n IA32ROOT; unset IA32ROOT;
+-
+ if [ $# != 0 ]
+ then
+- exec -a "<INSTALLDIR>/compiler70/ia32/bin/icpc" <INSTALLDIR>/compiler70/ia32/bin/icpcbin "$@";
++ i=0
++ argc=$#
++ while [ $i -lt $argc ] ; do
++ val1=$1
++ shift
++ val2=${val1#"-openmp"}
++ if [ ${#val1} -gt ${#val2} ] ; then
++ echo "Sorry, option '$val1' is not supported on FreeBSD."
++ exit 1
++ fi
++ val2=${val1#"-par"}
++ if [ ${#val1} -gt ${#val2} ] ; then
++ echo "Sorry, option '$val1' is not supported on FreeBSD."
++ exit 1
++ fi
++ if [ "${val1}" = "-Kpic" ] || [ "${val1}" = "-KPIC" ] || \
++ [ "${val1}" = "-fpic" ] || [ "${val1}" = "-fPIC" ] ; then
++ set -- "$@" "-Qoption,ld,-PIC"
++ fi
++ if [ "${val1}" = "-mt" ] ; then
++ unset val1
++ set -- "$@" "-Qoption,ld,-MT"
++ fi
++ set -- "$@" "$val1"
++ i=$(($i+1))
++ done
++ exec ${PREFIX}/intel/compiler70/ia32/bin/icpcbin "$@";
+ else
+- exec -a "<INSTALLDIR>/compiler70/ia32/bin/icpc" <INSTALLDIR>/compiler70/ia32/bin/icpcbin;
++ exec ${PREFIX}/intel/compiler70/ia32/bin/icpcbin;
+ fi
diff --git a/lang/icc/files/patch-ia32::include::cstdio b/lang/icc/files/patch-ia32::include::cstdio
new file mode 100644
index 000000000000..c4d7d4216c8f
--- /dev/null
+++ b/lang/icc/files/patch-ia32::include::cstdio
@@ -0,0 +1,38 @@
+--- ia32/include/cstdio.orig Tue Nov 26 23:40:27 2002
++++ ia32/include/cstdio Tue Nov 26 23:40:27 2002
+@@ -11,35 +11,6 @@
+ #else /* _STD_USING */
+ #include <stdio.h>
+
+- #ifdef __GLIBC__
+- #if _HAS_TRADITIONAL_IOSTREAMS
+-_C_LIB_DECL
+-int fileno(FILE *) __THROW;
+-_END_C_LIB_DECL
+- #else
+- #endif /* _HAS_TRADITIONAL_IOSTREAMS */
+- #define _HAS_POINTER_CLIB 1
+- #define _RBEGIN _IO_read_base
+- #define _RNEXT _IO_read_ptr
+- #define _REND _IO_read_end
+- #define _WBEGIN _IO_write_base
+- #define _WNEXT _IO_write_ptr
+- #define _WEND _IO_write_end
+- #else /* __GLIBC__ */
+- #define _HAS_CONVENTIONAL_CLIB 1
+- #define _IOBASE _base
+- #define _IOPTR _ptr
+- #define _IOCNT _cnt
+- #endif /* __GLIBC__ */
+-
+- #undef _FPOSOFF
+- #if !defined(__GLIBC__) \
+- || __GLIBC__ < 2 || __GLIBC__ == 2 && __GLIBC_MINOR__ < 2
+- #define _FPOSOFF(fp) ((long)(fp))
+- #else /* __GLIBC__ */
+- #define _FPOSOFF(fp) ((long)(fp).__pos)
+- #endif /* __GLIBC__ */
+-
+ #ifdef _GLOBAL_USING
+ _STD_BEGIN
+ using ::size_t; using ::fpos_t; using ::FILE;
diff --git a/lang/icc/files/patch-ia32::include::cwchar b/lang/icc/files/patch-ia32::include::cwchar
new file mode 100644
index 000000000000..4ff2de03508c
--- /dev/null
+++ b/lang/icc/files/patch-ia32::include::cwchar
@@ -0,0 +1,36 @@
+--- ia32/include/cwchar.orig Mon Nov 25 16:38:57 2002
++++ ia32/include/cwchar Mon Nov 25 16:40:01 2002
+@@ -13,23 +13,23 @@
+
+ #ifdef _GLOBAL_USING
+ _STD_BEGIN
+-using ::mbstate_t; using ::size_t; using ::tm; using ::wint_t;
++using ::mbstate_t; using ::size_t; /* using ::tm; */ using ::wint_t;
+
+
+-using ::btowc;
+-using ::mbrlen; using ::mbrtowc; using ::mbsrtowcs;
+-using ::mbsinit;
+-using ::wcrtomb;
+-using ::wcsrtombs; using ::wcstol; using ::wcscat;
+-using ::wcschr; using ::wcscmp; using ::wcscoll;
++//using ::btowc;
++//using ::mbrlen; using ::mbrtowc; using ::mbsrtowcs;
++//using ::mbsinit;
++//using ::wcrtomb;
++/* using ::wcsrtombs; using ::wcstol; */ using ::wcscat;
++using ::wcschr; using ::wcscmp; // using ::wcscoll;
+ using ::wcscpy; using ::wcscspn; using ::wcslen;
+ using ::wcsncat; using ::wcsncmp; using ::wcsncpy;
+ using ::wcspbrk; using ::wcsrchr; using ::wcsspn;
+-using ::wcstod; using ::wcstoul; using ::wcsstr;
+-using ::wcstok; using ::wcsxfrm; using ::wctob;
++/* using ::wcstod; using ::wcstoul; */ using ::wcsstr;
++//using ::wcstok; using ::wcsxfrm; using ::wctob;
+ using ::wmemchr; using ::wmemcmp; using ::wmemcpy;
+ using ::wmemmove; using ::wmemset;
+-using ::wcsftime;
++//using ::wcsftime;
+
+ #ifdef __USE_ISOC99
+ using ::fwide; using ::fwprintf;
diff --git a/lang/icc/files/patch-ia32::include::dvec.h b/lang/icc/files/patch-ia32::include::dvec.h
new file mode 100644
index 000000000000..0dd3c423d040
--- /dev/null
+++ b/lang/icc/files/patch-ia32::include::dvec.h
@@ -0,0 +1,11 @@
+--- ia32/include/dvec.h.orig Fri Jan 10 18:12:30 2003
++++ ia32/include/dvec.h Fri Jan 10 18:53:34 2003
+@@ -38,7 +38,7 @@
+
+
+ /* If using MSVC5.0, explicit keyword should be used */
+-#if (_MSC_VER >= 1100) || defined (__linux__)
++#if (_MSC_VER >= 1100) || defined (__linux__) || defined (__FreeBSD__)
+ #define EXPLICIT explicit
+ #else
+ #if (__INTEL_COMPILER)
diff --git a/lang/icc/files/patch-ia32::include::fvec.h b/lang/icc/files/patch-ia32::include::fvec.h
new file mode 100644
index 000000000000..2a68afbc28e9
--- /dev/null
+++ b/lang/icc/files/patch-ia32::include::fvec.h
@@ -0,0 +1,11 @@
+--- ia32/include/fvec.h.orig Fri Jan 10 18:12:35 2003
++++ ia32/include/fvec.h Fri Jan 10 18:54:01 2003
+@@ -41,7 +41,7 @@
+ #pragma pack(push,16) /* Must ensure class & union 16-B aligned */
+
+ /* If using MSVC5.0, explicit keyword should be used */
+-#if (_MSC_VER >= 1100) || defined (__linux__)
++#if (_MSC_VER >= 1100) || defined (__linux__) || defined (__FreeBSD__)
+ #define EXPLICIT explicit
+ #else
+ #if (__INTEL_COMPILER)
diff --git a/lang/icc/files/patch-ia32::include::ivec.h b/lang/icc/files/patch-ia32::include::ivec.h
new file mode 100644
index 000000000000..50ec1c1ead5b
--- /dev/null
+++ b/lang/icc/files/patch-ia32::include::ivec.h
@@ -0,0 +1,11 @@
+--- ia32/include/ivec.h.orig Fri Jan 10 18:12:39 2003
++++ ia32/include/ivec.h Fri Jan 10 18:53:50 2003
+@@ -24,7 +24,7 @@
+ #include <assert.h>
+
+ /* If using MSVC5.0, explicit keyword should be used */
+-#if (_MSC_VER >= 1100) || defined (__linux__)
++#if (_MSC_VER >= 1100) || defined (__linux__) || defined (__FreeBSD__)
+ #define EXPLICIT explicit
+ #else
+ #if (__INTEL_COMPILER)
diff --git a/lang/icc/files/patch-ia32::include::mathimf.h b/lang/icc/files/patch-ia32::include::mathimf.h
new file mode 100644
index 000000000000..4db51f9c95cf
--- /dev/null
+++ b/lang/icc/files/patch-ia32::include::mathimf.h
@@ -0,0 +1,398 @@
+--- ia32/include/mathimf.h.orig Fri Jan 10 18:15:48 2003
++++ ia32/include/mathimf.h Fri Jan 10 18:36:16 2003
+@@ -36,7 +36,7 @@
+ # error "<mathimf.h> is incompatible with system <math.h>!"
+ #endif
+
+-#if defined(__linux__)
++#if defined(__linux__) || defined(__FreeBSD__)
+ # include <math.h> /* utilize GNU math header */
+ # if defined(finite)
+ # undef finite
+@@ -62,7 +62,7 @@
+ #if defined(_DLL) && (defined(_WIN32) || defined(_WIN64)) /* Windows DLL */
+ # define _LIBIMF_PUBAPI __declspec(dllimport) __cdecl
+ # define _LIBIMF_PUBVAR __declspec(dllimport)
+-#elif defined(__linux__) /* Linux */
++#elif defined(__linux__) || defined(__FreeBSD__) /* Linux || FreeBSD */
+ # define _LIBIMF_PUBAPI /* do not change this line! */
+ # define _LIBIMF_PUBVAR
+ #else /* Windows static */
+@@ -84,7 +84,7 @@
+ # define _LIBIMF_FCOMPLEX _LIBIMF_FLOAT _Complex
+ #endif
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+
+ /*-- Real functions --*/
+
+@@ -102,13 +102,13 @@
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI tanf (_LIBIMF_FLOAT __x);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI tanl (_LIBIMF_XDOUBLE __x);
+
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI cot (_LIBIMF_DOUBLE __x);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI cotf (_LIBIMF_FLOAT __x);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI cotl (_LIBIMF_XDOUBLE __x);
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI acos (_LIBIMF_DOUBLE __x);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI acosf (_LIBIMF_FLOAT __x);
+@@ -126,13 +126,13 @@
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI atan2f (_LIBIMF_FLOAT __y, _LIBIMF_FLOAT __x);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI atan2l (_LIBIMF_XDOUBLE __y, _LIBIMF_XDOUBLE __x);
+
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+
+ _LIBIMF_EXT _LIBIMF_VOID _LIBIMF_PUBAPI sincos (_LIBIMF_DOUBLE __x, _LIBIMF_DOUBLE *__psin, _LIBIMF_DOUBLE *__pcos);
+ _LIBIMF_EXT _LIBIMF_VOID _LIBIMF_PUBAPI sincosf (_LIBIMF_FLOAT __x, _LIBIMF_FLOAT *__psin, _LIBIMF_FLOAT *__pcos);
+ _LIBIMF_EXT _LIBIMF_VOID _LIBIMF_PUBAPI sincosl (_LIBIMF_XDOUBLE __x, _LIBIMF_XDOUBLE *__psin, _LIBIMF_XDOUBLE *__pcos);
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+
+ /* Exponential functions */
+
+@@ -140,7 +140,7 @@
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI expf (_LIBIMF_FLOAT __x);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI expl (_LIBIMF_XDOUBLE __x);
+
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI exp2 (_LIBIMF_DOUBLE __x);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI exp2f (_LIBIMF_FLOAT __x);
+@@ -150,7 +150,7 @@
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI exp10f (_LIBIMF_FLOAT __x);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI exp10l (_LIBIMF_XDOUBLE __x);
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI expm1 (_LIBIMF_DOUBLE __x);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI expm1f (_LIBIMF_FLOAT __x);
+@@ -172,13 +172,13 @@
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI scalbnf (_LIBIMF_FLOAT __x, _LIBIMF_INT __n);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI scalbnl (_LIBIMF_XDOUBLE __x, _LIBIMF_INT __n);
+
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI scalbln (_LIBIMF_DOUBLE __x, _LIBIMF_LONGINT __n);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI scalblnf (_LIBIMF_FLOAT __x, _LIBIMF_LONGINT __n);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI scalblnl (_LIBIMF_XDOUBLE __x, _LIBIMF_LONGINT __n);
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+
+ /* Hyperbolic functions */
+
+@@ -206,13 +206,13 @@
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI atanhf (_LIBIMF_FLOAT __x);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI atanhl (_LIBIMF_XDOUBLE __x);
+
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+
+ _LIBIMF_EXT _LIBIMF_VOID _LIBIMF_PUBAPI sinhcosh (_LIBIMF_DOUBLE __x, _LIBIMF_DOUBLE *__psinh, _LIBIMF_DOUBLE *__pcosh);
+ _LIBIMF_EXT _LIBIMF_VOID _LIBIMF_PUBAPI sinhcoshf (_LIBIMF_FLOAT __x, _LIBIMF_FLOAT *__psinh, _LIBIMF_FLOAT *__pcosh);
+ _LIBIMF_EXT _LIBIMF_VOID _LIBIMF_PUBAPI sinhcoshl (_LIBIMF_XDOUBLE __x, _LIBIMF_XDOUBLE *__psinh, _LIBIMF_XDOUBLE *__pcosh);
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+
+ /* Logarithmic functions */
+
+@@ -220,13 +220,13 @@
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI logf (_LIBIMF_FLOAT __x);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI logl (_LIBIMF_XDOUBLE __x);
+
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI log2 (_LIBIMF_DOUBLE __x);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI log2f (_LIBIMF_FLOAT __x);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI log2l (_LIBIMF_XDOUBLE __x);
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI log10 (_LIBIMF_DOUBLE __x);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI log10f (_LIBIMF_FLOAT __x);
+@@ -254,13 +254,13 @@
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI sqrtf (_LIBIMF_FLOAT __x);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI sqrtl (_LIBIMF_XDOUBLE __x);
+
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI invsqrt (_LIBIMF_DOUBLE __x);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI invsqrtf (_LIBIMF_FLOAT __x);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI invsqrtl (_LIBIMF_XDOUBLE __x);
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI cbrt (_LIBIMF_DOUBLE __x);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI cbrtf (_LIBIMF_FLOAT __x);
+@@ -280,13 +280,13 @@
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI remainderf (_LIBIMF_FLOAT __x, _LIBIMF_FLOAT __y);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI remainderl (_LIBIMF_XDOUBLE __x, _LIBIMF_XDOUBLE __y);
+
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI remquo (_LIBIMF_DOUBLE __x, _LIBIMF_DOUBLE __y, _LIBIMF_INT *__quo);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI remquof (_LIBIMF_FLOAT __x, _LIBIMF_FLOAT __y, _LIBIMF_INT *__quo);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI remquol (_LIBIMF_XDOUBLE __x, _LIBIMF_XDOUBLE __y, _LIBIMF_INT *__quo);
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI fmod (_LIBIMF_DOUBLE __x, _LIBIMF_DOUBLE __y);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI fmodf (_LIBIMF_FLOAT __x, _LIBIMF_FLOAT __y);
+@@ -298,13 +298,13 @@
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI rintf (_LIBIMF_FLOAT __x);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI rintl (_LIBIMF_XDOUBLE __x);
+
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI round (_LIBIMF_DOUBLE __x);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI roundf (_LIBIMF_FLOAT __x);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI roundl (_LIBIMF_XDOUBLE __x);
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI ceil (_LIBIMF_DOUBLE __x);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI ceilf (_LIBIMF_FLOAT __x);
+@@ -314,19 +314,19 @@
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI floorf (_LIBIMF_FLOAT __x);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI floorl (_LIBIMF_XDOUBLE __x);
+
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI trunc (_LIBIMF_DOUBLE __x);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI truncf (_LIBIMF_FLOAT __x);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI truncl (_LIBIMF_XDOUBLE __x);
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI modf (_LIBIMF_DOUBLE __x, _LIBIMF_DOUBLE *__iptr);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI modff (_LIBIMF_FLOAT __x, _LIBIMF_FLOAT *__iptr);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI modfl (_LIBIMF_XDOUBLE __x, _LIBIMF_XDOUBLE *__iptr);
+
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+
+ _LIBIMF_EXT _LIBIMF_LONGINT _LIBIMF_PUBAPI lrint (_LIBIMF_DOUBLE __x);
+ _LIBIMF_EXT _LIBIMF_LONGINT _LIBIMF_PUBAPI lrintf (_LIBIMF_FLOAT __x);
+@@ -348,7 +348,7 @@
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI nearbyintf (_LIBIMF_FLOAT __x);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI nearbyintl (_LIBIMF_XDOUBLE __x);
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+
+ /* Special functions */
+
+@@ -385,7 +385,7 @@
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI lgammaf (_LIBIMF_FLOAT __x);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI lgammal (_LIBIMF_XDOUBLE __x);
+
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI tgamma (_LIBIMF_DOUBLE __x);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI tgammaf (_LIBIMF_FLOAT __x);
+@@ -394,12 +394,12 @@
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI gamma_r (_LIBIMF_DOUBLE __x, _LIBIMF_INT *__signgam);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI gammaf_r (_LIBIMF_FLOAT __x, _LIBIMF_INT *__signgam);
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI lgamma_r (_LIBIMF_DOUBLE __x, _LIBIMF_INT *__signgam);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI lgammaf_r (_LIBIMF_FLOAT __x, _LIBIMF_INT *__signgam);
+
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+
+ /* Special (financial) functions */
+
+@@ -457,7 +457,7 @@
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI fminf (_LIBIMF_FLOAT __x, _LIBIMF_FLOAT __y);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI fminl (_LIBIMF_XDOUBLE __x, _LIBIMF_XDOUBLE __y);
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI copysign (_LIBIMF_DOUBLE __x, _LIBIMF_DOUBLE __y);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI copysignf (_LIBIMF_FLOAT __x, _LIBIMF_FLOAT __y);
+@@ -467,25 +467,25 @@
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI nextafterf (_LIBIMF_FLOAT __x, _LIBIMF_FLOAT __y);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI nextafterl (_LIBIMF_XDOUBLE __x, _LIBIMF_XDOUBLE __y);
+
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI nexttoward (_LIBIMF_DOUBLE __x, _LIBIMF_XDOUBLE __y);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI nexttowardf (_LIBIMF_FLOAT __x, _LIBIMF_XDOUBLE __y);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI nexttowardl (_LIBIMF_XDOUBLE __x, _LIBIMF_XDOUBLE __y);
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI significand (_LIBIMF_DOUBLE __x);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI significandf (_LIBIMF_FLOAT __x);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI significandl (_LIBIMF_XDOUBLE __x);
+
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI fma (_LIBIMF_DOUBLE __x, _LIBIMF_DOUBLE __y, _LIBIMF_DOUBLE __z);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI fmaf (_LIBIMF_FLOAT __x, _LIBIMF_FLOAT __y, _LIBIMF_FLOAT __z);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI fmal (_LIBIMF_XDOUBLE __x, _LIBIMF_XDOUBLE __y, _LIBIMF_XDOUBLE __z);
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+
+ _LIBIMF_EXT _LIBIMF_INT _LIBIMF_PUBAPI finite (_LIBIMF_DOUBLE __x);
+ _LIBIMF_EXT _LIBIMF_INT _LIBIMF_PUBAPI finitef (_LIBIMF_FLOAT __x);
+@@ -495,7 +495,7 @@
+ _LIBIMF_EXT _LIBIMF_INT _LIBIMF_PUBAPI isnanf (_LIBIMF_FLOAT __x);
+ _LIBIMF_EXT _LIBIMF_INT _LIBIMF_PUBAPI isnanl (_LIBIMF_XDOUBLE __x);
+
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+
+ /*-- Complex functions --*/
+
+@@ -505,7 +505,7 @@
+
+ /* Complex trigonometric functions */
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+
+ _LIBIMF_EXT _LIBIMF_DCOMPLEX _LIBIMF_PUBAPI ccos (_LIBIMF_DCOMPLEX __z);
+ _LIBIMF_EXT _LIBIMF_FCOMPLEX _LIBIMF_PUBAPI ccosf (_LIBIMF_FCOMPLEX __z);
+@@ -528,24 +528,24 @@
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI carg (_LIBIMF_DCOMPLEX __z);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI cargf (_LIBIMF_FCOMPLEX __z);
+
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+
+ _LIBIMF_EXT _LIBIMF_DCOMPLEX _LIBIMF_PUBAPI cis (_LIBIMF_DOUBLE __x);
+ _LIBIMF_EXT _LIBIMF_FCOMPLEX _LIBIMF_PUBAPI cisf (_LIBIMF_FLOAT __x);
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+
+ /* Complex exponential functions */
+
+ _LIBIMF_EXT _LIBIMF_DCOMPLEX _LIBIMF_PUBAPI cexp (_LIBIMF_DCOMPLEX __z);
+ _LIBIMF_EXT _LIBIMF_FCOMPLEX _LIBIMF_PUBAPI cexpf (_LIBIMF_FCOMPLEX __z);
+
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+
+ _LIBIMF_EXT _LIBIMF_DCOMPLEX _LIBIMF_PUBAPI cexp10 (_LIBIMF_DCOMPLEX __z);
+ _LIBIMF_EXT _LIBIMF_FCOMPLEX _LIBIMF_PUBAPI cexp10f (_LIBIMF_FCOMPLEX __z);
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+
+ _LIBIMF_EXT _LIBIMF_DCOMPLEX _LIBIMF_PUBAPI ccosh (_LIBIMF_DCOMPLEX __z);
+ _LIBIMF_EXT _LIBIMF_FCOMPLEX _LIBIMF_PUBAPI ccoshf (_LIBIMF_FCOMPLEX __z);
+@@ -570,7 +570,7 @@
+ _LIBIMF_EXT _LIBIMF_DCOMPLEX _LIBIMF_PUBAPI clog (_LIBIMF_DCOMPLEX __z);
+ _LIBIMF_EXT _LIBIMF_FCOMPLEX _LIBIMF_PUBAPI clogf (_LIBIMF_FCOMPLEX __z);
+
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+
+ _LIBIMF_EXT _LIBIMF_DCOMPLEX _LIBIMF_PUBAPI clog2 (_LIBIMF_DCOMPLEX __z);
+ _LIBIMF_EXT _LIBIMF_FCOMPLEX _LIBIMF_PUBAPI clog2f (_LIBIMF_FCOMPLEX __z);
+@@ -580,7 +580,7 @@
+
+ /* Complex power/root/abs functions */
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+
+ _LIBIMF_EXT _LIBIMF_DCOMPLEX _LIBIMF_PUBAPI cpow (_LIBIMF_DCOMPLEX __z, _LIBIMF_DCOMPLEX __c);
+ _LIBIMF_EXT _LIBIMF_FCOMPLEX _LIBIMF_PUBAPI cpowf (_LIBIMF_FCOMPLEX __z, _LIBIMF_FCOMPLEX __c);
+@@ -591,9 +591,9 @@
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI cabs (_LIBIMF_DCOMPLEX __z);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI cabsf (_LIBIMF_FCOMPLEX __z);
+
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+
+ /* Other complex functions */
+
+@@ -609,7 +609,7 @@
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI creal (_LIBIMF_DCOMPLEX __z);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI crealf (_LIBIMF_FCOMPLEX __z);
+
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+
+ #endif /*__IMFCOMPLEXON*/
+
+@@ -632,7 +632,7 @@
+ _LIBIMF_DOUBLE retval;
+ } ___exception;
+
+-#if defined(__linux__)
++#if defined(__linux__) || defined(__FreeBSD__)
+ # if defined(__cplusplus)
+ # define __exception ____exception /* map 'struct __exception' to 'struct ____exception' */
+ # else /*__cplusplus*/
+@@ -661,9 +661,9 @@
+ _LIBIMF_XDOUBLE retval;
+ } ___exceptionl;
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+ _LIBIMF_EXT _LIBIMF_INT _LIBIMF_PUBAPI matherr (struct ____exception *__e);
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+ _LIBIMF_EXT _LIBIMF_INT _LIBIMF_PUBAPI matherrf (struct ____exceptionf *__e);
+ _LIBIMF_EXT _LIBIMF_INT _LIBIMF_PUBAPI matherrl (struct ____exceptionl *__e);
+
+@@ -694,9 +694,9 @@
+
+ /* Standard conformance support */
+
+-#if defined(__linux__)
++#if defined(__linux__) || defined(__FreeBSD__)
+ typedef _LIB_VERSION_TYPE _LIB_VERSIONIMF_TYPE;
+-#else /*__linux__*/
++#else /*__linux__ || __FreeBSD__*/
+ typedef enum ___LIB_VERSIONIMF_TYPE {
+ _IEEE_ = -1 /* IEEE-like behavior */
+ ,_SVID_ /* SysV, Rel. 4 behavior */
+@@ -704,7 +704,7 @@
+ ,_POSIX_ /* Posix */
+ ,_ISOC_ /* ISO C9X */
+ } _LIB_VERSIONIMF_TYPE;
+-#endif /*__linux__*/
++#endif /*__linux__ || __FreeBSD__*/
+
+ _LIBIMF_EXT _LIB_VERSIONIMF_TYPE _LIBIMF_PUBVAR _LIB_VERSIONIMF;
+
diff --git a/lang/icc/files/patch-ia32::include::xmmintrin.h b/lang/icc/files/patch-ia32::include::xmmintrin.h
new file mode 100644
index 000000000000..48c6dad06ae9
--- /dev/null
+++ b/lang/icc/files/patch-ia32::include::xmmintrin.h
@@ -0,0 +1,11 @@
+--- ia32/include/xmmintrin.h.orig Fri Jan 10 18:47:00 2003
++++ ia32/include/xmmintrin.h Fri Jan 10 18:50:35 2003
+@@ -18,7 +18,7 @@
+ #ifndef _INCLUDED_MM2
+ #define _INCLUDED_MM2
+
+-#ifdef __linux__
++#if defined(__linux__) || defined(__FreeBSD__)
+ #define __cdecl
+ #endif
+
diff --git a/lang/icc/files/patch-ia32::include::yvals.h b/lang/icc/files/patch-ia32::include::yvals.h
new file mode 100644
index 000000000000..e566d6000799
--- /dev/null
+++ b/lang/icc/files/patch-ia32::include::yvals.h
@@ -0,0 +1,303 @@
+--- ia32/include/yvals.h.orig Tue Nov 26 22:50:59 2002
++++ ia32/include/yvals.h Thu Jan 9 17:27:12 2003
+@@ -3,88 +3,15 @@
+ #ifndef _YVALS
+ #define _YVALS
+
+-#define __need___va_list
+-#include <stdarg.h>
+-
+-#include <features.h> /* Get glibc version __GLIBC__ and __GLIBC_MINOR__*/
+-#define __GLIBC_2_2 ((__GLIBC__ > 2) || ((__GLIBC__ >= 2) && (__GLIBC_MINOR__ >= 2)))
+- /* true if glibc-2.2 and older is used */
+-
+-#define _CPPLIB_VER 310
+-
+- #if defined(ia64) || defined(__ia64) || defined(__ia64__) /* assume Itanium */
+- #define _D0 3 /* 0: big endian, 3: little endian floating-point */
+- #define _DLONG 1 /* 0: 64, 1: 80, 2: 128 long double bits */
+- #define _LBIAS 0x3ffe /* 80/128 long double bits */
+- #define _LOFF 15 /* 80/128 long double bits */
+-/* #define _FPP_TYPE 1 */ /* 80287/Pentium FPP */
+-
+- #elif defined(i386) || defined(__i386) || defined(__i386__) /* assume PC */
+- #define _D0 3 /* 0: big endian, 3: little endian floating-point */
+- #define _DLONG 1 /* 0: 64, 1: 80, 2: 128 long double bits */
+- #define _LBIAS 0x3ffe /* 80/128 long double bits */
+- #define _LOFF 15 /* 80/128 long double bits */
+- #define _FPP_TYPE 1 /* 80287/Pentium FPP */
+-
+- #elif defined(sparc) || defined (__sparc) /* assume SPARC */
+- #define _D0 0 /* 0: big endian, 3: little endian floating-point */
+- #define _DLONG 2 /* 0: 64, 1: 80, 2: 128 long double bits */
+- #define _LBIAS 0x3ffe /* 80/128 long double bits */
+- #define _LOFF 15 /* 80/128 long double bits */
+- #define _FPP_TYPE 2 /* SPARC FPP */
+-
+- #elif defined(_POWER) /* assume PowerPC */
+- #define _D0 0 /* 0: big endian, 3: little endian floating-point */
+- #define _DLONG 0 /* 0: 64, 1: 80, 2: 128 long double bits */
+- #define _LBIAS 0x3ffe /* 80/128 long double bits */
+- #define _LOFF 15 /* 80/128 long double bits */
+- #define _FPP_TYPE 3 /* MIPS FPP */
+-
+- #define _PDT long
+- #define _SZT unsigned long
+-
+- #elif defined(__hppa) /* assume HP PA-RISC */
+- #define _D0 0 /* 0: big endian, 3: little endian floating-point */
+- #define _DLONG 2 /* 0: 64, 1: 80, 2: 128 long double bits */
+- #define _LBIAS 0x3ffe /* 80/128 long double bits */
+- #define _LOFF 15 /* 80/128 long double bits */
+- #define _FPP_TYPE 4 /* HP PA-RISC FPP */
+-
+- #else /* system detector */
+- #error /* unknown compilation environment */
+- #endif /* system detector */
+-
+- #ifdef __linux
+- #define _LINUX_C_LIB 1 /* assume Linux-specific conventions */
+- #endif /* __linux */
+-
+ /* NAMING PROPERTIES */
+-/* #define _STD_LINKAGE defines C names as extern "C++" */
+- #ifdef __SUNPRO_CC
+- #define _STD_USING /* exports C names from std to global, else reversed */
+- #endif /* __SUNPRO_CC */
+-
+-#define _USE_EXISTING_SYSTEM_NAMES 1 /* _Open => open etc. */
+ #define _POSIX_C_LIB 1 /* use common Unix/Linux conventions */
+-#define _SOLARIS_C_LIB 1 /* add declarations for C extensions */
+-
+- #if __EDG__
+- #define _HAS_STRICT_LINKAGE 1 /* extern "C" in function type */
+- #else /* __EDG__ */
+- #define _HAS_STRICT_LINKAGE 0 /* extern "C" in function type */
+- #endif /* __EDG__ */
+
+ /* THREAD AND LOCALE CONTROL */
+ #ifndef _MULTI_THREAD
+ #define _MULTI_THREAD 1 /* 0 for no locks, 1 for multithreaded library */
+ #endif /* _MULTI_THREAD */
+-#define _GLOBAL_LOCALE 0 /* 0 for per-thread locales, 1 for shared */
+-#define _FILE_OP_LOCKS 0 /* 0 for no file atomic locks, 1 for atomic */
+
+ /* THREAD-LOCAL STORAGE */
+-#define _COMPILER_TLS 0 /* 1 if compiler supports TLS directly */
+-#define _TLS_QUAL /* TLS qualifier, such as __declspec(thread), if any */
+-
+ #define _HAS_TRADITIONAL_IOSTREAMS 1
+ #define _HAS_TRADITIONAL_ITERATORS 1
+ #define _HAS_TRADITIONAL_POS_TYPE 1
+@@ -131,211 +58,9 @@
+
+ #define _Restrict
+
+- #ifdef __cplusplus
+-_STD_BEGIN
+-typedef bool _Bool;
+-_STD_END
+- #endif /* __cplusplus */
+-
+- /* VC++ COMPILER PARAMETERS */
+-#define _CRTIMP
+-#define _CDECL
+-
+-#define _LONGLONG long long
+-#define _ULONGLONG unsigned long long
+-#define _LLONG_MAX 0x7fffffffffffffffLL
+-#define _ULLONG_MAX 0xffffffffffffffffULL
+-
+-_C_STD_BEGIN
+- /* errno PROPERTIES */
+-#define _EDOM 33
+-#define _ERANGE 34
+-#define _EFPOS 152
+-#define _EILSEQ 99
+-#define _ERRMAX 152
+-
+- /* FLOATING-POINT PROPERTIES */
+-#define _DBIAS 0x3fe /* IEEE format double and float */
+-#define _DOFF 4
+-#define _FBIAS 0x7e
+-#define _FOFF 7
+-#define _FRND 1
+-
+- /* INTEGER PROPERTIES */
+-#define _BITS_BYTE 8
+-#define _C2 1 /* 0 if not 2's complement */
+-#define _CSIGN 1 /* 0 if char is not signed */
+-#define _MBMAX 8 /* MB_LEN_MAX */
+-
+-#define _MAX_EXP_DIG 8 /* for parsing numerics */
+-#define _MAX_INT_DIG 32
+-#define _MAX_SIG_DIG 36
+-
+- #ifdef _LONGLONG
+-typedef _LONGLONG _Longlong;
+-typedef _ULONGLONG _ULonglong;
+- #else /* _LONGLONG */
+-typedef long _Longlong;
+-typedef unsigned long _ULonglong;
+-#ifndef _M_IA64
+- #define _LLONG_MAX 0x7fffffffL
+- #define _ULLONG_MAX 0xffffffffUL
+-#else
+- #define _LLONG_MAX 0x7fffffffffffffffLL
+- #define _ULLONG_MAX 0xffffffffffffffffULL
+-#endif
+- #endif /* _LONGLONG */
+-
+- #ifdef __CYGWIN__
+- #define _WCMAX 0x7fff
+- #ifdef __cplusplus
+- #ifdef _HAS_WCHAR_TYPE
+- #define _WCHART
+-typedef wchar_t _Wchart;
+-typedef wchar_t _Wintt;
+- #else /* _HAS_WCHAR_TYPE */
+-typedef short _Wchart;
+-typedef short _Wintt;
+- #endif /* _HAS_WCHAR_TYPE */
+- #else /* __cplusplus */
+-typedef short _Wchart;
+-typedef short _Wintt;
+- #endif /* __cplusplus */
+-
+- #else /* __CYGWIN__ */
+- #define _WCMAX 0x7fffffff
+- #ifdef __cplusplus
+- #ifdef _HAS_WCHAR_TYPE
+- #define _WCHART
+-typedef wchar_t _Wchart;
+-typedef wchar_t _Wintt;
+- #else /* _HAS_WCHAR_TYPE */
+-typedef int _Wchart;
+-typedef int _Wintt;
+- #endif /* _HAS_WCHAR_TYPE */
+- #else /* __cplusplus */
+-typedef int _Wchart;
+-typedef int _Wintt;
+- #endif /* __cplusplus */
+- #endif /* __CYGWIN__ */
+-
+-#define _WCMIN 0
+-#define _ILONG 1 /* 0 if 16-bit int */
+-
+- /* POINTER PROPERTIES */
+-#define _NULL 0L /* 0L if pointer same as long */
+-
+- #ifdef _PDT
+-typedef _PDT _Ptrdifft;
+- #else /* _PDT */
+-typedef __PTRDIFF_TYPE__ _Ptrdifft;
+- #endif /* _PDT */
+-
+- #ifdef _SZT
+-typedef _SZT _Sizet;
+- #else /* _SZT */
+-typedef __SIZE_TYPE__ _Sizet;
+- #endif /* _SZT */
+-
+- /* signal PROPERTIES */
+-#define _SIGABRT 6
+-#define _SIGMAX 44
+-
+- /* stdarg PROPERTIES */
+-typedef va_list _Va_list;
+- #if __EDG__
+- #undef va_copy
+- #endif /* __EDG__ */
+-#ifndef va_copy
+- #define va_copy(dest, src) ((dest) = (src))
+-#endif /* va_copy */
+-
+- /* stdlib PROPERTIES */
+-#define _EXFAIL 1 /* EXIT_FAILURE */
+-
+-_EXTERN_C
+-void _Atexit(void (*)(void));
+-_END_EXTERN_C
+-
+-typedef struct _Mbstatet
+- { /* state of a multibyte translation */
+- unsigned long _Wchar;
+- unsigned short _Byte, _State;
+- } _Mbstatet;
+-
+- /* stdio PROPERTIES */
+-#define _FNAMAX 64
+-#define _FOPMAX 16
+-#define _TNAMAX 16
+-
+-#define _Filet FILE
+-
+-typedef struct _Fpost
+- { /* file position */
+- long _Off; /* can be system dependent */
+- _Mbstatet _Wstate;
+- } _Fpost;
+-
+-#ifndef _FPOSOFF
+- #ifdef __sun
+- #define _FPOSOFF(fp) ((long)(fp))
+- #else /* __sun */
+- #if __GLIBC_2_2
+- #define _FPOSOFF(fp) ((long)(fp.__pos))
+- #else
+- #define _FPOSOFF(fp) ((long)(fp))
+- #endif
+- #endif /* __sun */
+-#endif
+-
+-#define _FD_VALID(fd) (0 <= (fd)) /* fd is signed integer */
+-#define _FD_INVALID (-1)
+-
+- /* STORAGE ALIGNMENT PROPERTIES */
+-#define _MEMBND 3U /* eight-byte boundaries (2^^3) */
+-
+- /* time PROPERTIES */
+-#define _TBIAS ((70 * 365LU + 17) * 86400)
+-_C_STD_END
+-
+- /* MULTITHREAD PROPERTIES */
+- #if _MULTI_THREAD
+-_EXTERN_C
+-void _Locksyslock(unsigned int);
+-void _Unlocksyslock(unsigned int);
+-_END_EXTERN_C
+-
+- #else /* _MULTI_THREAD */
+- #define _Locksyslock(x) (void)0
+- #define _Unlocksyslock(x) (void)0
+- #endif /* _MULTI_THREAD */
+-
+- /* LOCK MACROS */
+- #define _LOCK_LOCALE 0
+- #define _LOCK_MALLOC 1
+- #define _LOCK_STREAM 2
+- #define _MAX_LOCK 3 /* one more than highest lock number */
+-
+-
+-
+ /* MISCELLANEOUS MACROS */
+-#define _ATEXIT_T void
+-#define _Mbstinit(x) mbstate_t x = {0, 0}
+-
+-#define _MAX (max)
+-#define _MIN (min)
+-
+ #define _TEMPLATE_STAT
+
+- #ifdef __SUNPRO_CC
+- #define __EDG__ 1 /* close enough for Sun compiler, hereafter */
+- #endif /* __SUNPRO_CC */
+-
+- #if __EDG__
+- #define _NO_RETURN
+- #else /* __EDG__ */
+- #define _NO_RETURN __attribute__((__noreturn__))
+- #endif /* __EDG__ */
+ #endif /* _YVALS */
+
+ /*
diff --git a/lang/icc/files/stdarg.h b/lang/icc/files/stdarg.h
new file mode 100644
index 000000000000..c1d8b38de58c
--- /dev/null
+++ b/lang/icc/files/stdarg.h
@@ -0,0 +1,9 @@
+
+#include_next <stdarg.h>
+
+#if __ISO_C_VISIBLE >= 1999
+/* Taken from original yvals.h. */
+#ifndef va_copy
+#define va_copy(dest, src) ((dest) = (src))
+#endif
+#endif
diff --git a/lang/icc/files/stdin.c b/lang/icc/files/stdin.c
new file mode 100644
index 000000000000..e25687f8cb34
--- /dev/null
+++ b/lang/icc/files/stdin.c
@@ -0,0 +1,32 @@
+/*
+ * 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/icc/files/stdin.c,v 1.1 2003-01-11 17:25:51 netchild Exp $
+ */
+
+#include <stdio.h>
+
+#undef stdin
+FILE *stdin = &__sF[0];
diff --git a/lang/icc/files/stdout.c b/lang/icc/files/stdout.c
new file mode 100644
index 000000000000..4f7e382c791f
--- /dev/null
+++ b/lang/icc/files/stdout.c
@@ -0,0 +1,32 @@
+/*
+ * 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/icc/files/stdout.c,v 1.1 2003-01-11 17:25:51 netchild Exp $
+ */
+
+#include <stdio.h>
+
+#undef stdout
+FILE *stdout = &__sF[1];
diff --git a/lang/icc7/files/cpio-exclude_noportdocs b/lang/icc7/files/cpio-exclude_noportdocs
new file mode 100644
index 000000000000..83a471e99943
--- /dev/null
+++ b/lang/icc7/files/cpio-exclude_noportdocs
@@ -0,0 +1,14 @@
+*/opt/intel/%%COMPILERDIR%%/docs/C++ReleaseNotes.htm
+*/opt/intel/%%COMPILERDIR%%/docs/asm_lan.pdf
+*/opt/intel/%%COMPILERDIR%%/docs/asm_ug*
+*/opt/intel/%%COMPILERDIR%%/docs/asm_ug.pdf
+*/opt/intel/%%COMPILERDIR%%/docs/c_ug*
+*/opt/intel/%%COMPILERDIR%%/docs/c_ug_lnx.pdf
+*/opt/intel/%%COMPILERDIR%%/docs/ccompindex.htm
+*/opt/intel/%%COMPILERDIR%%/docs/credist.txt
+*/opt/intel/%%COMPILERDIR%%/docs/flex_ug.pdf
+*/opt/intel/%%COMPILERDIR%%/docs/icid.htm
+*/opt/intel/%%COMPILERDIR%%/docs/icpi.htm
+*/opt/intel/%%COMPILERDIR%%/docs/notes*
+*/opt/intel/%%COMPILERDIR%%/docs/ref*
+*/opt/intel/%%COMPILERDIR%%/training*
diff --git a/lang/icc7/files/patch-ia32::bin::icc b/lang/icc7/files/patch-ia32::bin::icc
new file mode 100644
index 000000000000..55406344c471
--- /dev/null
+++ b/lang/icc7/files/patch-ia32::bin::icc
@@ -0,0 +1,74 @@
+--- ia32/bin/icc.orig Fri Jan 10 16:57:18 2003
++++ ia32/bin/icc Fri Jan 10 17:09:38 2003
+@@ -1,29 +1,62 @@
+ #!/bin/sh
+
+-INTEL_LICENSE_FILE=<INSTALLDIR>/licenses;
++PREFIX=@@PREFIX@@
++export PREFIX;
++INTEL_LICENSE_FILE=${INTEL_LICENSE_FILE:-${PREFIX}/intel/licenses}
+ export INTEL_LICENSE_FILE;
+
+ if [ -z LD_LIBRARY_PATH ]
+ then
+- LD_LIBRARY_PATH=<INSTALLDIR>/compiler70/ia32/lib;
++ LD_LIBRARY_PATH=${PREFIX}/intel/compiler70/ia32/lib;
+ else
+- LD_LIBRARY_PATH=<INSTALLDIR>/compiler70/ia32/lib:$LD_LIBRARY_PATH
++ LD_LIBRARY_PATH=${PREFIX}/intel/compiler70/ia32/lib:$LD_LIBRARY_PATH
+ fi
+ export LD_LIBRARY_PATH;
+
+ if [ -z PATH ]
+ then
+- PATH=<INSTALLDIR>/compiler70/ia32/bin;
++ PATH=${PREFIX}/intel/compiler70/ia32/bin;
+ else
+- PATH=<INSTALLDIR>/compiler70/ia32/bin:$PATH;
++ PATH=${PREFIX}/intel/compiler70/ia32/bin:$PATH;
+ fi
+ export PATH;
+
+-export -n IA32ROOT; unset IA32ROOT;
+-
+ if [ $# != 0 ]
+ then
+- exec -a "<INSTALLDIR>/compiler70/ia32/bin/icc" <INSTALLDIR>/compiler70/ia32/bin/iccbin "$@";
++ i=0
++ argc=$#
++ while [ $i -lt $argc ] ; do
++ val1=$1
++ shift
++ for s in .C .cc .cpp .cxx .c++; do
++ val2=${val1%$s}
++ if [ ${#val1} -gt ${#val2} ] ; then
++ echo "Please use icpc to compile C++ source."
++ exit 1
++ fi
++ done
++ val2=${val1#"-openmp"}
++ if [ ${#val1} -gt ${#val2} ] ; then
++ echo "Sorry, option '$val1' is not supported on FreeBSD."
++ exit 1
++ fi
++ val2=${val1#"-par"}
++ if [ ${#val1} -gt ${#val2} ] ; then
++ echo "Sorry, option '$val1' is not supported on FreeBSD."
++ exit 1
++ fi
++ if [ "${val1}" = "-Kpic" ] || [ "${val1}" = "-KPIC" ] || \
++ [ "${val1}" = "-fpic" ] || [ "${val1}" = "-fPIC" ] ; then
++ set -- "$@" "-Qoption,ld,-PIC"
++ fi
++ if [ "${val1}" = "-mt" ] ; then
++ unset val1
++ set -- "$@" "-Qoption,ld,-MT"
++ fi
++ set -- "$@" "$val1"
++ i=$(($i+1))
++ done
++ exec ${PREFIX}/intel/compiler70/ia32/bin/iccbin "$@";
+ else
+- exec -a "<INSTALLDIR>/compiler70/ia32/bin/icc" <INSTALLDIR>/compiler70/ia32/bin/iccbin;
++ exec ${PREFIX}/intel/compiler70/ia32/bin/iccbin;
+ fi
diff --git a/lang/icc7/files/patch-ia32::bin::icpc b/lang/icc7/files/patch-ia32::bin::icpc
new file mode 100644
index 000000000000..49c3609b345b
--- /dev/null
+++ b/lang/icc7/files/patch-ia32::bin::icpc
@@ -0,0 +1,67 @@
+--- ia32/bin/icpc.orig Fri Jan 10 16:47:29 2003
++++ ia32/bin/icpc Fri Jan 10 17:19:03 2003
+@@ -1,29 +1,55 @@
+ #!/bin/sh
+
+-INTEL_LICENSE_FILE=<INSTALLDIR>/licenses;
++PREFIX=@@PREFIX@@
++export PREFIX;
++INTEL_LICENSE_FILE=${INTEL_LICENSE_FILE:-${PREFIX}/intel/licenses}
+ export INTEL_LICENSE_FILE;
+
+ if [ -z LD_LIBRARY_PATH ]
+ then
+- LD_LIBRARY_PATH=<INSTALLDIR>/compiler70/ia32/lib;
++ LD_LIBRARY_PATH=${PREFIX}/intel/compiler70/ia32/lib;
+ else
+- LD_LIBRARY_PATH=<INSTALLDIR>/compiler70/ia32/lib:$LD_LIBRARY_PATH
++ LD_LIBRARY_PATH=${PREFIX}/intel/compiler70/ia32/lib:$LD_LIBRARY_PATH
+ fi
+ export LD_LIBRARY_PATH;
+
+ if [ -z PATH ]
+ then
+- PATH=<INSTALLDIR>/compiler70/ia32/bin;
++ PATH=${PREFIX}/intel/compiler70/ia32/bin;
+ else
+- PATH=<INSTALLDIR>/compiler70/ia32/bin:$PATH;
++ PATH=${PREFIX}/intel/compiler70/ia32/bin:$PATH;
+ fi
+ export PATH;
+
+-export -n IA32ROOT; unset IA32ROOT;
+-
+ if [ $# != 0 ]
+ then
+- exec -a "<INSTALLDIR>/compiler70/ia32/bin/icpc" <INSTALLDIR>/compiler70/ia32/bin/icpcbin "$@";
++ i=0
++ argc=$#
++ while [ $i -lt $argc ] ; do
++ val1=$1
++ shift
++ val2=${val1#"-openmp"}
++ if [ ${#val1} -gt ${#val2} ] ; then
++ echo "Sorry, option '$val1' is not supported on FreeBSD."
++ exit 1
++ fi
++ val2=${val1#"-par"}
++ if [ ${#val1} -gt ${#val2} ] ; then
++ echo "Sorry, option '$val1' is not supported on FreeBSD."
++ exit 1
++ fi
++ if [ "${val1}" = "-Kpic" ] || [ "${val1}" = "-KPIC" ] || \
++ [ "${val1}" = "-fpic" ] || [ "${val1}" = "-fPIC" ] ; then
++ set -- "$@" "-Qoption,ld,-PIC"
++ fi
++ if [ "${val1}" = "-mt" ] ; then
++ unset val1
++ set -- "$@" "-Qoption,ld,-MT"
++ fi
++ set -- "$@" "$val1"
++ i=$(($i+1))
++ done
++ exec ${PREFIX}/intel/compiler70/ia32/bin/icpcbin "$@";
+ else
+- exec -a "<INSTALLDIR>/compiler70/ia32/bin/icpc" <INSTALLDIR>/compiler70/ia32/bin/icpcbin;
++ exec ${PREFIX}/intel/compiler70/ia32/bin/icpcbin;
+ fi
diff --git a/lang/icc7/files/patch-ia32::include::cstdio b/lang/icc7/files/patch-ia32::include::cstdio
new file mode 100644
index 000000000000..c4d7d4216c8f
--- /dev/null
+++ b/lang/icc7/files/patch-ia32::include::cstdio
@@ -0,0 +1,38 @@
+--- ia32/include/cstdio.orig Tue Nov 26 23:40:27 2002
++++ ia32/include/cstdio Tue Nov 26 23:40:27 2002
+@@ -11,35 +11,6 @@
+ #else /* _STD_USING */
+ #include <stdio.h>
+
+- #ifdef __GLIBC__
+- #if _HAS_TRADITIONAL_IOSTREAMS
+-_C_LIB_DECL
+-int fileno(FILE *) __THROW;
+-_END_C_LIB_DECL
+- #else
+- #endif /* _HAS_TRADITIONAL_IOSTREAMS */
+- #define _HAS_POINTER_CLIB 1
+- #define _RBEGIN _IO_read_base
+- #define _RNEXT _IO_read_ptr
+- #define _REND _IO_read_end
+- #define _WBEGIN _IO_write_base
+- #define _WNEXT _IO_write_ptr
+- #define _WEND _IO_write_end
+- #else /* __GLIBC__ */
+- #define _HAS_CONVENTIONAL_CLIB 1
+- #define _IOBASE _base
+- #define _IOPTR _ptr
+- #define _IOCNT _cnt
+- #endif /* __GLIBC__ */
+-
+- #undef _FPOSOFF
+- #if !defined(__GLIBC__) \
+- || __GLIBC__ < 2 || __GLIBC__ == 2 && __GLIBC_MINOR__ < 2
+- #define _FPOSOFF(fp) ((long)(fp))
+- #else /* __GLIBC__ */
+- #define _FPOSOFF(fp) ((long)(fp).__pos)
+- #endif /* __GLIBC__ */
+-
+ #ifdef _GLOBAL_USING
+ _STD_BEGIN
+ using ::size_t; using ::fpos_t; using ::FILE;
diff --git a/lang/icc7/files/patch-ia32::include::cwchar b/lang/icc7/files/patch-ia32::include::cwchar
new file mode 100644
index 000000000000..4ff2de03508c
--- /dev/null
+++ b/lang/icc7/files/patch-ia32::include::cwchar
@@ -0,0 +1,36 @@
+--- ia32/include/cwchar.orig Mon Nov 25 16:38:57 2002
++++ ia32/include/cwchar Mon Nov 25 16:40:01 2002
+@@ -13,23 +13,23 @@
+
+ #ifdef _GLOBAL_USING
+ _STD_BEGIN
+-using ::mbstate_t; using ::size_t; using ::tm; using ::wint_t;
++using ::mbstate_t; using ::size_t; /* using ::tm; */ using ::wint_t;
+
+
+-using ::btowc;
+-using ::mbrlen; using ::mbrtowc; using ::mbsrtowcs;
+-using ::mbsinit;
+-using ::wcrtomb;
+-using ::wcsrtombs; using ::wcstol; using ::wcscat;
+-using ::wcschr; using ::wcscmp; using ::wcscoll;
++//using ::btowc;
++//using ::mbrlen; using ::mbrtowc; using ::mbsrtowcs;
++//using ::mbsinit;
++//using ::wcrtomb;
++/* using ::wcsrtombs; using ::wcstol; */ using ::wcscat;
++using ::wcschr; using ::wcscmp; // using ::wcscoll;
+ using ::wcscpy; using ::wcscspn; using ::wcslen;
+ using ::wcsncat; using ::wcsncmp; using ::wcsncpy;
+ using ::wcspbrk; using ::wcsrchr; using ::wcsspn;
+-using ::wcstod; using ::wcstoul; using ::wcsstr;
+-using ::wcstok; using ::wcsxfrm; using ::wctob;
++/* using ::wcstod; using ::wcstoul; */ using ::wcsstr;
++//using ::wcstok; using ::wcsxfrm; using ::wctob;
+ using ::wmemchr; using ::wmemcmp; using ::wmemcpy;
+ using ::wmemmove; using ::wmemset;
+-using ::wcsftime;
++//using ::wcsftime;
+
+ #ifdef __USE_ISOC99
+ using ::fwide; using ::fwprintf;
diff --git a/lang/icc7/files/patch-ia32::include::dvec.h b/lang/icc7/files/patch-ia32::include::dvec.h
new file mode 100644
index 000000000000..0dd3c423d040
--- /dev/null
+++ b/lang/icc7/files/patch-ia32::include::dvec.h
@@ -0,0 +1,11 @@
+--- ia32/include/dvec.h.orig Fri Jan 10 18:12:30 2003
++++ ia32/include/dvec.h Fri Jan 10 18:53:34 2003
+@@ -38,7 +38,7 @@
+
+
+ /* If using MSVC5.0, explicit keyword should be used */
+-#if (_MSC_VER >= 1100) || defined (__linux__)
++#if (_MSC_VER >= 1100) || defined (__linux__) || defined (__FreeBSD__)
+ #define EXPLICIT explicit
+ #else
+ #if (__INTEL_COMPILER)
diff --git a/lang/icc7/files/patch-ia32::include::fvec.h b/lang/icc7/files/patch-ia32::include::fvec.h
new file mode 100644
index 000000000000..2a68afbc28e9
--- /dev/null
+++ b/lang/icc7/files/patch-ia32::include::fvec.h
@@ -0,0 +1,11 @@
+--- ia32/include/fvec.h.orig Fri Jan 10 18:12:35 2003
++++ ia32/include/fvec.h Fri Jan 10 18:54:01 2003
+@@ -41,7 +41,7 @@
+ #pragma pack(push,16) /* Must ensure class & union 16-B aligned */
+
+ /* If using MSVC5.0, explicit keyword should be used */
+-#if (_MSC_VER >= 1100) || defined (__linux__)
++#if (_MSC_VER >= 1100) || defined (__linux__) || defined (__FreeBSD__)
+ #define EXPLICIT explicit
+ #else
+ #if (__INTEL_COMPILER)
diff --git a/lang/icc7/files/patch-ia32::include::ivec.h b/lang/icc7/files/patch-ia32::include::ivec.h
new file mode 100644
index 000000000000..50ec1c1ead5b
--- /dev/null
+++ b/lang/icc7/files/patch-ia32::include::ivec.h
@@ -0,0 +1,11 @@
+--- ia32/include/ivec.h.orig Fri Jan 10 18:12:39 2003
++++ ia32/include/ivec.h Fri Jan 10 18:53:50 2003
+@@ -24,7 +24,7 @@
+ #include <assert.h>
+
+ /* If using MSVC5.0, explicit keyword should be used */
+-#if (_MSC_VER >= 1100) || defined (__linux__)
++#if (_MSC_VER >= 1100) || defined (__linux__) || defined (__FreeBSD__)
+ #define EXPLICIT explicit
+ #else
+ #if (__INTEL_COMPILER)
diff --git a/lang/icc7/files/patch-ia32::include::mathimf.h b/lang/icc7/files/patch-ia32::include::mathimf.h
new file mode 100644
index 000000000000..4db51f9c95cf
--- /dev/null
+++ b/lang/icc7/files/patch-ia32::include::mathimf.h
@@ -0,0 +1,398 @@
+--- ia32/include/mathimf.h.orig Fri Jan 10 18:15:48 2003
++++ ia32/include/mathimf.h Fri Jan 10 18:36:16 2003
+@@ -36,7 +36,7 @@
+ # error "<mathimf.h> is incompatible with system <math.h>!"
+ #endif
+
+-#if defined(__linux__)
++#if defined(__linux__) || defined(__FreeBSD__)
+ # include <math.h> /* utilize GNU math header */
+ # if defined(finite)
+ # undef finite
+@@ -62,7 +62,7 @@
+ #if defined(_DLL) && (defined(_WIN32) || defined(_WIN64)) /* Windows DLL */
+ # define _LIBIMF_PUBAPI __declspec(dllimport) __cdecl
+ # define _LIBIMF_PUBVAR __declspec(dllimport)
+-#elif defined(__linux__) /* Linux */
++#elif defined(__linux__) || defined(__FreeBSD__) /* Linux || FreeBSD */
+ # define _LIBIMF_PUBAPI /* do not change this line! */
+ # define _LIBIMF_PUBVAR
+ #else /* Windows static */
+@@ -84,7 +84,7 @@
+ # define _LIBIMF_FCOMPLEX _LIBIMF_FLOAT _Complex
+ #endif
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+
+ /*-- Real functions --*/
+
+@@ -102,13 +102,13 @@
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI tanf (_LIBIMF_FLOAT __x);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI tanl (_LIBIMF_XDOUBLE __x);
+
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI cot (_LIBIMF_DOUBLE __x);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI cotf (_LIBIMF_FLOAT __x);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI cotl (_LIBIMF_XDOUBLE __x);
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI acos (_LIBIMF_DOUBLE __x);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI acosf (_LIBIMF_FLOAT __x);
+@@ -126,13 +126,13 @@
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI atan2f (_LIBIMF_FLOAT __y, _LIBIMF_FLOAT __x);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI atan2l (_LIBIMF_XDOUBLE __y, _LIBIMF_XDOUBLE __x);
+
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+
+ _LIBIMF_EXT _LIBIMF_VOID _LIBIMF_PUBAPI sincos (_LIBIMF_DOUBLE __x, _LIBIMF_DOUBLE *__psin, _LIBIMF_DOUBLE *__pcos);
+ _LIBIMF_EXT _LIBIMF_VOID _LIBIMF_PUBAPI sincosf (_LIBIMF_FLOAT __x, _LIBIMF_FLOAT *__psin, _LIBIMF_FLOAT *__pcos);
+ _LIBIMF_EXT _LIBIMF_VOID _LIBIMF_PUBAPI sincosl (_LIBIMF_XDOUBLE __x, _LIBIMF_XDOUBLE *__psin, _LIBIMF_XDOUBLE *__pcos);
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+
+ /* Exponential functions */
+
+@@ -140,7 +140,7 @@
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI expf (_LIBIMF_FLOAT __x);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI expl (_LIBIMF_XDOUBLE __x);
+
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI exp2 (_LIBIMF_DOUBLE __x);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI exp2f (_LIBIMF_FLOAT __x);
+@@ -150,7 +150,7 @@
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI exp10f (_LIBIMF_FLOAT __x);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI exp10l (_LIBIMF_XDOUBLE __x);
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI expm1 (_LIBIMF_DOUBLE __x);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI expm1f (_LIBIMF_FLOAT __x);
+@@ -172,13 +172,13 @@
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI scalbnf (_LIBIMF_FLOAT __x, _LIBIMF_INT __n);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI scalbnl (_LIBIMF_XDOUBLE __x, _LIBIMF_INT __n);
+
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI scalbln (_LIBIMF_DOUBLE __x, _LIBIMF_LONGINT __n);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI scalblnf (_LIBIMF_FLOAT __x, _LIBIMF_LONGINT __n);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI scalblnl (_LIBIMF_XDOUBLE __x, _LIBIMF_LONGINT __n);
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+
+ /* Hyperbolic functions */
+
+@@ -206,13 +206,13 @@
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI atanhf (_LIBIMF_FLOAT __x);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI atanhl (_LIBIMF_XDOUBLE __x);
+
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+
+ _LIBIMF_EXT _LIBIMF_VOID _LIBIMF_PUBAPI sinhcosh (_LIBIMF_DOUBLE __x, _LIBIMF_DOUBLE *__psinh, _LIBIMF_DOUBLE *__pcosh);
+ _LIBIMF_EXT _LIBIMF_VOID _LIBIMF_PUBAPI sinhcoshf (_LIBIMF_FLOAT __x, _LIBIMF_FLOAT *__psinh, _LIBIMF_FLOAT *__pcosh);
+ _LIBIMF_EXT _LIBIMF_VOID _LIBIMF_PUBAPI sinhcoshl (_LIBIMF_XDOUBLE __x, _LIBIMF_XDOUBLE *__psinh, _LIBIMF_XDOUBLE *__pcosh);
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+
+ /* Logarithmic functions */
+
+@@ -220,13 +220,13 @@
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI logf (_LIBIMF_FLOAT __x);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI logl (_LIBIMF_XDOUBLE __x);
+
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI log2 (_LIBIMF_DOUBLE __x);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI log2f (_LIBIMF_FLOAT __x);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI log2l (_LIBIMF_XDOUBLE __x);
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI log10 (_LIBIMF_DOUBLE __x);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI log10f (_LIBIMF_FLOAT __x);
+@@ -254,13 +254,13 @@
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI sqrtf (_LIBIMF_FLOAT __x);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI sqrtl (_LIBIMF_XDOUBLE __x);
+
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI invsqrt (_LIBIMF_DOUBLE __x);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI invsqrtf (_LIBIMF_FLOAT __x);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI invsqrtl (_LIBIMF_XDOUBLE __x);
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI cbrt (_LIBIMF_DOUBLE __x);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI cbrtf (_LIBIMF_FLOAT __x);
+@@ -280,13 +280,13 @@
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI remainderf (_LIBIMF_FLOAT __x, _LIBIMF_FLOAT __y);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI remainderl (_LIBIMF_XDOUBLE __x, _LIBIMF_XDOUBLE __y);
+
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI remquo (_LIBIMF_DOUBLE __x, _LIBIMF_DOUBLE __y, _LIBIMF_INT *__quo);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI remquof (_LIBIMF_FLOAT __x, _LIBIMF_FLOAT __y, _LIBIMF_INT *__quo);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI remquol (_LIBIMF_XDOUBLE __x, _LIBIMF_XDOUBLE __y, _LIBIMF_INT *__quo);
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI fmod (_LIBIMF_DOUBLE __x, _LIBIMF_DOUBLE __y);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI fmodf (_LIBIMF_FLOAT __x, _LIBIMF_FLOAT __y);
+@@ -298,13 +298,13 @@
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI rintf (_LIBIMF_FLOAT __x);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI rintl (_LIBIMF_XDOUBLE __x);
+
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI round (_LIBIMF_DOUBLE __x);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI roundf (_LIBIMF_FLOAT __x);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI roundl (_LIBIMF_XDOUBLE __x);
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI ceil (_LIBIMF_DOUBLE __x);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI ceilf (_LIBIMF_FLOAT __x);
+@@ -314,19 +314,19 @@
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI floorf (_LIBIMF_FLOAT __x);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI floorl (_LIBIMF_XDOUBLE __x);
+
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI trunc (_LIBIMF_DOUBLE __x);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI truncf (_LIBIMF_FLOAT __x);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI truncl (_LIBIMF_XDOUBLE __x);
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI modf (_LIBIMF_DOUBLE __x, _LIBIMF_DOUBLE *__iptr);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI modff (_LIBIMF_FLOAT __x, _LIBIMF_FLOAT *__iptr);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI modfl (_LIBIMF_XDOUBLE __x, _LIBIMF_XDOUBLE *__iptr);
+
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+
+ _LIBIMF_EXT _LIBIMF_LONGINT _LIBIMF_PUBAPI lrint (_LIBIMF_DOUBLE __x);
+ _LIBIMF_EXT _LIBIMF_LONGINT _LIBIMF_PUBAPI lrintf (_LIBIMF_FLOAT __x);
+@@ -348,7 +348,7 @@
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI nearbyintf (_LIBIMF_FLOAT __x);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI nearbyintl (_LIBIMF_XDOUBLE __x);
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+
+ /* Special functions */
+
+@@ -385,7 +385,7 @@
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI lgammaf (_LIBIMF_FLOAT __x);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI lgammal (_LIBIMF_XDOUBLE __x);
+
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI tgamma (_LIBIMF_DOUBLE __x);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI tgammaf (_LIBIMF_FLOAT __x);
+@@ -394,12 +394,12 @@
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI gamma_r (_LIBIMF_DOUBLE __x, _LIBIMF_INT *__signgam);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI gammaf_r (_LIBIMF_FLOAT __x, _LIBIMF_INT *__signgam);
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI lgamma_r (_LIBIMF_DOUBLE __x, _LIBIMF_INT *__signgam);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI lgammaf_r (_LIBIMF_FLOAT __x, _LIBIMF_INT *__signgam);
+
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+
+ /* Special (financial) functions */
+
+@@ -457,7 +457,7 @@
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI fminf (_LIBIMF_FLOAT __x, _LIBIMF_FLOAT __y);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI fminl (_LIBIMF_XDOUBLE __x, _LIBIMF_XDOUBLE __y);
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI copysign (_LIBIMF_DOUBLE __x, _LIBIMF_DOUBLE __y);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI copysignf (_LIBIMF_FLOAT __x, _LIBIMF_FLOAT __y);
+@@ -467,25 +467,25 @@
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI nextafterf (_LIBIMF_FLOAT __x, _LIBIMF_FLOAT __y);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI nextafterl (_LIBIMF_XDOUBLE __x, _LIBIMF_XDOUBLE __y);
+
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI nexttoward (_LIBIMF_DOUBLE __x, _LIBIMF_XDOUBLE __y);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI nexttowardf (_LIBIMF_FLOAT __x, _LIBIMF_XDOUBLE __y);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI nexttowardl (_LIBIMF_XDOUBLE __x, _LIBIMF_XDOUBLE __y);
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI significand (_LIBIMF_DOUBLE __x);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI significandf (_LIBIMF_FLOAT __x);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI significandl (_LIBIMF_XDOUBLE __x);
+
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI fma (_LIBIMF_DOUBLE __x, _LIBIMF_DOUBLE __y, _LIBIMF_DOUBLE __z);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI fmaf (_LIBIMF_FLOAT __x, _LIBIMF_FLOAT __y, _LIBIMF_FLOAT __z);
+ _LIBIMF_EXT _LIBIMF_XDOUBLE _LIBIMF_PUBAPI fmal (_LIBIMF_XDOUBLE __x, _LIBIMF_XDOUBLE __y, _LIBIMF_XDOUBLE __z);
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+
+ _LIBIMF_EXT _LIBIMF_INT _LIBIMF_PUBAPI finite (_LIBIMF_DOUBLE __x);
+ _LIBIMF_EXT _LIBIMF_INT _LIBIMF_PUBAPI finitef (_LIBIMF_FLOAT __x);
+@@ -495,7 +495,7 @@
+ _LIBIMF_EXT _LIBIMF_INT _LIBIMF_PUBAPI isnanf (_LIBIMF_FLOAT __x);
+ _LIBIMF_EXT _LIBIMF_INT _LIBIMF_PUBAPI isnanl (_LIBIMF_XDOUBLE __x);
+
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+
+ /*-- Complex functions --*/
+
+@@ -505,7 +505,7 @@
+
+ /* Complex trigonometric functions */
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+
+ _LIBIMF_EXT _LIBIMF_DCOMPLEX _LIBIMF_PUBAPI ccos (_LIBIMF_DCOMPLEX __z);
+ _LIBIMF_EXT _LIBIMF_FCOMPLEX _LIBIMF_PUBAPI ccosf (_LIBIMF_FCOMPLEX __z);
+@@ -528,24 +528,24 @@
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI carg (_LIBIMF_DCOMPLEX __z);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI cargf (_LIBIMF_FCOMPLEX __z);
+
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+
+ _LIBIMF_EXT _LIBIMF_DCOMPLEX _LIBIMF_PUBAPI cis (_LIBIMF_DOUBLE __x);
+ _LIBIMF_EXT _LIBIMF_FCOMPLEX _LIBIMF_PUBAPI cisf (_LIBIMF_FLOAT __x);
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+
+ /* Complex exponential functions */
+
+ _LIBIMF_EXT _LIBIMF_DCOMPLEX _LIBIMF_PUBAPI cexp (_LIBIMF_DCOMPLEX __z);
+ _LIBIMF_EXT _LIBIMF_FCOMPLEX _LIBIMF_PUBAPI cexpf (_LIBIMF_FCOMPLEX __z);
+
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+
+ _LIBIMF_EXT _LIBIMF_DCOMPLEX _LIBIMF_PUBAPI cexp10 (_LIBIMF_DCOMPLEX __z);
+ _LIBIMF_EXT _LIBIMF_FCOMPLEX _LIBIMF_PUBAPI cexp10f (_LIBIMF_FCOMPLEX __z);
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+
+ _LIBIMF_EXT _LIBIMF_DCOMPLEX _LIBIMF_PUBAPI ccosh (_LIBIMF_DCOMPLEX __z);
+ _LIBIMF_EXT _LIBIMF_FCOMPLEX _LIBIMF_PUBAPI ccoshf (_LIBIMF_FCOMPLEX __z);
+@@ -570,7 +570,7 @@
+ _LIBIMF_EXT _LIBIMF_DCOMPLEX _LIBIMF_PUBAPI clog (_LIBIMF_DCOMPLEX __z);
+ _LIBIMF_EXT _LIBIMF_FCOMPLEX _LIBIMF_PUBAPI clogf (_LIBIMF_FCOMPLEX __z);
+
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+
+ _LIBIMF_EXT _LIBIMF_DCOMPLEX _LIBIMF_PUBAPI clog2 (_LIBIMF_DCOMPLEX __z);
+ _LIBIMF_EXT _LIBIMF_FCOMPLEX _LIBIMF_PUBAPI clog2f (_LIBIMF_FCOMPLEX __z);
+@@ -580,7 +580,7 @@
+
+ /* Complex power/root/abs functions */
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+
+ _LIBIMF_EXT _LIBIMF_DCOMPLEX _LIBIMF_PUBAPI cpow (_LIBIMF_DCOMPLEX __z, _LIBIMF_DCOMPLEX __c);
+ _LIBIMF_EXT _LIBIMF_FCOMPLEX _LIBIMF_PUBAPI cpowf (_LIBIMF_FCOMPLEX __z, _LIBIMF_FCOMPLEX __c);
+@@ -591,9 +591,9 @@
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI cabs (_LIBIMF_DCOMPLEX __z);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI cabsf (_LIBIMF_FCOMPLEX __z);
+
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+
+ /* Other complex functions */
+
+@@ -609,7 +609,7 @@
+ _LIBIMF_EXT _LIBIMF_DOUBLE _LIBIMF_PUBAPI creal (_LIBIMF_DCOMPLEX __z);
+ _LIBIMF_EXT _LIBIMF_FLOAT _LIBIMF_PUBAPI crealf (_LIBIMF_FCOMPLEX __z);
+
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+
+ #endif /*__IMFCOMPLEXON*/
+
+@@ -632,7 +632,7 @@
+ _LIBIMF_DOUBLE retval;
+ } ___exception;
+
+-#if defined(__linux__)
++#if defined(__linux__) || defined(__FreeBSD__)
+ # if defined(__cplusplus)
+ # define __exception ____exception /* map 'struct __exception' to 'struct ____exception' */
+ # else /*__cplusplus*/
+@@ -661,9 +661,9 @@
+ _LIBIMF_XDOUBLE retval;
+ } ___exceptionl;
+
+-#if !defined(__linux__)
++#if !defined(__linux__) && !defined(__FreeBSD__)
+ _LIBIMF_EXT _LIBIMF_INT _LIBIMF_PUBAPI matherr (struct ____exception *__e);
+-#endif /*!__linux__*/
++#endif /*!__linux__ && !__FreeBSD__*/
+ _LIBIMF_EXT _LIBIMF_INT _LIBIMF_PUBAPI matherrf (struct ____exceptionf *__e);
+ _LIBIMF_EXT _LIBIMF_INT _LIBIMF_PUBAPI matherrl (struct ____exceptionl *__e);
+
+@@ -694,9 +694,9 @@
+
+ /* Standard conformance support */
+
+-#if defined(__linux__)
++#if defined(__linux__) || defined(__FreeBSD__)
+ typedef _LIB_VERSION_TYPE _LIB_VERSIONIMF_TYPE;
+-#else /*__linux__*/
++#else /*__linux__ || __FreeBSD__*/
+ typedef enum ___LIB_VERSIONIMF_TYPE {
+ _IEEE_ = -1 /* IEEE-like behavior */
+ ,_SVID_ /* SysV, Rel. 4 behavior */
+@@ -704,7 +704,7 @@
+ ,_POSIX_ /* Posix */
+ ,_ISOC_ /* ISO C9X */
+ } _LIB_VERSIONIMF_TYPE;
+-#endif /*__linux__*/
++#endif /*__linux__ || __FreeBSD__*/
+
+ _LIBIMF_EXT _LIB_VERSIONIMF_TYPE _LIBIMF_PUBVAR _LIB_VERSIONIMF;
+
diff --git a/lang/icc7/files/patch-ia32::include::xmmintrin.h b/lang/icc7/files/patch-ia32::include::xmmintrin.h
new file mode 100644
index 000000000000..48c6dad06ae9
--- /dev/null
+++ b/lang/icc7/files/patch-ia32::include::xmmintrin.h
@@ -0,0 +1,11 @@
+--- ia32/include/xmmintrin.h.orig Fri Jan 10 18:47:00 2003
++++ ia32/include/xmmintrin.h Fri Jan 10 18:50:35 2003
+@@ -18,7 +18,7 @@
+ #ifndef _INCLUDED_MM2
+ #define _INCLUDED_MM2
+
+-#ifdef __linux__
++#if defined(__linux__) || defined(__FreeBSD__)
+ #define __cdecl
+ #endif
+
diff --git a/lang/icc7/files/patch-ia32::include::yvals.h b/lang/icc7/files/patch-ia32::include::yvals.h
new file mode 100644
index 000000000000..e566d6000799
--- /dev/null
+++ b/lang/icc7/files/patch-ia32::include::yvals.h
@@ -0,0 +1,303 @@
+--- ia32/include/yvals.h.orig Tue Nov 26 22:50:59 2002
++++ ia32/include/yvals.h Thu Jan 9 17:27:12 2003
+@@ -3,88 +3,15 @@
+ #ifndef _YVALS
+ #define _YVALS
+
+-#define __need___va_list
+-#include <stdarg.h>
+-
+-#include <features.h> /* Get glibc version __GLIBC__ and __GLIBC_MINOR__*/
+-#define __GLIBC_2_2 ((__GLIBC__ > 2) || ((__GLIBC__ >= 2) && (__GLIBC_MINOR__ >= 2)))
+- /* true if glibc-2.2 and older is used */
+-
+-#define _CPPLIB_VER 310
+-
+- #if defined(ia64) || defined(__ia64) || defined(__ia64__) /* assume Itanium */
+- #define _D0 3 /* 0: big endian, 3: little endian floating-point */
+- #define _DLONG 1 /* 0: 64, 1: 80, 2: 128 long double bits */
+- #define _LBIAS 0x3ffe /* 80/128 long double bits */
+- #define _LOFF 15 /* 80/128 long double bits */
+-/* #define _FPP_TYPE 1 */ /* 80287/Pentium FPP */
+-
+- #elif defined(i386) || defined(__i386) || defined(__i386__) /* assume PC */
+- #define _D0 3 /* 0: big endian, 3: little endian floating-point */
+- #define _DLONG 1 /* 0: 64, 1: 80, 2: 128 long double bits */
+- #define _LBIAS 0x3ffe /* 80/128 long double bits */
+- #define _LOFF 15 /* 80/128 long double bits */
+- #define _FPP_TYPE 1 /* 80287/Pentium FPP */
+-
+- #elif defined(sparc) || defined (__sparc) /* assume SPARC */
+- #define _D0 0 /* 0: big endian, 3: little endian floating-point */
+- #define _DLONG 2 /* 0: 64, 1: 80, 2: 128 long double bits */
+- #define _LBIAS 0x3ffe /* 80/128 long double bits */
+- #define _LOFF 15 /* 80/128 long double bits */
+- #define _FPP_TYPE 2 /* SPARC FPP */
+-
+- #elif defined(_POWER) /* assume PowerPC */
+- #define _D0 0 /* 0: big endian, 3: little endian floating-point */
+- #define _DLONG 0 /* 0: 64, 1: 80, 2: 128 long double bits */
+- #define _LBIAS 0x3ffe /* 80/128 long double bits */
+- #define _LOFF 15 /* 80/128 long double bits */
+- #define _FPP_TYPE 3 /* MIPS FPP */
+-
+- #define _PDT long
+- #define _SZT unsigned long
+-
+- #elif defined(__hppa) /* assume HP PA-RISC */
+- #define _D0 0 /* 0: big endian, 3: little endian floating-point */
+- #define _DLONG 2 /* 0: 64, 1: 80, 2: 128 long double bits */
+- #define _LBIAS 0x3ffe /* 80/128 long double bits */
+- #define _LOFF 15 /* 80/128 long double bits */
+- #define _FPP_TYPE 4 /* HP PA-RISC FPP */
+-
+- #else /* system detector */
+- #error /* unknown compilation environment */
+- #endif /* system detector */
+-
+- #ifdef __linux
+- #define _LINUX_C_LIB 1 /* assume Linux-specific conventions */
+- #endif /* __linux */
+-
+ /* NAMING PROPERTIES */
+-/* #define _STD_LINKAGE defines C names as extern "C++" */
+- #ifdef __SUNPRO_CC
+- #define _STD_USING /* exports C names from std to global, else reversed */
+- #endif /* __SUNPRO_CC */
+-
+-#define _USE_EXISTING_SYSTEM_NAMES 1 /* _Open => open etc. */
+ #define _POSIX_C_LIB 1 /* use common Unix/Linux conventions */
+-#define _SOLARIS_C_LIB 1 /* add declarations for C extensions */
+-
+- #if __EDG__
+- #define _HAS_STRICT_LINKAGE 1 /* extern "C" in function type */
+- #else /* __EDG__ */
+- #define _HAS_STRICT_LINKAGE 0 /* extern "C" in function type */
+- #endif /* __EDG__ */
+
+ /* THREAD AND LOCALE CONTROL */
+ #ifndef _MULTI_THREAD
+ #define _MULTI_THREAD 1 /* 0 for no locks, 1 for multithreaded library */
+ #endif /* _MULTI_THREAD */
+-#define _GLOBAL_LOCALE 0 /* 0 for per-thread locales, 1 for shared */
+-#define _FILE_OP_LOCKS 0 /* 0 for no file atomic locks, 1 for atomic */
+
+ /* THREAD-LOCAL STORAGE */
+-#define _COMPILER_TLS 0 /* 1 if compiler supports TLS directly */
+-#define _TLS_QUAL /* TLS qualifier, such as __declspec(thread), if any */
+-
+ #define _HAS_TRADITIONAL_IOSTREAMS 1
+ #define _HAS_TRADITIONAL_ITERATORS 1
+ #define _HAS_TRADITIONAL_POS_TYPE 1
+@@ -131,211 +58,9 @@
+
+ #define _Restrict
+
+- #ifdef __cplusplus
+-_STD_BEGIN
+-typedef bool _Bool;
+-_STD_END
+- #endif /* __cplusplus */
+-
+- /* VC++ COMPILER PARAMETERS */
+-#define _CRTIMP
+-#define _CDECL
+-
+-#define _LONGLONG long long
+-#define _ULONGLONG unsigned long long
+-#define _LLONG_MAX 0x7fffffffffffffffLL
+-#define _ULLONG_MAX 0xffffffffffffffffULL
+-
+-_C_STD_BEGIN
+- /* errno PROPERTIES */
+-#define _EDOM 33
+-#define _ERANGE 34
+-#define _EFPOS 152
+-#define _EILSEQ 99
+-#define _ERRMAX 152
+-
+- /* FLOATING-POINT PROPERTIES */
+-#define _DBIAS 0x3fe /* IEEE format double and float */
+-#define _DOFF 4
+-#define _FBIAS 0x7e
+-#define _FOFF 7
+-#define _FRND 1
+-
+- /* INTEGER PROPERTIES */
+-#define _BITS_BYTE 8
+-#define _C2 1 /* 0 if not 2's complement */
+-#define _CSIGN 1 /* 0 if char is not signed */
+-#define _MBMAX 8 /* MB_LEN_MAX */
+-
+-#define _MAX_EXP_DIG 8 /* for parsing numerics */
+-#define _MAX_INT_DIG 32
+-#define _MAX_SIG_DIG 36
+-
+- #ifdef _LONGLONG
+-typedef _LONGLONG _Longlong;
+-typedef _ULONGLONG _ULonglong;
+- #else /* _LONGLONG */
+-typedef long _Longlong;
+-typedef unsigned long _ULonglong;
+-#ifndef _M_IA64
+- #define _LLONG_MAX 0x7fffffffL
+- #define _ULLONG_MAX 0xffffffffUL
+-#else
+- #define _LLONG_MAX 0x7fffffffffffffffLL
+- #define _ULLONG_MAX 0xffffffffffffffffULL
+-#endif
+- #endif /* _LONGLONG */
+-
+- #ifdef __CYGWIN__
+- #define _WCMAX 0x7fff
+- #ifdef __cplusplus
+- #ifdef _HAS_WCHAR_TYPE
+- #define _WCHART
+-typedef wchar_t _Wchart;
+-typedef wchar_t _Wintt;
+- #else /* _HAS_WCHAR_TYPE */
+-typedef short _Wchart;
+-typedef short _Wintt;
+- #endif /* _HAS_WCHAR_TYPE */
+- #else /* __cplusplus */
+-typedef short _Wchart;
+-typedef short _Wintt;
+- #endif /* __cplusplus */
+-
+- #else /* __CYGWIN__ */
+- #define _WCMAX 0x7fffffff
+- #ifdef __cplusplus
+- #ifdef _HAS_WCHAR_TYPE
+- #define _WCHART
+-typedef wchar_t _Wchart;
+-typedef wchar_t _Wintt;
+- #else /* _HAS_WCHAR_TYPE */
+-typedef int _Wchart;
+-typedef int _Wintt;
+- #endif /* _HAS_WCHAR_TYPE */
+- #else /* __cplusplus */
+-typedef int _Wchart;
+-typedef int _Wintt;
+- #endif /* __cplusplus */
+- #endif /* __CYGWIN__ */
+-
+-#define _WCMIN 0
+-#define _ILONG 1 /* 0 if 16-bit int */
+-
+- /* POINTER PROPERTIES */
+-#define _NULL 0L /* 0L if pointer same as long */
+-
+- #ifdef _PDT
+-typedef _PDT _Ptrdifft;
+- #else /* _PDT */
+-typedef __PTRDIFF_TYPE__ _Ptrdifft;
+- #endif /* _PDT */
+-
+- #ifdef _SZT
+-typedef _SZT _Sizet;
+- #else /* _SZT */
+-typedef __SIZE_TYPE__ _Sizet;
+- #endif /* _SZT */
+-
+- /* signal PROPERTIES */
+-#define _SIGABRT 6
+-#define _SIGMAX 44
+-
+- /* stdarg PROPERTIES */
+-typedef va_list _Va_list;
+- #if __EDG__
+- #undef va_copy
+- #endif /* __EDG__ */
+-#ifndef va_copy
+- #define va_copy(dest, src) ((dest) = (src))
+-#endif /* va_copy */
+-
+- /* stdlib PROPERTIES */
+-#define _EXFAIL 1 /* EXIT_FAILURE */
+-
+-_EXTERN_C
+-void _Atexit(void (*)(void));
+-_END_EXTERN_C
+-
+-typedef struct _Mbstatet
+- { /* state of a multibyte translation */
+- unsigned long _Wchar;
+- unsigned short _Byte, _State;
+- } _Mbstatet;
+-
+- /* stdio PROPERTIES */
+-#define _FNAMAX 64
+-#define _FOPMAX 16
+-#define _TNAMAX 16
+-
+-#define _Filet FILE
+-
+-typedef struct _Fpost
+- { /* file position */
+- long _Off; /* can be system dependent */
+- _Mbstatet _Wstate;
+- } _Fpost;
+-
+-#ifndef _FPOSOFF
+- #ifdef __sun
+- #define _FPOSOFF(fp) ((long)(fp))
+- #else /* __sun */
+- #if __GLIBC_2_2
+- #define _FPOSOFF(fp) ((long)(fp.__pos))
+- #else
+- #define _FPOSOFF(fp) ((long)(fp))
+- #endif
+- #endif /* __sun */
+-#endif
+-
+-#define _FD_VALID(fd) (0 <= (fd)) /* fd is signed integer */
+-#define _FD_INVALID (-1)
+-
+- /* STORAGE ALIGNMENT PROPERTIES */
+-#define _MEMBND 3U /* eight-byte boundaries (2^^3) */
+-
+- /* time PROPERTIES */
+-#define _TBIAS ((70 * 365LU + 17) * 86400)
+-_C_STD_END
+-
+- /* MULTITHREAD PROPERTIES */
+- #if _MULTI_THREAD
+-_EXTERN_C
+-void _Locksyslock(unsigned int);
+-void _Unlocksyslock(unsigned int);
+-_END_EXTERN_C
+-
+- #else /* _MULTI_THREAD */
+- #define _Locksyslock(x) (void)0
+- #define _Unlocksyslock(x) (void)0
+- #endif /* _MULTI_THREAD */
+-
+- /* LOCK MACROS */
+- #define _LOCK_LOCALE 0
+- #define _LOCK_MALLOC 1
+- #define _LOCK_STREAM 2
+- #define _MAX_LOCK 3 /* one more than highest lock number */
+-
+-
+-
+ /* MISCELLANEOUS MACROS */
+-#define _ATEXIT_T void
+-#define _Mbstinit(x) mbstate_t x = {0, 0}
+-
+-#define _MAX (max)
+-#define _MIN (min)
+-
+ #define _TEMPLATE_STAT
+
+- #ifdef __SUNPRO_CC
+- #define __EDG__ 1 /* close enough for Sun compiler, hereafter */
+- #endif /* __SUNPRO_CC */
+-
+- #if __EDG__
+- #define _NO_RETURN
+- #else /* __EDG__ */
+- #define _NO_RETURN __attribute__((__noreturn__))
+- #endif /* __EDG__ */
+ #endif /* _YVALS */
+
+ /*
diff --git a/lang/icc7/files/stdarg.h b/lang/icc7/files/stdarg.h
new file mode 100644
index 000000000000..c1d8b38de58c
--- /dev/null
+++ b/lang/icc7/files/stdarg.h
@@ -0,0 +1,9 @@
+
+#include_next <stdarg.h>
+
+#if __ISO_C_VISIBLE >= 1999
+/* Taken from original yvals.h. */
+#ifndef va_copy
+#define va_copy(dest, src) ((dest) = (src))
+#endif
+#endif
diff --git a/lang/icc7/files/stdin.c b/lang/icc7/files/stdin.c
new file mode 100644
index 000000000000..ad20310ce9e9
--- /dev/null
+++ b/lang/icc7/files/stdin.c
@@ -0,0 +1,32 @@
+/*
+ * 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/icc7/files/Attic/stdin.c,v 1.1 2003-01-11 17:25:51 netchild Exp $
+ */
+
+#include <stdio.h>
+
+#undef stdin
+FILE *stdin = &__sF[0];
diff --git a/lang/icc7/files/stdout.c b/lang/icc7/files/stdout.c
new file mode 100644
index 000000000000..c5fde6d32039
--- /dev/null
+++ b/lang/icc7/files/stdout.c
@@ -0,0 +1,32 @@
+/*
+ * 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/icc7/files/Attic/stdout.c,v 1.1 2003-01-11 17:25:51 netchild Exp $
+ */
+
+#include <stdio.h>
+
+#undef stdout
+FILE *stdout = &__sF[1];