Skip to content

Commit

Permalink
Date: Sun, 26 Feb 2006 11:25:09 +0900
Browse files Browse the repository at this point in the history
From: Hayashi Naoyuki
Subject: Re: [SDL] CVS stable again, please update SDL ports

Some problems are caused on Tru64 UNIX.
If applying SDL12-osf1.path, these problems are fixed.


1. configure-script say "recursive mutexes... no" and "pthread
semaphores... no".
checking for pthreads... yes
checking for recursive mutexes... no
checking for pthread semaphores... no

This is because it compiled without pthread_cflags and pthread_lib when
checking recursive mutexes and pthread semaphores.


2. Compiling src/audio/mme/SDL_mmeaudio.c fails.
cc: Severe: ./src/audio/mme/SDL_mmeaudio.c, line 25: Cannot find file
<mme_api.h> specified in #include directive. (noinclfilef)
#include <mme_api.h>
-^

This is because BUILD_CFLAGS is wrong.


3. Compiling src/cdrom/osf/SDL_syscdrom.c fails.
cc: Warning: ./src/cdrom/osf/SDL_syscdrom.c, line 176: Too few actual
parameters in the invocation of the macro "SDL_stack_alloc". (toofewactuals)
        cdpath = SDL_stack_alloc(len);
------------------------------------^
cc: Error: ./src/cdrom/osf/SDL_syscdrom.c, line 176: Invalid expression.
(badexpr)
        cdpath = SDL_stack_alloc(len);
-----------------^

SDL_stack_alloc is defined in include/SDL_stdinc.h.
#define SDL_stack_alloc(type, count)    (type*)alloca(sizeof(type)*count)


4. Linking fails if running configure with --enable-x11-shared=yes.
/usr/ccs/bin/ld:
Warning: Unresolved:
p_XData32


5. Compiling src/video/x11/SDL_x11dyn.c fails if running configure with
--enable-x11-shared=no.
cc: Error: ./src/video/x11/SDL_x11sym.h, line 149: In this statement,
"_SmtBufferOverflow" is not declared. (undeclared)
SDL_X11_SYM(1,void,_SmtBufferOverflow,(Display *dpy,register smtDisplayPtr))
^
cc: Error: ./src/video/x11/SDL_x11sym.h, line 150: In this statement,
"_SmtBufferOverflow" is not declared. (undeclared)
SDL_X11_SYM(1,void,_SmtBufferOverflow,(Display *dpy,register smtDisplayPtr))
^
cc: Error: ./src/video/x11/SDL_x11sym.h, line 150: In this statement,
"_SmtIpError" is not declared. (undeclared)
SDL_X11_SYM(1,void,_SmtIpError,(Display *dpy,register smtDisplayPtr, int))
^
  • Loading branch information
slouken committed Feb 26, 2006
1 parent 9789a78 commit 53cc50e
Show file tree
Hide file tree
Showing 4 changed files with 59 additions and 9 deletions.
53 changes: 47 additions & 6 deletions configure.in
Expand Up @@ -397,6 +397,44 @@ CheckDMEDIA()
fi
}

dnl Check whether we want to use Tru64 UNIX native audio or not
CheckMME()
{
dnl Make sure we are running on an Tru64 UNIX
case $ARCH in
osf)
;;
*)
return
;;
esac
if test x$enable_audio = xyes; then
AC_MSG_CHECKING(for MME audio support)
MME_CFLAGS="-I/usr/include/mme"
MME_LIBS="-lmme"
have_mme=no
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $MME_CFLAGS"
AC_TRY_COMPILE([
#include <mme_api.h>
],[
HWAVEOUT sound;
],[
have_mme=yes
])
CFLAGS="$save_CFLAGS"
AC_MSG_RESULT($have_mme)
# Set up files for the audio library
if test x$have_mme = xyes; then
AC_DEFINE(SDL_AUDIO_DRIVER_MMEAUDIO)
SOURCES="$SOURCES $srcdir/src/audio/mme/*.c"
BUILD_CFLAGS="$BUILD_CFLAGS $MME_CFLAGS"
BUILD_LDFLAGS="$BUILD_LDFLAGS $MME_LIBS"
have_audio=yes
fi
fi
}

