- Import isinf and isnan implementations from libwine_port and adjust port.h and config.h to support them
- Remove isinf/isnan hacks from jscript and wined3d build files
- Add missing port.h include to jscript/array.c (sent and applied upstream)
See issue #7027 for more details.

svn path=/trunk/; revision=56470
This commit is contained in:
Thomas Faber 2012-05-01 17:20:47 +00:00
parent 4c2fd89c46
commit 04406cf0e4
8 changed files with 121 additions and 24 deletions

View file

@ -6,11 +6,6 @@ add_definitions(
include_directories(BEFORE ${REACTOS_SOURCE_DIR}/include/reactos/wine) include_directories(BEFORE ${REACTOS_SOURCE_DIR}/include/reactos/wine)
if(MSVC)
add_definitions(-Disnan=_isnan)
add_definitions(-Disinf=!_finite)
endif()
spec2def(wined3d.dll wined3d.spec ADD_IMPORTLIB) spec2def(wined3d.dll wined3d.spec ADD_IMPORTLIB)
list(APPEND SOURCE list(APPEND SOURCE

View file

@ -6,9 +6,7 @@ add_definitions(-D_WIN32_WINNT=0x600)
add_definitions( add_definitions(
-D__WINESRC__ -D__WINESRC__
-D_USE_MATH_DEFINES -D_USE_MATH_DEFINES)
-Disinf=!_finite
-Disnan=_isnan)
include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine)
@ -18,29 +16,28 @@ spec2def(jscript.dll jscript.spec)
list(APPEND SOURCE list(APPEND SOURCE
activex.c activex.c
array.c
bool.c
date.c date.c
dispex.c dispex.c
engine.c engine.c
error.c error.c
function.c
global.c
jscript.c jscript.c
jscript_main.c jscript_main.c
jsutils.c jsutils.c
lex.c lex.c
parser.tab.c
math.c math.c
number.c number.c
object.c object.c
parser.tab.c
regexp.c regexp.c
string.c string.c
array.c rsrc.rc
bool.c
function.c
global.c
${CMAKE_CURRENT_BINARY_DIR}/jscript.def) ${CMAKE_CURRENT_BINARY_DIR}/jscript.def)
add_library(jscript SHARED add_library(jscript SHARED ${SOURCE})
${SOURCE}
rsrc.rc)
set_module_type(jscript win32dll) set_module_type(jscript win32dll)
@ -63,10 +60,4 @@ add_pch(jscript jscript.h)
add_dependencies(jscript stdole2) add_dependencies(jscript stdole2)
add_cd_file(TARGET jscript DESTINATION reactos/system32 FOR all) add_cd_file(TARGET jscript DESTINATION reactos/system32 FOR all)
if(NOT MSVC)
# FIXME: http://www.cmake.org/Bug/view.php?id=12998
#allow_warnings(jscript)
set_source_files_properties(${SOURCE} PROPERTIES COMPILE_FLAGS "-Wno-error")
endif()
set_source_files_properties(rsrc.rc PROPERTIES OBJECT_DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/jsglobal.tlb) set_source_files_properties(rsrc.rc PROPERTIES OBJECT_DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/jsglobal.tlb)

View file

@ -16,6 +16,9 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
#include "wine/config.h"
#include "wine/port.h"
#include <math.h> #include <math.h>
#include "jscript.h" #include "jscript.h"

View file

@ -299,10 +299,10 @@
#define HAVE_IO_H 1 #define HAVE_IO_H 1
/* Define to 1 if you have the `isinf' function. */ /* Define to 1 if you have the `isinf' function. */
#define HAVE_ISINF 1 /* #undef HAVE_ISINF */
/* Define to 1 if you have the `isnan' function. */ /* Define to 1 if you have the `isnan' function. */
#define HAVE_ISNAN 1 /* #undef HAVE_ISNAN */
/* Define to 1 if you have the <jack/jack.h> header file. */ /* Define to 1 if you have the <jack/jack.h> header file. */
/* #undef HAVE_JACK_JACK_H */ /* #undef HAVE_JACK_JACK_H */
@ -1140,6 +1140,12 @@
/* Define to 1 if you have the <zlib.h> header file. */ /* Define to 1 if you have the <zlib.h> header file. */
/* #define HAVE_ZLIB_H 1 */ /* #define HAVE_ZLIB_H 1 */
/* Define to 1 if you have the `_finite' function. */
#define HAVE__FINITE 1
/* Define to 1 if you have the `_isnan' function. */
#define HAVE__ISNAN 1
/* Define to 1 if you have the `_pclose' function. */ /* Define to 1 if you have the `_pclose' function. */
#define HAVE__PCLOSE 1 #define HAVE__PCLOSE 1

View file

@ -226,6 +226,14 @@ extern int getopt_long_only (int ___argc, char *const *___argv,
size_t getpagesize(void); size_t getpagesize(void);
#endif /* HAVE_GETPAGESIZE */ #endif /* HAVE_GETPAGESIZE */
#if !defined(HAVE_ISINF) && !defined(_ISINF) && !defined(isinf)
int isinf(double x);
#endif
#if !defined(HAVE_ISNAN) && !defined(_ISNAN) && !defined(isnan)
int isnan(double x);
#endif
#ifndef HAVE_LSTAT #ifndef HAVE_LSTAT
int lstat(const char *file_name, struct stat *buf); int lstat(const char *file_name, struct stat *buf);
#endif /* HAVE_LSTAT */ #endif /* HAVE_LSTAT */

View file

@ -5,6 +5,8 @@ add_definitions(-D__WINESRC__)
list(APPEND SOURCE list(APPEND SOURCE
config.c config.c
debug_ros.c debug_ros.c
isinf.c
isnan.c
loader.c loader.c
wctype.c wctype.c
register.c register.c

46
reactos/lib/3rdparty/libwine/isinf.c vendored Normal file
View file

@ -0,0 +1,46 @@
/*
* isinf function
*
* Copyright 2008 Petr Sumbera
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "config.h"
#include "wine/port.h"
#if !defined(HAVE_ISINF) && !defined(_ISINF) && !defined(isinf)
#ifdef HAVE_IEEEFP_H
#include <ieeefp.h>
int isinf(double x)
{
return (!(finite(x) || isnand(x)));
}
#elif defined(HAVE_FLOAT_H) && defined(HAVE__ISNAN) && defined(HAVE__FINITE)
#include <float.h>
int isinf(double x)
{
return (!(_finite(x) || _isnan(x)));
}
#else
#error No isinf() implementation available.
#endif
#endif /* !defined(HAVE_ISINF) && !defined(_ISINF) && !defined(isinf) */

46
reactos/lib/3rdparty/libwine/isnan.c vendored Normal file
View file

@ -0,0 +1,46 @@
/*
* isnan function
*
* Copyright 2008 Jacek Caban for CodeWeavers
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "config.h"
#include "wine/port.h"
#if !defined(HAVE_ISNAN) && !defined(_ISNAN) && !defined(isnan)
#ifdef HAVE_IEEEFP_H
#include <ieeefp.h>
int isnan(double x)
{
return isnand(x);
}
#elif defined(HAVE_FLOAT_H) && defined(HAVE__ISNAN)
#include <float.h>
int isnan(double x)
{
return _isnan(x);
}
#else
#error No isnan() implementation available.
#endif
#endif /* !defined(HAVE_ISNAN) && !defined(_ISNAN) && !defined(isnan) */