Commit 0b4e5d22 authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont
Browse files

CPU: fprintf is not safe inside a signal handler...

...and VLC does not quite work on Linux 2.2 anymore.
parent 59b1d53f
......@@ -51,8 +51,15 @@ static void SigHandler ( int );
*****************************************************************************/
static jmp_buf env;
static int i_illegal;
#if defined( __i386__ ) || defined( __x86_64__ )
static const char *psz_capability;
static void warn_cap( const char *psz_capability )
{
fprintf( stderr, "warning: your CPU has %s instructions, but not your "
"operating system.\n", psz_capability );
fprintf( stderr, " some optimizations will be disabled unless "
"you upgrade your OS\n" );
}
#endif
/*****************************************************************************
......@@ -152,7 +159,6 @@ uint32_t CPUCapabilities( void )
# ifdef CAN_COMPILE_SSE
/* We test if OS supports the SSE instructions */
psz_capability = "SSE";
i_illegal = 0;
if( setjmp( env ) == 0 )
......@@ -162,9 +168,9 @@ uint32_t CPUCapabilities( void )
}
if( i_illegal == 0 )
{
i_capabilities |= CPU_CAPABILITY_SSE;
}
else
warn_cap( "SSE" );
# endif
}
......@@ -172,7 +178,6 @@ uint32_t CPUCapabilities( void )
{
# if defined(CAN_COMPILE_SSE)
/* We test if OS supports the SSE instructions */
psz_capability = "SSE2";
i_illegal = 0;
if( setjmp( env ) == 0 )
......@@ -182,9 +187,9 @@ uint32_t CPUCapabilities( void )
}
if( i_illegal == 0 )
{
i_capabilities |= CPU_CAPABILITY_SSE2;
}
else
warn_cap( "SSE2" );
# endif
}
......@@ -200,7 +205,6 @@ uint32_t CPUCapabilities( void )
# ifdef CAN_COMPILE_3DNOW
if( i_edx & 0x80000000 )
{
psz_capability = "3D Now!";
i_illegal = 0;
if( setjmp( env ) == 0 )
......@@ -210,9 +214,9 @@ uint32_t CPUCapabilities( void )
}
if( i_illegal == 0 )
{
i_capabilities |= CPU_CAPABILITY_3DNOW;
}
else
warn_cap( "3D Now!" );
}
# endif
......@@ -291,17 +295,6 @@ static void SigHandler( int i_signal )
#else
VLC_UNUSED( i_signal );
#endif
#if defined( __i386__ )
fprintf( stderr, "warning: your CPU has %s instructions, but not your "
"operating system.\n", psz_capability );
fprintf( stderr, " some optimizations will be disabled unless "
"you upgrade your OS\n" );
# if defined( __linux__ )
fprintf( stderr, " (for instance Linux kernel 2.4.x or later)\n" );
# endif
#endif
longjmp( env, 1 );
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment