Makefile.wiz
author Sam Lantinga <slouken@libsdl.org>
Wed, 10 Jul 2013 21:57:31 -0700
changeset 7396 a36ab6149a10
parent 5586 7fe92c1dc1d9
child 9954 75f31b13bf4b
permissions -rw-r--r--
Fixed bug 1953 - Crash at memcpy X11_DispatchEvent(_THIS) Function Nitz In Function X11_DispatchEvent(_THIS), case SelectionNotify : static void X11_DispatchEvent(_THIS) { // Some Code case SelectionNotify: { //Some Code SDL_bool expect_lf = SDL_FALSE; char *start = NULL; // Initialised with NULL char *scan = (char*)p.data; char *fn; char *uri; int length = 0; while (p.count--) { if (!expect_lf) { if (*scan==0x0D) { expect_lf = SDL_TRUE; } else if(start == NULL) { start = scan; length = 0; } length++; } else { if (*scan==0x0A && length>0) { uri = malloc(length--); memcpy(uri, start, length); // Problem is Here, start is still NULL if control comes to else statement without initialising the start pointer, which is wrong uri[length] = 0; fn = X11_URIToLocal(uri); if (fn) SDL_SendDropFile(fn); free(uri); } expect_lf = SDL_FALSE; start = NULL; } scan++; } } As shown above how start pointer remains NULL, Patch for this issue would be: if (*scan==0x0D) { expect_lf = SDL_TRUE; } if(start == NULL) { start = scan; length = 0; } Just replace else if statement with if.

# Makefile to build the pandora SDL library
WIZSDK = /mythtv/media/devel/toolchains/openwiz/arm-openwiz-linux-gnu

AR	= $(WIZSDK)/bin/arm-openwiz-linux-gnu-ar
RANLIB	= $(WIZSDK)/bin/arm-openwiz-linux-gnu-ranlib
CC = $(WIZSDK)/bin/arm-openwiz-linux-gnu-gcc
CXX = $(WIZSDK)/bin/arm-openwiz-linux-gnu-g++
STRIP = $(WIZSDK)/bin/arm-openwiz-linux-gnu-strip

CFLAGS  = -Wall -fPIC -I./include -I$(WIZSDK)/include -DWIZ_GLES_LITE

TARGET_STATIC  = libSDL13.a
TARGET_SHARED  = libSDL13.so

SOURCES = ./src/*.c ./src/audio/*.c ./src/cdrom/*.c ./src/cpuinfo/*.c ./src/events/*.c \
	./src/file/*.c ./src/stdlib/*.c ./src/thread/*.c ./src/timer/*.c ./src/video/*.c \
	./src/joystick/*.c ./src/haptic/*.c ./src/video/dummy/*.c ./src/audio/disk/*.c \
	./src/audio/dummy/*.c ./src/loadso/dlopen/*.c ./src/audio/dsp/*.c \
	./src/thread/pthread/SDL_systhread.c ./src/thread/pthread/SDL_syssem.c \
	./src/thread/pthread/SDL_sysmutex.c ./src/thread/pthread/SDL_syscond.c \
	./src/joystick/linux/*.c ./src/haptic/linux/*.c ./src/timer/unix/*.c ./src/cdrom/dummy/*.c \
	./src/video/pandora/SDL_pandora.o ./src/video/pandora/SDL_pandora_events.o
	

OBJECTS = $(shell echo $(SOURCES) | sed -e 's,\.c,\.o,g')

all: config_copy $(TARGET_STATIC) $(TARGET_SHARED)

$(TARGET_STATIC): $(OBJECTS)
	$(AR) crv $@ $^
	$(RANLIB) $@

$(TARGET_SHARED):
	$(CC) -shared -Wl,-soname,$(TARGET_SHARED).0 -o $(TARGET_SHARED).0.0.1  $(OBJECTS)
	ln -s $(TARGET_SHARED).0.0.1 $(TARGET_SHARED).0
	ln -s $(TARGET_SHARED).0 $(TARGET_SHARED)

config_copy:
	cp include/SDL_config_wiz.h include/SDL_config.h

clean:
	rm -f $(TARGET_STATIC) $(TARGET_SHARED)* $(OBJECTS)

install:
	mkdir -p $(WIZSDK)/lib
	mkdir -p $(WIZSDK)/include/SDL13
	cp -f $(TARGET_STATIC) $(WIZSDK)/lib
	cp -f $(TARGET_SHARED).0.0.1 $(WIZSDK)/lib
	rm -f $(WIZSDK)/lib/$(TARGET_SHARED).0 $(WIZSDK)/lib/$(TARGET_SHARED)
	ln -s $(WIZSDK)/lib/$(TARGET_SHARED).0.0.1 $(WIZSDK)/lib/$(TARGET_SHARED).0
	ln -s $(WIZSDK)/lib/$(TARGET_SHARED).0 $(WIZSDK)/lib/$(TARGET_SHARED)

	cp $(TARGET_STATIC) ../../toolchain/libs
	cp $(TARGET_SHARED).0.0.1 ../../toolchain/libs
	rm -f ../../toolchain/libs/$(TARGET_SHARED).0 ../../toolchain/libs/$(TARGET_SHARED)
	ln -s ../../toolchain/libs/$(TARGET_SHARED).0.0.1 ../../toolchain/libs/$(TARGET_SHARED).0
	ln -s ../../toolchain/libs/$(TARGET_SHARED).0 ../../toolchain/libs/$(TARGET_SHARED)

	cp $(TARGET_SHARED).0.0.1 ../nehe_demos/build/$(TARGET_SHARED).0
	cp -f include/*.h $(WIZSDK)/include/SDL13/
	cp -f include/*.h ../../toolchain/include/SDL13/