__sparc__ not defined with Forte C

Gregg Mattinson gm138242 at scot.canada.sun.com
Wed Jul 17 06:55:08 CDT 2002


Resubmitting, with changes recommended by Alexandre.

ChangeLog: configure configure.ac include/wine/port.h
 - __sparc__ and __sun__ are not defined with Forte C, so a configure test was 
added
 - Forte C doesn't like @function.  Added a configure test for it, and replaced 
it with 2 when it is not available

>To: Gregg Mattinson <gm138242 at opcom-mail.canada.sun.com>
>Cc: wine-devel at winehq.com
>Subject: Re: __sparc__ not defined with Forte C
>From: Alexandre Julliard <julliard at winehq.com>
>Date: 15 Jul 2002 18:49:04 -0700
>User-Agent: Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.4 (Common Lisp)
>MIME-Version: 1.0
>
>Gregg Mattinson <gm138242 at scot.canada.sun.com> writes:
>
>> ChangeLog: dlls/ntdll/signal_sparc.c include/basetsd.h
>>            include/wine/port.h server/context_sparc.c
>>  - __sparc__ is not defined with Forte C, but __sparc is defined with both 
Forte 
>> and GCC.  Same goes for __sun__
>
>If __sparc and __sun work for all compilers we should use them
>everywhere, no need to try to support other forms. Otherwise it should
>be done with a configure test like we do for __i386__.
>
>>  - Forte C doesn't like @function.  Replaced it with 2.
>
>This needs a configure test. A #ifdef SUNPRO_C is almost always the
>wrong thing to do.
>
>-- 
>Alexandre Julliard
>julliard at winehq.com

Gregg Mattinson
Co-op Developer
Sun Microsystems of Canada

-------------- next part --------------
Index: configure
===================================================================
RCS file: /opcom/comp/ws/wine/CVSROOT/wine/configure,v
retrieving revision 1.2
diff -u -r1.2 configure
--- /tmp/T0CRaWLe	Wed Jul 17 07:44:59 2002
+++ configure	Tue Jul 16 09:13:30 2002
@@ -9523,6 +9523,29 @@
 fi
 
 
+echo "$as_me:$LINENO: checking whether @function is defined" >&5
+echo $ECHO_N "checking whether @function is defined... $ECHO_C" >&6
+if test "${ac_cv_at_function_is_defined+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_try_asm_link_saved_libs=$LIBS
+LIBS="conftest_asm.s $LIBS"
+cat > conftest_asm.s <<EOF
+	.globl _ac_test
+	.type _ac_test
+fi
+echo "$as_me:$LINENO: result: $ac_cv_at_function_is_defined" >&5
+echo "${ECHO_T}$ac_cv_at_function_is_defined" >&6
+if test "$ac_cv_at_function_is_defined" = "yes"
+then
+
+cat >>confdefs.h <<\_ACEOF
+#define AT_FUNCTION_IS_DEFINED 1
+_ACEOF
+
+fi
+
+
 echo "$as_me:$LINENO: checking whether external symbols need an underscore prefix" >&5
 echo $ECHO_N "checking whether external symbols need an underscore prefix... $ECHO_C" >&6
 if test "${ac_cv_c_extern_prefix+set}" = set; then
@@ -13214,6 +13237,74 @@
 then
     CFLAGS="$CFLAGS -D__i386__"
     LINTFLAGS="$LINTFLAGS -D__i386__"
+fi
+
+
+case $host_cpu in
+  *sparc* )
+    echo "$as_me:$LINENO: checking whether we need to define __sparc__" >&5
+echo $ECHO_N "checking whether we need to define __sparc__... $ECHO_C" >&6
+if test "${ac_cv_cpp_def_sparc+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+#include "confdefs.h"
+#ifndef __sparc__
+yes
+#endif
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "yes" >/dev/null 2>&1; then
+  ac_cv_cpp_def_sparc="yes"
+else
+  ac_cv_cpp_def_sparc="no"
+fi
+rm -f conftest*
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_cpp_def_sparc" >&5
+echo "${ECHO_T}$ac_cv_cpp_def_sparc" >&6
+    ;;
+esac
+if test "$ac_cv_cpp_def_sparc" = "yes"
+then
+    CFLAGS="$CFLAGS -D__sparc__"
+    LINTFLAGS="$LINTFLAGS -D__sparc__"
+fi
+
+
+case $host_vendor in
+  *sun* )
+    echo "$as_me:$LINENO: checking whether we need to define __sun__" >&5
+echo $ECHO_N "checking whether we need to define __sun__... $ECHO_C" >&6
+if test "${ac_cv_cpp_def_sun+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+#include "confdefs.h"
+#ifndef __sun__
+yes
+#endif
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "yes" >/dev/null 2>&1; then
+  ac_cv_cpp_def_sun="yes"
+else
+  ac_cv_cpp_def_sun="no"
+fi
+rm -f conftest*
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_cpp_def_sun" >&5
+echo "${ECHO_T}$ac_cv_cpp_def_sun" >&6
+    ;;
+esac
+if test "$ac_cv_cpp_def_sun" = "yes"
+then
+    CFLAGS="$CFLAGS -D__sun__"
+    LINTFLAGS="$LINTFLAGS -D__sun__"
 fi
 
 
