mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 18:42:56 +00:00
* Build crtdll
* Add module attribute "mangledsymbols" to control --kill-at option for dlltool in order to allow preservation of mangled symbols svn path=/branches/xmlbuildsystem/; revision=13221
This commit is contained in:
parent
421cfcb760
commit
ab4b7a72aa
24 changed files with 474 additions and 955 deletions
151
reactos/lib/crtdll/crtdll.xml
Normal file
151
reactos/lib/crtdll/crtdll.xml
Normal file
|
@ -0,0 +1,151 @@
|
||||||
|
<module name="crtdll" type="win32dll" mangledsymbols="true">
|
||||||
|
<linkerflag>-nostartfiles</linkerflag>
|
||||||
|
<linkerflag>-lgcc</linkerflag>
|
||||||
|
<importlibrary definition="crtdll.def" />
|
||||||
|
<include base="crtdll">.</include>
|
||||||
|
<define name="_DISABLE_TIDENTS" />
|
||||||
|
<define name="__USE_W32API" />
|
||||||
|
<define name="_WIN32_IE">0x600</define>
|
||||||
|
<define name="_WIN32_WINNT">0x501</define>
|
||||||
|
<define name="__REACTOS__" />
|
||||||
|
<define name="USE_MSVCRT_PREFIX" />
|
||||||
|
<define name="_MSVCRT_LIB_" />
|
||||||
|
<library>string</library>
|
||||||
|
<library>kernel32</library>
|
||||||
|
<library>ntdll</library>
|
||||||
|
<library>crt</library>
|
||||||
|
<directory name="ctype">
|
||||||
|
<file>isctype.c</file>
|
||||||
|
</directory>
|
||||||
|
<directory name="except">
|
||||||
|
<file>abnorter.c</file>
|
||||||
|
<file>exhand2.c</file>
|
||||||
|
<file>matherr.c</file>
|
||||||
|
<file>unwind.c</file>
|
||||||
|
</directory>
|
||||||
|
<directory name="io">
|
||||||
|
<file>create.c</file>
|
||||||
|
<file>dup.c</file>
|
||||||
|
<file>eof.c</file>
|
||||||
|
<file>find.c</file>
|
||||||
|
<file>fmode.c</file>
|
||||||
|
<file>lseek.c</file>
|
||||||
|
<file>open.c</file>
|
||||||
|
<file>pipe.c</file>
|
||||||
|
<file>read.c</file>
|
||||||
|
<file>unlink.c</file>
|
||||||
|
<file>write.c</file>
|
||||||
|
</directory>
|
||||||
|
<directory name="math">
|
||||||
|
<file>acosh.c</file>
|
||||||
|
<file>asinh.c</file>
|
||||||
|
<file>atanh.c</file>
|
||||||
|
<file>ceil.c</file>
|
||||||
|
<file>floor.c</file>
|
||||||
|
<file>huge_val.c</file>
|
||||||
|
</directory>
|
||||||
|
<directory name="malloc">
|
||||||
|
<file>expand.c</file>
|
||||||
|
<file>heap.c</file>
|
||||||
|
</directory>
|
||||||
|
<directory name="misc">
|
||||||
|
<file>amsg.c</file>
|
||||||
|
<file>debug.c</file>
|
||||||
|
<file>dllmain.c</file>
|
||||||
|
<file>GetArgs.c</file>
|
||||||
|
<file>purecall.c</file>
|
||||||
|
<file>setnew.c</file>
|
||||||
|
</directory>
|
||||||
|
<directory name="process">
|
||||||
|
<file>_cwait.c</file>
|
||||||
|
<file>_system.c</file>
|
||||||
|
<file>spawnl.c</file>
|
||||||
|
<file>spawnlp.c</file>
|
||||||
|
<file>spawnlpe.c</file>
|
||||||
|
<file>spawnvp.c</file>
|
||||||
|
<file>spawnv.c</file>
|
||||||
|
<file>spawnve.c</file>
|
||||||
|
<file>spawnle.c</file>
|
||||||
|
<file>execl.c</file>
|
||||||
|
<file>execlp.c</file>
|
||||||
|
<file>execlpe.c</file>
|
||||||
|
<file>execvpe.c</file>
|
||||||
|
<file>execvp.c</file>
|
||||||
|
<file>execv.c</file>
|
||||||
|
<file>execle.c</file>
|
||||||
|
<file>execve.c</file>
|
||||||
|
<file>thread.c</file>
|
||||||
|
</directory>
|
||||||
|
<directory name="signal">
|
||||||
|
<file>xcptfil.c</file>
|
||||||
|
<file>xcptinfo.c</file>
|
||||||
|
</directory>
|
||||||
|
<directory name="stdio">
|
||||||
|
<file>getenv.c</file>
|
||||||
|
<file>ferror.c</file>
|
||||||
|
<file>fflush.c</file>
|
||||||
|
<file>fgetchar.c</file>
|
||||||
|
<file>fgets.c</file>
|
||||||
|
<file>filbuf.c</file>
|
||||||
|
<file>fileno.c</file>
|
||||||
|
<file>fopen.c</file>
|
||||||
|
<file>fputchar.c</file>
|
||||||
|
<file>fputs.c</file>
|
||||||
|
<file>fread.c</file>
|
||||||
|
<file>freopen.c</file>
|
||||||
|
<file>fscanf.c</file>
|
||||||
|
<file>frlist.c</file>
|
||||||
|
<file>fsopen.c</file>
|
||||||
|
<file>ftell.c</file>
|
||||||
|
<file>fwrite.c</file>
|
||||||
|
<file>getc.c</file>
|
||||||
|
<file>getchar.c</file>
|
||||||
|
<file>gets.c</file>
|
||||||
|
<file>getw.c</file>
|
||||||
|
<file>popen.c</file>
|
||||||
|
<file>printf.c</file>
|
||||||
|
<file>putc.c</file>
|
||||||
|
<file>putchar.c</file>
|
||||||
|
<file>puts.c</file>
|
||||||
|
<file>remove.c</file>
|
||||||
|
<file>setbuffe.c</file>
|
||||||
|
<file>setlineb.c</file>
|
||||||
|
<file>stdiohk.c</file>
|
||||||
|
</directory>
|
||||||
|
<directory name="stdlib">
|
||||||
|
<file>errno.c</file>
|
||||||
|
<file>fullpath.c</file>
|
||||||
|
<file>itow.c</file>
|
||||||
|
<file>malloc.c</file>
|
||||||
|
<file>mbstowcs.c</file>
|
||||||
|
<file>putenv.c</file>
|
||||||
|
<file>rand.c</file>
|
||||||
|
<file>wcstomb.c</file>
|
||||||
|
</directory>
|
||||||
|
<directory name="string">
|
||||||
|
<file>lasttok.c</file>
|
||||||
|
<file>strerror.c</file>
|
||||||
|
</directory>
|
||||||
|
<directory name="sys_stat">
|
||||||
|
<file>fstat.c</file>
|
||||||
|
<file>ftime.c</file>
|
||||||
|
<file>systime.c</file>
|
||||||
|
<file>stat.c</file>
|
||||||
|
</directory>
|
||||||
|
<directory name="tchar">
|
||||||
|
<file>strdec.c</file>
|
||||||
|
<file>strinc.c</file>
|
||||||
|
<file>strninc.c</file>
|
||||||
|
<file>strncnt.c</file>
|
||||||
|
<file>strnextc.c</file>
|
||||||
|
<file>strspnp.c</file>
|
||||||
|
</directory>
|
||||||
|
<directory name="time">
|
||||||
|
<file>tz_vars.c</file>
|
||||||
|
</directory>
|
||||||
|
<directory name="wchar">
|
||||||
|
<file>wlasttok.c</file>
|
||||||
|
<file>wcscoll.c</file>
|
||||||
|
</directory>
|
||||||
|
<file>crtdll.rc</file>
|
||||||
|
</module>
|
|
@ -1,66 +0,0 @@
|
||||||
/*-
|
|
||||||
* Copyright (c) 1992, 1993
|
|
||||||
* The Regents of the University of California. All rights reserved.
|
|
||||||
*
|
|
||||||
* This software was developed by the Computer Systems Engineering group
|
|
||||||
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
|
|
||||||
* contributed to Berkeley.
|
|
||||||
*
|
|
||||||
* 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 acknowledgement:
|
|
||||||
* This product includes software developed by the University of
|
|
||||||
* California, Berkeley and its contributors.
|
|
||||||
* 4. Neither the name of the University nor the names of its contributors
|
|
||||||
* may be used to endorse or promote products derived from this software
|
|
||||||
* without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
|
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <msvcrt/internal/quad.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Divide two signed quads.
|
|
||||||
* ??? if -1/2 should produce -1 on this machine, this code is wrong
|
|
||||||
*/
|
|
||||||
quad_t
|
|
||||||
__divdi3(a, b)
|
|
||||||
quad_t a, b;
|
|
||||||
{
|
|
||||||
u_quad_t ua, ub, uq;
|
|
||||||
int neg;
|
|
||||||
|
|
||||||
if (a < 0)
|
|
||||||
ua = -(u_quad_t)a, neg = 1;
|
|
||||||
else
|
|
||||||
ua = a, neg = 0;
|
|
||||||
if (b < 0)
|
|
||||||
ub = -(u_quad_t)b, neg ^= 1;
|
|
||||||
else
|
|
||||||
ub = b;
|
|
||||||
uq = __qdivrem(ua, ub, (u_quad_t *)0);
|
|
||||||
return (neg ? -uq : uq);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,65 +0,0 @@
|
||||||
/*-
|
|
||||||
* Copyright (c) 1992, 1993
|
|
||||||
* The Regents of the University of California. All rights reserved.
|
|
||||||
*
|
|
||||||
* This software was developed by the Computer Systems Engineering group
|
|
||||||
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
|
|
||||||
* contributed to Berkeley.
|
|
||||||
*
|
|
||||||
* 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 acknowledgement:
|
|
||||||
* This product includes software developed by the University of
|
|
||||||
* California, Berkeley and its contributors.
|
|
||||||
* 4. Neither the name of the University nor the names of its contributors
|
|
||||||
* may be used to endorse or promote products derived from this software
|
|
||||||
* without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
|
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <msvcrt/internal/quad.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Return remainder after dividing two signed quads.
|
|
||||||
*
|
|
||||||
* XXX
|
|
||||||
* If -1/2 should produce -1 on this machine, this code is wrong.
|
|
||||||
*/
|
|
||||||
quad_t
|
|
||||||
__moddi3(a, b)
|
|
||||||
quad_t a, b;
|
|
||||||
{
|
|
||||||
u_quad_t ua, ub, ur;
|
|
||||||
int neg;
|
|
||||||
|
|
||||||
if (a < 0)
|
|
||||||
ua = -(u_quad_t)a, neg = 1;
|
|
||||||
else
|
|
||||||
ua = a, neg = 0;
|
|
||||||
if (b < 0)
|
|
||||||
ub = -(u_quad_t)b, neg ^= 1;
|
|
||||||
else
|
|
||||||
ub = b;
|
|
||||||
(void)__qdivrem(ua, ub, &ur);
|
|
||||||
return (neg ? -ur : ur);
|
|
||||||
}
|
|
|
@ -1,281 +0,0 @@
|
||||||
/*-
|
|
||||||
* Copyright (c) 1992, 1993
|
|
||||||
* The Regents of the University of California. All rights reserved.
|
|
||||||
*
|
|
||||||
* This software was developed by the Computer Systems Engineering group
|
|
||||||
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
|
|
||||||
* contributed to Berkeley.
|
|
||||||
*
|
|
||||||
* 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 acknowledgement:
|
|
||||||
* This product includes software developed by the University of
|
|
||||||
* California, Berkeley and its contributors.
|
|
||||||
* 4. Neither the name of the University nor the names of its contributors
|
|
||||||
* may be used to endorse or promote products derived from this software
|
|
||||||
* without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
|
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Multiprecision divide. This algorithm is from Knuth vol. 2 (2nd ed),
|
|
||||||
* section 4.3.1, pp. 257--259.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <msvcrt/internal/quad.h>
|
|
||||||
|
|
||||||
#define B (1 << HALF_BITS) /* digit base */
|
|
||||||
|
|
||||||
/* Combine two `digits' to make a single two-digit number. */
|
|
||||||
#define COMBINE(a, b) (((u_long)(a) << HALF_BITS) | (b))
|
|
||||||
|
|
||||||
/* select a type for digits in base B: use unsigned short if they fit */
|
|
||||||
//#if (ULONG_MAX == 0xffffffff && USHRT_MAX >= 0xffff)
|
|
||||||
//typedef unsigned short digit;
|
|
||||||
//#else
|
|
||||||
typedef u_long digit;
|
|
||||||
//#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Shift p[0]..p[len] left `sh' bits, ignoring any bits that
|
|
||||||
* `fall out' the left (there never will be any such anyway).
|
|
||||||
* We may assume len >= 0. NOTE THAT THIS WRITES len+1 DIGITS.
|
|
||||||
*/
|
|
||||||
static void
|
|
||||||
shl(register digit *p, register int len, register int sh)
|
|
||||||
{
|
|
||||||
register int i;
|
|
||||||
|
|
||||||
for (i = 0; i < len; i++)
|
|
||||||
p[i] = LHALF(p[i] << sh) | (p[i + 1] >> (HALF_BITS - sh));
|
|
||||||
p[i] = LHALF(p[i] << sh);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* __qdivrem(u, v, rem) returns u/v and, optionally, sets *rem to u%v.
|
|
||||||
*
|
|
||||||
* We do this in base 2-sup-HALF_BITS, so that all intermediate products
|
|
||||||
* fit within u_long. As a consequence, the maximum length dividend and
|
|
||||||
* divisor are 4 `digits' in this base (they are shorter if they have
|
|
||||||
* leading zeros).
|
|
||||||
*/
|
|
||||||
u_quad_t
|
|
||||||
__qdivrem(uq, vq, arq)
|
|
||||||
u_quad_t uq, vq, *arq;
|
|
||||||
{
|
|
||||||
union uu tmp;
|
|
||||||
digit *u, *v, *q;
|
|
||||||
register digit v1, v2;
|
|
||||||
u_long qhat, rhat, t;
|
|
||||||
int m, n, d, j, i;
|
|
||||||
digit uspace[5], vspace[5], qspace[5];
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Take care of special cases: divide by zero, and u < v.
|
|
||||||
*/
|
|
||||||
if (vq == 0) {
|
|
||||||
/* divide by zero. */
|
|
||||||
static volatile const unsigned int zero = 0;
|
|
||||||
|
|
||||||
tmp.ul[H] = tmp.ul[L] = 1 / zero;
|
|
||||||
if (arq)
|
|
||||||
*arq = uq;
|
|
||||||
return (tmp.q);
|
|
||||||
}
|
|
||||||
if (uq < vq) {
|
|
||||||
if (arq)
|
|
||||||
*arq = uq;
|
|
||||||
return (0);
|
|
||||||
}
|
|
||||||
u = &uspace[0];
|
|
||||||
v = &vspace[0];
|
|
||||||
q = &qspace[0];
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Break dividend and divisor into digits in base B, then
|
|
||||||
* count leading zeros to determine m and n. When done, we
|
|
||||||
* will have:
|
|
||||||
* u = (u[1]u[2]...u[m+n]) sub B
|
|
||||||
* v = (v[1]v[2]...v[n]) sub B
|
|
||||||
* v[1] != 0
|
|
||||||
* 1 < n <= 4 (if n = 1, we use a different division algorithm)
|
|
||||||
* m >= 0 (otherwise u < v, which we already checked)
|
|
||||||
* m + n = 4
|
|
||||||
* and thus
|
|
||||||
* m = 4 - n <= 2
|
|
||||||
*/
|
|
||||||
tmp.uq = uq;
|
|
||||||
u[0] = 0;
|
|
||||||
u[1] = HHALF(tmp.ul[H]);
|
|
||||||
u[2] = LHALF(tmp.ul[H]);
|
|
||||||
u[3] = HHALF(tmp.ul[L]);
|
|
||||||
u[4] = LHALF(tmp.ul[L]);
|
|
||||||
tmp.uq = vq;
|
|
||||||
v[1] = HHALF(tmp.ul[H]);
|
|
||||||
v[2] = LHALF(tmp.ul[H]);
|
|
||||||
v[3] = HHALF(tmp.ul[L]);
|
|
||||||
v[4] = LHALF(tmp.ul[L]);
|
|
||||||
for (n = 4; v[1] == 0; v++) {
|
|
||||||
if (--n == 1) {
|
|
||||||
u_long rbj; /* r*B+u[j] (not root boy jim) */
|
|
||||||
digit q1, q2, q3, q4;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Change of plan, per exercise 16.
|
|
||||||
* r = 0;
|
|
||||||
* for j = 1..4:
|
|
||||||
* q[j] = floor((r*B + u[j]) / v),
|
|
||||||
* r = (r*B + u[j]) % v;
|
|
||||||
* We unroll this completely here.
|
|
||||||
*/
|
|
||||||
t = v[2]; /* nonzero, by definition */
|
|
||||||
q1 = u[1] / t;
|
|
||||||
rbj = COMBINE(u[1] % t, u[2]);
|
|
||||||
q2 = rbj / t;
|
|
||||||
rbj = COMBINE(rbj % t, u[3]);
|
|
||||||
q3 = rbj / t;
|
|
||||||
rbj = COMBINE(rbj % t, u[4]);
|
|
||||||
q4 = rbj / t;
|
|
||||||
if (arq)
|
|
||||||
*arq = rbj % t;
|
|
||||||
tmp.ul[H] = COMBINE(q1, q2);
|
|
||||||
tmp.ul[L] = COMBINE(q3, q4);
|
|
||||||
return (tmp.q);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* By adjusting q once we determine m, we can guarantee that
|
|
||||||
* there is a complete four-digit quotient at &qspace[1] when
|
|
||||||
* we finally stop.
|
|
||||||
*/
|
|
||||||
for (m = 4 - n; u[1] == 0; u++)
|
|
||||||
m--;
|
|
||||||
for (i = 4 - m; --i >= 0;)
|
|
||||||
q[i] = 0;
|
|
||||||
q += 4 - m;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Here we run Program D, translated from MIX to C and acquiring
|
|
||||||
* a few minor changes.
|
|
||||||
*
|
|
||||||
* D1: choose multiplier 1 << d to ensure v[1] >= B/2.
|
|
||||||
*/
|
|
||||||
d = 0;
|
|
||||||
for (t = v[1]; t < B / 2; t <<= 1)
|
|
||||||
d++;
|
|
||||||
if (d > 0) {
|
|
||||||
shl(&u[0], m + n, d); /* u <<= d */
|
|
||||||
shl(&v[1], n - 1, d); /* v <<= d */
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
* D2: j = 0.
|
|
||||||
*/
|
|
||||||
j = 0;
|
|
||||||
v1 = v[1]; /* for D3 -- note that v[1..n] are constant */
|
|
||||||
v2 = v[2]; /* for D3 */
|
|
||||||
do {
|
|
||||||
register digit uj0, uj1, uj2;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* D3: Calculate qhat (\^q, in TeX notation).
|
|
||||||
* Let qhat = min((u[j]*B + u[j+1])/v[1], B-1), and
|
|
||||||
* let rhat = (u[j]*B + u[j+1]) mod v[1].
|
|
||||||
* While rhat < B and v[2]*qhat > rhat*B+u[j+2],
|
|
||||||
* decrement qhat and increase rhat correspondingly.
|
|
||||||
* Note that if rhat >= B, v[2]*qhat < rhat*B.
|
|
||||||
*/
|
|
||||||
uj0 = u[j + 0]; /* for D3 only -- note that u[j+...] change */
|
|
||||||
uj1 = u[j + 1]; /* for D3 only */
|
|
||||||
uj2 = u[j + 2]; /* for D3 only */
|
|
||||||
if (uj0 == v1) {
|
|
||||||
qhat = B;
|
|
||||||
rhat = uj1;
|
|
||||||
goto qhat_too_big;
|
|
||||||
} else {
|
|
||||||
u_long n = COMBINE(uj0, uj1);
|
|
||||||
qhat = n / v1;
|
|
||||||
rhat = n % v1;
|
|
||||||
}
|
|
||||||
while (v2 * qhat > COMBINE(rhat, uj2)) {
|
|
||||||
qhat_too_big:
|
|
||||||
qhat--;
|
|
||||||
if ((rhat += v1) >= B)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
* D4: Multiply and subtract.
|
|
||||||
* The variable `t' holds any borrows across the loop.
|
|
||||||
* We split this up so that we do not require v[0] = 0,
|
|
||||||
* and to eliminate a final special case.
|
|
||||||
*/
|
|
||||||
for (t = 0, i = n; i > 0; i--) {
|
|
||||||
t = u[i + j] - v[i] * qhat - t;
|
|
||||||
u[i + j] = LHALF(t);
|
|
||||||
t = (B - HHALF(t)) & (B - 1);
|
|
||||||
}
|
|
||||||
t = u[j] - t;
|
|
||||||
u[j] = LHALF(t);
|
|
||||||
/*
|
|
||||||
* D5: test remainder.
|
|
||||||
* There is a borrow if and only if HHALF(t) is nonzero;
|
|
||||||
* in that (rare) case, qhat was too large (by exactly 1).
|
|
||||||
* Fix it by adding v[1..n] to u[j..j+n].
|
|
||||||
*/
|
|
||||||
if (HHALF(t)) {
|
|
||||||
qhat--;
|
|
||||||
for (t = 0, i = n; i > 0; i--) { /* D6: add back. */
|
|
||||||
t += u[i + j] + v[i];
|
|
||||||
u[i + j] = LHALF(t);
|
|
||||||
t = HHALF(t);
|
|
||||||
}
|
|
||||||
u[j] = LHALF(u[j] + t);
|
|
||||||
}
|
|
||||||
q[j] = qhat;
|
|
||||||
} while (++j <= m); /* D7: loop on j. */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* If caller wants the remainder, we have to calculate it as
|
|
||||||
* u[m..m+n] >> d (this is at most n digits and thus fits in
|
|
||||||
* u[m+1..m+n], but we may need more source digits).
|
|
||||||
*/
|
|
||||||
if (arq) {
|
|
||||||
if (d) {
|
|
||||||
for (i = m + n; i > m; --i)
|
|
||||||
u[i] = (u[i] >> d) |
|
|
||||||
LHALF(u[i - 1] << (HALF_BITS - d));
|
|
||||||
u[i] = 0;
|
|
||||||
}
|
|
||||||
tmp.ul[H] = COMBINE(uspace[1], uspace[2]);
|
|
||||||
tmp.ul[L] = COMBINE(uspace[3], uspace[4]);
|
|
||||||
*arq = tmp.q;
|
|
||||||
}
|
|
||||||
|
|
||||||
tmp.ul[H] = COMBINE(qspace[1], qspace[2]);
|
|
||||||
tmp.ul[L] = COMBINE(qspace[3], qspace[4]);
|
|
||||||
return (tmp.q);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,52 +0,0 @@
|
||||||
|
|
||||||
/*-
|
|
||||||
* Copyright (c) 1992, 1993
|
|
||||||
* The Regents of the University of California. All rights reserved.
|
|
||||||
*
|
|
||||||
* This software was developed by the Computer Systems Engineering group
|
|
||||||
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
|
|
||||||
* contributed to Berkeley.
|
|
||||||
*
|
|
||||||
* 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 acknowledgement:
|
|
||||||
* This product includes software developed by the University of
|
|
||||||
* California, Berkeley and its contributors.
|
|
||||||
* 4. Neither the name of the University nor the names of its contributors
|
|
||||||
* may be used to endorse or promote products derived from this software
|
|
||||||
* without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
|
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <msvcrt/internal/quad.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Divide two unsigned quads.
|
|
||||||
*/
|
|
||||||
u_quad_t
|
|
||||||
__udivdi3(a, b)
|
|
||||||
u_quad_t a, b;
|
|
||||||
{
|
|
||||||
|
|
||||||
return (__qdivrem(a, b, (u_quad_t *)0));
|
|
||||||
}
|
|
|
@ -1,54 +0,0 @@
|
||||||
/*-
|
|
||||||
* Copyright (c) 1992, 1993
|
|
||||||
* The Regents of the University of California. All rights reserved.
|
|
||||||
*
|
|
||||||
* This software was developed by the Computer Systems Engineering group
|
|
||||||
* at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
|
|
||||||
* contributed to Berkeley.
|
|
||||||
*
|
|
||||||
* 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 acknowledgement:
|
|
||||||
* This product includes software developed by the University of
|
|
||||||
* California, Berkeley and its contributors.
|
|
||||||
* 4. Neither the name of the University nor the names of its contributors
|
|
||||||
* may be used to endorse or promote products derived from this software
|
|
||||||
* without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
|
|
||||||
*
|
|
||||||
* $Id$
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <msvcrt/internal/quad.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Return remainder after dividing two unsigned quads.
|
|
||||||
*/
|
|
||||||
u_quad_t
|
|
||||||
__umoddi3(a, b)
|
|
||||||
u_quad_t a, b;
|
|
||||||
{
|
|
||||||
u_quad_t r;
|
|
||||||
|
|
||||||
(void)__qdivrem(a, b, &r);
|
|
||||||
return (r);
|
|
||||||
}
|
|
||||||
|
|
|
@ -28,6 +28,9 @@
|
||||||
<directory name="cpl">
|
<directory name="cpl">
|
||||||
<xi:include href="cpl/directory.xml" />
|
<xi:include href="cpl/directory.xml" />
|
||||||
</directory>
|
</directory>
|
||||||
|
<directory name="crtdll">
|
||||||
|
<xi:include href="crtdll/crtdll.xml" />
|
||||||
|
</directory>
|
||||||
<directory name="dnsapi">
|
<directory name="dnsapi">
|
||||||
<xi:include href="dnsapi/dnsapi.xml" />
|
<xi:include href="dnsapi/dnsapi.xml" />
|
||||||
</directory>
|
</directory>
|
||||||
|
@ -50,6 +53,7 @@
|
||||||
<xi:include href="libwine/libwine.xml" />
|
<xi:include href="libwine/libwine.xml" />
|
||||||
</directory>
|
</directory>
|
||||||
<directory name="msvcrt">
|
<directory name="msvcrt">
|
||||||
|
<xi:include href="msvcrt/crt.xml" />
|
||||||
<xi:include href="msvcrt/msvcrt.xml" />
|
<xi:include href="msvcrt/msvcrt.xml" />
|
||||||
</directory>
|
</directory>
|
||||||
<directory name="ntdll">
|
<directory name="ntdll">
|
||||||
|
|
268
reactos/lib/msvcrt/crt.xml
Normal file
268
reactos/lib/msvcrt/crt.xml
Normal file
|
@ -0,0 +1,268 @@
|
||||||
|
<module name="crt" type="staticlibrary">
|
||||||
|
<include base="crt">.</include>
|
||||||
|
<define name="_DISABLE_TIDENTS" />
|
||||||
|
<define name="__USE_W32API" />
|
||||||
|
<define name="_WIN32_IE">0x600</define>
|
||||||
|
<define name="_WIN32_WINNT">0x501</define>
|
||||||
|
<define name="__REACTOS__" />
|
||||||
|
<define name="USE_MSVCRT_PREFIX" />
|
||||||
|
<define name="_MSVCRT_LIB_" />
|
||||||
|
<define name="_MT" />
|
||||||
|
<directory name="ctype">
|
||||||
|
<file>ctype.c</file>
|
||||||
|
<file>isalnum.c</file>
|
||||||
|
<file>isascii.c</file>
|
||||||
|
<file>iscntrl.c</file>
|
||||||
|
<file>isgraph.c</file>
|
||||||
|
<file>isprint.c</file>
|
||||||
|
<file>ispunct.c</file>
|
||||||
|
<file>isupper.c</file>
|
||||||
|
</directory>
|
||||||
|
<directory name="direct">
|
||||||
|
<file>chdir.c</file>
|
||||||
|
<file>chdrive.c</file>
|
||||||
|
<file>getcwd.c</file>
|
||||||
|
<file>getdcwd.c</file>
|
||||||
|
<file>getdfree.c</file>
|
||||||
|
<file>getdrive.c</file>
|
||||||
|
<file>mkdir.c</file>
|
||||||
|
<file>rmdir.c</file>
|
||||||
|
</directory>
|
||||||
|
<directory name="float">
|
||||||
|
<file>chgsign.c</file>
|
||||||
|
<file>clearfp.c</file>
|
||||||
|
<file>cntrlfp.c</file>
|
||||||
|
<file>copysign.c</file>
|
||||||
|
<file>fpclass.c</file>
|
||||||
|
<file>fpecode.c</file>
|
||||||
|
<file>fpreset.c</file>
|
||||||
|
<file>isnan.c</file>
|
||||||
|
<file>logb.c</file>
|
||||||
|
<file>nafter.c</file>
|
||||||
|
<file>scalb.c</file>
|
||||||
|
<file>statfp.c</file>
|
||||||
|
</directory>
|
||||||
|
<directory name="io">
|
||||||
|
<file>access.c</file>
|
||||||
|
<file>chmod.c</file>
|
||||||
|
<file>chsize.c</file>
|
||||||
|
<file>close.c</file>
|
||||||
|
<file>commit.c</file>
|
||||||
|
<file>dup2.c</file>
|
||||||
|
<file>filelen.c</file>
|
||||||
|
<file>isatty.c</file>
|
||||||
|
<file>locking.c</file>
|
||||||
|
<file>mktemp.c</file>
|
||||||
|
<file>setmode.c</file>
|
||||||
|
<file>sopen.c</file>
|
||||||
|
<file>tell.c</file>
|
||||||
|
<file>umask.c</file>
|
||||||
|
<file>utime.c</file>
|
||||||
|
<file>write.c</file>
|
||||||
|
</directory>
|
||||||
|
<directory name="locale">
|
||||||
|
<file>locale.c</file>
|
||||||
|
</directory>
|
||||||
|
<directory name="math">
|
||||||
|
<file>acos.c</file>
|
||||||
|
<file>asin.c</file>
|
||||||
|
<file>atan2.c</file>
|
||||||
|
<file>atan.c</file>
|
||||||
|
<file>cabs.c</file>
|
||||||
|
<file>cos.c</file>
|
||||||
|
<file>cosh.c</file>
|
||||||
|
<file>exp.c</file>
|
||||||
|
<file>fabs.c</file>
|
||||||
|
<file>fmod.c</file>
|
||||||
|
<file>frexp.c</file>
|
||||||
|
<file>hypot.c</file>
|
||||||
|
<file>j0_y0.c</file>
|
||||||
|
<file>j1_y1.c</file>
|
||||||
|
<file>jn_yn.c</file>
|
||||||
|
<file>ldexp.c</file>
|
||||||
|
<file>log10.c</file>
|
||||||
|
<file>log.c</file>
|
||||||
|
<file>modf.c</file>
|
||||||
|
<file>pow.c</file>
|
||||||
|
<file>sin.c</file>
|
||||||
|
<file>sinh.c</file>
|
||||||
|
<file>sqrt.c</file>
|
||||||
|
<file>stubs.c</file>
|
||||||
|
<file>tan.c</file>
|
||||||
|
<file>tanh.c</file>
|
||||||
|
</directory>
|
||||||
|
<directory name="mbstring">
|
||||||
|
<file>hanzen.c</file>
|
||||||
|
<file>ischira.c</file>
|
||||||
|
<file>iskana.c</file>
|
||||||
|
<file>iskmoji.c</file>
|
||||||
|
<file>iskpun.c</file>
|
||||||
|
<file>islead.c</file>
|
||||||
|
<file>islwr.c</file>
|
||||||
|
<file>ismbal.c</file>
|
||||||
|
<file>ismbaln.c</file>
|
||||||
|
<file>ismbc.c</file>
|
||||||
|
<file>ismbgra.c</file>
|
||||||
|
<file>ismbkaln.c</file>
|
||||||
|
<file>ismblead.c</file>
|
||||||
|
<file>ismbpri.c</file>
|
||||||
|
<file>ismbpun.c</file>
|
||||||
|
<file>ismbtrl.c</file>
|
||||||
|
<file>isuppr.c</file>
|
||||||
|
<file>jistojms.c</file>
|
||||||
|
<file>jmstojis.c</file>
|
||||||
|
<file>mbbtype.c</file>
|
||||||
|
<file>mbccpy.c</file>
|
||||||
|
<file>mbclen.c</file>
|
||||||
|
<file>mbscat.c</file>
|
||||||
|
<file>mbschr.c</file>
|
||||||
|
<file>mbscmp.c</file>
|
||||||
|
<file>mbscoll.c</file>
|
||||||
|
<file>mbscpy.c</file>
|
||||||
|
<file>mbscspn.c</file>
|
||||||
|
<file>mbsdec.c</file>
|
||||||
|
<file>mbsdup.c</file>
|
||||||
|
<file>mbsicmp.c</file>
|
||||||
|
<file>mbsicoll.c</file>
|
||||||
|
<file>mbsinc.c</file>
|
||||||
|
<file>mbslen.c</file>
|
||||||
|
<file>mbslwr.c</file>
|
||||||
|
<file>mbsncat.c</file>
|
||||||
|
<file>mbsnccnt.c</file>
|
||||||
|
<file>mbsncmp.c</file>
|
||||||
|
<file>mbsncoll.c</file>
|
||||||
|
<file>mbsncpy.c</file>
|
||||||
|
<file>mbsnextc.c</file>
|
||||||
|
<file>mbsnicmp.c</file>
|
||||||
|
<file>mbsnicoll.c</file>
|
||||||
|
<file>mbsninc.c</file>
|
||||||
|
<file>mbsnset.c</file>
|
||||||
|
<file>mbspbrk.c</file>
|
||||||
|
<file>mbsrchr.c</file>
|
||||||
|
<file>mbsrev.c</file>
|
||||||
|
<file>mbsset.c</file>
|
||||||
|
<file>mbsspn.c</file>
|
||||||
|
<file>mbsspnp.c</file>
|
||||||
|
<file>mbsstr.c</file>
|
||||||
|
<file>mbstok.c</file>
|
||||||
|
<file>mbstrlen.c</file>
|
||||||
|
<file>mbsupr.c</file>
|
||||||
|
</directory>
|
||||||
|
<directory name="misc">
|
||||||
|
<file>amsg.c</file>
|
||||||
|
<file>assert.c</file>
|
||||||
|
<file>environ.c</file>
|
||||||
|
<file>initterm.c</file>
|
||||||
|
</directory>
|
||||||
|
<directory name="process">
|
||||||
|
<file>dll.c</file>
|
||||||
|
<file>procid.c</file>
|
||||||
|
<file>threadid.c</file>
|
||||||
|
</directory>
|
||||||
|
<directory name="search">
|
||||||
|
<file>lfind.c</file>
|
||||||
|
<file>lsearch.c</file>
|
||||||
|
</directory>
|
||||||
|
<directory name="setjmp">
|
||||||
|
<directory name="i386">
|
||||||
|
<file>setjmp.s</file>
|
||||||
|
</directory>
|
||||||
|
</directory>
|
||||||
|
<directory name="signal">
|
||||||
|
<file>signal.c</file>
|
||||||
|
</directory>
|
||||||
|
<directory name="stdio">
|
||||||
|
<file>allocfil.c</file>
|
||||||
|
<file>clearerr.c</file>
|
||||||
|
<file>fclose.c</file>
|
||||||
|
<file>fdopen.c</file>
|
||||||
|
<file>feof.c</file>
|
||||||
|
<file>fgetc.c</file>
|
||||||
|
<file>fgetpos.c</file>
|
||||||
|
<file>flsbuf.c</file>
|
||||||
|
<file>fprintf.c</file>
|
||||||
|
<file>fputc.c</file>
|
||||||
|
<file>fseek.c</file>
|
||||||
|
<file>fsetpos.c</file>
|
||||||
|
<file>fwalk.c</file>
|
||||||
|
<file>getw.c</file>
|
||||||
|
<file>putw.c</file>
|
||||||
|
<file>rename.c</file>
|
||||||
|
<file>rewind.c</file>
|
||||||
|
<file>rmtmp.c</file>
|
||||||
|
<file>scanf.c</file>
|
||||||
|
<file>setbuf.c</file>
|
||||||
|
<file>setvbuf.c</file>
|
||||||
|
<file>sprintf.c</file>
|
||||||
|
<file>sscanf.c</file>
|
||||||
|
<file>stdhnd.c</file>
|
||||||
|
<file>tempnam.c</file>
|
||||||
|
<file>tmpfile.c</file>
|
||||||
|
<file>tmpnam.c</file>
|
||||||
|
<file>ungetc.c</file>
|
||||||
|
<file>vfprintf.c</file>
|
||||||
|
<file>vfscanf.c</file>
|
||||||
|
<file>vfwprint.c</file>
|
||||||
|
<file>vprintf.c</file>
|
||||||
|
<file>vscanf.c</file>
|
||||||
|
<file>vsprintf.c</file>
|
||||||
|
<file>vsscanf.c</file>
|
||||||
|
</directory>
|
||||||
|
<directory name="stdlib">
|
||||||
|
<file>_exit.c</file>
|
||||||
|
<file>abort.c</file>
|
||||||
|
<file>abs.c</file>
|
||||||
|
<file>atexit.c</file>
|
||||||
|
<file>atof.c</file>
|
||||||
|
<file>atoi.c</file>
|
||||||
|
<file>atol.c</file>
|
||||||
|
<file>bsearch.c</file>
|
||||||
|
<file>div.c</file>
|
||||||
|
<file>ecvt.c</file>
|
||||||
|
<file>ecvtbuf.c</file>
|
||||||
|
<file>fcvt.c</file>
|
||||||
|
<file>fcvtbuf.c</file>
|
||||||
|
<file>gcvt.c</file>
|
||||||
|
<file>itoa.c</file>
|
||||||
|
<file>labs.c</file>
|
||||||
|
<file>ldiv.c</file>
|
||||||
|
<file>makepath.c</file>
|
||||||
|
<file>obsol.c</file>
|
||||||
|
<file>rot.c</file>
|
||||||
|
<file>senv.c</file>
|
||||||
|
<file>splitp.c</file>
|
||||||
|
<file>strtod.c</file>
|
||||||
|
<file>strtol.c</file>
|
||||||
|
<file>strtoul.c</file>
|
||||||
|
<file>swab.c</file>
|
||||||
|
<file>wcstod.c</file>
|
||||||
|
</directory>
|
||||||
|
<directory name="string">
|
||||||
|
<file>lasttok.c</file>
|
||||||
|
<file>strcoll.c</file>
|
||||||
|
<file>strdup.c</file>
|
||||||
|
<file>strrev.c</file>
|
||||||
|
<file>strset.c</file>
|
||||||
|
<file>strtok.c</file>
|
||||||
|
<file>strxfrm.c</file>
|
||||||
|
</directory>
|
||||||
|
<directory name="sys_stat">
|
||||||
|
<file>futime.c</file>
|
||||||
|
</directory>
|
||||||
|
<directory name="time">
|
||||||
|
<file>clock.c</file>
|
||||||
|
<file>ctime.c</file>
|
||||||
|
<file>difftime.c</file>
|
||||||
|
<file>strdate.c</file>
|
||||||
|
<file>strftime.c</file>
|
||||||
|
<file>strtime.c</file>
|
||||||
|
<file>time.c</file>
|
||||||
|
</directory>
|
||||||
|
<directory name="wstring">
|
||||||
|
<file>wcsdup.c</file>
|
||||||
|
<file>wcsrev.c</file>
|
||||||
|
<file>wcsset.c</file>
|
||||||
|
<file>wcstok.c</file>
|
||||||
|
<file>wcsxfrm.c</file>
|
||||||
|
</directory>
|
||||||
|
</module>
|
|
@ -9,16 +9,6 @@
|
||||||
*/
|
*/
|
||||||
#include <msvcrt/ctype.h>
|
#include <msvcrt/ctype.h>
|
||||||
|
|
||||||
|
|
||||||
#undef isalnum
|
|
||||||
/*
|
|
||||||
* @implemented
|
|
||||||
*/
|
|
||||||
int isalnum(int c)
|
|
||||||
{
|
|
||||||
return _isctype(c, _ALPHA | _DIGIT);
|
|
||||||
}
|
|
||||||
|
|
||||||
#undef iswalnum
|
#undef iswalnum
|
||||||
/*
|
/*
|
||||||
* @implemented
|
* @implemented
|
||||||
|
|
|
@ -10,14 +10,6 @@
|
||||||
|
|
||||||
#include <msvcrt/ctype.h>
|
#include <msvcrt/ctype.h>
|
||||||
|
|
||||||
/*
|
|
||||||
* @implemented
|
|
||||||
*/
|
|
||||||
int __isascii(int c)
|
|
||||||
{
|
|
||||||
return (!((c)&(~0x7f)));
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @implemented
|
* @implemented
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1,16 +1,6 @@
|
||||||
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
|
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
|
||||||
#include <msvcrt/ctype.h>
|
#include <msvcrt/ctype.h>
|
||||||
|
|
||||||
|
|
||||||
#undef iscntrl
|
|
||||||
/*
|
|
||||||
* @implemented
|
|
||||||
*/
|
|
||||||
int iscntrl(int c)
|
|
||||||
{
|
|
||||||
return _isctype(c, _CONTROL);
|
|
||||||
}
|
|
||||||
|
|
||||||
#undef iswcntrl
|
#undef iswcntrl
|
||||||
/*
|
/*
|
||||||
* @implemented
|
* @implemented
|
||||||
|
|
|
@ -1,15 +1,6 @@
|
||||||
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
|
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
|
||||||
#include <msvcrt/ctype.h>
|
#include <msvcrt/ctype.h>
|
||||||
|
|
||||||
#undef isgraph
|
|
||||||
/*
|
|
||||||
* @implemented
|
|
||||||
*/
|
|
||||||
int isgraph(int c)
|
|
||||||
{
|
|
||||||
return _isctype(c,_PUNCT | _ALPHA | _DIGIT);
|
|
||||||
}
|
|
||||||
|
|
||||||
#undef iswgraph
|
#undef iswgraph
|
||||||
/*
|
/*
|
||||||
* @implemented
|
* @implemented
|
||||||
|
|
|
@ -1,15 +1,6 @@
|
||||||
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
|
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
|
||||||
#include <msvcrt/ctype.h>
|
#include <msvcrt/ctype.h>
|
||||||
|
|
||||||
#undef isprint
|
|
||||||
/*
|
|
||||||
* @implemented
|
|
||||||
*/
|
|
||||||
int isprint(int c)
|
|
||||||
{
|
|
||||||
return _isctype(c,_BLANK | _PUNCT | _ALPHA | _DIGIT);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @implemented
|
* @implemented
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1,16 +1,6 @@
|
||||||
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
|
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
|
||||||
#include <msvcrt/ctype.h>
|
#include <msvcrt/ctype.h>
|
||||||
|
|
||||||
|
|
||||||
#undef ispunct
|
|
||||||
/*
|
|
||||||
* @implemented
|
|
||||||
*/
|
|
||||||
int ispunct(int c)
|
|
||||||
{
|
|
||||||
return _isctype(c, _PUNCT);
|
|
||||||
}
|
|
||||||
|
|
||||||
#undef iswpunct
|
#undef iswpunct
|
||||||
/*
|
/*
|
||||||
* @implemented
|
* @implemented
|
||||||
|
|
|
@ -3,13 +3,6 @@
|
||||||
|
|
||||||
|
|
||||||
#undef isupper
|
#undef isupper
|
||||||
/*
|
|
||||||
* @implemented
|
|
||||||
*/
|
|
||||||
int isupper(int c)
|
|
||||||
{
|
|
||||||
return _isctype(c, _UPPER);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @implemented
|
* @implemented
|
||||||
|
|
|
@ -20,77 +20,6 @@
|
||||||
|
|
||||||
#include <msvcrt/math.h>
|
#include <msvcrt/math.h>
|
||||||
|
|
||||||
double pow (double __x, double __y);
|
|
||||||
|
|
||||||
double __log2 (double __x);
|
|
||||||
|
|
||||||
double __log2 (double __x)
|
|
||||||
{
|
|
||||||
register double __value;
|
|
||||||
#ifdef __GNUC__
|
|
||||||
__asm __volatile__
|
|
||||||
("fld1\n\t"
|
|
||||||
"fxch\n\t"
|
|
||||||
"fyl2x"
|
|
||||||
: "=t" (__value) : "0" (__x));
|
|
||||||
#else
|
|
||||||
//__value = linkme_log2(__x);
|
|
||||||
__value = 0;
|
|
||||||
#endif /*__GNUC__*/
|
|
||||||
return __value;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @implemented
|
|
||||||
*/
|
|
||||||
double pow (double __x, double __y)
|
|
||||||
{
|
|
||||||
register double __value;
|
|
||||||
#ifdef __GNUC__
|
|
||||||
register double __exponent;
|
|
||||||
long __p = (long) __y;
|
|
||||||
|
|
||||||
if (__x == 0.0 && __y > 0.0)
|
|
||||||
return 0.0;
|
|
||||||
if (__y == (double) __p)
|
|
||||||
{
|
|
||||||
double __r = 1.0;
|
|
||||||
if (__p == 0)
|
|
||||||
return 1.0;
|
|
||||||
if (__p < 0)
|
|
||||||
{
|
|
||||||
__p = -__p;
|
|
||||||
__x = 1.0 / __x;
|
|
||||||
}
|
|
||||||
while (1)
|
|
||||||
{
|
|
||||||
if (__p & 1)
|
|
||||||
__r *= __x;
|
|
||||||
__p >>= 1;
|
|
||||||
if (__p == 0)
|
|
||||||
return __r;
|
|
||||||
__x *= __x;
|
|
||||||
}
|
|
||||||
/* NOTREACHED */
|
|
||||||
}
|
|
||||||
__asm __volatile__
|
|
||||||
("fmul %%st(1) # y * log2(x)\n\t"
|
|
||||||
"fst %%st(1)\n\t"
|
|
||||||
"frndint # int(y * log2(x))\n\t"
|
|
||||||
"fxch\n\t"
|
|
||||||
"fsub %%st(1) # fract(y * log2(x))\n\t"
|
|
||||||
"f2xm1 # 2^(fract(y * log2(x))) - 1\n\t"
|
|
||||||
: "=t" (__value), "=u" (__exponent) : "0" (__log2 (__x)), "1" (__y));
|
|
||||||
__value += 1.0;
|
|
||||||
__asm __volatile__
|
|
||||||
("fscale"
|
|
||||||
: "=t" (__value) : "0" (__value), "u" (__exponent));
|
|
||||||
#else
|
|
||||||
__value = linkme_pow(__x, __y);
|
|
||||||
#endif /*__GNUC__*/
|
|
||||||
return __value;
|
|
||||||
}
|
|
||||||
|
|
||||||
long double powl (long double __x,long double __y)
|
long double powl (long double __x,long double __y)
|
||||||
{
|
{
|
||||||
return pow(__x,__y/2)*pow(__x,__y/2);
|
return pow(__x,__y/2)*pow(__x,__y/2);
|
||||||
|
|
|
@ -116,7 +116,7 @@ __doserrno
|
||||||
__fpecode
|
__fpecode
|
||||||
__getmainargs
|
__getmainargs
|
||||||
__initenv DATA
|
__initenv DATA
|
||||||
__isascii
|
__isascii=NTDLL.__isascii
|
||||||
__iscsym
|
__iscsym
|
||||||
__iscsymf
|
__iscsymf
|
||||||
__lc_codepage
|
__lc_codepage
|
||||||
|
@ -493,10 +493,10 @@ _setmbcp
|
||||||
_setmode
|
_setmode
|
||||||
;_setsystime
|
;_setsystime
|
||||||
_sleep
|
_sleep
|
||||||
_snprintf
|
_snprintf=msvcrt__snprintf
|
||||||
;_snscanf
|
;_snscanf
|
||||||
;_snwscanf
|
;_snwscanf
|
||||||
_snwprintf
|
_snwprintf=msvcrt__snwprintf
|
||||||
_sopen
|
_sopen
|
||||||
_spawnl
|
_spawnl
|
||||||
_spawnle
|
_spawnle
|
||||||
|
@ -554,8 +554,8 @@ _utime
|
||||||
;_utime64
|
;_utime64
|
||||||
;_vscprintf
|
;_vscprintf
|
||||||
;_vscwprintf
|
;_vscwprintf
|
||||||
_vsnprintf
|
_vsnprintf=msvcrt__vsnprintf
|
||||||
_vsnwprintf
|
_vsnwprintf=msvcrt__vsnwprintf
|
||||||
_waccess
|
_waccess
|
||||||
_wasctime
|
_wasctime
|
||||||
_wchdir
|
_wchdir
|
||||||
|
@ -706,17 +706,17 @@ getwc
|
||||||
getwchar
|
getwchar
|
||||||
gmtime
|
gmtime
|
||||||
is_wctype
|
is_wctype
|
||||||
isalnum
|
isalnum=NTDLL.isalnum
|
||||||
isalpha
|
isalpha
|
||||||
iscntrl
|
iscntrl=NTDLL.iscntrl
|
||||||
isdigit
|
isdigit
|
||||||
isgraph
|
isgraph=NTDLL.isgraph
|
||||||
isleadbyte
|
isleadbyte
|
||||||
islower
|
islower
|
||||||
isprint
|
isprint=NTDLL.isprint
|
||||||
ispunct
|
ispunct=NTDLL.ispunct
|
||||||
isspace
|
isspace
|
||||||
isupper
|
isupper=NTDLL.isupper
|
||||||
iswalnum
|
iswalnum
|
||||||
iswalpha
|
iswalpha
|
||||||
iswascii
|
iswascii
|
||||||
|
@ -751,7 +751,7 @@ memset
|
||||||
mktime
|
mktime
|
||||||
modf
|
modf
|
||||||
perror
|
perror
|
||||||
pow
|
pow=NTDLL.pow
|
||||||
printf
|
printf
|
||||||
putc
|
putc
|
||||||
putchar
|
putchar
|
||||||
|
@ -772,10 +772,10 @@ setvbuf
|
||||||
signal
|
signal
|
||||||
sin
|
sin
|
||||||
sinh
|
sinh
|
||||||
sprintf
|
sprintf=msvcrt_sprintf
|
||||||
sqrt
|
sqrt
|
||||||
srand
|
srand
|
||||||
sscanf
|
sscanf=msvcrt_sscanf
|
||||||
strcat
|
strcat
|
||||||
strchr
|
strchr
|
||||||
strcmp
|
strcmp
|
||||||
|
@ -797,7 +797,7 @@ strtok
|
||||||
strtol
|
strtol
|
||||||
strtoul
|
strtoul
|
||||||
strxfrm
|
strxfrm
|
||||||
swprintf
|
swprintf=msvcrt_swprintf
|
||||||
swscanf
|
swscanf
|
||||||
system
|
system
|
||||||
tan
|
tan
|
||||||
|
@ -814,7 +814,7 @@ ungetwc
|
||||||
vfprintf
|
vfprintf
|
||||||
vfwprintf
|
vfwprintf
|
||||||
vprintf
|
vprintf
|
||||||
vsprintf
|
vsprintf=msvcrt_vsprintf
|
||||||
vswprintf
|
vswprintf
|
||||||
vwprintf
|
vwprintf
|
||||||
wcscat
|
wcscat
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<module name="msvcrt" type="win32dll">
|
<module name="msvcrt" type="win32dll" mangledsymbols="true">
|
||||||
<linkerflag>-nostartfiles</linkerflag>
|
<linkerflag>-nostartfiles</linkerflag>
|
||||||
<linkerflag>--enable-stdcall-fixup</linkerflag>
|
<linkerflag>--enable-stdcall-fixup</linkerflag>
|
||||||
<linkerflag>-lgcc</linkerflag>
|
<linkerflag>-lgcc</linkerflag>
|
||||||
|
@ -16,46 +16,20 @@
|
||||||
<library>string</library>
|
<library>string</library>
|
||||||
<library>kernel32</library>
|
<library>kernel32</library>
|
||||||
<library>ntdll</library>
|
<library>ntdll</library>
|
||||||
<directory name="conio">
|
<library>crt</library>
|
||||||
<file>cgets.c</file>
|
|
||||||
<file>cprintf.c</file>
|
|
||||||
<file>cputs.c</file>
|
|
||||||
<file>cscanf.c</file>
|
|
||||||
<file>getch.c</file>
|
|
||||||
<file>getche.c</file>
|
|
||||||
<file>kbhit.c</file>
|
|
||||||
<file>putch.c</file>
|
|
||||||
<file>ungetch.c</file>
|
|
||||||
</directory>
|
|
||||||
<directory name="ctype">
|
<directory name="ctype">
|
||||||
<file>ctype.c</file>
|
|
||||||
<file>isalnum.c</file>
|
|
||||||
<file>isalpha.c</file>
|
<file>isalpha.c</file>
|
||||||
<file>isascii.c</file>
|
|
||||||
<file>iscntrl.c</file>
|
|
||||||
<file>iscsym.c</file>
|
<file>iscsym.c</file>
|
||||||
<file>isctype.c</file>
|
<file>isctype.c</file>
|
||||||
<file>isdigit.c</file>
|
<file>isdigit.c</file>
|
||||||
<file>isgraph.c</file>
|
|
||||||
<file>islower.c</file>
|
<file>islower.c</file>
|
||||||
<file>isprint.c</file>
|
|
||||||
<file>ispunct.c</file>
|
|
||||||
<file>isspace.c</file>
|
<file>isspace.c</file>
|
||||||
<file>isupper.c</file>
|
|
||||||
<file>isxdigit.c</file>
|
<file>isxdigit.c</file>
|
||||||
<file>toascii.c</file>
|
<file>toascii.c</file>
|
||||||
<file>tolower.c</file>
|
<file>tolower.c</file>
|
||||||
<file>toupper.c</file>
|
<file>toupper.c</file>
|
||||||
</directory>
|
</directory>
|
||||||
<directory name="direct">
|
<directory name="direct">
|
||||||
<file>chdir.c</file>
|
|
||||||
<file>chdrive.c</file>
|
|
||||||
<file>getcwd.c</file>
|
|
||||||
<file>getdcwd.c</file>
|
|
||||||
<file>getdfree.c</file>
|
|
||||||
<file>getdrive.c</file>
|
|
||||||
<file>mkdir.c</file>
|
|
||||||
<file>rmdir.c</file>
|
|
||||||
<file>wchdir.c</file>
|
<file>wchdir.c</file>
|
||||||
<file>wgetcwd.c</file>
|
<file>wgetcwd.c</file>
|
||||||
<file>wgetdcwd.c</file>
|
<file>wgetdcwd.c</file>
|
||||||
|
@ -70,161 +44,41 @@
|
||||||
<file>unwind.c</file>
|
<file>unwind.c</file>
|
||||||
<file>xcptfil.c</file>
|
<file>xcptfil.c</file>
|
||||||
</directory>
|
</directory>
|
||||||
<directory name="float">
|
|
||||||
<file>chgsign.c</file>
|
|
||||||
<file>clearfp.c</file>
|
|
||||||
<file>cntrlfp.c</file>
|
|
||||||
<file>copysign.c</file>
|
|
||||||
<file>fpclass.c</file>
|
|
||||||
<file>fpecode.c</file>
|
|
||||||
<file>fpreset.c</file>
|
|
||||||
<file>isnan.c</file>
|
|
||||||
<file>logb.c</file>
|
|
||||||
<file>nafter.c</file>
|
|
||||||
<file>scalb.c</file>
|
|
||||||
<file>statfp.c</file>
|
|
||||||
</directory>
|
|
||||||
<directory name="io">
|
<directory name="io">
|
||||||
<file>access.c</file>
|
|
||||||
<file>chmod.c</file>
|
|
||||||
<file>chsize.c</file>
|
|
||||||
<file>close.c</file>
|
|
||||||
<file>commit.c</file>
|
|
||||||
<file>create.c</file>
|
<file>create.c</file>
|
||||||
<file>dup2.c</file>
|
|
||||||
<file>dup.c</file>
|
<file>dup.c</file>
|
||||||
<file>eof.c</file>
|
<file>eof.c</file>
|
||||||
<file>filelen.c</file>
|
|
||||||
<file>fileleni.c</file>
|
<file>fileleni.c</file>
|
||||||
<file>find.c</file>
|
<file>find.c</file>
|
||||||
<file>fmode.c</file>
|
<file>fmode.c</file>
|
||||||
<file>isatty.c</file>
|
|
||||||
<file>locking.c</file>
|
|
||||||
<file>lseek.c</file>
|
<file>lseek.c</file>
|
||||||
<file>lseeki64.c</file>
|
<file>lseeki64.c</file>
|
||||||
<file>mktemp.c</file>
|
|
||||||
<file>open.c</file>
|
<file>open.c</file>
|
||||||
<file>pipe.c</file>
|
<file>pipe.c</file>
|
||||||
<file>read.c</file>
|
<file>read.c</file>
|
||||||
<file>setmode.c</file>
|
|
||||||
<file>sopen.c</file>
|
|
||||||
<file>stubs.c</file>
|
<file>stubs.c</file>
|
||||||
<file>tell.c</file>
|
|
||||||
<file>telli64.c</file>
|
<file>telli64.c</file>
|
||||||
<file>umask.c</file>
|
|
||||||
<file>unlink.c</file>
|
<file>unlink.c</file>
|
||||||
<file>utime.c</file>
|
|
||||||
<file>waccess.c</file>
|
<file>waccess.c</file>
|
||||||
<file>wchmod.c</file>
|
<file>wchmod.c</file>
|
||||||
<file>wcreate.c</file>
|
<file>wcreate.c</file>
|
||||||
<file>wfind.c</file>
|
<file>wfind.c</file>
|
||||||
<file>wmktemp.c</file>
|
<file>wmktemp.c</file>
|
||||||
<file>wopen.c</file>
|
<file>wopen.c</file>
|
||||||
<file>write.c</file>
|
|
||||||
<file>wunlink.c</file>
|
<file>wunlink.c</file>
|
||||||
<file>wutime.c</file>
|
<file>wutime.c</file>
|
||||||
</directory>
|
</directory>
|
||||||
<directory name="locale">
|
|
||||||
<file>locale.c</file>
|
|
||||||
</directory>
|
|
||||||
<directory name="math">
|
<directory name="math">
|
||||||
<file>acos.c</file>
|
|
||||||
<file>adjust.c</file>
|
<file>adjust.c</file>
|
||||||
<file>asin.c</file>
|
|
||||||
<file>atan2.c</file>
|
|
||||||
<file>atan.c</file>
|
|
||||||
<file>cabs.c</file>
|
|
||||||
<file>ceil.c</file>
|
<file>ceil.c</file>
|
||||||
<file>cos.c</file>
|
|
||||||
<file>cosh.c</file>
|
|
||||||
<file>exp.c</file>
|
|
||||||
<file>fabs.c</file>
|
|
||||||
<file>floor.c</file>
|
<file>floor.c</file>
|
||||||
<file>fmod.c</file>
|
|
||||||
<file>frexp.c</file>
|
|
||||||
<file>huge_val.c</file>
|
<file>huge_val.c</file>
|
||||||
<file>hypot.c</file>
|
|
||||||
<file>j0_y0.c</file>
|
|
||||||
<file>j1_y1.c</file>
|
|
||||||
<file>jn_yn.c</file>
|
|
||||||
<file>ldexp.c</file>
|
|
||||||
<file>log10.c</file>
|
|
||||||
<file>log.c</file>
|
|
||||||
<file>math.c</file>
|
<file>math.c</file>
|
||||||
<file>modf.c</file>
|
|
||||||
<file>pow.c</file>
|
|
||||||
<file>sin.c</file>
|
|
||||||
<file>sinh.c</file>
|
|
||||||
<file>sqrt.c</file>
|
|
||||||
<file>stubs.c</file>
|
|
||||||
<file>tan.c</file>
|
|
||||||
<file>tanh.c</file>
|
|
||||||
</directory>
|
|
||||||
<directory name="mbstring">
|
|
||||||
<file>hanzen.c</file>
|
|
||||||
<file>ischira.c</file>
|
|
||||||
<file>iskana.c</file>
|
|
||||||
<file>iskmoji.c</file>
|
|
||||||
<file>iskpun.c</file>
|
|
||||||
<file>islead.c</file>
|
|
||||||
<file>islwr.c</file>
|
|
||||||
<file>ismbal.c</file>
|
|
||||||
<file>ismbaln.c</file>
|
|
||||||
<file>ismbc.c</file>
|
|
||||||
<file>ismbgra.c</file>
|
|
||||||
<file>ismbkaln.c</file>
|
|
||||||
<file>ismblead.c</file>
|
|
||||||
<file>ismbpri.c</file>
|
|
||||||
<file>ismbpun.c</file>
|
|
||||||
<file>ismbtrl.c</file>
|
|
||||||
<file>isuppr.c</file>
|
|
||||||
<file>jistojms.c</file>
|
|
||||||
<file>jmstojis.c</file>
|
|
||||||
<file>mbbtype.c</file>
|
|
||||||
<file>mbccpy.c</file>
|
|
||||||
<file>mbclen.c</file>
|
|
||||||
<file>mbscat.c</file>
|
|
||||||
<file>mbschr.c</file>
|
|
||||||
<file>mbscmp.c</file>
|
|
||||||
<file>mbscoll.c</file>
|
|
||||||
<file>mbscpy.c</file>
|
|
||||||
<file>mbscspn.c</file>
|
|
||||||
<file>mbsdec.c</file>
|
|
||||||
<file>mbsdup.c</file>
|
|
||||||
<file>mbsicmp.c</file>
|
|
||||||
<file>mbsicoll.c</file>
|
|
||||||
<file>mbsinc.c</file>
|
|
||||||
<file>mbslen.c</file>
|
|
||||||
<file>mbslwr.c</file>
|
|
||||||
<file>mbsncat.c</file>
|
|
||||||
<file>mbsnccnt.c</file>
|
|
||||||
<file>mbsncmp.c</file>
|
|
||||||
<file>mbsncoll.c</file>
|
|
||||||
<file>mbsncpy.c</file>
|
|
||||||
<file>mbsnextc.c</file>
|
|
||||||
<file>mbsnicmp.c</file>
|
|
||||||
<file>mbsnicoll.c</file>
|
|
||||||
<file>mbsninc.c</file>
|
|
||||||
<file>mbsnset.c</file>
|
|
||||||
<file>mbspbrk.c</file>
|
|
||||||
<file>mbsrchr.c</file>
|
|
||||||
<file>mbsrev.c</file>
|
|
||||||
<file>mbsset.c</file>
|
|
||||||
<file>mbsspn.c</file>
|
|
||||||
<file>mbsspnp.c</file>
|
|
||||||
<file>mbsstr.c</file>
|
|
||||||
<file>mbstok.c</file>
|
|
||||||
<file>mbstrlen.c</file>
|
|
||||||
<file>mbsupr.c</file>
|
|
||||||
</directory>
|
</directory>
|
||||||
<directory name="misc">
|
<directory name="misc">
|
||||||
<file>amsg.c</file>
|
|
||||||
<file>assert.c</file>
|
|
||||||
<file>crtmain.c</file>
|
<file>crtmain.c</file>
|
||||||
<file>dllmain.c</file>
|
<file>dllmain.c</file>
|
||||||
<file>environ.c</file>
|
|
||||||
<file>getargs.c</file>
|
<file>getargs.c</file>
|
||||||
<file>initterm.c</file>
|
|
||||||
<file>lock.c</file>
|
<file>lock.c</file>
|
||||||
<file>purecall.c</file>
|
<file>purecall.c</file>
|
||||||
<file>stubs.c</file>
|
<file>stubs.c</file>
|
||||||
|
@ -233,134 +87,58 @@
|
||||||
<directory name="process">
|
<directory name="process">
|
||||||
<file>_cwait.c</file>
|
<file>_cwait.c</file>
|
||||||
<file>_system.c</file>
|
<file>_system.c</file>
|
||||||
<file>dll.c</file>
|
|
||||||
<file>process.c</file>
|
<file>process.c</file>
|
||||||
<file>procid.c</file>
|
|
||||||
<file>thread.c</file>
|
<file>thread.c</file>
|
||||||
<file>threadid.c</file>
|
|
||||||
<file>threadx.c</file>
|
<file>threadx.c</file>
|
||||||
</directory>
|
</directory>
|
||||||
<directory name="search">
|
|
||||||
<file>lfind.c</file>
|
|
||||||
<file>lsearch.c</file>
|
|
||||||
</directory>
|
|
||||||
<directory name="setjmp">
|
|
||||||
<directory name="i386">
|
|
||||||
<file>setjmp.s</file>
|
|
||||||
</directory>
|
|
||||||
</directory>
|
|
||||||
<directory name="signal">
|
|
||||||
<file>signal.c</file>
|
|
||||||
</directory>
|
|
||||||
<directory name="stdio">
|
<directory name="stdio">
|
||||||
<file>allocfil.c</file>
|
|
||||||
<file>clearerr.c</file>
|
|
||||||
<file>fclose.c</file>
|
|
||||||
<file>fdopen.c</file>
|
|
||||||
<file>feof.c</file>
|
|
||||||
<file>ferror.c</file>
|
<file>ferror.c</file>
|
||||||
<file>fflush.c</file>
|
<file>fflush.c</file>
|
||||||
<file>fgetc.c</file>
|
|
||||||
<file>fgetchar.c</file>
|
<file>fgetchar.c</file>
|
||||||
<file>fgetpos.c</file>
|
|
||||||
<file>fgets.c</file>
|
<file>fgets.c</file>
|
||||||
<file>fgetws.c</file>
|
<file>fgetws.c</file>
|
||||||
<file>filbuf.c</file>
|
<file>filbuf.c</file>
|
||||||
<file>fileno.c</file>
|
<file>fileno.c</file>
|
||||||
<file>flsbuf.c</file>
|
|
||||||
<file>fopen.c</file>
|
<file>fopen.c</file>
|
||||||
<file>fprintf.c</file>
|
|
||||||
<file>fputc.c</file>
|
|
||||||
<file>fputchar.c</file>
|
<file>fputchar.c</file>
|
||||||
<file>fputs.c</file>
|
<file>fputs.c</file>
|
||||||
<file>fread.c</file>
|
<file>fread.c</file>
|
||||||
<file>freopen.c</file>
|
<file>freopen.c</file>
|
||||||
<file>fscanf.c</file>
|
<file>fscanf.c</file>
|
||||||
<file>fseek.c</file>
|
|
||||||
<file>fsetpos.c</file>
|
|
||||||
<file>fsopen.c</file>
|
<file>fsopen.c</file>
|
||||||
<file>ftell.c</file>
|
<file>ftell.c</file>
|
||||||
<file>fwalk.c</file>
|
|
||||||
<file>fwrite.c</file>
|
<file>fwrite.c</file>
|
||||||
<file>getc.c</file>
|
<file>getc.c</file>
|
||||||
<file>getchar.c</file>
|
<file>getchar.c</file>
|
||||||
<file>gets.c</file>
|
<file>gets.c</file>
|
||||||
<file>getw.c</file>
|
|
||||||
<file>perror.c</file>
|
<file>perror.c</file>
|
||||||
<file>popen.c</file>
|
<file>popen.c</file>
|
||||||
<file>printf.c</file>
|
<file>printf.c</file>
|
||||||
<file>putc.c</file>
|
<file>putc.c</file>
|
||||||
<file>putchar.c</file>
|
<file>putchar.c</file>
|
||||||
<file>puts.c</file>
|
<file>puts.c</file>
|
||||||
<file>putw.c</file>
|
|
||||||
<file>remove.c</file>
|
<file>remove.c</file>
|
||||||
<file>rename.c</file>
|
|
||||||
<file>rewind.c</file>
|
|
||||||
<file>rmtmp.c</file>
|
|
||||||
<file>scanf.c</file>
|
|
||||||
<file>setbuf.c</file>
|
|
||||||
<file>setvbuf.c</file>
|
|
||||||
<file>sprintf.c</file>
|
|
||||||
<file>sscanf.c</file>
|
|
||||||
<file>stdhnd.c</file>
|
|
||||||
<file>tempnam.c</file>
|
|
||||||
<file>tmpfile.c</file>
|
|
||||||
<file>tmpnam.c</file>
|
|
||||||
<file>ungetc.c</file>
|
|
||||||
<file>vfprintf.c</file>
|
|
||||||
<file>vfscanf.c</file>
|
|
||||||
<file>vfwprint.c</file>
|
|
||||||
<file>vprintf.c</file>
|
|
||||||
<file>vscanf.c</file>
|
|
||||||
<file>vsprintf.c</file>
|
|
||||||
<file>vsscanf.c</file>
|
|
||||||
<file>wfdopen.c</file>
|
<file>wfdopen.c</file>
|
||||||
<file>wrename.c</file>
|
<file>wrename.c</file>
|
||||||
<file>wtempnam.c</file>
|
<file>wtempnam.c</file>
|
||||||
<file>wtmpnam.c</file>
|
<file>wtmpnam.c</file>
|
||||||
</directory>
|
</directory>
|
||||||
<directory name="stdlib">
|
<directory name="stdlib">
|
||||||
<file>abort.c</file>
|
|
||||||
<file>abs.c</file>
|
|
||||||
<file>atexit.c</file>
|
|
||||||
<file>atof.c</file>
|
|
||||||
<file>atoi.c</file>
|
|
||||||
<file>atoi64.c</file>
|
<file>atoi64.c</file>
|
||||||
<file>atol.c</file>
|
|
||||||
<file>atold.c</file>
|
<file>atold.c</file>
|
||||||
<file>bsearch.c</file>
|
|
||||||
<file>div.c</file>
|
|
||||||
<file>ecvt.c</file>
|
|
||||||
<file>ecvtbuf.c</file>
|
|
||||||
<file>errno.c</file>
|
<file>errno.c</file>
|
||||||
<file>fcvt.c</file>
|
|
||||||
<file>fcvtbuf.c</file>
|
|
||||||
<file>fullpath.c</file>
|
<file>fullpath.c</file>
|
||||||
<file>gcvt.c</file>
|
|
||||||
<file>getenv.c</file>
|
<file>getenv.c</file>
|
||||||
<file>itoa.c</file>
|
|
||||||
<file>itow.c</file>
|
<file>itow.c</file>
|
||||||
<file>labs.c</file>
|
|
||||||
<file>ldiv.c</file>
|
|
||||||
<file>makepath.c</file>
|
|
||||||
<file>malloc.c</file>
|
<file>malloc.c</file>
|
||||||
<file>mbstowcs.c</file>
|
<file>mbstowcs.c</file>
|
||||||
<file>mbtowc.c</file>
|
<file>mbtowc.c</file>
|
||||||
<file>obsol.c</file>
|
|
||||||
<file>putenv.c</file>
|
<file>putenv.c</file>
|
||||||
<file>qsort.c</file>
|
<file>qsort.c</file>
|
||||||
<file>rand.c</file>
|
<file>rand.c</file>
|
||||||
<file>rot.c</file>
|
|
||||||
<file>senv.c</file>
|
|
||||||
<file>splitp.c</file>
|
|
||||||
<file>strtod.c</file>
|
|
||||||
<file>strtol.c</file>
|
|
||||||
<file>strtold.c</file>
|
<file>strtold.c</file>
|
||||||
<file>strtoll.c</file>
|
<file>strtoll.c</file>
|
||||||
<file>strtoul.c</file>
|
|
||||||
<file>strtoull.c</file>
|
<file>strtoull.c</file>
|
||||||
<file>swab.c</file>
|
|
||||||
<file>wcstod.c</file>
|
|
||||||
<file>wcstol.c</file>
|
<file>wcstol.c</file>
|
||||||
<file>wcstomb.c</file>
|
<file>wcstomb.c</file>
|
||||||
<file>wcstombs.c</file>
|
<file>wcstombs.c</file>
|
||||||
|
@ -375,42 +153,26 @@
|
||||||
<file>wsplitp.c</file>
|
<file>wsplitp.c</file>
|
||||||
<file>wtoi.c</file>
|
<file>wtoi.c</file>
|
||||||
<file>wtoi64.c</file>
|
<file>wtoi64.c</file>
|
||||||
<file>_exit.c</file>
|
|
||||||
</directory>
|
</directory>
|
||||||
<directory name="string">
|
<directory name="string">
|
||||||
<file>lasttok.c</file>
|
|
||||||
<file>memicmp.c</file>
|
<file>memicmp.c</file>
|
||||||
<file>strcoll.c</file>
|
|
||||||
<file>strdup.c</file>
|
|
||||||
<file>strerror.c</file>
|
<file>strerror.c</file>
|
||||||
<file>stricmp.c</file>
|
<file>stricmp.c</file>
|
||||||
<file>strlwr.c</file>
|
<file>strlwr.c</file>
|
||||||
<file>strncoll.c</file>
|
<file>strncoll.c</file>
|
||||||
<file>strnicmp.c</file>
|
<file>strnicmp.c</file>
|
||||||
<file>strpbrk.c</file>
|
<file>strpbrk.c</file>
|
||||||
<file>strrev.c</file>
|
|
||||||
<file>strset.c</file>
|
|
||||||
<file>strstr.c</file>
|
<file>strstr.c</file>
|
||||||
<file>strtok.c</file>
|
|
||||||
<file>strupr.c</file>
|
<file>strupr.c</file>
|
||||||
<file>strxfrm.c</file>
|
|
||||||
</directory>
|
</directory>
|
||||||
<directory name="sys_stat">
|
<directory name="sys_stat">
|
||||||
<file>fstat.c</file>
|
<file>fstat.c</file>
|
||||||
<file>fstati64.c</file>
|
<file>fstati64.c</file>
|
||||||
<file>futime.c</file>
|
|
||||||
<file>stat.c</file>
|
<file>stat.c</file>
|
||||||
<file>wstat.c</file>
|
<file>wstat.c</file>
|
||||||
</directory>
|
</directory>
|
||||||
<directory name="time">
|
<directory name="time">
|
||||||
<file>clock.c</file>
|
|
||||||
<file>ctime.c</file>
|
|
||||||
<file>difftime.c</file>
|
|
||||||
<file>ftime.c</file>
|
<file>ftime.c</file>
|
||||||
<file>strdate.c</file>
|
|
||||||
<file>strftime.c</file>
|
|
||||||
<file>strtime.c</file>
|
|
||||||
<file>time.c</file>
|
|
||||||
<file>tz_vars.c</file>
|
<file>tz_vars.c</file>
|
||||||
<file>wctime.c</file>
|
<file>wctime.c</file>
|
||||||
<file>wstrdate.c</file>
|
<file>wstrdate.c</file>
|
||||||
|
@ -425,18 +187,13 @@
|
||||||
<directory name="wstring">
|
<directory name="wstring">
|
||||||
<file>wcscoll.c</file>
|
<file>wcscoll.c</file>
|
||||||
<file>wcscspn.c</file>
|
<file>wcscspn.c</file>
|
||||||
<file>wcsdup.c</file>
|
|
||||||
<file>wcsicmp.c</file>
|
<file>wcsicmp.c</file>
|
||||||
<file>wcslwr.c</file>
|
<file>wcslwr.c</file>
|
||||||
<file>wcsnicmp.c</file>
|
<file>wcsnicmp.c</file>
|
||||||
<file>wcspbrk.c</file>
|
<file>wcspbrk.c</file>
|
||||||
<file>wcsrev.c</file>
|
|
||||||
<file>wcsset.c</file>
|
|
||||||
<file>wcsspn.c</file>
|
<file>wcsspn.c</file>
|
||||||
<file>wcsstr.c</file>
|
<file>wcsstr.c</file>
|
||||||
<file>wcstok.c</file>
|
|
||||||
<file>wcsupr.c</file>
|
<file>wcsupr.c</file>
|
||||||
<file>wcsxfrm.c</file>
|
|
||||||
<file>wlasttok.c</file>
|
<file>wlasttok.c</file>
|
||||||
</directory>
|
</directory>
|
||||||
<file>msvcrt.rc</file>
|
<file>msvcrt.rc</file>
|
||||||
|
|
|
@ -26,11 +26,9 @@ Cambridge, MA 02139, USA. */
|
||||||
|
|
||||||
#undef sprintf
|
#undef sprintf
|
||||||
#undef wsprintf
|
#undef wsprintf
|
||||||
/*
|
|
||||||
* @implemented
|
|
||||||
*/
|
|
||||||
int
|
int
|
||||||
sprintf(char *str, const char *fmt, ...)
|
msvcrt_sprintf(char *str, const char *fmt, ...)
|
||||||
{
|
{
|
||||||
va_list arg;
|
va_list arg;
|
||||||
int done;
|
int done;
|
||||||
|
@ -41,11 +39,8 @@ sprintf(char *str, const char *fmt, ...)
|
||||||
return done;
|
return done;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* @implemented
|
|
||||||
*/
|
|
||||||
int
|
int
|
||||||
swprintf(wchar_t *str, const wchar_t *fmt, ...)
|
msvcrt_swprintf(wchar_t *str, const wchar_t *fmt, ...)
|
||||||
{
|
{
|
||||||
va_list arg;
|
va_list arg;
|
||||||
int done;
|
int done;
|
||||||
|
@ -61,11 +56,8 @@ swprintf(wchar_t *str, const wchar_t *fmt, ...)
|
||||||
/* Write formatted output into S, according to the format
|
/* Write formatted output into S, according to the format
|
||||||
string FORMAT, writing no more than MAXLEN characters. */
|
string FORMAT, writing no more than MAXLEN characters. */
|
||||||
/* VARARGS3 */
|
/* VARARGS3 */
|
||||||
/*
|
|
||||||
* @implemented
|
|
||||||
*/
|
|
||||||
int
|
int
|
||||||
_snprintf (char *s, size_t maxlen,const char *format, ...)
|
msvcrt__snprintf (char *s, size_t maxlen,const char *format, ...)
|
||||||
{
|
{
|
||||||
va_list arg;
|
va_list arg;
|
||||||
int done;
|
int done;
|
||||||
|
@ -77,11 +69,8 @@ _snprintf (char *s, size_t maxlen,const char *format, ...)
|
||||||
return done;
|
return done;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* @implemented
|
|
||||||
*/
|
|
||||||
int
|
int
|
||||||
_snwprintf (wchar_t *s, size_t maxlen,const wchar_t *format, ...)
|
msvcrt__snwprintf (wchar_t *s, size_t maxlen,const wchar_t *format, ...)
|
||||||
{
|
{
|
||||||
va_list arg;
|
va_list arg;
|
||||||
int done;
|
int done;
|
||||||
|
|
|
@ -25,10 +25,7 @@
|
||||||
|
|
||||||
/* Read formatted input from S, according to the format string FORMAT. */
|
/* Read formatted input from S, according to the format string FORMAT. */
|
||||||
/* VARARGS2 */
|
/* VARARGS2 */
|
||||||
/*
|
int msvcrt_sscanf (const char *s,const char *format, ...)
|
||||||
* @implemented
|
|
||||||
*/
|
|
||||||
int sscanf (const char *s,const char *format, ...)
|
|
||||||
{
|
{
|
||||||
va_list arg;
|
va_list arg;
|
||||||
int done;
|
int done;
|
||||||
|
|
|
@ -4,11 +4,8 @@
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
#include <msvcrt/internal/file.h>
|
#include <msvcrt/internal/file.h>
|
||||||
|
|
||||||
/*
|
|
||||||
* @implemented
|
|
||||||
*/
|
|
||||||
int
|
int
|
||||||
vsprintf(char *str, const char *fmt, va_list ap)
|
msvcrt_vsprintf(char *str, const char *fmt, va_list ap)
|
||||||
{
|
{
|
||||||
FILE f;
|
FILE f;
|
||||||
int len;
|
int len;
|
||||||
|
@ -41,11 +38,8 @@ vswprintf(wchar_t *str, const wchar_t *fmt, va_list ap)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @implemented
|
|
||||||
*/
|
|
||||||
int
|
int
|
||||||
_vsnprintf(char *str, size_t maxlen, const char *fmt, va_list ap)
|
msvcrt__vsnprintf(char *str, size_t maxlen, const char *fmt, va_list ap)
|
||||||
{
|
{
|
||||||
FILE f;
|
FILE f;
|
||||||
int len;
|
int len;
|
||||||
|
@ -59,11 +53,8 @@ _vsnprintf(char *str, size_t maxlen, const char *fmt, va_list ap)
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* @implemented
|
|
||||||
*/
|
|
||||||
int
|
int
|
||||||
_vsnwprintf(wchar_t *str, size_t maxlen, const wchar_t *fmt, va_list ap)
|
msvcrt__vsnwprintf(wchar_t *str, size_t maxlen, const wchar_t *fmt, va_list ap)
|
||||||
{
|
{
|
||||||
FILE f;
|
FILE f;
|
||||||
int len;
|
int len;
|
||||||
|
|
|
@ -802,12 +802,14 @@ MingwModuleHandler::GenerateLinkerCommand ( const Module& module,
|
||||||
"\t${rm} %s\n",
|
"\t${rm} %s\n",
|
||||||
junk_tmp.c_str () );
|
junk_tmp.c_str () );
|
||||||
|
|
||||||
|
string killAt = module.mangledSymbols ? "" : "--kill-at";
|
||||||
fprintf ( fMakefile,
|
fprintf ( fMakefile,
|
||||||
"\t${dlltool} --dllname %s --base-file %s --def %s --output-exp %s --kill-at\n",
|
"\t${dlltool} --dllname %s --base-file %s --def %s --output-exp %s %s\n",
|
||||||
targetName.c_str (),
|
targetName.c_str (),
|
||||||
base_tmp.c_str (),
|
base_tmp.c_str (),
|
||||||
( module.GetBasePath () + SSEP + module.importLibrary->definition ).c_str (),
|
( module.GetBasePath () + SSEP + module.importLibrary->definition ).c_str (),
|
||||||
temp_exp.c_str () );
|
temp_exp.c_str (),
|
||||||
|
killAt.c_str () );
|
||||||
|
|
||||||
fprintf ( fMakefile,
|
fprintf ( fMakefile,
|
||||||
"\t${rm} %s\n",
|
"\t${rm} %s\n",
|
||||||
|
@ -1209,11 +1211,13 @@ MingwModuleHandler::GenerateImportLibraryTargetIfNeeded ( const Module& module )
|
||||||
FixupTargetFilename( module.GetDependencyPath () ).c_str (),
|
FixupTargetFilename( module.GetDependencyPath () ).c_str (),
|
||||||
definitionDependencies.c_str () );
|
definitionDependencies.c_str () );
|
||||||
|
|
||||||
|
string killAt = module.mangledSymbols ? "" : "--kill-at";
|
||||||
fprintf ( fMakefile,
|
fprintf ( fMakefile,
|
||||||
"\t${dlltool} --dllname %s --def %s --output-lib %s --kill-at\n\n",
|
"\t${dlltool} --dllname %s --def %s --output-lib %s %s\n\n",
|
||||||
module.GetTargetName ().c_str (),
|
module.GetTargetName ().c_str (),
|
||||||
( module.GetBasePath () + SSEP + module.importLibrary->definition ).c_str (),
|
( module.GetBasePath () + SSEP + module.importLibrary->definition ).c_str (),
|
||||||
FixupTargetFilename ( module.GetDependencyPath () ).c_str () );
|
FixupTargetFilename ( module.GetDependencyPath () ).c_str (),
|
||||||
|
killAt.c_str () );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1350,11 +1354,13 @@ MingwKernelModuleHandler::GenerateKernelModuleTarget ( const Module& module )
|
||||||
fprintf ( fMakefile,
|
fprintf ( fMakefile,
|
||||||
"\t${rm} %s\n",
|
"\t${rm} %s\n",
|
||||||
junk_tmp.c_str () );
|
junk_tmp.c_str () );
|
||||||
|
string killAt = module.mangledSymbols ? "" : "--kill-at";
|
||||||
fprintf ( fMakefile,
|
fprintf ( fMakefile,
|
||||||
"\t${dlltool} --dllname %s --base-file %s --def ntoskrnl/ntoskrnl.def --output-exp %s --kill-at\n",
|
"\t${dlltool} --dllname %s --base-file %s --def ntoskrnl/ntoskrnl.def --output-exp %s %s\n",
|
||||||
targetName.c_str (),
|
targetName.c_str (),
|
||||||
base_tmp.c_str (),
|
base_tmp.c_str (),
|
||||||
temp_exp.c_str () );
|
temp_exp.c_str (),
|
||||||
|
killAt.c_str () );
|
||||||
fprintf ( fMakefile,
|
fprintf ( fMakefile,
|
||||||
"\t${rm} %s\n",
|
"\t${rm} %s\n",
|
||||||
base_tmp.c_str () );
|
base_tmp.c_str () );
|
||||||
|
@ -1554,12 +1560,13 @@ MingwNativeDLLModuleHandler::GenerateNativeDLLModuleTarget ( const Module& modul
|
||||||
|
|
||||||
if ( module.files.size () > 0 )
|
if ( module.files.size () > 0 )
|
||||||
{
|
{
|
||||||
|
string killAt = module.mangledSymbols ? "" : "--kill-at";
|
||||||
fprintf ( fMakefile,
|
fprintf ( fMakefile,
|
||||||
"\t${dlltool} --dllname %s --def %s --output-lib %s --kill-at\n\n",
|
"\t${dlltool} --dllname %s --def %s --output-lib %s %s\n\n",
|
||||||
module.GetTargetName ().c_str (),
|
module.GetTargetName ().c_str (),
|
||||||
(module.GetBasePath () + SSEP + module.importLibrary->definition).c_str (),
|
(module.GetBasePath () + SSEP + module.importLibrary->definition).c_str (),
|
||||||
FixupTargetFilename ( module.GetDependencyPath () ).c_str () );
|
FixupTargetFilename ( module.GetDependencyPath () ).c_str (),
|
||||||
|
killAt.c_str () );
|
||||||
}
|
}
|
||||||
|
|
||||||
if (module.files.size () > 0)
|
if (module.files.size () > 0)
|
||||||
|
|
|
@ -71,6 +71,12 @@ Module::Module ( const Project& project,
|
||||||
entrypoint = att->value;
|
entrypoint = att->value;
|
||||||
else
|
else
|
||||||
entrypoint = GetDefaultModuleEntrypoint ();
|
entrypoint = GetDefaultModuleEntrypoint ();
|
||||||
|
|
||||||
|
att = moduleNode.GetAttribute ( "mangledsymbols", false );
|
||||||
|
if ( att != NULL )
|
||||||
|
mangledSymbols = att->value != "false";
|
||||||
|
else
|
||||||
|
mangledSymbols = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Module::~Module ()
|
Module::~Module ()
|
||||||
|
|
|
@ -96,6 +96,7 @@ public:
|
||||||
std::string path;
|
std::string path;
|
||||||
ModuleType type;
|
ModuleType type;
|
||||||
ImportLibrary* importLibrary;
|
ImportLibrary* importLibrary;
|
||||||
|
bool mangledSymbols;
|
||||||
std::vector<File*> files;
|
std::vector<File*> files;
|
||||||
std::vector<Library*> libraries;
|
std::vector<Library*> libraries;
|
||||||
std::vector<Include*> includes;
|
std::vector<Include*> includes;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue