diff --git a/Makefile b/Makefile index 7b16040b..322fc15d 100644 --- a/Makefile +++ b/Makefile @@ -376,6 +376,7 @@ ifneq (,$(findstring "$(PLATFORM)", "linux" "gnu_kfreebsd" "kfreebsd-gnu" "gnu") THREAD_LIBS=-lpthread LIBS=-ldl -lm + AUTOUPDATER_LIBS += -ldl CLIENT_LIBS=$(SDL_LIBS) RENDERER_LIBS = $(SDL_LIBS) -lGL @@ -834,6 +835,8 @@ ifeq ($(PLATFORM),irix64) SHLIBLDFLAGS=-shared LIBS=-ldl -lm -lgen + AUTOUPDATER_LIBS += -ldl + # FIXME: The X libraries probably aren't necessary? CLIENT_LIBS=-L/usr/X11/$(LIB) $(SDL_LIBS) \ -lX11 -lXext -lm @@ -888,6 +891,7 @@ ifeq ($(PLATFORM),sunos) THREAD_LIBS=-lpthread LIBS=-lsocket -lnsl -ldl -lm + AUTOUPDATER_LIBS += -ldl BOTCFLAGS=-O0 diff --git a/code/sys/sys_autoupdater.c b/code/sys/sys_autoupdater.c index 2982f855..1ed908d8 100644 --- a/code/sys/sys_autoupdater.c +++ b/code/sys/sys_autoupdater.c @@ -59,9 +59,13 @@ void Sys_LaunchAutoupdater(int argc, char **argv) char *ptr = strrchr(argv[0], '/'); if (ptr) *ptr = '\0'; - chdir(argv[0]); + if (chdir(argv[0]) == -1) { + _exit(1); /* oh well. */ + } #ifdef __APPLE__ - chdir("../.."); /* put this at base of app bundle so paths make sense later. */ + if (chdir("../..") == -1) { /* put this at base of app bundle so paths make sense later. */ + _exit(1); /* oh well. */ + } #endif snprintf(pidstr, sizeof (pidstr), "%lld", (long long) getppid()); execl(AUTOUPDATER_BIN, AUTOUPDATER_BIN, "--waitpid", pidstr, NULL);