annotate README.Porting @ 4137:be12463f31ea SDL-1.2

Date: Sat, 2 Feb 2008 22:08:05 +0100 From: Marcus von Appen To: sdl@lists.libsdl.org Subject: [SDL] [Patch] SDL-1.2 SDL_revcpy() asm patch for the cld flag Hi, as reported through the FreeBSD bug tracking system in SDL 1.2.13 (and in the 1.2 branch, if I see that correctly) the SDL_revcpy() macro sets the direction flag (std), but does not clear it afterwards (cld), which is wrong according to the GCC and SYS V specs. This can cause some weird side effects, which in turn can lead to memory corruption. You can read the full report with a detailed description and test program at http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/120052 Attached is the submitted patch, which fixes the issue. Regards Marcus
author Ryan C. Gordon <icculus@icculus.org>
date Mon, 04 Feb 2008 17:22:56 +0000
parents b2b476a4a73c
children 103760c3a5dc
rev   line source
1484
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
1
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
2 * Porting To A New Platform
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
3
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
4 The first thing you have to do when porting to a new platform, is look at
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
5 include/SDL_platform.h and create an entry there for your operating system.
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
6 The standard format is __PLATFORM__, where PLATFORM is the name of the OS.
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
7 Ideally SDL_platform.h will be able to auto-detect the system it's building
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
8 on based on C preprocessor symbols.
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
9
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
10 There are two basic ways of building SDL at the moment:
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
11
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
12 1. The "UNIX" way: ./configure; make; make install
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
13
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
14 If you have a GNUish system, then you might try this. Edit configure.in,
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
15 take a look at the large section labelled:
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
16 "Set up the configuration based on the target platform!"
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
17 Add a section for your platform, and then re-run autogen.sh and build!
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
18
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
19 2. Using an IDE:
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
20
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
21 If you're using an IDE or other non-configure build system, you'll probably
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
22 want to create a custom SDL_config.h for your platform. Edit SDL_config.h,
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
23 add a section for your platform, and create a custom SDL_config_{platform}.h,
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
24 based on SDL_config.h.minimal and SDL_config.h.in
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
25
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
26 Add the top level include directory to the header search path, and then add
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
27 the following sources to the project:
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
28 src/*.c
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
29 src/audio/*.c
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
30 src/cdrom/*.c
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
31 src/cpuinfo/*.c
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
32 src/events/*.c
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
33 src/file/*.c
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
34 src/joystick/*.c
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
35 src/stdlib/*.c
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
36 src/thread/*.c
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
37 src/timer/*.c
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
38 src/video/*.c
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
39 src/audio/disk/*.c
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
40 src/video/dummy/*.c
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
41 src/joystick/dummy/*.c
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
42 src/cdrom/dummy/*.c
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
43 src/thread/generic/*.c
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
44 src/timer/dummy/*.c
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
45 src/loadso/dummy/*.c
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
46
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
47
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
48 Once you have a working library without any drivers, you can go back to each
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
49 of the major subsystems and start implementing drivers for your platform.
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
50
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
51 If you have any questions, don't hesitate to ask on the SDL mailing list:
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
52 http://www.libsdl.org/mailing-list.php
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
53
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
54 Enjoy!
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
55 Sam Lantinga (slouken@libsdl.org)
b2b476a4a73c Added documentation on how to build a completely useless SDL library. :)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
56