From b7443722315861a3228f770e7e0aecff3bb9fa85 Mon Sep 17 00:00:00 2001 From: Mike McCormack Date: Thu, 11 Aug 2005 17:12:18 +0000 Subject: [PATCH] Turn off gcc 4.0's builtin wchar inlines. --- Make.rules.in | 3 +- configure | 71 +++++++++++++++++++++++++++++++++- configure.ac | 19 +++++++++ dlls/crtdll/Makefile.in | 1 + dlls/msvcrt/tests/Makefile.in | 1 + dlls/msvcrtd/tests/Makefile.in | 1 + programs/notepad/Makefile.in | 1 + programs/regedit/Makefile.in | 1 + programs/taskmgr/Makefile.in | 1 + 9 files changed, 97 insertions(+), 2 deletions(-) diff --git a/Make.rules.in b/Make.rules.in index b5475c68cb6..6a110c76621 100644 --- a/Make.rules.in +++ b/Make.rules.in @@ -17,6 +17,7 @@ # SUBDIRS : subdirectories that contain a Makefile # EXTRASUBDIRS : subdirectories that do not contain a Makefile # INSTALLSUBDIRS : subdirectories to run make install/uninstall into +# MODCFLAGS : extra CFLAGS for this module # First some useful definitions @@ -55,7 +56,7 @@ LINTFLAGS = @LINTFLAGS@ FONTFORGE = @FONTFORGE@ INCLUDES = -I$(SRCDIR) -I. -I$(TOPSRCDIR)/include -I$(TOPOBJDIR)/include $(EXTRAINCL) EXTRACFLAGS = @EXTRACFLAGS@ -ALLCFLAGS = $(INCLUDES) $(DEFS) $(DLLFLAGS) $(EXTRACFLAGS) $(CPPFLAGS) $(CFLAGS) +ALLCFLAGS = $(INCLUDES) $(DEFS) $(DLLFLAGS) $(EXTRACFLAGS) $(CPPFLAGS) $(CFLAGS) $(MODCFLAGS) ALLLINTFLAGS = $(INCLUDES) $(DEFS) $(LINTFLAGS) IDLFLAGS = $(INCLUDES) $(DEFS) $(EXTRAIDLFLAGS) MKINSTALLDIRS= $(TOPSRCDIR)/tools/mkinstalldirs -m 755 diff --git a/configure b/configure index 728c6e8054c..b1e0972a27b 100755 --- a/configure +++ b/configure @@ -311,7 +311,7 @@ ac_includes_default="\ # include #endif" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS DLLDEFS build build_cpu build_vendor build_os host host_cpu host_vendor host_os WIN16_FILES WIN16_INSTALL SET_MAKE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX CPPBIN ac_ct_CPPBIN TOOLSDIR CPP X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS LEX LEXLIB LEX_OUTPUT_ROOT XLEX BISON AS ac_ct_AS LD ac_ct_LD AR ac_ct_AR RANLIB ac_ct_RANLIB STRIP ac_ct_STRIP WINDRES ac_ct_WINDRES LN_S LN EGREP LDCONFIG INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LINT LINTFLAGS FONTFORGE PKG_CONFIG PRELINK LIBPTHREAD XLIB XFILES OPENGLFILES GLU32FILES OPENGL_LIBS GLUT_LIBS GLUT32FILES NASLIBS XML2LIBS XML2INCL CURSESLIBS sane_devel SANELIBS SANEINCL ICULIBS LCMSLIBS LDAPLIBS FREETYPELIBS FREETYPEINCL ft_devel ft_devel2 FONTSSUBDIRS ARTSCCONFIG ARTSLIBS ARTSINCL ESDCONFIG ESDLIBS ESDINCL ALSALIBS AUDIOIOLIBS EXTRACFLAGS DLLEXT DLLFLAGS DLLIBS LDSHARED LDDLLFLAGS LIBEXT IMPLIBEXT DLLTOOL ac_ct_DLLTOOL DLLWRAP ac_ct_DLLWRAP LDEXECFLAGS LDLIBWINEFLAGS COREFOUNDATIONLIB IOKITLIB CROSSTEST CROSSCC CROSSWINDRES LDPATH CRTLIBS SOCKETLIBS WINE_BINARIES MAIN_BINARY LDD LIBOBJS LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS DLLDEFS build build_cpu build_vendor build_os host host_cpu host_vendor host_os WIN16_FILES WIN16_INSTALL SET_MAKE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX CPPBIN ac_ct_CPPBIN TOOLSDIR CPP X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS LEX LEXLIB LEX_OUTPUT_ROOT XLEX BISON AS ac_ct_AS LD ac_ct_LD AR ac_ct_AR RANLIB ac_ct_RANLIB STRIP ac_ct_STRIP WINDRES ac_ct_WINDRES LN_S LN EGREP LDCONFIG INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LINT LINTFLAGS FONTFORGE PKG_CONFIG PRELINK LIBPTHREAD XLIB XFILES OPENGLFILES GLU32FILES OPENGL_LIBS GLUT_LIBS GLUT32FILES NASLIBS XML2LIBS XML2INCL CURSESLIBS sane_devel SANELIBS SANEINCL ICULIBS LCMSLIBS LDAPLIBS FREETYPELIBS FREETYPEINCL ft_devel ft_devel2 FONTSSUBDIRS ARTSCCONFIG ARTSLIBS ARTSINCL ESDCONFIG ESDLIBS ESDINCL ALSALIBS AUDIOIOLIBS EXTRACFLAGS BUILTINFLAG DLLEXT DLLFLAGS DLLIBS LDSHARED LDDLLFLAGS LIBEXT IMPLIBEXT DLLTOOL ac_ct_DLLTOOL DLLWRAP ac_ct_DLLWRAP LDEXECFLAGS LDLIBWINEFLAGS COREFOUNDATIONLIB IOKITLIB CROSSTEST CROSSCC CROSSWINDRES LDPATH CRTLIBS SOCKETLIBS WINE_BINARIES MAIN_BINARY LDD LIBOBJS LTLIBOBJS' ac_subst_files='MAKE_RULES MAKE_DLL_RULES MAKE_TEST_RULES MAKE_LIB_RULES MAKE_PROG_RULES' # Initialize some variables set by options. @@ -11293,6 +11293,74 @@ echo "${ECHO_T}$ac_cv_c_string_h_warnings" >&6 then EXTRACFLAGS="$EXTRACFLAGS -Wpointer-arith" fi + + BUILTINFLAG="" + + saved_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Werror" + echo "$as_me:$LINENO: checking for builtin wchar inlines" >&5 +echo $ECHO_N "checking for builtin wchar inlines... $ECHO_C" >&6 +if test "${ac_cv_c_builtin_wchar_ctype+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +int iswlower(unsigned short); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_c_builtin_wchar_ctype=no +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_c_builtin_wchar_ctype=yes +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_c_builtin_wchar_ctype" >&5 +echo "${ECHO_T}$ac_cv_c_builtin_wchar_ctype" >&6 + CFLAGS="$saved_CFLAGS" + if test "$ac_cv_c_builtin_wchar_ctype" = "yes" + then + BUILTINFLAG="" + for builtin in \ + iswalnum iswalpha iswcntrl iswdigit iswgraph iswlower \ + iswprint iswpunct iswspace iswupper iswxdigit towlower towupper + do + BUILTINFLAG="$BUILTINFLAG -fno-builtin-$builtin" + done + fi fi @@ -19183,6 +19251,7 @@ s,@ESDINCL@,$ESDINCL,;t t s,@ALSALIBS@,$ALSALIBS,;t t s,@AUDIOIOLIBS@,$AUDIOIOLIBS,;t t s,@EXTRACFLAGS@,$EXTRACFLAGS,;t t +s,@BUILTINFLAG@,$BUILTINFLAG,;t t s,@DLLEXT@,$DLLEXT,;t t s,@DLLFLAGS@,$DLLFLAGS,;t t s,@DLLIBS@,$DLLIBS,;t t diff --git a/configure.ac b/configure.ac index d46e09206cc..016b0fc2e32 100644 --- a/configure.ac +++ b/configure.ac @@ -817,6 +817,25 @@ int main(void) { then EXTRACFLAGS="$EXTRACFLAGS -Wpointer-arith" fi + + AC_SUBST(BUILTINFLAG,"") + saved_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Werror" + AC_CACHE_CHECK([for builtin wchar inlines], ac_cv_c_builtin_wchar_ctype, + AC_TRY_COMPILE([], + [int iswlower(unsigned short);], + [ac_cv_c_builtin_wchar_ctype=no],[ac_cv_c_builtin_wchar_ctype=yes])) + CFLAGS="$saved_CFLAGS" + if test "$ac_cv_c_builtin_wchar_ctype" = "yes" + then + BUILTINFLAG="" + for builtin in \ + iswalnum iswalpha iswcntrl iswdigit iswgraph iswlower \ + iswprint iswpunct iswspace iswupper iswxdigit towlower towupper + do + BUILTINFLAG="$BUILTINFLAG -fno-builtin-$builtin" + done + fi fi dnl **** Check how to define a function in assembly code **** diff --git a/dlls/crtdll/Makefile.in b/dlls/crtdll/Makefile.in index ebf03d3c4f0..937fc89a729 100644 --- a/dlls/crtdll/Makefile.in +++ b/dlls/crtdll/Makefile.in @@ -6,6 +6,7 @@ MODULE = crtdll.dll IMPORTLIB = libcrtdll.$(IMPLIBEXT) IMPORTS = msvcrt kernel32 EXTRALIBS = $(LIBUNICODE) +MODCFLAGS = @BUILTINFLAG@ EXTRAINCL = -I$(TOPSRCDIR)/include/msvcrt C_SRCS = \ diff --git a/dlls/msvcrt/tests/Makefile.in b/dlls/msvcrt/tests/Makefile.in index 63bb0890159..e418531fc91 100644 --- a/dlls/msvcrt/tests/Makefile.in +++ b/dlls/msvcrt/tests/Makefile.in @@ -4,6 +4,7 @@ SRCDIR = @srcdir@ VPATH = @srcdir@ TESTDLL = msvcrt.dll IMPORTS = msvcrt +MODCFLAGS = @BUILTINFLAG@ EXTRAINCL = -I$(TOPSRCDIR)/include/msvcrt -I$(SRCDIR)/.. CTESTS = \ diff --git a/dlls/msvcrtd/tests/Makefile.in b/dlls/msvcrtd/tests/Makefile.in index 43bb7a946cc..3dfda4b6fa2 100644 --- a/dlls/msvcrtd/tests/Makefile.in +++ b/dlls/msvcrtd/tests/Makefile.in @@ -5,6 +5,7 @@ VPATH = @srcdir@ TESTDLL = msvcrtd.dll IMPORTS = msvcrtd EXTRAINCL = -I$(TOPSRCDIR)/include/msvcrt +MODCFLAGS = @BUILTINFLAG@ CTESTS = \ debug.c diff --git a/programs/notepad/Makefile.in b/programs/notepad/Makefile.in index de0505f881a..fc43d365e88 100644 --- a/programs/notepad/Makefile.in +++ b/programs/notepad/Makefile.in @@ -6,6 +6,7 @@ MODULE = notepad.exe APPMODE = -mwindows IMPORTS = comdlg32 shell32 user32 gdi32 msvcrt advapi32 kernel32 EXTRAINCL = -I$(TOPSRCDIR)/include/msvcrt +MODCFLAGS = @BUILTINFLAG@ EXTRADEFS = -DNO_LIBWINE_PORT C_SRCS = \ diff --git a/programs/regedit/Makefile.in b/programs/regedit/Makefile.in index d7838640818..96a785ea7a9 100644 --- a/programs/regedit/Makefile.in +++ b/programs/regedit/Makefile.in @@ -8,6 +8,7 @@ IMPORTS = msvcrt advapi32 kernel32 DELAYIMPORTS = shlwapi shell32 comdlg32 comctl32 user32 gdi32 EXTRAINCL = -I$(TOPSRCDIR)/include/msvcrt EXTRADEFS = -DNO_LIBWINE_PORT +MODCFLAGS = @BUILTINFLAG@ C_SRCS = \ about.c \ diff --git a/programs/taskmgr/Makefile.in b/programs/taskmgr/Makefile.in index 73c0695c7bf..6f38b553410 100644 --- a/programs/taskmgr/Makefile.in +++ b/programs/taskmgr/Makefile.in @@ -7,6 +7,7 @@ APPMODE = -mwindows IMPORTS = psapi shell32 comctl32 msvcrt user32 gdi32 advapi32 kernel32 EXTRAINCL = -I$(TOPSRCDIR)/include/msvcrt EXTRADEFS = -DNO_LIBWINE_PORT +MODCFLAGS = @BUILTINFLAG@ C_SRCS = \ about.c \