dnl Find the ESD includes and libraries
CheckESD()
{
Expand Down Expand Up @@ -1555,6 +1593,11 @@ AC_HELP_STRING([--enable-pthread-sem], [use pthread semaphores [default=yes]]),
SDL_CFLAGS="$SDL_CFLAGS $pthread_cflags"
SDL_LIBS="$SDL_LIBS $pthread_lib"

# Save the original compiler flags and libraries
ac_save_cflags="$CFLAGS"; ac_save_libs="$LIBS"
# Add the pthread compiler flags and libraries
CFLAGS="$CFLAGS $pthread_cflags"; LIBS="$LIBS $pthread_lib"

# Check to see if recursive mutexes are available
AC_MSG_CHECKING(for recursive mutexes)
has_recursive_mutexes=no
Expand Down Expand Up @@ -1596,6 +1639,9 @@ AC_HELP_STRING([--enable-pthread-sem], [use pthread semaphores [default=yes]]),
AC_MSG_RESULT($have_pthread_sem)
fi

# Restore the compiler flags and libraries
CFLAGS="$ac_save_cflags"; LIBS="$ac_save_libs"

# Basic thread creation functions
SOURCES="$SOURCES $srcdir/src/thread/pthread/SDL_systhread.c"

Expand Down Expand Up @@ -1903,6 +1949,7 @@ case "$target" in
CheckAltivec
CheckOSS
CheckDMEDIA
CheckMME
CheckALSA
CheckARTSC
CheckESD
Expand Down Expand Up @@ -1945,12 +1992,6 @@ case "$target" in
SOURCES="$SOURCES $srcdir/src/audio/paudio/*.c"
have_audio=yes
;;
osf)
AC_DEFINE(SDL_AUDIO_DRIVER_MMEAUDIO)
SOURCES="$SOURCES $srcdir/src/audio/mme/*.c"
BUILD_LDFLAGS="$BUILD_LDFLAGS -lmme"
have_audio=yes
;;
esac
fi
# Set up files for the joystick library
Expand Down
2 changes: 1 addition & 1 deletion src/cdrom/osf/SDL_syscdrom.c
Expand Up @@ -173,7 +173,7 @@ int SDL_SYS_CDInit(void)
if ( SDLcdrom != NULL ) {
char *cdpath, *delim;
size_t len = SDL_strlen(SDLcdrom)+1;
cdpath = SDL_stack_alloc(len);
cdpath = SDL_stack_alloc(char, len);
if ( cdpath != NULL ) {
SDL_strlcpy(cdpath, SDLcdrom, len);
SDLcdrom = cdpath;
Expand Down
11 changes: 10 additions & 1 deletion src/video/x11/SDL_x11dyn.h
Expand Up @@ -50,6 +50,15 @@
extern "C" {
#endif

#ifdef __osf__
extern int _XData32(Display *,register long *,unsigned);
extern void _XRead32(Display *,register long *,long);
extern void _SmtBufferOverflow(Display *,register smtDisplayPtr);
extern void _SmtIpError(Display *,register smtDisplayPtr, int);
extern int ipAllocateData(ChannelPtr, IPCard, IPDataPtr *);
extern int ipUnallocateAndSendData(ChannelPtr, IPCard);
#endif

/* evil function signatures... */
typedef Bool (*SDL_X11_XESetWireToEventRetType)(Display*,XEvent*,xEvent*);
typedef int (*SDL_X11_XSynchronizeRetType)(Display*);
Expand All @@ -72,7 +81,7 @@ typedef int (*SDL_X11_XSetExtensionErrorHandlerType)(Display *,char *,char *);
#define XFree pXFree
#define _XData32 p_XData32

#if defined(__osf__) && defined(SDL_VIDEO_DRIVER_X11_DYNAMIC)
#if defined(__osf__)
#define _SmtBufferOverflow p_SmtBufferOverflow
#define _SmtIpError p_SmtIpError
#define ipAllocateData pipAllocateData
Expand Down
2 changes: 1 addition & 1 deletion src/video/x11/SDL_x11sym.h
Expand Up @@ -140,7 +140,7 @@ SDL_X11_SYM(1,unsigned long,_XSetLastRequestRead,(Display*,xGenericReply*))
* These don't exist in 32-bit versions and are removed by Xlib macros, but
* 64+ bit systems will use them.
*/
#if defined(LONG64) && !defined(__osf__)
#if defined(LONG64)
SDL_X11_SYM(1,int,_XData32,(Display *dpy,register long *data,unsigned len))
SDL_X11_SYM(1,void,_XRead32,(Display *dpy,register long *data,long len))
#endif
Expand Down

0 comments on commit 53cc50e

Please sign in to comment.