Hi, all:
Working Environment: Ubuntu 16.04.2
GCC Version: 5.4.0
I successfully configured SDL-2.0.5 for further building. And I configured
"-std=c99" for CMAKE_C_FLAGS, see the following:
CMAKE_C_FLAGS -std=c99
However, I get ERROR messages for the assembly code in file SDL_cpuinfo.c
SDL2-2.0.5/src/cpuinfo/SDL_cpuinfo.c:250:34: error: expected ?)? before ?:?
token
asm(".byte 0x0f, 0x01, 0xd0" : “=a” (a) : “c” (0) : “%edx”);
I’m pretty sure this ERROR message has something to do with -std=c99 . I
wonder which version of C is SDL2-2.0.5 compatible with?
Cheers–
Pei JIA, Ph.D.
Email: @JIA_Pei
cell in Canada: +1 778-863-5816
cell in China: +86 186-8244-3503
Welcome to Vision Open
http://www.visionopen.com
Try -std=gnu99 (if I recall correctly)
Looks like the problem is using asm instead of a reserved keyword
(whoops). -std=c99 will disable any extensions, -std=gnu99 will keep
them.
Thank you… That works for me… Thanks…On Fri, Mar 3, 2017 at 2:13 PM, Sik the hedgehog <sik.the.hedgehog at gmail.com wrote:
Try -std=gnu99 (if I recall correctly)
Looks like the problem is using asm instead of a reserved keyword
(whoops). -std=c99 will disable any extensions, -std=gnu99 will keep
them.
SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
–
Pei JIA, Ph.D.
Email: @JIA_Pei
cell in Canada: +1 778-863-5816
cell in China: +86 186-8244-3503
Welcome to Vision Open
http://www.visionopen.com
So the actual fix should be to change that to asm, right?
–ryan.On 3/3/17 5:13 PM, Sik the hedgehog wrote:
Try -std=gnu99 (if I recall correctly)
Looks like the problem is using asm instead of a reserved keyword
(whoops). -std=c99 will disable any extensions, -std=gnu99 will keep
them.
Hi, Ryan:
My current solution is to* change -std=c99 to -std=gnu99.*
I’m testing your solution, which seems to be correct !!! However, I’m NOW
facing some new issues:
SDL2/SDL2-2.0.5/src/render/software/SDL_rotate.c:136:29: error: ?M_PI?
undeclared (first use in this function)
radangle = angle * (M_PI / -180.0); /* reverse the angle because
our rotations are clockwise */
SDL2/SDL2-2.0.5/src/events/SDL_quit.c:55:22: error: storage size of ?action?
isn?t known
struct sigaction action;
I can easily solve the first problem ‘M_PI’ hasn’t been declared by
defining M_PI as:
#ifndef M_PI
#define M_PI 3.14159265358979323846264338327950288 / pi /
#endif
However, how to solve the second issue ???
SDL2/SDL2-2.0.5/src/events/SDL_quit.c:55:22: error: storage size of ?action?
isn?t known
struct sigaction action;
CheersOn Mon, Mar 6, 2017 at 2:00 PM, Ryan C. Gordon wrote:
On 3/3/17 5:13 PM, Sik the hedgehog wrote:
Try -std=gnu99 (if I recall correctly)
Looks like the problem is using asm instead of a reserved keyword
(whoops). -std=c99 will disable any extensions, -std=gnu99 will keep
them.
So the actual fix should be to change that to asm, right?
–ryan.
SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
–
Pei JIA, Ph.D.
Email: @JIA_Pei
cell in Canada: +1 778-863-5816
cell in China: +86 186-8244-3503
Welcome to Vision Open
http://www.visionopen.com
Hi,
building with -std=c99 (instead of gnu99) doesn’t only change the syntax
that’s accepted by the compiler, but also what parts of headers are used.
All (or most?) things in standard headers that are not part of the C99
standard, like “GNU extensions” is not enabled (this is the “#define
_GNU_SOURCE” stuff mentioned in manpages).
IMHO it’s not very useful to use -std=c99, especially for code like
libSDL that needs to do operating-system specific things. Just use
-std=gnu99 (or even gnu89)…
Cheers,
DanielOn 07.03.2017 02:01, JIA Pei wrote:
Hi, Ryan:
My current solution is tochange -std=c99 to -std=gnu99.
I’m testing your solution, which seems to be correct !!! However, I’m
NOW facing some new issues:
SDL2/SDL2-2.0.5/src/render/software/SDL_rotate.c:136:29:error: ?M_PI?
undeclared (first use in this function)
radangle = angle * (M_PI / -180.0); /* reverse the angle because
our rotations are clockwise */
SDL2/SDL2-2.0.5/src/events/SDL_quit.c:55:22:error: storage size of
?action? isn?t known
struct sigaction action;
I can easily solve the first problem ‘M_PI’ hasn’t been declared by
defining M_PI as:
*#ifndef M_PI*
*#define M_PI 3.14159265358979323846264338327950288 /* pi */*
*#endif*
However, how to solve the second issue ???
SDL2/SDL2-2.0.5/src/events/SDL_quit.c:55:22: error: storage size of
?action? isn?t known
struct sigaction action;
Cheers
On Mon, Mar 6, 2017 at 2:00 PM, Ryan C. Gordon <icculus at icculus.org <mailto:icculus at icculus.org>> wrote:
On 3/3/17 5:13 PM, Sik the hedgehog wrote:
Try -std=gnu99 (if I recall correctly)
Looks like the problem is using asm instead of a reserved keyword
(whoops). -std=c99 will disable any extensions, -std=gnu99 will keep
them.
So the actual fix should be to change that to __asm__, right?
--ryan.
_______________________________________________
SDL mailing list
SDL at lists.libsdl.org <mailto:SDL at lists.libsdl.org>
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
<http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org>
–
Pei JIA, Ph.D.
Email: jp4work at gmail.com <mailto:jp4work at gmail.com>
cell in Canada: +1 778-863-5816
cell in China: +86 186-8244-3503
Welcome to Vision Open
http://www.visionopen.com
SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
Thank you Daniel… Thank you for your very clear explanation…
CheersOn Mon, Mar 6, 2017 at 5:09 PM, Daniel Gibson wrote:
Hi,
building with -std=c99 (instead of gnu99) doesn’t only change the syntax
that’s accepted by the compiler, but also what parts of headers are used.
All (or most?) things in standard headers that are not part of the C99
standard, like “GNU extensions” is not enabled (this is the “#define
_GNU_SOURCE” stuff mentioned in manpages).
IMHO it’s not very useful to use -std=c99, especially for code like libSDL
that needs to do operating-system specific things. Just use -std=gnu99 (or
even gnu89)…
Cheers,
Daniel
On 07.03.2017 02:01, JIA Pei wrote:
Hi, Ryan:
My current solution is tochange -std=c99 to -std=gnu99.
I’m testing your solution, which seems to be correct !!! However, I’m
NOW facing some new issues:
SDL2/SDL2-2.0.5/src/render/software/SDL_rotate.c:136:29:error: ?M_PI?
undeclared (first use in this function)
radangle = angle * (M_PI / -180.0); /* reverse the angle because
our rotations are clockwise */
SDL2/SDL2-2.0.5/src/events/SDL_quit.c:55:22:error: storage size of
?action? isn?t known
struct sigaction action;
I can easily solve the first problem ‘M_PI’ hasn’t been declared by
defining M_PI as:
*#ifndef M_PI*
*#define M_PI 3.14159265358979323846264338327950288 /* pi */*
*#endif*
However, how to solve the second issue ???
SDL2/SDL2-2.0.5/src/events/SDL_quit.c:55:22: error: storage size of
?action? isn?t known
struct sigaction action;
Cheers
On Mon, Mar 6, 2017 at 2:00 PM, Ryan C. Gordon <icculus at icculus.org <mailto:icculus at icculus.org>> wrote:
On 3/3/17 5:13 PM, Sik the hedgehog wrote:
Try -std=gnu99 (if I recall correctly)
Looks like the problem is using asm instead of a reserved keyword
(whoops). -std=c99 will disable any extensions, -std=gnu99 will
keep
them.
So the actual fix should be to change that to __asm__, right?
--ryan.
_______________________________________________
SDL mailing list
SDL at lists.libsdl.org <mailto:SDL at lists.libsdl.org>
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
<http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org>
–
Pei JIA, Ph.D.
Email: @JIA_Pei mailto:JIA_Pei
cell in Canada: +1 778-863-5816
cell in China: +86 186-8244-3503
Welcome to Vision Open
http://www.visionopen.com
SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
–
Pei JIA, Ph.D.
Email: @JIA_Pei
cell in Canada: +1 778-863-5816
cell in China: +86 186-8244-3503
Welcome to Vision Open
http://www.visionopen.com