Index: configure.ac
===================================================================
RCS file: /opcom/comp/ws/wine/CVSROOT/wine/configure.ac,v
retrieving revision 1.2
diff -u -r1.2 configure.ac
--- /tmp/T0x8aiMe	Wed Jul 17 07:45:00 2002
+++ configure.ac	Tue Jul 16 09:12:13 2002
@@ -650,6 +650,20 @@
   AC_DEFINE(NEED_TYPE_IN_DEF, 1, [Define if .type asm directive must be inside a .def directive])
 fi
 
+dnl **** Check if @function is defined ****
+
+AC_CACHE_CHECK([whether @function is defined], ac_cv_at_function_is_defined,
+    WINE_TRY_ASM_LINK(
+[	.globl _ac_test
+	.type _ac_test, @function
+_ac_test:
+	.long 0],,,
+    ac_cv_at_function_is_defined="yes",ac_cv_at_function_is_defined="no"))
+if test "$ac_cv_at_function_is_defined" = "yes"
+then
+  AC_DEFINE(AT_FUNCTION_IS_DEFINED, 1, [Define if @function is defined])
+fi
+
 dnl **** Check for underscore on external symbols ****
 
 AC_CACHE_CHECK([whether external symbols need an underscore prefix], ac_cv_c_extern_prefix,
@@ -1185,6 +1199,40 @@
 then
     CFLAGS="$CFLAGS -D__i386__"
     LINTFLAGS="$LINTFLAGS -D__i386__"
+fi
+
+dnl *** check for the need to define __sparc__
+
+case $host_cpu in
+  *sparc* )
+    AC_CACHE_CHECK([whether we need to define __sparc__],ac_cv_cpp_def_sparc,
+      AC_EGREP_CPP(yes,[#ifndef __sparc__
+yes
+#endif],
+ ac_cv_cpp_def_sparc="yes", ac_cv_cpp_def_sparc="no"))
+    ;;
+esac
+if test "$ac_cv_cpp_def_sparc" = "yes"
+then
+    CFLAGS="$CFLAGS -D__sparc__"
+    LINTFLAGS="$LINTFLAGS -D__sparc__"
+fi
+
+dnl *** check for the need to define __sun__
+
+case $host_vendor in
+  *sun* )
+    AC_CACHE_CHECK([whether we need to define __sun__],ac_cv_cpp_def_sun,
+      AC_EGREP_CPP(yes,[#ifndef __sun__
+yes
+#endif],
+ ac_cv_cpp_def_sun="yes", ac_cv_cpp_def_sun="no"))
+    ;;
+esac
+if test "$ac_cv_cpp_def_sun" = "yes"
+then
+    CFLAGS="$CFLAGS -D__sun__"
+    LINTFLAGS="$LINTFLAGS -D__sun__"
 fi
 
 dnl **** Generate output files ****
Index: include/wine/port.h
===================================================================
RCS file: /opcom/comp/ws/wine/CVSROOT/wine/include/wine/port.h,v
retrieving revision 1.2
diff -u -r1.2 port.h
--- /tmp/T0lFaaXe	Wed Jul 17 07:46:24 2002
+++ port.h	Tue Jul 16 08:56:12 2002
@@ -141,7 +141,11 @@
 #ifdef NEED_TYPE_IN_DEF
 # define __ASM_FUNC(name) ".def " __ASM_NAME(name) "; .scl 2; .type 32; .endef"
 #else
+#ifdef AT_FUNCTION_IS_DEFINED
 # define __ASM_FUNC(name) ".type " __ASM_NAME(name) ", at function"
+#else
+# define __ASM_FUNC(name) ".type " __ASM_NAME(name) ",2"
+#endif
 #endif
 
 #ifdef __GNUC__


More information about the wine-patches mailing list